/* Bravo 6 Flight Academy — Divi rebuild in clean code
   Designed by Hangar Marketing */

/* Fonts loaded via <link> in index.html <head> (preconnect + non-@import to
   avoid render-blocking the CSS chain). Body type = "basic-sans" (Adobe Fonts);
   add your Adobe kit <link> in the head and it renders exactly. Mulish is the
   free stand-in until then. */

:root{
  --navy:#003049;
  --navy-d:#00263a;
  --navy-l:#0a4361;
  --red:#c51720;
  --red-d:#a01018;
  --green:#7cda24;
  --blue:#2ea3f2;
  --gray:#f3f3f3;
  --gray-2:#e8e8e8;
  --ink:#2a2a2a;
  --muted:#5a6b78;
  --head:'Bebas Neue', Impact, sans-serif;
  --body:'basic-sans','Mulish','Segoe UI', Arial, sans-serif;
  --maxw:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--body);
  color:var(--ink);
  font-size:17px;
  line-height:1.7;
  background:#fff;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

h1,h2,h3,h4{font-family:var(--head);font-weight:400;letter-spacing:1px;line-height:1;margin:0}
h2.section-title{
  font-size:clamp(38px,5vw,64px);
  text-transform:uppercase;
  color:var(--navy);
  text-align:center;
  margin-bottom:.6em;
}
.section-title.light{color:#fff}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
section{padding:86px 0;position:relative}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--head);
  font-size:17px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  padding:12px 28px;
  border-radius:4px;
  cursor:pointer;
  border:none;
  transition:.25s;
}
.btn-red{background:var(--red);color:#fff;position:relative;overflow:hidden;
  box-shadow:0 6px 16px -8px rgba(197,23,32,.55)}
/* shine that sweeps across on hover */
.btn-red::before{content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;pointer-events:none;
  background:linear-gradient(115deg,transparent 0,rgba(255,255,255,.42) 50%,transparent 100%);
  transform:skewX(-18deg);transition:left .6s cubic-bezier(.22,.61,.36,1)}
.btn-red:hover{background:var(--red-d);transform:translateY(-3px);
  box-shadow:0 14px 30px -8px rgba(197,23,32,.72)}
.btn-red:hover::before{left:140%}
.btn-red:active{transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(197,23,32,.6)}
@media(prefers-reduced-motion:reduce){.btn-red:hover{transform:none}.btn-red::before{display:none}}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-l)}
.btn-ghost{background:transparent;color:#fff;border:2px solid #fff}
.btn-ghost:hover{background:#fff;color:var(--navy)}

/* ---------- Header ---------- */
.topbar{
  background:var(--navy-d);
  color:#cfe0ec;
  font-size:14px;
}
.topbar .wrap{display:flex;justify-content:flex-end;align-items:center;gap:22px;height:40px}
.topbar a{display:inline-flex;align-items:center;gap:7px}
.topbar a:hover{color:#fff}

header.site{
  background:#fff;
  box-shadow:0 2px 14px rgba(0,0,0,.08);
  position:sticky;top:0;z-index:200;
}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
header.site .logo img{height:52px;width:auto}
nav.main{display:flex;align-items:center;gap:2px}
nav.main > ul{display:flex;list-style:none;margin:0;padding:0;gap:1px}
nav.main > ul > li{position:relative}
nav.main > ul > li > a{
  display:block;padding:11px 10px;font-family:var(--body);font-weight:600;font-size:13px;color:var(--navy);
  white-space:nowrap;
}
nav.main > ul > li > a:hover{color:var(--red)}
nav.main li.has-sub > a{cursor:pointer}
nav.main li.has-sub > a::after{content:" ▾";font-size:11px;color:var(--muted)}
.submenu{
  position:absolute;top:100%;left:0;min-width:230px;background:#fff;
  box-shadow:0 12px 30px rgba(0,0,0,.16);border-top:3px solid var(--red);
  list-style:none;margin:0;padding:8px 0;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:.2s;z-index:50;
}
nav.main li.has-sub:hover .submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu li a{display:block;padding:9px 20px;font-size:14px;color:var(--ink)}
.submenu li a:hover{background:var(--gray);color:var(--red)}
.header-cta{margin-left:8px}
.header-cta .btn{font-size:14px;padding:10px 16px}
.hamburger{display:none;background:none;border:none;font-size:28px;color:var(--navy);cursor:pointer;z-index:260}
.nav-close,.nav-drawer-cta,.nav-overlay{display:none}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:88vh;display:flex;align-items:center;
  color:#fff;overflow:hidden;padding:110px 0;
}
.hero video, .hero .poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(0,30,46,.82) 0%,rgba(0,38,58,.5) 55%,rgba(0,38,58,.25) 100%);}
.hero h1{
  font-size:clamp(38px,5.4vw,80px);text-transform:uppercase;max-width:820px;
  line-height:.98;text-shadow:0 3px 18px rgba(0,0,0,.35);
}
.hero p.kick{font-family:var(--head);font-size:24px;letter-spacing:3px;color:#8ec9ef;margin-bottom:14px}
.hero .btn{margin-top:34px}

/* ---------- Split (creating pilots) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.split.media-left{}
.split img.full{width:100%;height:100%;object-fit:cover}
/* One continuous diagonal: the creating section is pulled up over the hero and its
   TOP edge is clipped on a slant, so the hero video sits above the diagonal and the
   image + navy panel sit below it, touching along the same line the whole way. */
.creating{padding:0;position:relative;z-index:2;margin-top:-92px;background:var(--navy);
  clip-path:polygon(0 92px,100% 0,100% calc(100% - 92px),0 100%)}
.creating .split img.full{min-height:100%}
.creating .panel{
  background:var(--navy);color:#fff;padding:70px 60px;display:flex;flex-direction:column;justify-content:center;
}
.creating .panel h2{font-size:clamp(34px,4vw,54px);text-transform:uppercase;margin-bottom:18px}
.creating .panel p{color:#cfe0ec}
.creating .panel a.inline{color:#8ec9ef;font-weight:700;text-decoration:underline}

/* ---------- Partnerships ---------- */
.partners{background:#fff;padding:70px 0}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:46px}
.logo-row img{max-height:62px;width:auto;filter:grayscale(.2);opacity:.85;transition:.2s}
.logo-row img:hover{filter:none;opacity:1}

/* ---------- Winter / simulator ---------- */
.winter{background:var(--navy);color:#fff}
.winter .grid{display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center}
.winter h2{font-size:clamp(34px,4.4vw,58px);text-transform:uppercase;margin-bottom:18px}
.winter p{color:#cfe0ec;margin-bottom:28px}
.winter img{border-radius:8px}
/* simulator/feature images on navy sections sit flush — no framing shadow */
.feature.navy img{box-shadow:none}

/* ---------- Programs ---------- */
.programs{background:#fafbfc}
.prog-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:920px;margin:0 auto}
.prog-card{
  background:#fff;border:1px solid var(--gray-2);border-radius:10px;padding:38px 34px;
  display:flex;gap:22px;align-items:flex-start;transition:.25s;
}
.prog-card:hover{box-shadow:0 18px 40px rgba(0,48,73,.12);transform:translateY(-4px)}
.prog-card .ic{flex:0 0 64px;width:64px;height:64px}
.prog-card .ic img,.prog-card .ic svg{width:64px;height:64px}
.prog-card h3{font-size:30px;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.prog-card p{font-size:15px;color:var(--muted);margin:0;line-height:1.6}

/* ---------- Stats ---------- */
.stats{background:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;text-align:center;max-width:900px;margin:0 auto}
.stat .num{font-family:var(--head);font-size:96px;color:var(--navy);line-height:1}
.stat .lab{font-family:var(--head);font-size:22px;letter-spacing:1px;text-transform:uppercase;color:var(--red)}

/* ---------- Why we fly ---------- */
.whyfly{background:var(--gray)}
.whyfly .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:54px;align-items:center}
.whyfly h2{text-align:left;font-size:clamp(34px,4.4vw,58px);margin-bottom:18px;color:var(--navy)}
.whyfly p{color:#3a4a55}
.whyfly img{border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.22)}

/* ---------- Steps 1,2,3 ---------- */
.steps{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-l) 100%);color:#fff}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.step{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-top:4px solid var(--red);
  padding:40px 30px;position:relative;text-align:center;border-radius:6px;
}
.step .n{font-family:var(--head);font-size:74px;color:#fff;line-height:.8}
.step h3{font-size:24px;text-transform:uppercase;margin-top:14px}

/* ---------- Why you'll love ---------- */
.love .grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.love-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:24px}
.love-list li{display:flex;gap:20px;align-items:center}
.love-list .ic{flex:0 0 56px;width:56px;height:56px}
.love-list .ic img{width:56px;height:56px}
.love-list h3{font-size:28px;text-transform:uppercase;color:var(--navy)}
.love img.plane{border-radius:10px}

/* ---------- Learn to fly form ---------- */
.book{
  position:relative;color:#fff;
  background:linear-gradient(rgba(0,38,58,.55),rgba(0,38,58,.7)),
    url('assets/img/idaho-flight-school-9-1.webp') center/cover fixed;
}
.book .card{
  background:#fff;color:var(--ink);max-width:720px;margin:0 auto;border-radius:12px;
  padding:46px 48px;box-shadow:0 30px 70px rgba(0,0,0,.35);
}
.book .card h2{color:var(--navy);text-align:center;font-size:52px}
.book .card .kick{font-family:var(--head);font-size:22px;letter-spacing:2px;color:var(--red);text-align:center;margin-bottom:26px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid .full{grid-column:1/-1}
.book label{display:block;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}
.book input,.book select,.book textarea{
  width:100%;padding:13px 15px;border:1px solid #cdd6dd;border-radius:6px;font-family:var(--body);font-size:15px;background:#fff;
}
.book input:focus,.book select:focus,.book textarea:focus{outline:none;border-color:var(--navy)}
.book textarea{min-height:120px;resize:vertical}
.recap{display:flex;align-items:center;gap:12px;border:1px solid #cdd6dd;border-radius:6px;padding:12px 16px;width:max-content;margin-top:4px}
.recap .box{width:26px;height:26px;border:2px solid #c1c8ce;border-radius:3px}
.recap small{color:var(--muted)}
.book .btn{width:100%;margin-top:10px}

/* ---------- Certifications ---------- */
.certs{background:#fff}
.certs .intro{max-width:760px;margin:0 auto 50px;text-align:center;color:var(--muted)}
.cert-layout{display:grid;grid-template-columns:1fr auto 1fr;gap:34px;align-items:center}
/* diagram is a 7-node graphic; we now show 5 certs, so crop it to the top 5 nodes */
.cert-diagram{width:300px;max-width:38vw;aspect-ratio:400 / 760;object-fit:cover;object-position:top;
  -webkit-mask-image:linear-gradient(to bottom,#000 74%,transparent 99%);mask-image:linear-gradient(to bottom,#000 74%,transparent 99%)}
.cert-col{display:flex;flex-direction:column;gap:26px}
.cert-card h3{font-size:24px;text-transform:uppercase;color:var(--navy)}
.cert-card p{font-size:14px;color:var(--muted);margin:6px 0 10px}
.cert-card .subs{display:flex;flex-direction:column;gap:6px}
.cert-card .subs span{font-size:13px;color:var(--navy);font-weight:600;display:flex;align-items:center;gap:8px}
.cert-card .subs span::before{content:"";width:8px;height:8px;background:var(--red);border-radius:50%;flex:0 0 8px}
.cert-col.right{text-align:right}
.cert-col.right .subs span{justify-content:flex-end}
.cert-col.right .subs span::before{order:2}

/* pricing */
.pricing{display:grid;grid-template-columns:300px 1fr;gap:50px;align-items:center;margin-top:64px}
.pricing.pricing-table-only{grid-template-columns:1fr;max-width:760px;margin:0 auto}
/* animatable percentage for the conic-gradient fill (registered so it can transition) */
@property --ring-fill{syntax:'<percentage>';inherits:false;initial-value:0%}
.circle{
  width:240px;height:240px;border-radius:50%;display:grid;place-content:center;text-align:center;
  margin:0 auto;--ring-fill:0%;position:relative;
  background:conic-gradient(var(--green) 0 var(--ring-fill),#e8eef2 var(--ring-fill) 100%);
}
/* .circle also carries .reveal (fade-in), whose transition would replace ours; use a
   higher-specificity selector so the fade AND the ring-fill both transition. */
.pricing .circle{transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1),--ring-fill 1.7s cubic-bezier(.22,.61,.36,1)}
.circle.filled{--ring-fill:100%}
@media(prefers-reduced-motion:reduce){.circle{--ring-fill:100%}}
.circle::before{content:"";position:absolute;inset:18px;background:#fff;border-radius:50%}
.circle .inner{position:relative;z-index:1}
.circle .price{font-family:var(--head);font-size:54px;color:var(--navy);line-height:1}
.circle .price small{font-size:30px;vertical-align:top}
.circle .cap{font-size:13px;color:var(--muted);max-width:150px;margin:6px auto 0}
table.price{width:100%;border-collapse:collapse;font-size:15px}
table.price thead th{font-family:var(--head);font-size:22px;text-transform:uppercase;color:var(--navy);padding:10px;letter-spacing:1px;text-align:center}
table.price thead th:first-child{text-align:left}
table.price tbody th,table.price td{padding:11px 10px;border-top:1px solid var(--gray-2)}
table.price tbody th{text-align:left;font-weight:600;font-family:var(--body);color:var(--ink)}
table.price td{text-align:center}
table.price tr.total th,table.price tr.total td{font-weight:700;color:var(--navy);border-top:2px solid var(--navy)}
table.price tr.total td{font-family:var(--head);font-size:26px;color:var(--red)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Airlines ---------- */
.airlines{background:var(--gray)}
.airline-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:34px 44px;align-items:center;max-width:980px;margin:0 auto}
.airline-grid img{max-height:54px;width:auto;margin:0 auto;filter:grayscale(1);opacity:.7;transition:.2s}
.airline-grid img:hover{filter:none;opacity:1}

/* ---------- Testimonial ---------- */
.story{background:var(--navy);color:#fff;padding:0}
.story .grid{display:grid;grid-template-columns:1fr 1fr;align-items:center}
.story .text{padding:80px 60px}
.story h2{text-align:left;color:#fff;font-size:clamp(34px,4vw,56px);margin-bottom:24px}
.story blockquote{font-size:21px;line-height:1.6;font-style:italic;color:#dce8f0;margin:0 0 22px;border:0}
.story .name{font-family:var(--head);font-size:28px;letter-spacing:1px;color:#fff}
.story .name::before{content:"";display:inline-block;width:34px;height:3px;background:var(--red);vertical-align:middle;margin-right:12px}
.story img.cockpit{width:100%;height:100%;object-fit:cover;min-height:420px}

/* ---------- Blog slider ---------- */
.library{background:#fff}
.slider{position:relative;max-width:1020px;margin:0 auto;overflow:hidden;border-radius:12px}
.slides{display:flex;transition:transform .5s ease}
.slide{min-width:100%;display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:#fff}
.slide img{width:100%;height:100%;object-fit:cover;min-height:330px}
.slide .body{padding:48px 46px;display:flex;flex-direction:column;justify-content:center}
.slide h3{font-size:32px;text-transform:uppercase;margin-bottom:16px;line-height:1.05}
.slide p{color:#eaf1f7;font-size:16px;line-height:1.6;margin-bottom:24px}
.slide .btn{align-self:flex-start}
.slider-nav{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:26px}
.slider-nav button.arrow{background:var(--navy);color:#fff;border:none;width:46px;height:46px;border-radius:50%;font-size:18px;cursor:pointer}
.slider-nav button.arrow:hover{background:var(--red)}
.dots{display:flex;gap:4px}
.dots button{width:24px;height:24px;border:none;background:transparent;cursor:pointer;padding:0;display:grid;place-content:center}
.dots button::before{content:"";width:12px;height:12px;border-radius:50%;background:#cdd6dd;transition:background .2s}
.dots button.active::before{background:var(--red)}

/* ---------- Footer ---------- */
footer.site{background:var(--navy-d);color:#bcd0de;padding:64px 0 26px}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1fr;gap:44px;align-items:start}
footer h3{font-family:var(--head);font-size:22px;letter-spacing:1px;color:#fff;text-transform:uppercase;margin:0 0 16px}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.foot-col a{color:#bcd0de;font-size:14.5px;transition:.15s;display:inline-block;white-space:nowrap}
.foot-col a:hover{color:#fff;transform:translateX(3px)}
/* brand + address block */
.foot-brand{max-width:330px}
.foot-brand img{height:56px;width:auto;margin:0 0 16px;display:block}
.foot-tag{font-size:14px;line-height:1.65;color:#93aabb;margin:0 0 20px}
.foot-addr{font-style:normal;display:flex;flex-direction:column;gap:12px;margin:0 0 20px}
.foot-addr a{display:flex;align-items:flex-start;gap:10px;color:#dbe7ef;font-size:14.5px;line-height:1.5}
.foot-addr a:hover{color:#fff}
.foot-addr svg{width:17px;height:17px;flex:none;margin-top:2px;color:var(--sky)}
.socials{display:flex;gap:12px}
.socials a{width:40px;height:40px;border-radius:9px;display:grid;place-content:center;color:#fff;transition:.2s}
.socials svg{width:20px;height:20px}
.socials .s-fb{background:#1877f2}
.socials .s-ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}
.socials a:hover{opacity:.85;transform:translateY(-2px)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding-top:22px;
  display:flex;justify-content:space-between;align-items:center;gap:14px 26px;flex-wrap:wrap;font-size:13px;color:#8aa6b8}
.foot-bottom a{color:#8aa6b8}
.foot-bottom a:hover{color:#fff}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(32px);
  transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}

/* ---------- Diagonal section dividers ---------- */
.winter,.whyfly,.steps,.story{padding-top:118px;padding-bottom:118px}
.story{padding:0}
.divider{position:absolute;left:0;width:100%;height:72px;line-height:0;z-index:3;pointer-events:none}
.divider.top{top:-1px}
.divider.bottom{bottom:-1px}
.divider svg{width:100%;height:100%;display:block}
.divider.hero-d{height:110px;z-index:5}
@media(max-width:980px){
  .divider{height:42px}
  .divider.hero-d{height:60px}
  .creating{margin-top:-46px;clip-path:polygon(0 46px,100% 0,100% calc(100% - 46px),0 100%)}
  .winter,.whyfly,.steps{padding-top:80px;padding-bottom:80px}
}

/* ---------- Subpage components ---------- */
.subhero{position:relative;color:#fff;padding:clamp(108px,13vw,165px) 0 clamp(128px,15vw,185px);background:var(--navy);overflow:hidden}
.subhero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%;z-index:0}
.subhero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(0,38,58,.12) 0%,rgba(0,38,58,.34) 28%,rgba(0,38,58,.8) 66%,rgba(0,38,58,.97) 100%)}
.subhero .wrap{position:relative;z-index:2}
.subhero .kick{font-family:var(--head);font-size:21px;letter-spacing:3px;color:#8ec9ef;text-transform:uppercase;text-align:center;margin-bottom:12px}
.subhero h1{font-size:clamp(34px,5vw,58px);text-transform:uppercase;line-height:1.03;max-width:960px;margin:0 auto;text-align:center}
.subhero p.lead{max-width:760px;margin:20px auto 0;text-align:center;color:#dce8f0;font-size:17px;line-height:1.6}
.subhero .btn{margin:30px auto 0;display:table}
/* left-aligned overlay variant (resources, locations, about) */
.subhero.left{padding-top:clamp(98px,12vw,148px);padding-bottom:clamp(108px,13vw,158px)}
.subhero.left::after{background:linear-gradient(95deg,rgba(0,27,43,.9) 0%,rgba(0,27,43,.62) 40%,rgba(0,27,43,.16) 72%,rgba(0,27,43,0) 100%),linear-gradient(to bottom,rgba(0,38,58,0) 48%,rgba(0,38,58,.5) 100%)}
.subhero.left .kick,.subhero.left h1,.subhero.left p.lead,.subhero.left .btn{text-align:left;margin-left:0}
.subhero.left h1{max-width:700px}
.subhero.left p.lead{max-width:600px}
.subhero.left .btn{margin-right:auto}

.feature{padding:80px 0}
.feature .grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
/* media-left = image first in DOM -> image on left (navy features); media-right = text first -> image right */
.feature h2{font-size:clamp(28px,3.6vw,46px);text-transform:uppercase;color:var(--navy);margin-bottom:18px;line-height:1.02}
.feature p{color:#3a4a55;margin-bottom:14px}
.feature .bullets{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.feature .bullets li{position:relative;padding-left:26px;color:#3a4a55;font-size:15px;line-height:1.5}
.feature .bullets li::before{content:"";position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.feature .bullets li strong{color:var(--navy)}
.feature img{border-radius:10px;box-shadow:0 18px 40px rgba(0,0,0,.18);width:100%}
.gmap-dir{margin-top:22px}
.feature.navy{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-l) 100%);color:#fff;position:relative}
.feature.navy h2{color:#fff}
.feature.navy p,.feature.navy .bullets li{color:#cfe0ec}
.feature.navy .bullets li strong{color:#fff}
.chiplist{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:6px;max-width:760px}
.chiplist span{background:var(--gray);border-left:3px solid var(--red);padding:12px 16px;font-weight:600;color:var(--navy);font-size:15px}

.band{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-l) 100%);color:#fff;text-align:center;padding:84px 0;position:relative}
.band h2{font-size:clamp(28px,3.6vw,44px);text-transform:uppercase;margin-bottom:16px}
.band p{max-width:760px;margin:0 auto;color:#cfe0ec}

.cta-final{background:#fff;text-align:center;padding:72px 0}
.cta-final h2{font-size:clamp(23px,2.7vw,33px);text-transform:uppercase;color:var(--navy);max-width:920px;margin:0 auto 14px;line-height:1.18}
.cta-final p{color:var(--muted);margin-bottom:24px}
.cta-final p:last-of-type{margin-bottom:0}
.cta-final .btn{margin-top:30px}
.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.feat-note{font-size:13px;color:var(--muted);margin-top:8px}
.videoplay-sec{padding:0 0 64px;background:#fff}
.videoplay{max-width:900px;margin:0 auto;border-radius:8px;overflow:hidden;box-shadow:0 18px 50px rgba(0,38,58,.16)}
.videoplay video{display:block;width:100%;height:auto}
.videoplay.yt-embed{aspect-ratio:16/9}
.videoplay.yt-embed iframe{display:block;width:100%;height:100%;border:0}

.videofeature{position:relative;overflow:hidden;color:#fff;padding:96px 0}
.videofeature .vf-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.videofeature::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,38,58,.72),rgba(0,38,58,.82));z-index:1}
.videofeature .wrap{position:relative;z-index:2}
.vf-content{max-width:760px}
.vf-content h2{font-size:clamp(26px,3.2vw,40px);text-transform:uppercase;line-height:1.12;margin-bottom:18px}
.vf-content p{color:rgba(255,255,255,.92);font-size:17px;line-height:1.6;margin-bottom:14px}
.vf-sub{font-weight:700;color:#fff!important;margin-bottom:18px!important}
.checklist{list-style:none;display:grid;gap:14px;margin:0}
.checklist li{position:relative;padding-left:38px;color:rgba(255,255,255,.94);font-size:16px;line-height:1.5}
.checklist li::before{content:"\2713";position:absolute;left:0;top:-1px;width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}

.skyband{position:relative;padding:96px 0 88px;color:#fff;text-align:center;background:linear-gradient(rgba(0,38,58,.5),rgba(0,38,58,.6)),url('assets/img/bravo6-plane.webp') center/cover}
.skyband::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:70px;background:#fff;clip-path:polygon(0 0,100% 0,0 100%);z-index:2}
.skyband.nowedge{padding-top:84px}
.skyband.nowedge::before{display:none}
.skyband>*{position:relative;z-index:3}
.skyband .inner{display:flex;gap:28px;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:30px}
.skyband h2{font-size:clamp(34px,4.5vw,56px);text-transform:uppercase;margin:0;display:flex;align-items:center;gap:14px}
/* GoHighLevel embedded form (CLS-safe fixed height) */
/* Shell grows to the iframe's real height (form_embed.js resizes the iframe to
   its content), so the LeadConnector form never scrolls inside itself. Only the
   modal / page scrolls. No fixed height and no overflow clip, or the resized
   iframe gets cut off. */
.ghl-form-shell{width:100%;max-width:680px;margin:0 auto;border-radius:10px;background:#fff;box-shadow:0 24px 60px rgba(0,0,0,.35)}
/* Reserve a real height so the form is visible even if LeadConnector's resize
   message is missed (a race that otherwise leaves the iframe collapsed at 0). */
.ghl-form-shell iframe{width:100%;min-height:640px;border:0;display:block;border-radius:10px;background:#fff}
.modal-card .ghl-form-shell{box-shadow:none;margin-top:6px}
.skyband .formcard{background:#fff;color:var(--ink);max-width:660px;margin:34px auto 0;border-radius:12px;padding:36px 38px 30px;text-align:left;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.skyband .formcard label{display:block;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}
.skyband .formcard input,.skyband .formcard select,.skyband .formcard textarea{width:100%;padding:13px 15px;border:1px solid #cdd6dd;border-radius:6px;font-family:var(--body);font-size:15px;background:#fff}
.skyband .formcard input:focus,.skyband .formcard textarea:focus{outline:none;border-color:var(--navy)}
.skyband .formcard textarea{min-height:110px;resize:vertical}
.skyband .formcard .radio-row label,.skyband .formcard .consent label{font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink);font-size:15px;margin:0}
.skyband .formcard .consent label{color:var(--muted);font-size:13px}
.skyband .formcard .btn{width:100%;margin-top:8px}

.prose{max-width:820px;margin:0 auto;padding:70px 0;color:#3a4a55;line-height:1.8}
.prose h2{font-family:var(--head);font-size:34px;color:var(--navy);text-transform:uppercase;margin:34px 0 12px}
.prose h3{font-family:var(--head);font-size:24px;color:var(--navy);text-transform:uppercase;margin:26px 0 10px}
.prose p{margin:0 0 16px}
.prose a{color:var(--red);font-weight:600}
.prose ul{margin:0 0 16px;padding-left:22px}
.prose li{margin-bottom:8px}

/* Click-triggered contact modal (replaces the site's auto-popup) */
.modal{position:fixed;inset:0;z-index:300;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;background:rgba(0,20,33,.62);overflow:auto}
.modal.open{display:flex}
.modal-card{background:#fff;border-radius:12px;max-width:680px;width:100%;padding:42px 42px 34px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.modal-card h2{color:var(--navy);text-align:center;font-size:40px;text-transform:uppercase}
.modal-card .kick{text-align:center;font-family:var(--head);font-size:20px;letter-spacing:2px;color:var(--red);margin-bottom:24px}
.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:32px;line-height:1;color:var(--muted);cursor:pointer}
.modal-card input,.modal-card select,.modal-card textarea{width:100%;padding:13px 15px;border:1px solid #cdd6dd;border-radius:6px;font-family:var(--body);font-size:15px;background:#fff}
.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{outline:none;border-color:var(--navy)}
.modal-card textarea{min-height:110px;resize:vertical}
.modal-card label{display:block;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}
.radio-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:4px}
.radio-row label{display:flex;align-items:center;gap:8px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink);font-size:15px;margin:0}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:4px}
.consent label{font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);font-size:13px;margin:0}
.modal-card .btn{width:100%;margin-top:8px}

/* ---------- Responsive ---------- */
/* The compact horizontal nav fits on one line down to ~1024px, so keep the full
   menu for laptops (1024px and up) and only switch to the hamburger drawer for
   tablets/phones. Content grids stay at their own 980px breakpoint below. */
@media(max-width:1024px){
  .hamburger{display:block}
  .header-cta{display:none}
  /* slide-in drawer */
  nav.main{
    position:fixed;top:0;right:0;height:100vh;width:308px;max-width:86vw;
    background:var(--navy);flex-direction:column;align-items:stretch;
    padding:70px 0 30px;transform:translateX(100%);transition:transform .32s ease;will-change:transform;
    z-index:250;overflow-y:auto;box-shadow:-14px 0 44px rgba(0,0,0,.45);gap:0;
  }
  nav.main.open{transform:translateX(0)}
  nav.main > ul{flex-direction:column;width:100%;gap:0}
  nav.main > ul > li{position:static;width:100%}
  nav.main > ul > li > a{
    display:flex;justify-content:space-between;align-items:center;
    color:#fff;padding:15px 26px;font-size:16px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  nav.main > ul > li > a:hover{color:#fff;background:rgba(255,255,255,.06)}
  nav.main li.has-sub > a::after{content:"+";font-size:20px;color:#9bb6c7}
  nav.main li.has-sub.open > a::after{content:"–"}
  .submenu{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border-top:0;background:rgba(0,0,0,.22);padding:0;display:none;min-width:0;
  }
  nav.main li.has-sub.open .submenu{display:block}
  .submenu li a{color:#cfe0ec;padding:13px 26px 13px 42px;font-size:14px}
  .submenu li a:hover{background:rgba(255,255,255,.06);color:#fff}
  .nav-close{
    display:block;position:absolute;top:16px;right:18px;background:none;border:none;
    color:#fff;font-size:34px;line-height:1;cursor:pointer;padding:0 6px;
  }
  .nav-drawer-cta{display:block;margin:22px 26px 0}
  .nav-drawer-cta .btn{display:block;width:100%;text-align:center}
  /* Overlay must sit ABOVE page content but BELOW the drawer. The drawer lives
     inside header.site's stacking context (sticky, z-index:200), so a body-level
     overlay at z-index:240 would paint over the drawer (dimming it and stealing
     its clicks). Keep the overlay just under the header context. */
  .nav-overlay{
    display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:190;
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility .3s;
  }
  .nav-overlay.open{opacity:1;visibility:visible;pointer-events:auto}
  body.nav-lock{overflow:hidden}
}
@media(max-width:980px){
  .topbar .wrap a:nth-child(2){display:none}
  .split,.winter .grid,.whyfly .grid,.love .grid,.story .grid,.slide{grid-template-columns:1fr}
  .prog-grid{grid-template-columns:1fr;max-width:520px}
  .stat-grid{grid-template-columns:1fr;gap:40px}
  .step-grid{grid-template-columns:1fr}
  .cert-layout{grid-template-columns:1fr}
  .cert-diagram{display:none}
  .cert-col.right,.cert-col.right .subs span{text-align:left;justify-content:flex-start}
  .cert-col.right .subs span::before{order:0}
  .pricing{grid-template-columns:1fr;gap:34px}
  .airline-grid{grid-template-columns:repeat(3,1fr)}
  .form-grid{grid-template-columns:1fr}
  .creating .panel{padding:50px 34px}
  .story .text{padding:50px 34px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:34px 40px}
  .foot-brand{grid-column:1/-1;max-width:none}
  .feature .grid{grid-template-columns:1fr;gap:32px}
  .feature.media-left .grid{direction:ltr}
  .feature .grid img{max-height:340px;object-fit:cover;width:100%}
  .gmap-sec .grid iframe{height:320px}
  .chiplist{grid-template-columns:1fr 1fr}
  .subhero{padding:110px 0 90px}
  .modal-card{padding:34px 22px 26px}
  .skyband .inner{flex-direction:column;gap:18px}
}
@media(max-width:560px){
  .feature .grid img{max-height:260px}
  .chiplist{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:30px}
  .foot-bottom{justify-content:center;text-align:center}
  .member img{aspect-ratio:4/3}
}

/* ---------- Resources: prose section, FAQ accordion, comparison table ---------- */
.wrap.narrow{max-width:880px}
.prose-sec{padding:10px 0 30px}
.prose-sec .prose{padding:30px 0}

.faq-sec{padding:64px 0 80px;background:#fafbfc}
.acc-intro{text-align:center;max-width:760px;margin:0 auto 30px;color:#52616b;line-height:1.7}
.faq-accordion{display:flex;flex-direction:column;gap:14px}
.faq-item{background:#fff;border:1px solid #e4e9ee;border-radius:12px;box-shadow:0 1px 3px rgba(0,38,58,.05);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 24px;font-family:var(--head);letter-spacing:.4px;font-size:21px;color:var(--navy);text-transform:uppercase}
.faq-item summary::-webkit-details-marker{display:none}
.faq-ic{flex:0 0 auto;width:22px;height:22px;position:relative}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;background:var(--red);border-radius:2px;transition:transform .25s ease}
.faq-ic::before{top:10px;left:2px;width:18px;height:3px}
.faq-ic::after{top:2px;left:9.5px;width:3px;height:18px}
.faq-item[open] .faq-ic::after{transform:rotate(90deg);opacity:0}
.faq-a{padding:0 24px 22px;color:#52616b;line-height:1.75}
.faq-a p{margin:0}

.ctable-sec{padding:70px 0 80px}
.ct-sub{text-align:center;max-width:760px;margin:0 auto 28px;color:#52616b;line-height:1.7}
.ctable-wrap{overflow-x:auto;border-radius:14px;box-shadow:0 8px 30px rgba(0,38,58,.10)}
.ctable{width:100%;border-collapse:collapse;min-width:680px;background:#fff;overflow:hidden}
.ctable thead th{background:var(--navy);color:#fff;font-family:var(--head);letter-spacing:.6px;font-size:16px;
  text-transform:uppercase;padding:16px 18px;text-align:left;line-height:1.2}
.ctable thead th:nth-child(2),.ctable thead th:nth-child(3){text-align:center;width:215px}
.ctable tr.cat td{background:#e7eef4;color:var(--navy);font-family:var(--head);letter-spacing:.5px;
  font-size:16px;text-transform:uppercase;padding:11px 18px;border-top:1px solid #d4dee7}
.ctable td.ft{padding:12px 18px;color:#3a4a55;font-size:15px;border-top:1px solid #eef2f5}
.ctable td.b6,.ctable td.ind{text-align:center;border-top:1px solid #eef2f5;width:215px}
.ctable .yes{color:#2f7fc2;font-size:18px;font-weight:700}
.ctable .no{color:var(--red);font-size:17px;font-weight:700}
.ctable tbody tr:not(.cat):hover td{background:#fafdff}
@media(max-width:600px){
  .ctable thead th,.ctable tr.cat td{font-size:14px}
  .ctable td.ft{font-size:14px}
  .ctable thead th:nth-child(2),.ctable thead th:nth-child(3),.ctable td.b6,.ctable td.ind{width:88px}
  .faq-item summary{font-size:18px;padding:16px 18px}
}

/* ---------- Locations: partner logos, program cards, stats ---------- */
.logos-sec{padding:54px 0 40px;background:#fff}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:40px 56px;margin-top:14px}
.logo-row img{height:46px;width:auto;max-width:170px;object-fit:contain;filter:grayscale(1);opacity:.62;transition:opacity .2s,filter .2s}
.logo-row img:hover{filter:grayscale(0);opacity:1}

.cards-sec{padding:74px 0;background:#fafbfc}
.cards-intro{max-width:760px;margin:0 auto 8px;color:#52616b;line-height:1.7}
.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:34px;text-align:left}
.card{background:#fff;border:1px solid #e7ecf1;border-radius:14px;padding:28px 30px;box-shadow:0 4px 18px rgba(0,38,58,.05)}
.card h3{font-family:var(--head);letter-spacing:.5px;font-size:24px;color:var(--navy);text-transform:uppercase;margin:0 0 10px}
.card p{margin:0;color:#52616b;line-height:1.7}
.card-meta{display:inline-block;margin-top:16px;font-family:var(--head);font-size:13px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--navy);background:#eaf1f7;border-radius:999px;padding:6px 14px}
.card-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-family:var(--head);
  font-size:15px;letter-spacing:1px;text-transform:uppercase;color:var(--red);text-decoration:none}
.card-link::after{content:"→";transition:transform .2s}
.card-link:hover{color:var(--red-d)}
.card-link:hover::after{transform:translateX(4px)}
/* ---------- In the News / press (newspaper style) ---------- */
.press-sec{padding:78px 0;background:#e6e8ec}
/* on the news page the hero sits directly on the press section: tint its wedge to match (no white triangle) */
.page-in-the-news .divider.hero-d polygon{fill:#e6e8ec}
.press-kick{text-align:center;font-family:var(--head);font-size:18px;letter-spacing:3px;text-transform:uppercase;color:var(--red);margin:0 0 6px}
.press-sec .cards-intro{max-width:620px;margin:0 auto;font-family:Georgia,'Times New Roman',Times,serif;font-style:italic;color:#5a636b}
/* shared: photo frame + credit */
.press-feat-media,.press-card-media{position:relative;overflow:hidden;background:#0a2233}
.press-feat-media img,.press-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.press-feature:hover .press-feat-media img,.press-card:hover .press-card-media img{transform:scale(1.04)}
.press-credit{position:absolute;right:0;bottom:0;font-size:11px;letter-spacing:.2px;color:#fff;
  background:rgba(0,26,40,.62);padding:4px 9px;border-top-left-radius:8px;max-width:82%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.press-badge{position:absolute;left:14px;top:14px;font-family:var(--head);font-size:12px;letter-spacing:1.5px;
  text-transform:uppercase;color:#fff;background:var(--red);padding:6px 12px;border-radius:2px;box-shadow:0 4px 12px rgba(197,23,32,.4)}
/* dateline: outlet masthead over the date, with a hairline rule under it */
.press-meta{margin-bottom:13px;padding-bottom:10px;border-bottom:1px solid #ded8c9}
.press-outlet{display:block;font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;font-size:15px;letter-spacing:.6px;text-transform:uppercase;color:var(--red)}
.press-date{display:block;margin-top:4px;font-family:Georgia,'Times New Roman',Times,serif;font-style:italic;font-size:13px;color:#7a7266}
/* serif, mixed-case newspaper headlines */
.press-title,.press-feat-title{font-family:Georgia,'Times New Roman',Times,serif;text-transform:none;letter-spacing:0;font-weight:700;color:var(--navy)}
.press-title{font-size:22px;line-height:1.2;margin:0 0 7px}
.press-byline{font-family:Georgia,'Times New Roman',Times,serif;font-style:italic;font-size:14px;color:#6b7178;margin:0 0 12px}
.press-excerpt{font-family:Georgia,'Times New Roman',Times,serif;color:#3f4750;line-height:1.62;font-size:15.5px;margin:0 0 18px}
.press-link{display:block;font-family:var(--head);font-size:15px;letter-spacing:1px;text-transform:uppercase;color:var(--navy);padding-top:14px;border-top:1px solid #e6e0d2}
.press-link span{display:inline-block;transition:transform .2s}
a.press-feature:hover .press-link,a.press-card:hover .press-link{color:var(--red)}
a.press-feature:hover .press-link span,a.press-card:hover .press-link span{transform:translateX(5px)}
/* featured / lead story: photo-left, story-right */
.press-feature{display:grid;grid-template-columns:1.1fr 1fr;margin-top:38px;background:#fcfaf4;border:1px solid #e2dccc;
  border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 10px 30px -14px rgba(0,38,58,.22);
  transition:transform .25s,box-shadow .25s}
.press-feature:hover{transform:translateY(-4px);box-shadow:0 24px 50px -18px rgba(0,38,58,.3)}
.press-feat-media{min-height:340px}
.press-feat-body{padding:40px 42px;display:flex;flex-direction:column;justify-content:center}
.press-feat-title{font-size:clamp(25px,2.5vw,35px);line-height:1.08;margin:0 0 8px}
/* classic front-page drop cap on the lead story */
.press-feature .press-excerpt::first-letter{float:left;font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;font-size:3.3em;line-height:.78;padding:4px 9px 0 0;color:var(--navy)}
/* remaining stories: photo-top clippings */
.press-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;margin-top:26px;text-align:left;align-items:stretch}
.press-card{display:flex;flex-direction:column;background:#fcfaf4;border:1px solid #e2dccc;border-radius:4px;overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:0 6px 22px rgba(0,38,58,.08);transition:transform .2s,box-shadow .2s,border-color .2s}
.press-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -14px rgba(0,38,58,.24);border-color:#d8cfb9}
.press-card-media{aspect-ratio:2/1}
.press-card-body{display:flex;flex-direction:column;flex:1;padding:18px 22px 18px}
.press-card .press-title{font-size:19px;line-height:1.18;margin-bottom:6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.press-card .press-byline{margin-bottom:8px}
.press-card .press-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;margin-bottom:14px}
.press-card .press-link{margin-top:auto}
.press-note{text-align:center;color:#6a7078;font-size:14px;margin-top:34px;font-family:Georgia,'Times New Roman',Times,serif;font-style:italic}
@media(max-width:760px){
  .press-feature{grid-template-columns:1fr}
  .press-feat-media{min-height:0;aspect-ratio:16/9}
  .press-feat-body{padding:28px 26px}
}
/* Student application survey embed */
.survey-sec{padding:64px 0;background:#fff}
.survey-intro{max-width:680px;margin:6px auto 30px;text-align:center;color:#52616b;line-height:1.7}
.survey-shell{max-width:900px;margin:0 auto;background:#fff;border-radius:14px;box-shadow:0 20px 55px rgba(0,38,58,.12);overflow:hidden}
.survey-shell iframe{display:block;width:100%;border:0}

.stats-sec{padding:66px 0;background:var(--navy);color:#fff}
.stat-row{display:flex;flex-wrap:wrap;justify-content:center;gap:30px 70px;margin-top:8px}
.stat{display:flex;flex-direction:column;align-items:center;min-width:160px}
.stat .num{font-family:var(--head);font-size:64px;line-height:1;color:var(--red)}
.stat .lbl{margin-top:8px;text-transform:uppercase;letter-spacing:1px;font-size:14px;color:#cdd9e1}
@media(max-width:760px){
  .card-grid{grid-template-columns:1fr}
  .stat .num{font-size:50px}
  .logo-row{gap:28px 36px}
  .logo-row img{height:38px}
}

/* ---------- About group: team, events, contact info ---------- */
.team-sec{padding:74px 0;background:#fafbfc}
.team-intro{max-width:820px;margin:0 auto 30px;text-align:center;color:#52616b;line-height:1.75}
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:20px}
.member{display:flex;flex-direction:column;background:#fff;border:1px solid #e7ecf1;border-radius:16px;overflow:hidden;box-shadow:0 6px 22px rgba(0,38,58,.06)}
.member img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top}
.member-body{padding:24px 26px}
.member h3{font-family:var(--head);letter-spacing:.5px;font-size:26px;color:var(--navy);text-transform:uppercase;margin:0 0 6px}
.member .cert{margin:0 0 12px;color:var(--red);font-weight:700;font-size:13.5px;line-height:1.5}
.member .bio{margin:0;color:#52616b;line-height:1.7;font-size:15px}

.events-sec{padding:70px 0 80px}
.ev-intro{text-align:center;max-width:720px;margin:0 auto 34px;color:#52616b;line-height:1.7}
.events-list{display:flex;flex-direction:column;gap:18px}
.event{display:grid;grid-template-columns:200px 1fr;gap:24px;background:#fff;border:1px solid #e7ecf1;border-left:5px solid var(--red);
  border-radius:12px;padding:22px 26px;box-shadow:0 3px 14px rgba(0,38,58,.05)}
.ev-date{font-family:var(--head);letter-spacing:.5px;font-size:20px;color:var(--navy);text-transform:uppercase;line-height:1.25}
.ev-body h3{font-family:var(--head);letter-spacing:.5px;font-size:24px;color:var(--navy);text-transform:uppercase;margin:0 0 8px}
.ev-body p{margin:0 0 12px;color:#52616b;line-height:1.7}
.ev-tag{display:inline-block;background:#eef4f8;color:var(--navy);font-size:12px;font-weight:700;letter-spacing:.6px;
  text-transform:uppercase;padding:5px 12px;border-radius:999px}

.contact-sec{padding:70px 0 80px}
.ci-lead{text-align:center;max-width:760px;margin:0 auto 38px;color:#52616b;line-height:1.75}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cinfo{background:#fff;border:1px solid #e7ecf1;border-radius:14px;padding:30px 28px;text-align:center;box-shadow:0 4px 18px rgba(0,38,58,.05)}
.cinfo h3{font-family:var(--head);letter-spacing:.6px;font-size:23px;color:var(--navy);text-transform:uppercase;margin:0 0 14px}
.cinfo p{margin:0 0 6px;color:#52616b;line-height:1.6}
.cinfo a{color:var(--red);font-weight:700;text-decoration:none}
.cinfo a:hover{text-decoration:underline}
@media(max-width:860px){
  .team-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .event{grid-template-columns:1fr;gap:8px}
}

/* ---------- Blog: article body, index grid/cards ---------- */
.blog-body .post-meta{color:var(--muted);font-size:14px;letter-spacing:.3px;margin:0 0 26px;padding-bottom:18px;border-bottom:1px solid #e7ecf1}
.blog-body h2{font-family:var(--head);font-size:clamp(26px,3vw,34px);color:var(--navy);text-transform:uppercase;margin:36px 0 14px;line-height:1.08}
.blog-body h3{font-family:var(--head);font-size:22px;color:var(--navy);text-transform:uppercase;margin:28px 0 10px}
.blog-body p{margin:0 0 18px;color:#3a4a55;line-height:1.8}
.blog-body a{color:var(--red);font-weight:600;text-decoration:underline}
.blog-body ul,.blog-body ol{margin:0 0 18px;padding-left:22px;color:#3a4a55;line-height:1.8}
.blog-body li{margin-bottom:8px}
.blog-body blockquote{margin:24px 0;padding:14px 22px;border-left:4px solid var(--red);background:#f7f9fb;color:var(--navy);font-style:italic}
.blog-body figure{margin:26px 0}
.blog-body figure img{width:100%;border-radius:12px;box-shadow:0 14px 34px rgba(0,38,58,.12)}

.bloglist-sec{padding:64px 0 80px;background:#fafbfc}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.blog-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e7ecf1;border-radius:14px;overflow:hidden;
  box-shadow:0 6px 22px rgba(0,38,58,.06);text-decoration:none;transition:transform .2s,box-shadow .2s}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,38,58,.14)}
.bc-img{aspect-ratio:16/10;overflow:hidden;background:#e7eef4}
.bc-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.blog-card:hover .bc-img img{transform:scale(1.04)}
.bc-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.bc-cat{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--red)}
.bc-body h3{font-family:var(--head);font-size:22px;color:var(--navy);text-transform:uppercase;margin:8px 0 10px;line-height:1.1}
.bc-body p{color:#52616b;font-size:14.5px;line-height:1.6;margin:0 0 16px;flex:1}
.bc-link{font-family:var(--head);letter-spacing:.5px;color:var(--red);text-transform:uppercase;font-size:15px}
@media(max-width:980px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.blog-grid{grid-template-columns:1fr}}

/* ---------- Blog archive list (index / author): image-left, text-right rows ---------- */
.archive-sec{padding:58px 0 80px}
.post-list{display:flex;flex-direction:column;gap:44px}
.post-row{display:grid;grid-template-columns:300px 1fr;gap:36px;align-items:center}
.post-row .pr-img{display:block;border-radius:12px;overflow:hidden;box-shadow:0 12px 30px rgba(0,38,58,.14)}
.post-row .pr-img img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .35s}
.post-row .pr-img:hover img{transform:scale(1.05)}
.pr-body h2{font-family:var(--head);font-size:clamp(23px,2.4vw,30px);color:var(--navy);text-transform:uppercase;line-height:1.08;margin:0 0 10px}
.pr-body h2 a{color:inherit}
.pr-body h2 a:hover{color:var(--red)}
.pr-meta{color:var(--muted);font-size:13.5px;margin:0 0 12px}
.pr-excerpt{color:#3a4a55;line-height:1.7;margin:0 0 18px;font-size:15.5px}
.btn-outline{display:inline-block;font-family:var(--head);font-size:15px;letter-spacing:1px;text-transform:uppercase;
  padding:10px 26px;border:1.5px solid var(--navy);border-radius:4px;color:var(--navy);transition:.2s}
.btn-outline:hover{background:var(--navy);color:#fff}
@media(max-width:680px){.post-row{grid-template-columns:1fr;gap:18px}.post-row .pr-img img{aspect-ratio:16/9}}

/* ---------- Blog post: content column + sticky sidebar ---------- */
.blogpost-sec{padding:54px 0 80px}
.blogpost-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(230px,26vw,328px);gap:clamp(28px,4vw,56px);align-items:start}
.blog-body{max-width:none;margin:0;padding:0}
.post-title{font-family:var(--head);font-size:clamp(32px,4vw,46px);color:var(--navy);text-transform:uppercase;line-height:1.04;margin:0 0 14px}
.blog-body .post-meta{color:var(--muted);font-size:14px;letter-spacing:.3px;margin:0 0 26px;padding:0;border:none}
.blog-body .post-meta .dot{color:#c7d2da;margin:0 5px}
.author-link{color:var(--red);font-weight:700;text-decoration:none}
.author-link:hover{text-decoration:underline}
.post-feat{margin:0 0 30px}
.post-feat img{width:100%;border-radius:14px;box-shadow:0 16px 40px rgba(0,38,58,.16)}
/* Article copy is read, not scanned as a hero: the scroll-reveal fade made each
   paragraph pop in while reading. Body copy renders immediately; the rest of the
   site keeps its reveal. */
.blog-body.prose>.reveal{opacity:1;transform:none;transition:none}

.blog-side{position:sticky;top:92px;display:flex;flex-direction:column;gap:18px;max-width:100%;
  /* On shorter screens the sticky column can be taller than the viewport, cutting
     off its lower links. Cap it to the visible area and let it scroll on its own
     only when it doesn't fit (no scrollbar appears when it already does). */
  max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:#c9d8e4 transparent}
.blog-side::-webkit-scrollbar{width:7px}
.blog-side::-webkit-scrollbar-thumb{background:#c9d8e4;border-radius:4px}
.blog-side::-webkit-scrollbar-track{background:transparent}
.recent-sec{background:#f6f8fa;padding:60px 0;border-top:1px solid #eef2f5}
.recent-sec .section-title{text-align:center;margin-bottom:34px}
.rp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.rp-card{display:block;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 6px 22px rgba(0,38,58,.08);color:var(--navy)}
.rp-card img{width:100%;height:180px;object-fit:cover;display:block}
.rp-card .rp-t{display:block;padding:16px 18px 20px;font-size:15.5px;font-weight:700;line-height:1.38}
.rp-card:hover .rp-t{color:var(--red)}
@media(max-width:760px){.rp-grid{grid-template-columns:1fr}}
.side-card{background:#fff;border:1px solid #e7ecf1;border-radius:16px;padding:20px 22px 22px;box-shadow:0 8px 26px rgba(0,38,58,.07)}
.side-h{font-family:var(--head);font-size:21px;letter-spacing:.5px;color:var(--navy);text-transform:uppercase;margin:0 0 12px;padding-bottom:9px;border-bottom:2px solid var(--red);display:inline-block}
.side-about{background:linear-gradient(155deg,var(--navy) 0%,var(--navy-l) 100%);border:none;color:#fff;text-align:center;padding:24px 24px 26px}
.side-about .side-logo{height:44px;width:auto;margin:0 auto 14px}
.side-about p{color:#cfe0ec;font-size:14px;line-height:1.6;margin:0 0 16px}
.side-about .btn{width:100%;font-size:17px}
.side-recent{list-style:none;margin:0;padding:0}
.side-recent li{border-bottom:1px solid #eef2f5}
.side-recent li:last-child{border-bottom:none}
.side-recent a{display:flex;gap:13px;align-items:center;color:var(--navy);padding:11px 0}
.side-recent img{width:72px;height:54px;object-fit:cover;border-radius:8px;flex:0 0 auto}
.side-recent .sr-t{font-size:13.5px;font-weight:700;line-height:1.35}
.side-recent a:hover .sr-t{color:var(--red)}
.side-links{list-style:none;margin:0;padding:0}
.side-links li{border-bottom:1px solid #eef2f5}
.side-links li:last-child{border-bottom:none}
.side-links a{color:#3a4a55;font-weight:600;font-size:14.5px;display:block;padding:7px 0;transition:.15s}
.side-links a:hover{color:var(--red);padding-left:5px}
@media(max-width:980px){
  .blogpost-grid{grid-template-columns:1fr;gap:40px}
  .blog-side{position:static;display:grid;grid-template-columns:1fr 1fr;gap:22px;max-height:none;overflow:visible}
  .side-about{grid-column:1/-1}
}
@media(max-width:600px){.blog-side{grid-template-columns:1fr}}

/* ---------- Animated count-up rings ---------- */
.ring-sec{padding:84px 0}
.ring-sec.navy{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-l) 100%);color:#fff}
.ring-row{display:flex;flex-wrap:wrap;justify-content:center;gap:48px;margin-top:34px}
.ring{position:relative;width:210px;height:210px;flex:0 0 auto}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:#e3e9ef;stroke-width:8}
.ring-sec.navy .ring-bg{stroke:rgba(255,255,255,.16)}
.ring-fg{fill:none;stroke:var(--green);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1.7s cubic-bezier(.22,.61,.36,1)}
.ring-sec.navy .ring-fg{stroke:var(--red)}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 26px}
.ring-num{font-family:var(--head);font-size:48px;color:var(--navy);line-height:1;letter-spacing:1px}
.ring-sec.navy .ring-num{color:#fff}
.ring-center small{margin-top:8px;font-size:13.5px;color:var(--muted);line-height:1.4;font-weight:600}
.ring-sec.navy .ring-center small{color:#cfe0ec}

/* feature CTA button + dual hero buttons */
.feature .feat-btn{margin-top:26px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.subhero .hero-btns{justify-content:center}
.subhero.left .hero-btns{justify-content:flex-start}

/* refined band (guarantee, etc.) */
.band h2{position:relative;display:inline-block;padding-bottom:18px}
.band h2::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:74px;height:4px;background:var(--red);border-radius:2px}
.band p{font-size:18px}

/* ---------- Blog author box + author bio modal ---------- */
.author-box{display:flex;align-items:center;gap:16px;margin:44px 0 0;padding:26px 0 0;border-top:1px solid #e7ecf1}
.ab-avatar{width:62px;height:62px;border-radius:50%;object-fit:cover;flex:0 0 auto;box-shadow:0 4px 14px rgba(0,38,58,.15)}
.ab-info{font-size:18px;color:var(--navy)}
.ab-label{color:var(--muted)}
.author-box .author-link{font-size:18px}
.author-link[data-author-modal]{cursor:pointer}
.amodal-card{max-width:540px;width:100%;text-align:left;padding:38px 38px 34px}
.amodal-head{display:flex;align-items:center;gap:18px;margin-bottom:20px}
.amodal-head img{width:74px;height:74px;border-radius:50%;object-fit:cover;flex:0 0 auto;box-shadow:0 6px 18px rgba(0,38,58,.2)}
.amodal-head h3{font-family:var(--head);font-size:28px;color:var(--navy);text-transform:uppercase;margin:0;letter-spacing:.5px}
.amodal-role{color:var(--red);font-size:13.5px;font-weight:700;letter-spacing:.4px;margin:5px 0 0;text-transform:uppercase}
.amodal-bio{color:#3a4a55;line-height:1.75;margin:0;font-size:15.5px}
