/* Shared, limited presentation rules for the public pages. */
[hidden]{display:none!important}
.mobile-book.is-hidden,.sticky-enroll.is-hidden{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
html{scroll-padding-top:90px}
#location,#gallery,#enroll,#register{scroll-margin-top:90px}
header .brand img{width:48px;height:48px;object-fit:contain;border-radius:8px;background:white}
.field label{font-size:.9rem}
.field input,.field select{font-size:1rem!important;min-height:48px}
.ref-toggle{display:flex;align-items:center;gap:12px;width:100%;margin-top:20px;padding:14px 16px;border:1px solid #e5c988;border-radius:13px;background:#fffaf0;color:#0b2745;text-align:right;cursor:pointer;transition:.22s ease}
.ref-toggle:hover,.ref-toggle.open{border-color:#d7a62e;background:#fff5dc}.ref-icon{font-size:1.35rem;line-height:1;flex:none}.ref-txt{flex:1}.ref-txt b{display:block;font-size:.88rem;line-height:1.5}.ref-txt small{display:block;color:#536579;font-size:.74rem;line-height:1.6;margin-top:2px}.ref-arr{color:#b47c00;font-size:1.1rem;line-height:1;transition:transform .22s ease}.ref-toggle.open .ref-arr{transform:rotate(90deg)}
.ref-fields{padding-top:16px}
.privacy-note,.form-head p,.form-head small,.program-assurance{font-size:.82rem!important;line-height:1.8}
.hero-copy>.muted,.hero p,.trainer-copy p{color:#536579}
.enroll-list li:before{content:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #2579b9;outline-offset:3px}
@media(max-width:760px){
 .hero-copy>p,.hero p,.enroll-copy p,.trainer-copy p,.meb-location-copy>p{font-size:.9rem!important;line-height:1.9}
 .brand small{font-size:.55rem}
 .mobile-book,.sticky-enroll{min-height:48px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}}

.selected-course:before{content:none!important}

/* One public-page system: Cairo, navy/red, consistent gutters and spacing. */
.public-site{overflow-x:clip}
.public-page{
 --site-navy:#0b2745;--site-red:#ef3038;--site-muted:#536579;--site-line:#dbe3eb;
 --site-width:1200px;--site-gutter:24px;--site-section:80px;--site-radius:20px;
 --site-heading:clamp(1.75rem,2.8vw,2.5rem);
 font-family:Cairo,sans-serif;font-size:16px;line-height:1.8;color:var(--site-navy);overflow-x:clip;
}
.public-page :is(button,input,select,textarea){font-family:inherit}
.public-page :is(.container,.wrap){width:min(var(--site-width),calc(100% - var(--site-gutter)*2));margin-inline:auto}
.public-page :is(h1,h2,h3){letter-spacing:normal;word-spacing:normal;text-wrap:pretty}
.public-page :is(.section-title,.side h2,.section h2,.enroll-copy h2,.meb-accreditations h2,.meb-location h2){font-size:var(--site-heading)!important;line-height:1.4;letter-spacing:normal}
.public-page :is(.hero h1,.page-hero h1){font-size:clamp(2.25rem,4.5vw,3.75rem);line-height:1.3;letter-spacing:normal}
.public-page .hero h1 span{letter-spacing:normal}
.public-page :is(.muted,.hero p,.page-hero p,.side p,.audience p,.course-guidance p,.meb-accreditations__intro,.meb-location-copy>p){font-size:1rem;line-height:1.9}
.public-page :is(.programs,.gallery,.team,.voices,.enroll,.experience,.section:not(.enroll),.course-guidance){padding-block:var(--site-section)}
.public-page :is(.program-top,.gallery-head,.meb-accreditations__head){margin-bottom:32px;gap:24px}
.public-page :is(.hero-grid,.team-grid,.voices-grid,.audience-grid){gap:48px}
.public-page :is(.meb-accreditations,.meb-location){padding:var(--site-section) var(--site-gutter)}
.public-page :is(.meb-accreditations__wrap,.meb-location-wrap){width:min(var(--site-width),100%)}
.public-page :is(.enroll-shell,.formbox,.card,.side-card,.quote-main,.trainer-card,.meb-location-wrap){border-radius:var(--site-radius)}
.public-page :is(.enroll-form,.formbox,.card){padding:32px!important}
.public-page :is(.form-head h2,.form-head h3,.card h2){font-size:1.5rem!important;line-height:1.5}
.public-page .fields{gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}
.public-page .field{min-width:0}
.public-page .field :is(input,select){width:100%;min-width:0}
.public-page .selected-course{padding:14px 16px}
.public-page .field label{font-size:.875rem;line-height:1.7;font-weight:700}
.public-page .field :is(input,select){height:52px;border-radius:12px;padding-inline:14px;font-size:1rem!important}
.public-page :is(.btn,.submit,.submit-btn,.success-back){border-radius:12px;min-height:48px;font-size:.875rem;font-weight:800;line-height:1.5}
.public-page :is(.btn-red,.submit,.submit-btn,.success-back){background:var(--site-red)}
.public-page :is(.tag,.eyebrow,.meb-location-label,.meb-accreditations__eyebrow){font-size:.75rem;line-height:1.6}
.public-page :is(.program-assurance,.program-premium-note,.sub,.choice-note,.side-note,.step span){font-size:.875rem;line-height:1.8}
.public-page :is(.day ul,.outcome,.faqitem p){font-size:.9375rem;line-height:1.9}

/* The same markup and geometry on home, program, certificate and success pages. */
.public-page .site-header{height:80px;display:flex;position:sticky;top:0;z-index:220;flex:none;background:rgba(255,255,255,.98);border-bottom:1px solid var(--site-line);box-shadow:0 4px 20px rgba(11,39,69,.04);backdrop-filter:blur(12px)}
.site-header__inner{width:min(var(--site-width),calc(100% - var(--site-gutter)*2));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-header .site-brand{display:flex;align-items:center;gap:10px;min-width:0;flex-shrink:0;text-decoration:none}
.site-header .site-brand img{display:block;width:48px;height:48px;flex:none;object-fit:contain;border-radius:8px;background:#fff}
.site-header .site-brand strong{display:block;color:var(--site-navy);font-size:.9375rem;font-weight:800;line-height:1.5;white-space:nowrap}
.site-header .site-brand small{display:block;color:var(--site-red);font-size:.5rem;font-weight:700;letter-spacing:1px;line-height:1.6;margin-top:3px}
.site-nav{display:flex;align-items:center;justify-content:center;gap:24px}
.site-nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;color:var(--site-muted);font-size:.875rem;font-weight:700;border-bottom:2px solid transparent;white-space:nowrap}
.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--site-navy);border-color:var(--site-red)}
.site-header__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.site-header__cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border-radius:12px;background:var(--site-red);color:#fff;font-size:.8125rem;font-weight:800;line-height:1.5;white-space:nowrap;text-decoration:none}
.site-header__cta:hover{background:#d9222a}
.site-menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--site-line);border-radius:12px;background:#fff;color:var(--site-navy);cursor:pointer}
.site-header.menu-open .site-menu-toggle{background:var(--site-navy);border-color:var(--site-navy);color:#fff}

/* Page-specific layout only; type, spacing and controls stay shared. */
.page-home .hero-copy{padding-block:64px}
/* Keep positioned decorations inside the clipped course page, not the viewport. */
.page-program{position:relative}
.page-program .hero{padding-block:64px;overflow:hidden}
.page-program .hero-grid{min-height:0}
.page-program .enroll-grid{max-width:var(--site-width);gap:24px}
.page-program .grid{gap:32px}
.page-program .enroll-copy{padding:32px!important;border-radius:var(--site-radius)!important}
.page-program .enroll-copy>p{font-size:1rem!important}
.page-program .side{padding:32px;top:104px;border-radius:var(--site-radius)}
.page-certificate .page-hero{padding-block:48px;background:linear-gradient(135deg,#0b2745,#183658)}
.page-certificate .page-hero p{max-width:680px}
.page-certificate .content{padding-block:40px var(--site-section)}
.page-certificate .layout{grid-template-columns:minmax(0,1fr) 320px;gap:24px}
.page-certificate .side-card{padding:24px}
.page-certificate .side-card h3{font-size:1.125rem}
.page-certificate .accreditation b{font-size:.875rem}
.page-certificate .accreditation span{font-size:.75rem}
.page-success{display:flex;flex-direction:column;align-items:stretch;min-height:100vh;padding-bottom:0;background:#f5f7fa}
.page-success .box{width:min(680px,calc(100% - var(--site-gutter)*2));margin:64px auto;padding:40px;border:1px solid var(--site-line);border-top:4px solid var(--site-red);border-radius:var(--site-radius);box-shadow:0 18px 48px rgba(11,39,69,.08)}
.page-success h1{font-size:var(--site-heading);line-height:1.4}
.page-success .logo{width:64px;height:64px;object-fit:contain}
.page-success .check{width:56px;height:56px;font-size:1.6rem;background:var(--site-red)}
.page-success .step{font-size:.875rem}
.page-success .btn{background:var(--site-navy);display:inline-flex;align-items:center;justify-content:center}

.public-page footer{padding:48px 0 24px;background:#091a2e}
.public-page :is(.footer-grid,.footergrid){gap:32px}
.public-page footer .brand{display:flex;align-items:center;gap:10px}
.public-page footer .brand img{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:8px}
.public-page footer .brand :is(strong,b){font-size:.9375rem;line-height:1.5}
.public-page footer .brand small{display:block;font-size:.5rem;letter-spacing:1px}
.public-page :is(.footer-brand p,.footerbrand p,.footer-col a,.footercol a){font-size:.875rem;line-height:1.9;color:#b8c7d7}
.public-page :is(.copyright,.copy){margin-top:32px;padding-top:20px;font-size:.75rem;color:#b8c7d7;gap:16px}

@media(max-width:1000px){
 .site-menu-toggle{display:inline-flex}
 .site-header__inner{gap:16px}
 .site-nav{display:none;position:absolute;inset:calc(100% + 8px) var(--site-gutter) auto;padding:12px;background:#fff;border:1px solid var(--site-line);border-radius:16px;box-shadow:0 16px 40px rgba(11,39,69,.14);flex-direction:column;align-items:stretch;gap:4px;max-height:calc(100dvh - 100px);overflow-y:auto}
 .site-header.menu-open .site-nav{display:flex}
 .site-nav a{padding:10px 14px;min-height:48px;border:0;border-radius:8px}
 .site-nav a:hover,.site-nav a[aria-current=page]{background:#f4f7fa}
 .page-program .grid,.page-program .enroll-grid{grid-template-columns:1fr}
 .page-program .side{position:static;min-height:0}
 .page-program .enroll-copy{min-height:0}
}
@media(max-width:760px){
 .public-page{--site-gutter:20px;--site-section:56px;--site-radius:18px;--site-heading:1.875rem}
 .public-page .site-header{height:72px}
 .site-header__inner{gap:8px}
 .site-header .site-brand{gap:8px}
 .site-header .site-brand img{width:40px;height:40px}
 .site-header .site-brand strong{font-size:.75rem}
 .site-header .site-brand small{font-size:.4rem;letter-spacing:.6px}
 .site-header__cta{padding:10px 12px;font-size:.75rem}
 .public-page :is(.hero h1,.page-hero h1){font-size:2.25rem;line-height:1.35}
 .public-page :is(.hero-copy>p,.hero p,.enroll-copy p,.trainer-copy p,.meb-location-copy>p){font-size:.9375rem!important;line-height:1.9}
 .public-page :is(.hero-grid,.team-grid,.voices-grid,.audience-grid,.grid,.enroll-grid){grid-template-columns:1fr;gap:24px}
 .public-page :is(.program-top,.gallery-head,.meb-accreditations__head){margin-bottom:24px}
 .public-page :is(.enroll-form,.formbox,.card){padding:24px 20px!important}
 .public-page :is(.form-head h2,.form-head h3,.card h2){font-size:1.375rem!important}
 .public-page .fields{gap:16px;grid-template-columns:1fr}
 .public-page .enroll-copy{padding:28px 24px!important}
 .public-page .enroll-copy h2{font-size:var(--site-heading)!important}
 .page-home .hero-copy{padding-block:40px 24px}
 .page-program .hero{padding-block:40px}
 .page-program .side{position:static;min-height:0;padding:28px 24px}
 .page-program .enroll-steps div{font-size:.75rem}
 .page-program .enroll-steps{grid-template-columns:1fr;gap:10px}
 .page-certificate .page-hero{padding-block:32px}
 .page-certificate .hero-logo{display:none}
 .page-certificate .content{padding-block:24px var(--site-section)}
 .page-certificate .layout{display:grid;grid-template-columns:1fr}
 .page-success .box{margin-block:40px;padding:28px 20px}
 .page-success .steps{grid-template-columns:1fr;gap:10px;margin-block:24px}
 .public-page footer{padding-block:36px 24px}
 .public-page :is(.copyright,.copy){display:flex;flex-direction:column;gap:4px;margin-top:24px}
}
@media(max-width:380px){
 .site-header__inner{width:calc(100% - 24px)}
 .site-header .site-brand strong{font-size:.6875rem}
 .site-header .site-brand small{font-size:.35rem;letter-spacing:.3px}
 .site-header .site-brand img{width:36px;height:36px}
 .site-header__cta{padding-inline:10px;font-size:.6875rem}
 .site-header__actions{gap:6px}
}
