/*
Theme Name: ILM Academy
Theme URI: https://ilmacademy.org
DESCRIPTION: ILM Academy custom Wordpress theme
Version: 1.0
Author: Tonya Lawrence / tjldesigns.com
Author URI: https://tjldesigns.com
Tags: ILM Academy
*/

/** reset **/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,button{border:0;outline: none;font-size:100%;font:inherit;background: transparent; vertical-align:baseline;margin:0;padding:0}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
body{line-height:1; -webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
ol,ul{list-style:none}
blockquote,q{quotes:none}
blockquote:before,blockquote:after,q:before,q:after{content:''; content:none;}
table{border-collapse:collapse;border-spacing:0}

@font-face {
    font-family: 'Cormorant Garamond';
    src: url('fonts/CormorantGaramond-BoldItalic.woff2') format('woff2');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('fonts/CormorantGaramond-Bold.woff2') format('woff2');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Avenir';
    src: url('fonts/Avenir-Regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Avenir';
    src: url('fonts/Avenir-Heavy.woff2') format('woff2');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

:root {
  --white: #fff;
  --black: #010101;
  --yellow: #f5b634;
  --yellow-dark: #dd9d19;
  --navy: #1c325f;
  --green: #7c9777;
  --grey-light: #8d8e8e;
  --grey-dark: #383838;
  --grey-bkg: #e7e8e9;
  --cormorant-garamond:"Cormorant Garamond", serif;
  --avenir:"Avenir", sans-serif;
}

/**
color:var(--yellow)
font-family:var(--alderwood)
background-color:var(--dark-greenop)
**/

/* general */

@view-transition {navigation: auto;}

#overall-wrapper { overflow:hidden; margin: 0 0 0 70px; width: calc(100% - 70px); position: relative; }
#overall-wrapper.noscroll { /** height: 100vh; **/ overflow: hidden; }
html.noscroll, html.noscroll body { overflow: hidden; position: relative; /** height: 100%; **/ }

html,body { /** overflow-x: hidden; **/   -webkit-tap-highlight-color: rgba(0,0,0,0); }
html { /** overflow-y: scroll; **/  overflow-y: scroll; }

body::-webkit-scrollbar, body *::-webkit-scrollbar { width: 10px; }
body::-webkit-scrollbar-thumb, body *::-webkit-scrollbar-thumb { background-color: var(--yellow); }
body::-webkit-scrollbar-track, body *::-webkit-scrollbar-track { background: var(--navy); }
body *::-webkit-scrollbar { width: 5px; }

/** below copied to wp-admin.css - START **/

body { font: 1.1rem/160% var(--avenir); background: #fff; color: var(--black); }

* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;        text-underline-offset: 3px; }
img, canvas, figure { max-width: 100%; height: auto; }

strong { font-weight: bold; }
em { font-style: italic; }

blockquote { border-right: 1px solid #d7dcd2; padding: 10px 40px 10px 0; text-align: right; margin: 0 0 25px 0;}
blockquote > *:last-child { padding-bottom: 0;}
blockquote strong { color: var(--green);}

.single-post blockquote { border-right: none; border-left: 5px solid var(--green); text-align: left; padding: 20px 0 20px 40px; }
.single-post blockquote p { font-size: 1.7rem; line-height: 140%;}

@media all and (min-width: 1420px) {
    .single-post blockquote { margin-left: -150px; }
}

h1, h2, h3, h4, h5, h6, p { padding: 0 0 25px 0; }
h1, h2, h3, h4, h5, h6, .h1_styler, .h2_styler, .h3_styler {  }
h1, .h1_styler, .page_banner_slide h2 { font-size: 4rem; line-height: 105%; font-weight: bold; } 
h1 em, .h1_styler em, .page_banner_slide h2 em { font-family: var(--cormorant-garamond); font-size: 4.9rem;}
h1 time { color: var(--yellow) !important;}
h2, .h2_styler { font-size: 2.6rem; line-height: 125%; font-weight: bold; } 
h2 em, .h2_styler em { font-family: var(--cormorant-garamond); font-size: 3.25rem; }
h3, .h3_styler { font-size: 1.5rem; line-height: 125%; font-weight: bold;  } 
h3 em, .h3_styler em { font-family: var(--cormorant-garamond); font-size: 1.85rem; }
h4 {  }
h5 {  }
p {  }
a { color: var(--grey); text-decoration: underline; transition: all .3s ease; -o-transition: all .3s ease; -moz-transition: all .3s ease; -webkit-transition: all .3s ease;    -webkit-font-smoothing: antialiased; }
a:hover { text-decoration: none; }
	a[href^="tel:"] { text-decoration: none !important; cursor: default; }

ul, ol { margin: 0 0 0 14px; padding: 0 0 20px 0; }
ul { list-style: disc; margin: 0 0 0 20px; }
ol { list-style: decimal; margin: 0 0 0 18px; }
ul li, ol li { padding: 0 0 10px 0; margin: 0;  padding: 0 0 5px 0; }
ul ul { padding: 10px 0 0 0; }
ul ul li { padding: 0 0 10px 0; }

table { margin: 0 0 15px 0; }
table td, table th { padding: 10px 5px; }

table:not(.tribe-events-calendar-month)  {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 35px 0;
  background-color: #ffffff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  /* border-radius: 8px 8px 0 0; */
  overflow: hidden;
  /* border-top: 4px solid #dcb15c; */ /* Gold Accent */
}

table:not(.tribe-events-calendar-month) thead tr {
  background-color: #23325c; /* Primary Navy */
  color: #ffffff;
  text-align: left;
  font-weight: 600;
  letter-spacing: 0.5px;
}

table:not(.tribe-events-calendar-month) th, table:not(.tribe-events-calendar-month) td {
  padding: 14px 18px;
  vertical-align: top;
}

table:not(.tribe-events-calendar-month) tbody tr {
  border-bottom: 1px solid #e8ecef;
  transition: background-color 0.2s ease;
}

table:not(.tribe-events-calendar-month) tbody tr:nth-of-type(even) {
  background-color: #f8f9fb;
}

table:not(.tribe-events-calendar-month) tbody tr:hover {
  background-color: #eef2f7;
}

hr { border: none; border-top: 1px solid var(--green); margin-bottom: 30px; }

::-moz-selection { background-color: var(--green); }
::selection { background-color: var(--green); }

.clearfix { zoom: 1; }
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
.clearfix:after { clear: both; }

.margin_adjust { display: block; margin: 0 0 -25px 0;}

.large_text {  }
.button_cta, #header_main ul li a { font-weight: bold; display:inline-block; font-size:1rem; line-height:140%; padding:16px 25px; min-width: 117px; text-align:center; text-decoration: none; color:var(--navy); cursor: pointer; background: transparent; border: 2px solid var(--yellow); -webkit-border-radius: 50px; -moz-border-radius: 50px; border-radius: 50px; background: var(--yellow); }
.button_cta:hover, #header_main ul li a:hover { background: var(--yellow);      background: var(--yellow-dark); border-color: var(--yellow-dark); }
.button_cta_filled { background: var(--yellow);}
.button_cta_filled:hover { /* background: var(--navy); color: var(--yellow); border-color: var(--navy); */ background: var(--yellow-dark); border-color: var(--yellow-dark);}
/* #header_main ul li a:not(:hover) { color: var(--white);} */
.button_cta_list { margin:0; padding:15px 0 25px 0; list-style: none; list-style-image: none; display: flex; gap: 10px; flex-wrap: wrap;}
.button_cta_list li { margin: 0; padding:0; }

/** below copied to wp-admin.css - END **/

/** general layout **/

.container { margin: 0 auto; width: 100%; padding: 0 50px; }
.container_capped { max-width:1374px; }
.container_capped_post { max-width: 1100px;}

input, textarea { transition: all .3s ease; -o-transition: all .3s ease; -moz-transition: all .3s ease; -webkit-transition: all .3s ease; }

a.view-article { display: none; }

.clear { clear: both; }
.float_left, .alignleft { float: left; margin: 5px 35px 10px 0; }
.float_right, .alignright { float: right; margin: 5px 0 10px 35px; }
.no_padding { padding: 0; }

.embed-container { position: relative; height: 0; overflow: hidden; padding-bottom: 56.25%; /* 16x9 Aspect Ratio */  max-width: 100%; height: auto; }
.embed-container-4x3 { padding-bottom: 75%; /* 4x3 Aspect Ratio */ }
.embed-container-square { padding-bottom: 100%; }
.embed-container-mobile { padding-bottom: 132%; }
.embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top:0; left: 0; width: 100%; height: 100%; }
    .embed-container-wrapper { margin-top: 20px; margin-bottom: 40px; }

.disable_select { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; }

.pag_nav { display: block; clear: both; text-align: center; }
.pag_nav a { text-decoration: none; }

/** general form styles **/

form { margin: 0; }

input { outline: none !important; }
input, select, textarea { -webkit-border-radius: 0px; -moz-border-radius: 0px; border-radius: 0px; font: inherit; }
input.text, select, textarea,  .sf-field-search input { padding: 10px 15px; margin: 0; border: 1px solid var(--grey-bkg); outline: none; background-color: var(--grey-bkg);  }
select { /** min-height: 43px; padding: 0 10px; **/ }
label {  }
input.text, textarea, select { -webkit-appearance: none; -moz-appearance: none; appearance: none; }
input[type='submit'] { -webkit-appearance: none; -moz-appearance: none; appearance: none; }

::-webkit-input-placeholder { color: #333F48 !important; }
:-moz-placeholder { /* Firefox 18- */ color: #333F48 !important; }
::-moz-placeholder {  /* Firefox 19+ */ color: #333F48 !important; }
:-ms-input-placeholder { color: #333F48 !important; }

/** contact form **/

.form_list { margin: 0 auto; padding: 0 0 25px 0; list-style: none; list-style-image: none; /** max-width: 380px;  **/ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.form_list li { margin: 0; padding: 0; display: block; }
.form_list li label { display: none; }
.form_list li.checkbox label { display: block; }
.form_list li .text, .form_list li textarea, .form_list li select { width: 100%; display: block; }
.form_list li .text.wpcf7-not-valid { border-color: #E30428 !important; }
.form_list li textarea { height: 120px; }
.form_list li.wide { grid-column: 1 / -1; }
.form_list li.form_button { padding: 0; }
.form_list li.form_button input {  }

.form_list li select, .searchandfilter select { -webkit-appearance: none; -moz-appearance: none; appearance: none; display: block; width: 100%; background: url(/wp-content/themes/osbornes/images/arrow-down-select.png) 100% 50% no-repeat #fff; background-size: auto 9px; padding-right: 35px; }
.form_list li select::-ms-expand, .searchandfilter select::-ms-expand { display: none; }

.wpcf7-not-valid-tip { display: block; padding: 5px 0 0 0;  display: none !important; }
.wpcf7-not-valid-tip, .wpcf7-not-valid-tip * {  }
form.invalid .wpcf7-not-valid { /** background: #fbe122;  border: 1px solid #fbe122; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; **/ }

.wpcf7 form .wpcf7-response-output { clear: both; border: none; margin: 0; color: #269FC7; padding: 20px 0 0 0; text-align: left; font-weight: bold; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { color: #E10600; font-weight: bold; }

.wpcf7-list-item { margin:0;}
.wpcf7-radio { display: flex; gap: 20px; flex-wrap: wrap; padding: 15px 0 0 0;}

.form-hidden-fields { display: none !important; }
.ajax-loader { display: none !important; }

/* Slider */
.slick-slider { position: relative; display: block; box-sizing: border-box; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none;
    -ms-touch-action: pan-y; touch-action: pan-y; -webkit-tap-highlight-color: transparent;  padding: 0; margin: 0; }
.slick-list { position: relative; display: block; overflow: hidden; margin: 0; padding: 0; }
.slick-list:focus { outline: none; }
.slick-list.dragging { cursor: pointer; cursor: hand; }
.slick-slider .slick-track, .slick-slider .slick-list { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -o-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
.slick-track { position: relative; top: 0; left: 0; display: block; }
.slick-track:before, .slick-track:after { display: table; content: ''; }
.slick-track:after { clear: both; }
.slick-loading .slick-track { visibility: hidden; }
.slick-slide { display: none; float: left; height: 100%; min-height: 1px;  padding: 0; margin: 0; }
[dir='rtl'] .slick-slide { float: right; }
.slick-slide img { display: block; }
.slick-slide.slick-loading img { display: none; }
.slick-slide.dragging img { pointer-events: none; }
.slick-initialized .slick-slide { display: block; }
.slick-loading .slick-slide { visibility: hidden; }
.slick-vertical .slick-slide { display: block; height: auto; border: 1px solid transparent; }
.slick-arrow.slick-hidden { display: none; }

.slick-arrow { z-index: 10; z-index: 3; background: url(/wp-content/themes/exagen/images/scroller-left.svg) center no-repeat; background-size: 50px 50px; border: none; outline: none; text-indent: -9999px; width: 50px; height: 50px; cursor: pointer;  transition: all .3s ease; -o-transition: all .3s ease; -moz-transition: all .3s ease; -webkit-transition: all .3s ease; }
.slick-arrow:hover {  }
.slick-prev.slick-arrow {  }
.slick-next.slick-arrow { background-image: url(/wp-content/themes/exagen/images/scroller-right.svg); }
.slick-prev.slick-arrow.slick-disabled { background-image: url(/wp-content/themes/exagen/images/scroller-left-inactive.svg); }
.slick-next.slick-arrow.slick-disabled { background-image: url(/wp-content/themes/exagen/images/scroller-right-inactive.svg); }

.slick-dots { margin: 0; padding: 35px 0 0 0; list-style: none; list-style-image: none; display:flex; align-items:center; justify-content:center; gap: 0 8px; position: absolute; bottom: 25px; right: 50px; }
.slick-dots li { margin: 0; padding: 0 !important; width: auto !important; float: none !important; line-height: 12px; }
.slick-dots li button { cursor: pointer; background: rgba(255,255,255,0); text-indent: -9999px; outline: none; border: 1px solid var(--white); padding: 0; width: 12px; height: 12px; line-height: 12px; -webkit-border-radius: 12px; -moz-border-radius: 12px; border-radius: 12px; transition: all .3s ease; -o-transition: all .3s ease; -moz-transition: all .3s ease; -webkit-transition: all .3s ease; }
.slick-dots li button:hover, .slick-dots li.slick-active button { background: var(--white); }


.wobble { -webkit-animation: wobble 2.5s ease-out; -webkit-animation-iteration-count: infinite; }
@-webkit-keyframes wobble {
    0% {-webkit-transform: translate3d(0, 0, 0); }
    50% {-webkit-transform: translate3d(0, -10px, 0); }
    100% {-webkit-transform: translate3d(0, 0, 0); }    
}

    .hamburger { display: flex; justify-content: center; cursor: pointer; transition-property: opacity, filter; transition-duration: 0.15s; transition-timing-function: linear; font: inherit; color: inherit; text-transform: none; background-color: transparent; border: 0; margin: 0; overflow: visible; }
    .hamburger:hover { /** opacity: 0.7; **/ }

    .hamburger-box { width: 30px; height: 24px; display: inline-block; position: relative; }

    .hamburger-inner { display: block; top: 50%; margin-top: -2px; }
    .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { width: 30px; height: 4px; background-color: #afb1b4; border-radius: 4px; position: absolute; transition-property: transform; transition-duration: 0.15s; transition-timing-function: ease; }
    .hamburger-inner::before, .hamburger-inner::after { content: ""; display: block; }
    .hamburger-inner::before { top: -10px; }
    .hamburger-inner::after { bottom: -10px; }

    .hamburger--spin .hamburger-inner { transition-duration: 0.22s; transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    .hamburger--spin .hamburger-inner::before { transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; }
    .hamburger--spin .hamburger-inner::after { transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

    .hamburger--spin.is-active .hamburger-inner { transform: rotate(225deg); transition-delay: 0.12s; transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    .hamburger--spin.is-active .hamburger-inner::before { top: 0; opacity: 0; transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; }
    .hamburger--spin.is-active .hamburger-inner::after { bottom: 0; transform: rotate(-90deg); transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); }


/** header **/

#header_main { padding: 25px 0; position: absolute; top:0; left: 0; right: 0; z-index: 99;}
#header_main .container { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 25px; align-items: flex-end;}
#logo_ilm { width: 350px; display: block; line-height: 7px;}
#logo_ilm img { width: 100%; height: auto;}
#header_main ul { margin:0;padding:0; list-style: none; list-style-image: none; display: flex; align-items: center; flex-wrap: wrap; gap: 10px;}
#header_main ul li { margin: 0; padding:0;}

#menu_sidebar { position: fixed; z-index: 200; top:0; left: 0; bottom:0; width: 70px;background: var(--white); padding: 25px 10px; display: flex; flex-direction: column; justify-content: space-between; -webkit-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.12); -moz-box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.12); box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.12);}
#menu_sidebar_socials { margin:0; padding:0; list-style: none; list-style-image: none; display: flex; flex-direction: column; align-items: center; gap: 20px; }
#menu_sidebar_socials li { margin: 0; padding:0;}
#menu_sidebar_socials li a { width: 30px; height: 30px; display: block; text-indent: -9999px;}
#menu_sidebar_socials li#menu_sidebar_socials_instagram a { background: url(/wp-content/themes/ilm-academy/images/icon-instagram.png) center no-repeat;  background-size: 30px 30px; }
#menu_sidebar_socials li#menu_sidebar_socials_tel a { background: url(/wp-content/themes/ilm-academy/images/icon-call.png) center no-repeat;  background-size: 30px 30px; }

/* ============================================================
   SLIDE-OUT NAVIGATION  (two independently-scrolling panels)
   Left navy panel  = top-level items
   Right white panel = children of the active item
   Desktop reveal (hover / click) is set by SUBMENU_TRIGGER in main.js.
   Mobile: drill down into children; "Back" returns.
   ============================================================ */

/* keep the white icon rail (burger + close X + socials) on top */
#menu_sidebar { z-index: 210; }
#menu_sidebar .menu_toggle { position: relative; z-index: 2; }

/* lock page scroll while the menu is open (x + y: kills stray h-scroll) */
body.open-menu { overflow: hidden; }

/* dim overlay behind the panels (JS injects #menu_slideout_overlay) */
#menu_slideout_overlay {
    position: fixed; inset: 0; z-index: 190;
    background: rgba(15, 25, 55, 0.45);
    opacity: 0; visibility: hidden;
    transition: opacity .4s ease, visibility 0s linear .4s;
    cursor: pointer;
}
body.open-menu #menu_slideout_overlay {
    opacity: 1; visibility: visible;
    transition: opacity .4s ease;
}

/* ---- sliding container: holds the two panels side by side ---- */
#menu_slideout {
    position: fixed; top: 0; bottom: 0; left: 0;
    z-index: 200;
    display: flex; align-items: stretch;
    max-width: 100%;
    visibility: hidden; pointer-events: none;
    transform: translateX(-100%);
    transition: transform .5s cubic-bezier(.76,0,.24,1), visibility 0s linear .5s;
    overflow: hidden;   /* clips the off-screen submenu (no page h-scroll) */
}
body.open-menu #menu_slideout {
    visibility: visible; pointer-events: auto;
    transform: translateX(0);
    transition: transform .5s cubic-bezier(.76,0,.24,1);
}

/* ---- left navy panel (scrolls independently) ---- */
.menu_primary {
    width: 400px; max-width: 88vw;
    background: var(--navy);
    padding: 74px 45px 40px 115px;   /* 70px rail + 45px inset (matches the 45px inset of the 2nd-level panel) */
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.menu_slideout_title {
    margin: 0 40px 12px 0; padding: 0;
    font-family: var(--avenir);
    font-size: 1.55rem; font-weight: 700; line-height: 1.05;
    color: var(--white);
}

/* top-level list */
.menu_primary > ul {
    margin: 0; padding: 0; list-style: none; list-style-image: none;
}
.menu_primary > ul > li { margin: 0; padding: 0; }
.menu_primary > ul > li > a {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px;
    padding: 18px 0;
    font-family: var(--avenir); font-size: 1.15rem; font-weight: 500;
    line-height: 1.15; text-decoration: none; color: var(--white);
    transition: background .2s ease, color .2s ease, padding .2s ease;
}
.menu_primary > ul > li + li > a { border-top: 1px solid rgba(255,255,255,0.14); }

/* chevron on parents (injected) */
#menu_slideout .submenu-arrow {
    flex: 0 0 auto; width: 9px; height: 9px;
    border-right: 2px solid currentColor; border-top: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .8;
}

/* highlighted / active parent */
.menu_primary > ul > li.is-hover > a,
.menu_primary > ul > li > a:hover,
.menu_primary > ul > li > a:focus {
    background: var(--yellow); color: var(--navy);
    padding-left: 22px; padding-right: 22px; border-top-color: transparent;
}
.menu_primary > ul > li.is-hover + li > a { border-top-color: transparent; }

/* ---- right white panel (opens when a parent is active) ---- */
.menu_secondary {
    width: 0;
    background: var(--white);
    overflow: hidden;
    transition: width .35s cubic-bezier(.76,0,.24,1);
    box-shadow: 6px 0 30px rgba(0,0,0,.12);
}
#menu_slideout.has-sub .menu_secondary { width: 420px; max-width: 92vw; }

.menu_secondary > .sub-menu {
    display: none;
    width: 420px; max-width: 92vw; height: 100%;
    margin: 0; padding: 74px 45px 40px 45px;
    box-sizing: border-box;
    list-style: none; list-style-image: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.menu_secondary > .sub-menu.is-active { display: block; }

/* slim, unobtrusive scrollbars inside the panels */
.menu_primary::-webkit-scrollbar,
.menu_secondary > .sub-menu::-webkit-scrollbar { width: 6px; }
.menu_primary::-webkit-scrollbar-track,
.menu_secondary > .sub-menu::-webkit-scrollbar-track { background: transparent; }
.menu_primary::-webkit-scrollbar-thumb { background: rgba(255,255,255,.28); border-radius: 6px; }
.menu_secondary > .sub-menu::-webkit-scrollbar-thumb { background: rgba(0,0,0,.16); border-radius: 6px; }
.menu_primary { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.28) transparent; }
.menu_secondary > .sub-menu { scrollbar-width: thin; scrollbar-color: rgba(0,0,0,.16) transparent; }

/* submenu heading (parent name) — styled the same as every other entry so
   it's clearly a clickable link; just no top divider as it's the first item */
.menu_secondary .sub-menu .sub-menu-head { margin: 0; }
.menu_secondary .sub-menu .sub-menu-head .sub-menu-title { border-top: 0; }
.sub-menu .submenu-back {
    display: none; align-items: center; gap: 8px;
    margin: 0 0 18px 0; padding: 0;
    background: none; border: 0; cursor: pointer;
    font-family: var(--avenir); font-size: .95rem; font-weight: 600;
    color: var(--grey-light); text-transform: uppercase; letter-spacing: .04em;
}
.sub-menu .submenu-back::before {
    content: ""; width: 8px; height: 8px;
    border-left: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}

.menu_secondary .sub-menu li { margin: 0; padding: 0; }
.menu_secondary .sub-menu li a {
    display: block; padding: 18px 0;
    font-family: var(--avenir); font-size: 1.1rem; font-weight: 500;
    line-height: 1.2; text-decoration: none; color: var(--grey-dark);
    border-top: 1px solid #e4e5e7;
    transition: color .2s ease, padding .2s ease;
}
/* first child sits below the heading with a normal weight + divider */
.menu_secondary .sub-menu .sub-menu-head + li a { border-top: 1px solid #e4e5e7; font-weight: 500; }
.menu_secondary .sub-menu li a:hover,
.menu_secondary .sub-menu li a:focus {
    color: var(--navy); padding-left: 8px;
}

/* ============================================================
   MOBILE  —  full-width drill-down
   ============================================================ */
@media all and (max-width: 850px) {

    #menu_slideout { width: 100%; }

    .menu_primary {
        width: 100%; max-width: 100%;
        padding: 64px 30px 40px 90px;
    }
    .menu_slideout_title { margin-right: 0; }

    /* children slide in over the main list */
    .menu_secondary {
        position: fixed; top: 0; bottom: 0; left: 0;
        width: 100%; max-width: 100%;
        box-shadow: none;
        transform: translateX(100%);
        transition: transform .4s cubic-bezier(.76,0,.24,1);
    }
    #menu_slideout.has-sub .menu_secondary { width: 100%; max-width: 100%; transform: translateX(0); }

    .menu_secondary > .sub-menu {
        width: 100%; max-width: 100%;
        padding: 64px 30px 40px 90px;
    }
    .sub-menu .submenu-back { display: flex; }
    .menu_primary > ul > li > a:hover,
    .menu_primary > ul > li.is-hover > a { background: none; color: var(--white); padding-left: 0; }
}

@media all and (max-width: 670px) {
    .menu_primary { padding-left: 70px; }
    .menu_secondary > .sub-menu { padding-left: 70px; }
}

/** page banner **/

.page_banner_slide { position: relative; padding: 125px 0 0 0; padding-top: 155px; min-height: 100svh; background-position: center; background-repeat: no-repeat; background-size: cover;  display: flex; align-items: flex-end;}
.page_banner_slide * { color: var(--white);}
.page_banner_slide p { font-size: 1.4rem; line-height: 140%;}
.page_banner_slide .container > div { max-width: 800px; padding: 0 0 50px 0; position: relative; z-index: 1;}
.single-post .page_banner_slide_simple .container > div { max-width: 1200px; }
.page_banner_slide_simple { background-color: var(--green); min-height: 50svh;}

.page_banner_slide:not(.page_banner_slide_simple)::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* Prevents the overlay from blocking clicks to links/buttons */
  background-image: 
    linear-gradient(to bottom, rgba(35,31,32,0.7) 0%, transparent 25%),
    linear-gradient(to top, rgba(35,31,32,0.7) 0%, transparent 40%);
}

/** builder **/

.builder { padding: 80px 0;}
.builder_padding_no { padding:0 !important;}
.builder_padding_no-base { padding-bottom: 0 !important;}
.builder_padding_no-top { padding-top: 0 !important;}

.builder_cols .container { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 50px 0; }
.builder_align_middle { align-items: center;}
.builder_align_bottom { align-items: flex-end;}

.builder_layout_50-50 .builder_col { width: calc(50% - 40px); }
.builder_layout_30-70 .builder_col:nth-child(1) { width: calc(30% - 40px); }
.builder_layout_30-70 .builder_col:nth-child(2) { width: calc(70% - 40px); }
.builder_layout_70-30 .builder_col:nth-child(1) { width: calc(70% - 40px); }
.builder_layout_70-30 .builder_col:nth-child(2) { width: calc(30% - 40px); }

.builder_cols { position: relative;}
.builder_cols > hr { position: absolute; bottom: 0; left: 0;right: 0; margin: 0 auto; width: 100%; max-width: 1274px; }

/* .builder_border.builder_cols .container::after { content: ''; width: 100%; border-bottom: 1px solid var(--green); margin-bottom: -40px;} */

.builder_col_space-around { display: flex; flex-direction: column; justify-content: space-around;}
.builder_col_space-between { display: flex; flex-direction: column; justify-content: space-between;}

.builder_basic_cap .builder_basic_info { max-width: 700px; }

.builder_base_border { border-bottom: 1px solid var(--grey-light); padding-bottom: 45px; margin-bottom: 45px;}

.builder_banner { min-height: 90svh; background-repeat: no-repeat; background-position: center; background-size: cover; }
.builder_banner_info { max-width: 500px;}
.builder_banner .button_cta_list { padding-top: 50px;}

.builder_boxes_list, .news_grid, .builder_gallery_list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin: 0; padding:0; list-style: none; list-style-image: none;}

@media all and (min-width: 1250px) {
    .builder_team .builder_boxes_list, .builder_gallery_list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.builder_boxes_list > li, .news_grid li, .builder_gallery_list li {margin:0; padding:0; min-width: 0;}
.builder_boxes_list > li article { padding: 30px; display: flex; flex-direction: column; justify-content: space-between; height: 100%; min-height: 260px; }
.builder_boxes_list > li:not(.builder_boxes_testimonials) article * { color: var(--white);}
.builder_boxes_list > li article h3 { max-width: 260px;}

    .builder_team .builder_boxes_list > li article h3 { font-size: 1.25rem;}
    .builder_team .builder_boxes_list > li article h3 em { display: block; color: var(--yellow); padding: 0 0 9px 0; }

.builder_boxes_list > li article .builder_boxes_list_link { padding:0; text-align: right; }
.builder_boxes_list > li article .builder_boxes_list_link a { display: flex; align-items: center; justify-content: flex-end; gap: 10px; text-decoration: none; }
.builder_boxes_list > li article .builder_boxes_list_link a img { height: 24px; width: 14px; }
.builder_boxes_list > li article .builder_boxes_list_link a:hover { color: var(--yellow); text-decoration: underline;}
.builder_boxes_list .builder_boxes_list_img { margin: -30px -30px 0 -30px; }
.builder_boxes_list .builder_boxes_list_img img { width: 100%; height: auto;}

.builder_boxes_list > li.builder_boxes_testimonials { grid-column: span 2; }
.builder_boxes_list > li.builder_boxes_testimonials article { border: 1px solid var(--navy); }
.builder_boxes_testimonials ul { margin: 0; padding:0; list-style: none; list-style-image: none;}
.builder_boxes_testimonials ul li { margin:0; padding:0;}
.builder_boxes_testimonials ul li blockquote { position: relative; border: none; padding: 0; text-align: left;}
.builder_boxes_testimonials ul li blockquote cite { display: flex; gap: 25px; align-items: center; justify-content: space-between; flex-wrap: wrap; font-size: 1.6rem; font-weight: bold; color: var(--yellow); padding: 0 0 30px 0;}
.builder_boxes_testimonials ul li blockquote cite img { width: 65px; height: 44px;}
.builder_boxes_testimonials ul li blockquote p { padding:0 0 30px 0; font-size: 2.4rem; line-height: 105%; font-weight: bold; }
.builder_boxes_testimonials .slick-dots { bottom:0; right:0;}
.builder_boxes_testimonials .slick-dots li button { border-color: var(--navy);}
.builder_boxes_testimonials .slick-dots li button:hover, .builder_boxes_testimonials .slick-dots li.slick-active button { background: var(--navy);}

.bkg_grey { background: var(--grey-dark); }
.bkg_grey-light { background: var(--grey-light); }
.bkg_navy { background: var(--navy); }
.bkg_green { background: var(--green); }

.builder_video a { display: block; line-height: 7px; position: relative;}
.builder_video img { width: 100%; height: auto;}
.builder_video a::after { content: ''; background: url(/wp-content/themes/ilm-academy/images/arrow-yellow-large.png) center no-repeat; background-size: 70px auto;
  position: absolute;
  inset: 0; /* shorthand for top: 0, right: 0, bottom: 0, left: 0 */
  background-color: rgba(0, 0, 0, 0.4); /* adjust color & opacity here */
  pointer-events: none; /* lets clicks pass directly through to the link */
  transition: background-color 0.3s ease; /* optional smooth hover effect */ }
  .builder_video span { position: absolute; inset: 50px; color: var(--white); z-index: 1; font-weight: bold; font-size: 2.5rem; line-height: 120%; }

.builder_news { background: var(--grey-bkg); }
.builder_news_heading { display: flex; justify-content: space-between; align-items: center; gap: 25px; flex-wrap: wrap; padding: 0 0 50px 0;}
.builder_news_heading h2 { padding:0; }

.news_grid { }
.news_grid_2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 60px; }
.post-card-image { padding: 0 0 25px 0;}
.post-card-image img { width: 100%; height: auto;}
.news_grid_2 h2.h3_styler, .news_grid_2 h3 { font-size: 1.8rem; }
.post-card-content h2, .post-card-content h3 { padding: 0 0 20px 0; max-width: 500px;}
.post-card-content a { text-decoration: none;}
.post-card-content time { display: block; color: var(--green);}

.wp-pagenavi { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; padding: 50px 0 0 0; gap: 6px;}
.wp-pagenavi .page, .wp-pagenavi .current { font-size: 1rem; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; background: var(--green); border-radius: 30px; text-decoration: none; color: var(--white); }
.wp-pagenavi .current { background: var(--yellow);}
.previouspostslink { padding-right: 10px;}
.nextpostslink { padding-left: 10px;}

.post_time { display: block; padding: 0 0 25px 0;}

.post_banner { line-height: 7px; margin-bottom: 30px;}
.post_banner img { width: 100%; height: auto; /* max-height: 500px; */ object-fit: cover;}

.builder_gallery_list li a { display: block;}
.builder_gallery_list li a img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }

/** footer **/

#site_footer { background: var(--navy); padding: 95px 0 70px; }
#site_footer * { color: var(--white); }

/* two columns: left = contact + newsletter, right = nav + logo */
#site_footer .footer_grid {
    display: flex; justify-content: space-between; align-items: stretch;
    gap: 50px 70px; min-height: 360px; flex-wrap: wrap;
}
#site_footer .footer_col {
    display: flex; flex-direction: column; justify-content: space-between; gap: 45px;
}
#site_footer .footer_col_left { flex: 1 1 420px; max-width: 640px; }
#site_footer .footer_col_right { flex: 0 0 auto; }

/* contact block (ACF footer_left) */
#site_footer .footer_contact p { font-size: 1rem; max-width: 240px;}
#site_footer .footer_contact p:last-child { padding-bottom: 0; }
#site_footer .footer_contact a { text-decoration: none; }
#site_footer .footer_contact a:hover { text-decoration: underline; }

/* newsletter form */
#site_footer .footer_newsletter_form { display: flex; align-items: center; gap: 16px; max-width: 620px; }
#site_footer .footer_newsletter_form input[type="email"] {
    flex: 1 1 auto; min-width: 0; margin: 0; padding: 17px 30px;
    border: 0; border-radius: 50px;
    background: var(--white); color: var(--navy);
    font-family: var(--avenir); font-size: 1rem; line-height: 1.2;
}
#site_footer .footer_newsletter_form input[type="email"]::placeholder { color: var(--navy); opacity: .75; }
#site_footer .footer_newsletter_form button {
    flex: 0 0 auto; margin: 0; padding: 17px 38px;
    border: 0; border-radius: 50px; cursor: pointer;
    background: var(--yellow); color: var(--navy);
    font-family: var(--avenir); font-weight: bold; font-size: 1rem; line-height: 1.2;
    transition: background .2s ease, color .2s ease;
}
#site_footer .footer_newsletter_form button:hover { background: var(--white); color: var(--navy); }

/* footer nav — two columns of links */
#site_footer .footer_nav ul {
    margin: 0; padding: 0; list-style: none; list-style-image: none;
    width: 460px; max-width: 100%;
    columns: 2; column-gap: 50px;
}
#site_footer .footer_nav ul li { margin: 0; padding: 0; break-inside: avoid; font-size: 1rem; }
#site_footer .footer_nav ul li a { text-decoration: none; display: inline-block; }
#site_footer .footer_nav ul li a:hover { color: var(--yellow); }

/* footer logo */
#site_footer #logo_ilm_footer { display: block; align-self: flex-end; width: 300px; max-width: 100%; line-height: 0; }
#site_footer #logo_ilm_footer img { width: 100%; height: auto; }

/* footer responsive */
@media all and (max-width: 900px) {
    #site_footer { padding: 70px 0 55px; }
    #site_footer .footer_grid { flex-direction: column; align-items: stretch; min-height: 0; gap: 45px; }
    #site_footer .footer_col { justify-content: flex-start; gap: 30px; }
    #site_footer .footer_col_left, #site_footer .footer_col_right { flex: 1 1 auto; max-width: 100%; }
    #site_footer #logo_ilm_footer { align-self: flex-start; }
}
@media all and (max-width: 500px) {
    #site_footer .footer_newsletter_form { flex-direction: column; align-items: stretch; }
    #site_footer .footer_newsletter_form button { align-self: flex-start; }
    #site_footer .footer_nav ul { columns: 1; width: 100%; }
    #site_footer #logo_ilm_footer { width: 240px; }
}

@media all and (min-width: 0px) and (max-width : 1800px) {



}

@media all and (min-width: 0px) and (max-width : 1600px) {

}

@media all and (min-width: 0px) and (max-width : 1530px) {

}

@media all and (min-width: 0px) and (max-width : 1500px) {

}

@media all and (min-width: 0px) and (max-width : 1420px) {

}

@media all and (min-width: 0px) and (max-width : 1400px) {


}

@media all and (min-width: 0px) and (max-width : 1380px) {


}

@media all and (min-width: 0px) and (max-width : 1320px) {


}

@media all and (min-width: 0px) and (max-width : 1200px) {



}

@media all and (min-width: 0px) and (max-width : 1180px) {




}

@media all and (min-width: 0px) and (max-width : 1080px) {




}

@media all and (min-width: 0px) and (max-width : 1024px) {

    .builder_boxes_list, .news_grid, .builder_gallery_list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
    .builder_boxes_list > li.builder_boxes_testimonials { grid-column: auto; }
    .builder_boxes_testimonials ul li blockquote p { font-size: 2rem;}

    .builder_video span { inset: 30px; font-size: 2rem;}
    .builder_video a::after { background-size: 40px auto;}

    .form_list { gap: 30px; }

}

@media all and (min-width: 0px) and (max-width : 980px) {



}

@media all and (min-width: 0px) and (max-width : 950px) {

    #header_main ul { display: none;}

}

@media all and (min-width: 0px) and (max-width : 900px) {

    .builder_cols .builder_col { width: 100% !important; }
}

@media all and (min-width: 0px) and (max-width : 850px) {



}

@media all and (min-width: 0px) and (max-width : 800px) {


}

@media all and (min-width: 0px) and (max-width : 780px) {

}

@media all and (min-width: 0px) and (max-width : 760px) {



}

@media all and (min-width: 0px) and (max-width : 750px) {



}

/** mobile **/

@media all and (min-width: 0px) and (max-width : 670px) {

    body {  }

    h1, .h1_styler, .page_banner_slide h2 { font-size: 3rem;}
    h1 em, .h1_styler em, .page_banner_slide h2 em { font-size: 3.9rem;}
    h2, .h2_styler { font-size: 1.8rem; }
    h2 em, .h2_styler em { font-size: 2.25rem; }
    h3, .h3_styler {  }

    blockquote { padding: 0 30px 0 0;}

    .container { padding: 0 25px; }
    .slick-dots { right: 25px;}

    .builder { padding: 40px 0;}

    .builder_cols .container { gap: 30px 0;}

    #menu_sidebar { width: 50px;}
    #overall-wrapper { margin: 0 0 0 50px; width: calc(100% - 50px); }

    .builder_boxes_list, .news_grid, .builder_gallery_list { grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 25px; }

    .builder_boxes_list > li article { padding: 25px;}
    .builder_video span { inset: 25px; font-size: 1.5rem;}
    .builder_video a::after { background-size: 20px auto; background-position: calc(100% - 25px) calc(100% - 25px);}

    .form_list { grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 25px; }

    .builder_boxes_list .builder_boxes_list_img { margin: -25px -25px 0 -25px;}

    #logo_ilm { width: 250px;}

}

@media all and (min-width: 0px) and (max-width : 650px) {



}

@media all and (min-width: 0px) and (max-width : 620px) {



}

@media all and (min-width: 0px) and (max-width : 580px) {



}

@media all and (min-width: 0px) and (max-width : 540px) {



}

@media all and (min-width: 0px) and (max-width : 500px) {



}

@media all and (min-width: 0px) and (max-width : 470px) {



}

@media all and (min-width: 0px) and (max-width : 450px) {



}

@media all and (min-width: 0px) and (max-width : 400px) {


}

@media all and (min-width: 0px) and (max-width : 370px) {


}

@media all and (min-width: 0px) and (max-width : 360px) {

}

.grecaptcha-badge { visibility: hidden; }