/*
Theme Name: Door-Stop Theme
Theme Name: Door-Stop Theme
Author: JKE Web Design
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: doorstop-theme
Domain Path: /languages/
Requires at least: 5.0
Requires PHP: 8.3
*/

/*================================*/
/*          Colours               */
/*                                */
/*     Red:       #D2232A         */
/*     Slate:     #454749         */
/*     Grey:      #E3E1DD         */
/*                                */
/*================================*/

/*===== Main Styles =====*/
#site-header {
position: fixed;
top: 0;
width: 100%;
z-index: 999999;
}

#top-bar {
position: relative;
background: #1a1a1a;
width: 100%;
height: 40px;
}

#header-contact {
position: absolute;
top: 3px;
right: 0;
}

ul.contact {
list-style: none outside none;
margin: 0;
padding: 0;
}
	
ul.contact li {
float: left;
color: #f8f3d4;
font-size: 0.9em; 
font-family: var(--wp--preset--font-family--helvetica-regular);
font-weight: 400;
cursor: pointer;
height: 32px;
line-height: 32px;
text-align: center;
padding: 0;
margin: 0 15px;
text-indent: unset;
}

ul.contact li a {
color: #ffffff;
text-decoration: none;
}

ul.contact li a:hover {
color: #D2232A;
}

#header {
position: relative;
background: #D2232A;
border-bottom: 2px solid #ffffff;
width: 100%;
height: 80px;
}

#logo {
display: block;
width: 130px;
margin: 0;
padding: 5px 0 0 0;
}

/*===== Menus =====*/
.menu_title {
display: none;
position: relative;
float: right;
bottom: 0.6em;
margin-right: 3em;
color: #ffffff;
font-family: var(--wp--preset--font-family--helvetica-regular);
font-size: 1.1em;
font-weight: 400; 
}

#desktop-menu nav a {
position: relative;
color: #ffffff; 
display: block;
font-family: var(--wp--preset--font-family--helvetica-regular);
font-size: 1em;
font-weight: 400;
line-height: 50px;
padding: 0 25px; 
text-decoration: none; 
}

#desktop-menu nav a:hover {
color: #ffffff;
text-decoration: none;
}

#desktop-menu nav a.last {
padding: 0 0 0 40px;
}

#desktop-menu nav a.active {
color: #ffffff;
}

#desktop-menu nav a.nocursor {
cursor: context-menu;
}

#desktop-menu nav ul,
#desktop-menu nav ul li { 
height: 50px;
list-style-type: none; 
padding: 0; 
margin: 0; 
text-indent: unset;
}

#desktop-menu nav > ul { 
text-align: left; 
}

#desktop-menu nav > ul > li { 
display: inline-block; 
}

#desktop-menu nav > ul > li:first-child { 
border-left: none; 
}

#desktop-menu nav > ul > li > a {
position: relative;
}

#desktop-menu nav > ul > li > a:not(.sales):not(.signup)::after {
content: '';
position: absolute;
left: 10%;
bottom: 0;
width: 0;
height: 3px;
background-color: #ffffff;
border-radius: 2px;
transition: width 0.3s ease-in-out; 
}

#desktop-menu nav > ul > li > a:not(.sales):not(.signup):hover::after {
width: 90%;
}

#desktop-menu .sub-menu-parent { 
background: url("images/down.png") no-repeat scroll right 20px center;
padding: 0 15px 0 0; 
}

#desktop-menu .sub-menu {
position: absolute;
display: flex;
align-items: stretch;
gap: 20px;
width: min(1200px, 90vw);
padding: 20px;
top: 100%;
left: 30vw;
transform: translate(-50%, 5px);
background: #ffffff;
border: 2px solid #454749;
border-radius: 25px;
z-index: -1;
visibility: hidden;
opacity: 0;
height: auto;
pointer-events: none;
transition: opacity 0.25s ease, visibility 0s linear 0.25s;
}

#desktop-menu .sub-menu-parent:hover .sub-menu {
opacity: 1;
visibility: visible;
pointer-events: auto;
transition: opacity 0.25s ease;
}

#desktop-menu .sub-menu .mega-column {
flex: 1;
display: flex;
flex-direction: column;
align-items: stretch;
padding: 15px 20px 25px;
}

#desktop-menu .sub-menu .mega-column.full {
width: 100%;	
}

#desktop-menu .sub-menu .mega-column:first-child {
width: 60%;
}

#desktop-menu .sub-menu .mega-column:last-child {
width: 40%;
}

#desktop-menu .sub-menu .mega-column h3 {
color: #454749;
font-size: 1.6em;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 3px solid #d2232a;
width: 100%;
box-sizing: border-box;
}

#desktop-menu .sub-menu .mega-column h3.white {
color: #ffffff;	
}

#desktop-menu .sub-menu .mega-column h4 {
margin-bottom: 10px;
color: #454749;
padding-bottom: 10px;
border-bottom: 3px solid #d2232a;
width: 100%;
box-sizing: border-box;
}

#desktop-menu .sub-menu .mega-column h4.white {
color: #ffffff;	
}

#desktop-menu .sub-menu .mega-column ul {
list-style: none;
padding: 0;
margin: 0;
flex-grow: 1;
display: flex;
flex-direction: column;
}

#desktop-menu .sub-menu .mega-column ul li a {
display: block;
padding: 8px 0;
font-size: 1em;
color: #454749;
text-decoration: none;
line-height: normal;
}

#desktop-menu .sub-menu .mega-column ul li a:hover {
color: #d2232a;
}

#desktop-menu .mega-column a {
padding: 0;
margin: 0;
line-height: 45px;
text-decoration: none;
}

#menu-contact nav ul,
#menu-contact nav ul li { 
height: 50px;
list-style-type: none; 
padding: 0; 
margin: 0; 
text-indent: unset;
}

#menu-contact nav > ul { 
text-align: left; 
}

#menu-contact nav > ul > li { 
display: inline-block; 
}

#menu-contact nav > ul > li:first-child { 
border-left: none; 
}

#menu-contact nav > ul > li > a {
position: relative;
}

#menu-contact nav a.sales {
border: 2px solid #ffffff;
border-radius: 10px;
color: #ffffff;
margin: 0 10px 0 0;
padding: 0 25px;
text-decoration: none;
height: 100%;
display: inline-block;
font-weight: 400;
font-family: var(--wp--preset--font-family--helvetica-regular);
font-size: 1em;
font-weight: 400;
line-height: 43px;
}

#menu-contact nav a.signup {
background: #ffffff;
border: 2px solid #ffffff;
border-radius: 10px;
color: #010101;
padding: 0 25px;
text-decoration: none;
height: 100%;
display: inline-block;
font-weight: 400;
font-family: var(--wp--preset--font-family--helvetica-regular);
font-size: 1em;
font-weight: 400;
line-height: 43px;
}

#mobile-logo {
display: block;
width: 125px;
margin: 0;
padding: 0;
}

#desktop-menu {
display: block;
position: relative;
left: 195px;
bottom: 57px;
height: 50px;
z-index: 99999;
}


#mobile-menu {
display: none;
position: absolute;
right: 0;
bottom: 16px;
width: 100%;
height: 50px;
z-index: 99999;
}

#mobile-menu-toggle {
display: none;
width: 30px;
height: 22px;
cursor: pointer;
position: fixed;
right: 20px;
top: 70px;
z-index: 1000;
}

#mobile-menu-toggle span{
display: block;
height: 3px;
width: 100%;
background: #ffffff;
margin-bottom: 5px;
transition: all .3s ease;
}

#mobile-menu-toggle.active {
top: 42px;
}

#mobile-menu-toggle.active span {
background: #454749;
}

#mobile-menu-toggle.active span:nth-child(1){
transform: rotate(45deg) translate(5px,5px);
}

#mobile-menu-toggle.active span:nth-child(2){
opacity: 0;
}

#mobile-menu-toggle.active span:nth-child(3){
transform: rotate(-45deg) translate(6px,-6px);
}

#mobile-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
background: rgba(69, 71, 73, 0.5);
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease;
z-index: 998;
}

#mobile-overlay.active {
opacity: 1;
visibility: visible;
}

#mobile-menu ul li {
text-indent: unset;
margin-left: 0;
}

#mobile-menu ul.mobile-sub li {
margin-left: 0.5em;
}

#mobile-menu ul li.mobile-cta-primary {
margin-top: 40px;	
}

#mobile-menu ul li.mobile-cta {
margin-top: 0;	
}

#mobile-menu a {
position: relative;
display: block;
color: #ffffff;
text-decoration: none;
font-size: 1em;
padding: 12px 0;
}

#mobile-menu a:not(.title) {
position: relative;
}

#mobile-menu a:not(.title)::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 0%;
height: 3px;
background: #ffffff;
border-radius: 2px;
transition: width 0.3s ease-in-out;
}

#mobile-menu a:not(.title):hover::after {
width: 90%;
}

#mobile-menu a.title {
position: relative;
border-bottom: 2px solid #d2232a;
font-size: 1.1em;
font-weight: 600;
margin-bottom: 10px;
padding-bottom: 10px;
cursor: pointer;
padding-right: 25px;
}

#mobile-menu a.title::after {
content: "";
position: absolute;
right: 0;
top: 50%;
width: 8px;
height: 8px;
border-right: 2px solid #ffffff;
border-bottom: 2px solid #ffffff;
transform: translateY(-60%) rotate(45deg);
transition: transform 0.25s ease;
}

#mobile-menu a.title.open::after {
transform: translateY(-40%) rotate(-135deg);
}

#mobile-menu a.signup {
background: #d2232a;
border: 2px solid #d2232a;
border-radius: 10px;
color: #ffffff;
padding: 10px;
text-align: center;
}

#mobile-menu a.signup::after {
height: 0;
border-radius: 0;
transition: none;
}

#mobile-menu a.sales {
background: #ffffff;
border: 2px solid #d2232a;
border-radius: 10px;
color: #010101;
padding: 10px;
text-align: center;
}

#mobile-menu a.sales::after {
height: 0;
border-radius: 0;
transition: none;
}

#mobile-menu a.tlogin {
background: #ffffff;
border: 2px solid #ffffff;
border-radius: 10px;
color: #010101;
padding: 10px;
text-align: center;
}

#mobile-menu a.tlogin::after {
height: 0;
border-radius: 0;
transition: none;
}

#menu-contact {
position: absolute;
right: 10px;
bottom: 14px;
height: 50px;
z-index: 99999;
}

.menu-panel {
display: flex;
flex-flow: row nowrap;
align-items: stretch;
background: #d2232a;
border-radius: 10px;
padding: 20px;
margin: 20px 0 0;
}

.menu-panel-column:first-child {
order: 1;
width: 25%;
}

.menu-panel-column img {
max-width: 80px !important;
}

.menu-panel-column:last-child {
order: 2;
width: 75%;
}

.menu-row {
display: flex;
flex-flow: row nowrap;
align-items: center;
padding: 10px 0 !important;
text-decoration: none;
}

.menu-icon {
flex: 0 0 65px;
border-radius: 10px;
background: #D2232A url("images/white-right-arrow_32.png") center right 16px no-repeat;
margin: 0;
height: 100%;
width: 100%;
transition: all 0.2s ease-in-out;
}

.menu-row:hover .menu-icon {
background-position: center right 10px;
}

.menu-details {
flex: 1;
padding: 0;
}

.menu-details p.small {
margin: 0;
line-height: 1em;
}

/*===== Containers =====*/
#top-bar-wrapper {
position: relative;
width: 100%;
max-width: 1200px;
height: 100%;
padding: 0 10px;
margin: 0 auto;
}

#header-wrapper {
position: relative;
width: 100%;
max-width: 1200px;
height: 100%;
padding: 5px 10px;
margin: 0 auto;
}

/*===== Headers =====*/
h3 {
color: #454749;
font-family: var(--wp--preset--font-family--helvetica-neue-condensed);
font-size: 1.8em;
margin: 0;
padding: 0;
display: block;
line-height: 1.1em;
}

h3.white {
color: #ffffff;
}

/*===== Paragraphs =====*/
p.small {
font-size: 0.8em;
}

p.menu-header {
position: relative;
display: inline-block;
color: #454749;
font-family: var(--wp--preset--font-family--helvetica-neue-condensed);
font-size: 1.3em;
line-height: 1em;
margin: 0;
padding: 0;
}

p.menu-header::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 100%;
height: 2px;
background: #d2232a;
transform: scaleX(0);
transform-origin: left;
transition: transform 0.3s ease;
}

.menu-row:hover p.menu-header::after {
transform: scaleX(1);
}

p.menu-panel-text {
color: #ffffff;
font-size: 1.2em;
line-height: 1.3em;
margin: 0;
padding: 0;
}

/*===== Images =====*/
img.top {
display: inline-block;
position: relative;
top: 4px;
}


/* ============================================= */
/* Mobile Menu                                   */
/* ============================================= */
@media screen and (max-width: 1100.99px) {

#desktop-menu,
#menu-contact {
display: none !important;
}

#mobile-menu-toggle {
display: block;
}

#mobile-menu {
display: block;
position: fixed;
top: 0;
right:-100%;
width: 300px;
height: 100vh;
background: #ffffff;
padding: 10px 25px 40px;
transition: right .45s cubic-bezier(.77,0,.175,1);
z-index: 999;
overflow-y: auto;
}

#mobile-menu.open {
right:0;
}

#mobile-menu ul {
list-style: none;
padding: 0;
margin: 0;
}

#mobile-menu li {
margin-bottom: 10px;
}

#mobile-menu a {
display: block;
color: #454749;
text-decoration: none;
font-size: 1em;
font-weight: 400;
padding: 12px 0;
outline: none;
}

#mobile-menu a.title::after {
border-right: 2px solid #454749;
border-bottom: 2px solid #454749;
}

.mobile-sub {
padding-left: 15px;
}

.mobile-sub a {
font-size: 0.95em;
opacity: 0.9;
}

/* Mobile accordion submenu */
#mobile-menu .mobile-sub {
display: none;
padding-left: 10px;
margin-top: 5px;
}

}


/*********************************************************************/
/*===== Tablet Portrait =====*/
@media screen and (max-width: 1200.99px) 
			  and (min-width: 1101px) {

#desktop-menu {
left: 150px;
}
			  
#desktop-menu .sub-menu {
width: 900px;
}

#desktop-menu .sub-menu .mega-column h3 {
font-size: 1.6em;	
}

.menu-panel-column:first-child {
order: 1;
width: 30%;
}

.menu-panel-column:last-child {
order: 2;
width: 70%;
}

}


/*********************************************************************/
/*===== Tablet Portrait =====*/
@media screen and (max-width: 1400.99px) 
			  and (min-width: 1201px) {

#desktop-menu .sub-menu {
width: 1000px;
}

#desktop-menu .sub-menu .mega-column h3 {
font-size: 1.6em;	
}

.menu-panel-column:first-child {
order: 1;
width: 30%;
}

.menu-panel-column:last-child {
order: 2;
width: 70%;
}

}


/*********************************************************************/
/*===== Tablet Portrait =====*/
@media screen and (max-width: 1600.99px) 
			  and (min-width: 1401px) {

.sub-menu {
width: 1100px;	
}

}


@media screen and (max-height: 700px) {

#desktop-menu .mega-column a {
line-height: 35px;	
}

.menu-details p.small {
line-height: 0.8em;
}
	
}