@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,500;8..60,600;8..60,700&family=IBM+Plex+Sans:wght@400;500;600&family=Space+Grotesk:wght@500;600;700&display=swap');

:root{
  --blue:#1440c4;
  --blue-dark:#0b2a85;
  --ink:#14140f;
  --orange:#ff6a00;
  --red:#e4002b;
  --paper:#ffffff;
  --tint:#eef2fc;
  --line:#d9deec;
  --serif:'Source Serif 4', Georgia, serif;
  --sans:'IBM Plex Sans', Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-padding-top:80px;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:#eef4ff;
  line-height:1.55;
}
h1,h2,h3{font-family:var(--serif); font-weight:600; line-height:1.15; margin:0 0 .5em;}
h1{font-size:clamp(2rem,4vw,3rem);}
h2{font-size:clamp(1.5rem,2.6vw,2rem);}
h3{font-size:1.15rem; margin-bottom:.35em;}
p{margin:0 0 1em;}
a{color:var(--blue-dark);}
ul,ol{margin:0; padding:0;}
img{max-width:100%; display:block;}

.section-inner, .header-inner, .footer-inner{
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
}
.narrow{max-width:680px;}

/* header */
.site-header{
  border-bottom:3px solid var(--blue);
  background:rgba(255,255,255,.84);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  position:sticky; top:0; z-index:10;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:14px; padding-bottom:14px; gap:20px; flex-wrap:wrap;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink);}
.brand-mark{height:48px; width:auto;}
.brand-text{font-family:var(--serif); font-weight:600; font-size:.95rem; line-height:1.2;}
nav ul{display:flex; flex-wrap:wrap; gap:4px; list-style:none;}
nav a{
  display:inline-block; padding:8px 12px; text-decoration:none; color:var(--ink);
  font-size:.92rem; border-radius:2px;
}
nav a:hover{color:var(--blue-dark);}
nav a.active{color:var(--blue-dark); font-weight:600; border-bottom:2px solid var(--orange);}

/* hero */
.hero{
  position:relative; overflow:hidden; color:#fff;
  clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%);
  padding:120px 0 140px;
  background:var(--blue-dark);
}
.hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(135deg, rgba(11,42,133,.88) 0%, rgba(20,64,196,.72) 60%, rgba(11,42,133,.9) 100%);
}
.hero-inner{position:relative; z-index:2; max-width:760px; margin:0 auto; padding:0 24px;}
.hero h1{color:#fff;}
.hero-sub{font-size:1.1rem; color:#dfe6fb;}
.eyebrow{
  font-family:var(--sans); font-weight:600; color:var(--blue-dark);
  margin-bottom:.5em; font-size:.95rem;
}
.eyebrow-light{color:var(--orange);}

/* photo page-head banners for subpages */
.page-head.photo-head{
  position:relative; padding:110px 0 60px; color:#fff;
  background-size:cover; background-position:center;
}
.photo-head h1{color:#fff;}
.section-lead.lead-light{color:#ffffff; text-shadow:0 1px 6px rgba(0,0,0,.45);}
.photo-head .section-lead.lead-light{color:#ffffff; text-shadow:0 1px 8px rgba(0,0,0,.55);}

/* photo grid / gallery */
.photo-grid{gap:22px;}
.photo-feature{margin:0; border:1px solid var(--line); background:#fff; overflow:hidden;}
.photo-feature img{width:100%; height:280px; object-fit:cover; display:block;}
.photo-feature figcaption{padding:14px 16px; font-size:.92rem; color:#3b3f4a; border-top:3px solid var(--orange);}

.inline-video{width:100%; max-width:820px; border:1px solid var(--line); margin-top:8px;}

/* category showcase cards */
.category-card-link{text-decoration:none; color:inherit; display:block;}
.category-card{
  text-align:left; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative; overflow:hidden;
}
.category-card:hover{
  transform:translateY(-6px); box-shadow:0 14px 28px rgba(11,42,133,.16); border-color:var(--orange);
}
.category-icon{font-size:2rem; margin-bottom:.3em; display:inline-block; transition:transform .2s ease;}
.category-card:hover .category-icon{transform:scale(1.18) rotate(-4deg);}
.category-more{
  display:inline-block; margin-top:10px; font-size:.85rem; font-weight:600; color:var(--orange);
  opacity:0; transform:translateX(-6px); transition:opacity .2s ease, transform .2s ease;
}
.category-card:hover .category-more{opacity:1; transform:translateX(0);}
.center-cta{text-align:center; margin-top:32px;}
.reason-grid .card{border-left:4px solid var(--orange);}

/* highlighted coverflow carousel (Trainings Offered + Team) */
.cf-section{padding:44px 0 56px; background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(205,224,255,.65) 100%); overflow:hidden;}
.cf{--cw:440px; --ch:560px; --s1:.8; --s2:1.42; position:relative; outline:none;}
.cf-team{--cw:320px; --ch:500px;}
.cf-stage{position:relative; height:calc(var(--ch) + 50px); touch-action:pan-y;}
.cf-slide{
  position:absolute; top:24px; left:50%; width:var(--cw); height:var(--ch);
  background:#fff; border-radius:18px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 10px 30px rgba(11,42,133,.18);
  transform:translateX(-50%) scale(.6); opacity:0; pointer-events:none; z-index:0; cursor:pointer;
  transition:transform .55s cubic-bezier(.22,.8,.3,1), opacity .45s ease, filter .45s ease, box-shadow .45s ease;
  filter:brightness(.8) saturate(.75);
}
.cf-slide[data-pos="0"]{
  transform:translateX(-50%) scale(1); opacity:1; z-index:5; pointer-events:auto; cursor:default; filter:none;
  box-shadow:0 34px 60px rgba(11,42,133,.38), 0 0 0 3px var(--orange);
}
.cf-slide[data-pos="1"], .cf-slide[data-pos="-1"]{opacity:.85; z-index:3; pointer-events:auto;}
.cf-slide[data-pos="1"]{transform:translateX(calc(-50% + var(--cw) * var(--s1))) scale(.84);}
.cf-slide[data-pos="-1"]{transform:translateX(calc(-50% - var(--cw) * var(--s1))) scale(.84);}
.cf-slide[data-pos="2"], .cf-slide[data-pos="-2"]{opacity:.5; z-index:1; pointer-events:auto;}
.cf-slide[data-pos="2"]{transform:translateX(calc(-50% + var(--cw) * var(--s2))) scale(.7);}
.cf-slide[data-pos="-2"]{transform:translateX(calc(-50% - var(--cw) * var(--s2))) scale(.7);}

.cf-program img{width:100%; height:300px; object-fit:cover; display:block; flex:none;}
.cf-body{padding:18px 22px 20px; flex:1; min-height:0;}
.cf-body h3{font-size:1.25rem; margin:0 0 .4em;}
.cf-body p{margin:0; color:#3b3f4a;}
.cf-body .card-tag{color:var(--orange); margin-bottom:.5em;}
.cf-program .cf-body p:last-child{
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; font-size:.95rem;
}
.cf-photo{height:360px; flex:none; background:linear-gradient(160deg,var(--blue) 0%,var(--blue-dark) 100%); overflow:hidden;}
.cf-photo img{width:100%; height:100%; object-fit:cover; object-position:top center; display:block;}
.cf-head .cf-photo{background:linear-gradient(160deg,var(--orange) 0%,#c94a00 100%);}
.cf-person .cf-body{text-align:center; display:flex; flex-direction:column; justify-content:center; gap:6px;}
.cf-person .cf-body h3{font-family:'Space Grotesk',var(--sans); font-size:1.55rem; font-weight:700; color:var(--blue-dark); margin:0; line-height:1.2;}
.cf-person .cf-body p{font-size:1.08rem; color:#3b4a75; margin:0;}

.cf-controls{display:flex; align-items:center; justify-content:center; gap:18px; margin-top:14px; padding:0 16px;}
.cf-btn{
  flex:none; width:48px; height:48px; border-radius:50%; border:1px solid var(--line); background:#fff;
  color:var(--blue-dark); font-size:1.6rem; line-height:1; cursor:pointer; box-shadow:0 4px 14px rgba(20,20,15,.18);
  transition:background .2s ease, color .2s ease, transform .15s ease;
}
.cf-btn:hover{background:var(--orange); color:#fff;}
.cf-btn:active{transform:scale(.92);}
.cf-dots{display:flex; gap:8px; flex-wrap:wrap; justify-content:center; max-width:60%;}
.cf-dot{width:9px; height:9px; border-radius:99px; border:0; padding:0; background:#c5cde6; cursor:pointer; transition:width .25s ease, background .25s ease;}
.cf-dot.on{width:26px; background:var(--orange);}

@media(max-width:760px){
  .cf{--cw:78vw; --ch:520px; --s1:.9;}
  .cf-team{--cw:72vw; --ch:470px;}
  .cf-slide[data-pos="2"], .cf-slide[data-pos="-2"]{opacity:0; pointer-events:none;}
  .cf-program img{height:220px;}
  .cf-photo{height:320px;}
  .cf-dots{max-width:52%;}
}

/* training catalog cards */
.program-card{padding:0; border-left:1px solid var(--line);}
.program-card img{width:100%; height:150px; object-fit:cover; display:block;}
.program-card .program-body{padding:16px 18px;}
.program-card .card-tag{margin-top:0;}

.partner-list{
  list-style:none; columns:2; column-gap:32px; max-width:820px; margin-top:20px;
}
.partner-list li{
  padding:10px 0 10px 22px; border-bottom:1px solid var(--line); position:relative;
  break-inside:avoid; font-size:.95rem;
}
.partner-list li::before{content:"\2022"; position:absolute; left:0; color:var(--orange); font-weight:700; font-size:1.3rem; line-height:1;}
@media(max-width:640px){.partner-list{columns:1;}}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:1.5em;}
.btn{
  display:inline-block; padding:13px 26px; text-decoration:none; font-weight:600;
  border-radius:2px; font-size:.98rem;
}
.btn-primary{background:var(--orange); color:#fff;}
.btn-primary:hover{background:var(--red);}
.btn-ghost{border:1.5px solid #fff; color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.12);}

/* sections */
.section{padding:64px 0;}
.section.tint{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(208,226,255,.55));}
.section-lead{color:#3b3f4a; max-width:640px; font-size:1.05rem;}
.page-head{padding:56px 0 24px;}

.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:28px;}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:24px;}
@media(max-width:760px){
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
}

.card{
  border:1px solid var(--line); border-left:4px solid var(--blue);
  padding:20px; background:#fff;
}
.card-tag{
  font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em;
  color:var(--blue-dark); margin-bottom:.5em;
}
.stat-card{
  border-top:3px solid var(--orange); padding:18px 4px;
}
.stat-num{font-family:var(--serif); font-size:2.6rem; font-weight:700; color:var(--blue); margin-bottom:.1em;}

.cta-band{background:var(--ink); color:#fff;}
.cta-band h2{color:#fff;}
.cta-band-inner{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.cta-band .btn-primary{background:var(--orange); color:var(--ink);}

/* steps */
.steps{counter-reset:step; list-style:none; max-width:700px;}
.steps li{
  counter-increment:step; position:relative; padding:0 0 28px 52px; border-left:2px solid var(--line);
  margin-left:14px;
}
.steps li:last-child{border-left-color:transparent;}
.steps li::before{
  content:counter(step); position:absolute; left:-15px; top:0;
  width:30px; height:30px; border-radius:50%; background:var(--blue); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:600; font-size:.9rem;
}
.check-list{list-style:none; max-width:600px; margin-top:1em;}
.check-list li{padding:8px 0 8px 28px; border-bottom:1px solid var(--line); position:relative;}
.check-list li::before{content:"\2713"; position:absolute; left:0; color:var(--blue); font-weight:700;}

/* embeds */
.embed-box{
  border:1px solid var(--line); background:var(--tint); aspect-ratio:16/10; overflow:hidden;
}
.embed-box.form-embed{aspect-ratio:auto; height:1200px;}
.embed-box iframe{width:100%; height:100%; border:0;}
.embed-note{margin-top:12px; font-size:.92rem; color:#555;}
.link-out-box{
  border:1px solid var(--line); background:var(--tint); padding:48px 32px; text-align:center;
}
.link-out-box p{max-width:480px; margin:0 auto 20px; color:#3b3f4a;}

/* photo placeholders */
.photo-placeholder{
  aspect-ratio:4/3; background:repeating-linear-gradient(45deg, var(--tint), var(--tint) 10px, #e3e9fa 10px, #e3e9fa 20px);
  margin-bottom:14px;
}
.map-placeholder{
  background:var(--tint); border:1px dashed var(--line); display:flex; align-items:center; justify-content:center;
  min-height:220px; color:#555; text-align:center; padding:20px;
}

/* faq */
.faq-item{border-bottom:1px solid var(--line); padding:16px 0;}
.faq-item summary{font-weight:600; cursor:pointer; font-family:var(--serif); font-size:1.05rem;}
.faq-item p{margin-top:10px; color:#3b3f4a;}

/* footer */
.site-footer{background:var(--ink); color:#d9dce6; margin-top:20px;}
.footer-inner{
  display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px; padding:48px 24px 24px;
}
@media(max-width:760px){.footer-inner{grid-template-columns:1fr;}}
.footer-mark{height:56px; margin-bottom:14px; background:#fff; padding:6px; border-radius:10px; display:inline-block;}
.footer-label{color:var(--orange); font-weight:600; margin-bottom:.6em; font-size:.85rem; text-transform:uppercase; letter-spacing:.03em;}
.footer-links{list-style:none;}
.footer-links li{margin-bottom:6px;}
.footer-links a{color:#d9dce6; text-decoration:none;}
.footer-links a:hover{color:var(--orange);}
.footer-fine{
  border-top:1px solid #2a2b26; text-align:center; font-size:.82rem; color:#9498a5;
  padding:16px 24px; margin:0;
}

:focus-visible{outline:3px solid var(--orange); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){*{transition:none !important;}}


/* ===== site backdrop: airy sky-blue gradient + diagonal corner shapes ===== */
body::before{
  content:""; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(900px 520px at 88% 2%, rgba(96,165,250,.40), transparent 62%),
    radial-gradient(760px 520px at 2% 48%, rgba(186,213,255,.60), transparent 62%),
    radial-gradient(900px 560px at 98% 100%, rgba(59,130,246,.30), transparent 60%),
    radial-gradient(760px 300px at 42% 10%, rgba(255,255,255,.95), transparent 70%),
    linear-gradient(180deg,#f8fbff 0%,#e9f1ff 55%,#dce9ff 100%);
}
body::after{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(225deg, rgba(37,99,235,.22) 0 30%, transparent 30.2%) right top/34vw 32vh no-repeat,
    linear-gradient(225deg, transparent 0 38%, rgba(96,165,250,.20) 38% 43%, transparent 43.2%) right top/34vw 32vh no-repeat,
    linear-gradient(315deg, rgba(37,99,235,.20) 0 30%, transparent 30.2%) right bottom/32vw 28vh no-repeat,
    linear-gradient(315deg, transparent 0 38%, rgba(96,165,250,.18) 38% 43%, transparent 43.2%) right bottom/32vw 28vh no-repeat,
    linear-gradient(45deg, rgba(147,197,253,.28) 0 22%, transparent 22.2%) left bottom/22vw 22vh no-repeat;
}

/* ===== futuristic stats ===== */
.stats-section{padding:0 0 56px; margin-top:-34px; position:relative; z-index:2;}
.stats-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.stat-fx{
  position:relative; overflow:hidden; border-radius:18px; padding:26px 26px 24px;
  background:
    linear-gradient(rgba(20,64,196,.055) 1px, transparent 1px) 0 0/22px 22px,
    linear-gradient(90deg, rgba(20,64,196,.055) 1px, transparent 1px) 0 0/22px 22px,
    linear-gradient(160deg, rgba(255,255,255,.94), rgba(226,238,255,.82));
  border:1px solid rgba(20,64,196,.2);
  box-shadow:0 14px 34px rgba(20,64,196,.14), inset 0 1px 0 #fff;
  transition:transform .25s ease, box-shadow .25s ease;
}
.stat-fx::before{
  content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:linear-gradient(90deg,var(--blue),#22d3ee 60%,transparent);
}
.stat-fx::after{
  content:""; position:absolute; right:-40px; bottom:-40px; width:120px; height:120px; border-radius:50%;
  background:radial-gradient(circle,rgba(34,211,238,.30),transparent 70%);
}
.stat-fx:hover{transform:translateY(-4px); box-shadow:0 20px 42px rgba(20,64,196,.22), 0 0 0 1px rgba(34,211,238,.6);}
.stat-fx-idx{
  position:absolute; right:20px; top:14px; font-family:'Space Grotesk',var(--sans); font-weight:700;
  font-size:2.6rem; line-height:1; color:rgba(20,64,196,.12);
}
.stat-fx-icon{
  width:56px; height:56px; border-radius:14px; display:grid; place-items:center; color:var(--blue);
  background:rgba(20,64,196,.08); border:1px solid rgba(20,64,196,.25); box-shadow:0 0 20px rgba(34,211,238,.4);
}
.stat-fx-icon svg{width:30px; height:30px;}
.stat-fx-num{
  margin:18px 0 2px; font-family:'Space Grotesk',var(--sans); font-weight:700; line-height:1.05;
  font-size:clamp(2.4rem,4.4vw,3.4rem); letter-spacing:-.02em;
}
.stat-fx-num .count{
  background:linear-gradient(90deg,var(--blue-dark),var(--blue) 55%,#22a7f0);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.stat-fx-label{margin:0; font-size:.82rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:#3b4a75;}
@media(max-width:820px){.stats-grid{grid-template-columns:1fr;} .stats-section{margin-top:-20px;}}

/* ===== futuristic Explore cards (not clickable) ===== */
.fx-eyebrow{
  display:flex; align-items:center; gap:14px; margin:0 0 .6em; font-size:.8rem; font-weight:600;
  letter-spacing:.22em; color:var(--blue-dark);
}
.fx-eyebrow::after{content:""; height:1px; width:90px; background:linear-gradient(90deg,var(--blue),transparent);}
.fx-title{font-family:'Space Grotesk',var(--sans); font-weight:700; font-size:clamp(2.1rem,4.4vw,3.2rem); line-height:1.05; margin:0 0 .35em; color:#0a1a52;}
.fx-title span{
  display:block; font-style:italic;
  background:linear-gradient(90deg,var(--blue-dark),var(--blue) 55%,#22a7f0);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.fx-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:30px;}
.fx-card{
  --c:#22d3ee; position:relative; overflow:hidden; border-radius:18px; color:#fff;
  display:flex; align-items:center; gap:20px; padding:30px 24px 28px; min-height:220px;
  background:
    linear-gradient(100deg, rgba(5,18,62,.97) 34%, rgba(8,30,96,.84) 66%, rgba(8,30,96,.6) 100%),
    var(--photo) right center/cover no-repeat;
  border:1px solid rgba(120,170,255,.28);
  box-shadow:0 16px 36px rgba(5,18,62,.32);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.fx-card::before{
  content:""; position:absolute; left:0; top:0; width:84px; height:13px; background:var(--c);
  clip-path:polygon(0 0,100% 0,84% 100%,0 100%);
}
.fx-card::after{
  content:""; position:absolute; inset:0; pointer-events:none; border-radius:18px;
  background:radial-gradient(260px 160px at 12% 50%, color-mix(in srgb, var(--c) 22%, transparent), transparent 70%);
}
.fx-card:hover{transform:translateY(-6px); border-color:var(--c); box-shadow:0 24px 46px rgba(5,18,62,.42), 0 0 22px color-mix(in srgb, var(--c) 45%, transparent);}
.fx-icon{flex:none; width:112px; height:112px; color:var(--c); position:relative; z-index:1; filter:drop-shadow(0 0 7px color-mix(in srgb, var(--c) 70%, transparent));}
.fx-arc{transform-origin:60px 60px; transition:transform .9s cubic-bezier(.22,.8,.3,1);}
.fx-card:hover .fx-arc{transform:rotate(200deg);}
.fx-text{position:relative; z-index:1;}
.fx-card .fx-text h3{font-family:'Space Grotesk',var(--sans); font-size:1.28rem; line-height:1.15; margin:0 0 .5em; color:#fff;}
.fx-bar{display:block; width:42px; height:3px; border-radius:3px; background:var(--c); margin-bottom:.7em; box-shadow:0 0 10px var(--c);}
.fx-card .fx-text p{margin:0; font-size:.93rem; color:#d7e2ff;}
.fx-feature .fx-text h3, .fx-step .fx-text h3{font-family:'Space Grotesk',var(--sans); font-size:1.05rem; line-height:1.2; margin:0 0 .4em; color:#0a1a52;}
.fx-feature .fx-text p, .fx-step .fx-text p{margin:0; font-size:.92rem; color:#3b3f4a;}
@media(max-width:1000px){.fx-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){
  .fx-grid{grid-template-columns:1fr;}
  .fx-icon{width:88px; height:88px;}
}

/* ===== 2026 ratings (stars) ===== */
.ratings{background:linear-gradient(135deg,var(--blue-dark) 0%,var(--blue) 100%); color:#fff;}
.ratings h2{color:#fff; margin-bottom:.9em;}
.ratings-grid{display:grid; grid-template-columns:minmax(240px,340px) 1fr; gap:48px; align-items:center;}
.rating-overall{
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.28); border-top:4px solid var(--orange);
  border-radius:16px; padding:32px 24px; text-align:center;
}
.rating-overall-label{font-weight:600; margin:0 0 .4em; color:#e4e9f9;}
.rating-overall-num{font-family:'Space Grotesk',var(--sans); font-size:4.4rem; font-weight:700; line-height:1; margin:0 0 .15em;}
.rating-overall-num span{font-size:1.3rem; font-weight:500; color:#c9d3f5;}
.starbar{position:relative; display:inline-block; font-size:1.45rem; line-height:1; letter-spacing:3px; white-space:nowrap;}
.starbar.big{font-size:2.3rem; letter-spacing:5px;}
.starbar-base{color:rgba(255,255,255,.28);}
.starbar-fill{position:absolute; left:0; top:0; overflow:hidden; width:var(--w); color:var(--orange); text-shadow:0 0 12px rgba(255,106,0,.55);}
.ratings.js .starbar-fill{width:0; transition:width 1.2s cubic-bezier(.22,.8,.3,1);}
.ratings.js.in .starbar-fill{width:var(--w);}
.rating-row{
  display:grid; grid-template-columns:1fr auto 52px; align-items:center; gap:16px;
  padding:13px 0; border-bottom:1px solid rgba(255,255,255,.16);
}
.rating-row:last-child{border-bottom:0;}
.rating-name{font-size:1rem;}
.rating-score{color:var(--orange); font-family:'Space Grotesk',var(--sans); font-size:1.15rem; text-align:right;}
.ratings.js.in .rating-row:nth-child(2) .starbar-fill{transition-delay:.08s;}
.ratings.js.in .rating-row:nth-child(3) .starbar-fill{transition-delay:.16s;}
.ratings.js.in .rating-row:nth-child(4) .starbar-fill{transition-delay:.24s;}
.ratings.js.in .rating-row:nth-child(5) .starbar-fill{transition-delay:.32s;}
.ratings.js.in .rating-row:nth-child(6) .starbar-fill{transition-delay:.4s;}
@media(max-width:820px){.ratings-grid{grid-template-columns:1fr; gap:28px;}}
@media(max-width:520px){
  .rating-row{grid-template-columns:1fr auto; gap:6px 12px;}
  .rating-name{grid-column:1;} .rating-score{grid-column:2; grid-row:1;}
  .rating-row .starbar{grid-column:1 / -1; grid-row:2;}
}

/* ===== scroll-reveal with assembling mosaic tiles (inspired by the reference video) ===== */
.reveal{
  opacity:0; transform:translateY(26px); position:relative;
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,.8,.3,1);
}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
}
.mosaic{position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0;}
.mosaic i{
  position:absolute; width:9px; height:9px; margin:-4px 0 0 -4px; border-radius:3px;
  background:var(--c,#22d3ee); box-shadow:0 0 10px color-mix(in srgb, var(--c,#22d3ee) 70%, transparent);
  opacity:0; transform:translate(var(--dx),var(--dy)) scale(.35) rotate(25deg);
  transition:transform .8s cubic-bezier(.22,.8,.3,1), opacity .6s ease;
  transition-delay:var(--d,0s);
}
.reveal.in .mosaic i{opacity:.75; transform:translate(0,0) scale(1) rotate(0deg);}
.fx-card .mosaic, .stat-fx .mosaic{z-index:0;}
.fx-card .fx-icon, .fx-card .fx-text, .stat-fx .stat-fx-icon, .stat-fx .stat-fx-num, .stat-fx .stat-fx-label, .stat-fx .stat-fx-idx{position:relative; z-index:1;}

/* ===== partner logos ===== */
.partner-logos{display:flex; flex-wrap:wrap; gap:26px; margin:30px 0 10px;}
.partner-logo{margin:0; text-align:center; flex:0 0 130px;}
.pl-mark{
  position:relative; width:104px; height:104px; display:grid; place-items:center;
}
.pl-mark img{max-width:100%; max-height:100%; object-fit:contain; display:block; grid-area:1/1; border-radius:50%;}
.pl-fallback{
  grid-area:1/1; display:none; align-items:center; justify-content:center;
  width:100%; height:100%; border-radius:50%; background:#fff; border:1px solid var(--line);
  font-family:'Space Grotesk',var(--sans); font-weight:700; font-size:1rem; color:var(--blue-dark);
}
.partner-logo figcaption{margin-top:10px; font-size:.82rem; color:#3b4a75; line-height:1.25;}
.fx-chips{list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; padding:0;}
.fx-chips li{
  font-size:.86rem; padding:8px 14px; border-radius:99px; background:#fff;
  border:1px solid var(--line); color:#2a3352;
}

/* ===== shared fx-panel building blocks (Process/Request/About) ===== */
.fx-title.sm{font-size:clamp(1.7rem,3.2vw,2.3rem); margin-bottom:.3em;}
.fx-panel{
  --c:#22d3ee; position:relative; overflow:hidden; border-radius:16px;
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(226,238,255,.85));
  border:1px solid rgba(20,64,196,.16); box-shadow:0 12px 26px rgba(20,64,196,.10);
  transition:transform .2s ease, box-shadow .2s ease;
}
.fx-panel:hover{transform:translateY(-3px); box-shadow:0 18px 34px rgba(20,64,196,.16);}
.fx-panel::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--c);}

.fx-feature-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:28px;}
.fx-feature{display:flex; gap:18px; align-items:flex-start; padding:24px 22px;}
.fx-feature .fx-icon{flex:none; width:64px; height:64px; color:var(--c);}
.fx-feature h3{font-family:'Space Grotesk',var(--sans); font-size:1.05rem; margin:0 0 .4em;}
.fx-feature p{margin:0; font-size:.92rem; color:#3b3f4a;}

.fx-mini-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:26px;}
.fx-mini{display:flex; align-items:center; gap:14px; padding:18px 20px;}
.fx-mini p{margin:0; font-size:.95rem;}
.fx-stepnum{
  flex:none; width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
  background:color-mix(in srgb, var(--c) 18%, #fff); color:var(--c); font-weight:700;
  font-family:'Space Grotesk',var(--sans); font-size:.85rem;
}
.fx-stepnum.sm{width:30px; height:30px; font-size:.78rem;}
.fx-check{
  flex:none; width:30px; height:30px; border-radius:9px; display:grid; place-items:center;
  background:var(--c); color:#fff; font-weight:700;
}

.fx-steps{list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:16px;}
.fx-step{display:flex; gap:18px; align-items:flex-start; padding:22px 24px;}
.fx-step .fx-stepnum{width:44px; height:44px; font-size:1rem; border-radius:12px;}
.fx-step h3{font-family:'Space Grotesk',var(--sans); font-size:1.08rem; margin:0 0 .4em;}
.fx-step p{margin:0; font-size:.93rem; color:#3b3f4a;}

.fx-tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:26px;}
.fx-tile{padding:20px 22px; text-align:center;}
.fx-tile::before{left:0; top:0; bottom:auto; width:100%; height:4px;}
.fx-tile strong{display:block; font-family:'Space Grotesk',var(--sans); font-size:1.2rem; color:var(--blue-dark); margin-bottom:.3em;}
.fx-tile p{margin:0; font-size:.86rem; color:#3b3f4a;}
.fx-frame{border-radius:18px; padding:6px; background:linear-gradient(140deg,rgba(20,64,196,.14),rgba(34,211,238,.14)); border:1px solid var(--line);}
.fx-frame .embed-box{border:0;}

.contact-grid{align-items:flex-start;}
.contact-list{display:flex; flex-direction:column; gap:14px;}
.fx-contact{display:flex; gap:16px; align-items:center; padding:18px 20px;}
.fx-contact-ico{flex:none; width:48px; height:48px; border-radius:12px; display:grid; place-items:center; background:color-mix(in srgb, var(--c) 18%, #fff); color:var(--c);}
.fx-contact h3{margin:0 0 .25em; font-size:.95rem; font-family:'Space Grotesk',var(--sans);}
.fx-contact p{margin:0; font-size:.9rem; color:#3b3f4a;}

.faq-list .faq-item{background:rgba(255,255,255,.7); border:1px solid var(--line); border-radius:12px; padding:14px 18px; margin-bottom:10px;}
.faq-list .faq-item:last-child{margin-bottom:0;}

@media(max-width:760px){
  .fx-feature-grid, .fx-mini-grid, .fx-tiles{grid-template-columns:1fr;}
}

/* letters-only notice banner */
.fx-notice{
  display:block; padding:18px 22px; margin-bottom:28px; border-left-width:5px;
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(255,244,214,.85));
}
.fx-notice strong{display:block; font-family:'Space Grotesk',var(--sans); font-size:1.02rem; color:#8a5a00; margin-bottom:.3em;}
.fx-notice p{margin:0; font-size:.92rem; color:#3b3f4a;}

/* home training video */
.video-frame{max-width:900px; margin:28px auto 0;}
.video-embed{position:relative; width:100%; padding-top:56.25%; border-radius:14px; overflow:hidden; background:#000;}
.video-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
