:root{
  --navy:#0B2C42;
  --navy-2:#0F3A55;
  --teal-deep:#0B5A7C;
  --teal:#0E7EA6;
  --cyan:#2AACC9;
  --gold:#C7A15A;
  --gold-2:#B08B44;
  --bg:#F8F6F1;
  --surface:#FFFFFF;
  --ink:#0B2C42;
  --ink-soft:#4B6273;
  --line:#E4E0D6;
  --danger:#C0392B;
  --success:#1F7A4D;
  --shadow: 0 20px 50px -25px rgba(11,44,66,.35);
  --radius: 14px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Alexandria', sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,.disp{font-family:'Alexandria',sans-serif; color:var(--navy);}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button,input,select,textarea{font:inherit;}
.wrap{max-width:1240px; margin:0 auto; padding:0 28px;}
section{position:relative;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Alexandria',sans-serif; font-weight:700; font-size:13px;
  letter-spacing:.3px; color:var(--teal);
  background:rgba(14,126,166,.08); padding:6px 14px; border-radius:999px;
  margin-bottom:16px;
}
.eyebrow::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--gold);}
.eyebrow.light{background:rgba(255,255,255,.1); color:#dff0f5;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Alexandria',sans-serif; font-weight:700; font-size:15px;
  padding:14px 26px; border-radius:10px; cursor:pointer; border:2px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn:disabled{opacity:.65; cursor:not-allowed; transform:none !important;}
.btn-primary{background:var(--teal); color:#fff; box-shadow:0 14px 30px -12px rgba(14,126,166,.55);}
.btn-primary:hover:not(:disabled){transform:translateY(-2px); box-shadow:0 18px 36px -12px rgba(14,126,166,.65);}
.btn-gold{background:var(--gold); color:var(--navy); box-shadow:0 14px 30px -12px rgba(199,161,90,.55);}
.btn-gold:hover:not(:disabled){transform:translateY(-2px);}
.btn-outline{border-color:rgba(255,255,255,.5); color:#fff; background:transparent;}
.btn-outline:hover:not(:disabled){background:rgba(255,255,255,.12); border-color:#fff;}
.btn-outline-dark{border-color:var(--navy); color:var(--navy); background:transparent;}
.btn-outline-dark:hover:not(:disabled){background:var(--navy); color:#fff;}
.btn-block{width:100%;}

/* Topbar */
.topbar{background:var(--navy); color:#cfe3ec; font-size:13px;}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:40px;}
.topbar-links{display:flex; gap:22px; align-items:center;}
.topbar-links a{opacity:.85; display:flex; align-items:center; gap:6px;}
.topbar-links a:hover{opacity:1; color:var(--cyan);}
.topbar-social{display:flex; gap:14px;}
.topbar-social a{width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center;}
.topbar-social a:hover{background:var(--teal);}
.topbar-social svg{width:13px; height:13px; fill:#cfe3ec;}

/* Header */
header.site{
  background:rgba(248,246,241,.92); backdrop-filter:blur(10px);
  position:sticky; top:0; z-index:100; border-bottom:1px solid var(--line);
}
header.site .wrap{display:flex; align-items:center; justify-content:space-between; height:88px; gap:24px; position:relative;}
.logo img{height:52px; width:auto;}
nav.main-nav{display:flex; gap:4px; align-items:center;}
nav.main-nav a{
  font-family:'Alexandria',sans-serif; font-weight:600; font-size:14px;
  padding:10px 14px; border-radius:8px; color:var(--navy); position:relative;
  transition:color .2s ease;
}
nav.main-nav a:hover{color:var(--teal);}
nav.main-nav a.active{color:var(--teal);}
nav.main-nav a.active::after{
  content:""; position:absolute; right:14px; left:14px; bottom:4px; height:2px; background:var(--gold);
  border-radius:2px;
}
.header-cta{display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end;}
.burger{
  display:none; width:44px; height:44px; border-radius:10px; border:1px solid var(--line);
  align-items:center; justify-content:center; background:#fff; flex-direction:column; gap:5px; cursor:pointer;
}
.burger span{display:block; width:20px; height:2px; background:var(--navy);}
nav.main-nav.open{
  display:flex !important; position:absolute; top:88px; inset-inline:0; background:#fff;
  flex-direction:column; padding:16px 28px; border-bottom:1px solid var(--line); gap:2px;
  box-shadow:0 16px 30px -20px rgba(11,44,66,.35);
}

/* Hero home */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 62%, var(--teal-deep) 100%);
  color:#fff; padding:100px 0 0;
}
.hero .wrap{position:relative; z-index:3; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; padding-bottom:70px;}
.hero-routes{position:absolute; inset:0; z-index:1; opacity:.55; pointer-events:none;}
.hero-glow{position:absolute; top:-160px; left:-120px; width:520px; height:520px; background:radial-gradient(circle, rgba(42,172,201,.35), transparent 65%); z-index:0;}
.hero h1{
  font-size:clamp(34px, 4.6vw, 58px); font-weight:900; line-height:1.28; margin-bottom:22px; letter-spacing:-.5px; color:#fff;
}
.hero h1 em{font-style:normal; color:var(--cyan);}
.hero p.lead{font-size:18px; color:#cfe3ec; max-width:520px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:56px;}
.hero-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid rgba(255,255,255,.14); padding-top:28px;}
.hero-stats div{border-inline-start:1px solid rgba(255,255,255,.14); padding-inline-start:20px;}
.hero-stats div:first-child{border-inline-start:none; padding-inline-start:0;}
.hero-stats b{display:block; font-family:'Alexandria',sans-serif; font-size:30px; font-weight:800; color:#fff;}
.hero-stats span{font-size:13px; color:#a9c2cf;}
.hero-art{position:relative; z-index:2; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;}
.hero-art img{width:100%; max-width:420px; filter:drop-shadow(0 30px 60px rgba(0,0,0,.35));}
.hero-badge{
  position:absolute; bottom:6%; right:2%; background:#fff; color:var(--navy); border-radius:14px;
  padding:16px 20px; box-shadow:var(--shadow); display:flex; align-items:center; gap:12px; max-width:230px;
}
.hero-badge .dot{width:44px; height:44px; border-radius:50%; background:var(--gold); flex:none; display:flex; align-items:center; justify-content:center; color:#fff; font-family:'Alexandria'; font-weight:800;}
.hero-badge b{display:block; font-family:'Alexandria'; font-size:14px;}
.hero-badge span{font-size:12px; color:var(--ink-soft);}

/* Page hero (inner pages) */
.page-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 55%, var(--teal-deep) 100%);
  color:#fff; padding:72px 0 64px;
}
.page-hero::before{
  content:""; position:absolute; inset:0; opacity:.35; pointer-events:none;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M0 200 L200 0" stroke="white" stroke-opacity="0.08" stroke-width="40"/></svg>');
  background-size:180px;
}
.page-hero .wrap{position:relative; z-index:1;}
.breadcrumb{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:13px; color:#a9c2cf; margin-bottom:18px;}
.breadcrumb a{color:#dff0f5;}
.breadcrumb a:hover{color:var(--cyan);}
.breadcrumb span{opacity:.6;}
.page-hero h1{color:#fff; font-size:clamp(28px,3.6vw,44px); font-weight:900; line-height:1.3; margin-bottom:14px;}
.page-hero p{color:#cfe3ec; max-width:640px; font-size:17px;}

/* Partners */
.partners{background:var(--surface); border-bottom:1px solid var(--line);}
.partners .wrap{padding:26px 28px; display:flex; align-items:center; gap:34px; flex-wrap:wrap; justify-content:space-between;}
.partners .label{font-family:'Alexandria'; font-weight:700; font-size:13px; color:var(--ink-soft); white-space:nowrap;}
.partners .marks{display:flex; gap:34px; flex-wrap:wrap; align-items:center; opacity:.75;}
.partners .marks a,
.partners .marks span{font-family:'Alexandria'; font-weight:700; font-size:14px; color:var(--navy); border:1px solid var(--line); padding:8px 16px; border-radius:8px; transition:border-color .2s, color .2s;}
.partners .marks a:hover{border-color:var(--teal); color:var(--teal);}

/* Section heading */
.sec-head{max-width:640px; margin-bottom:48px;}
.sec-head h2{font-size:clamp(26px,3vw,36px); font-weight:800; line-height:1.35;}
.sec-head p{color:var(--ink-soft); font-size:16px; margin-top:12px;}
.sec-head.center{margin-inline:auto; text-align:center;}

/* About */
.about{padding:110px 0;}
.about .wrap{display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:center;}
.about-visual{position:relative; border-radius:20px; overflow:hidden; background:var(--navy); aspect-ratio:4/5; box-shadow:var(--shadow);}
.about-visual svg{position:absolute; inset:0; width:100%; height:100%;}
.about-visual .cap{position:absolute; bottom:0; right:0; left:0; padding:26px 24px; background:linear-gradient(0deg, rgba(11,44,66,.92), transparent);}
.about-visual .cap b{color:#fff; font-family:'Alexandria'; font-size:20px; display:block;}
.about-visual .cap span{color:#cfe3ec; font-size:13px;}
.about-pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px;}
.pillar{border-inline-start:3px solid var(--gold); padding-inline-start:14px;}
.pillar b{font-family:'Alexandria'; font-size:15px; display:block; margin-bottom:4px;}
.pillar span{font-size:13px; color:var(--ink-soft);}

/* Programs */
.programs{padding:110px 0; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.programs.plain{border:none; background:transparent; padding:70px 0 110px;}
.programs-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:48px; flex-wrap:wrap;}
.grid-programs{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card-prog{
  background:var(--bg); border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px;
  position:relative; overflow:hidden; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  display:flex; flex-direction:column; height:100%;
}
.programs.plain .card-prog{background:var(--surface);}
.card-prog:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--teal);}
.card-prog .icn{
  width:52px; height:52px; border-radius:12px; background:var(--teal); color:#fff;
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.card-prog .icn svg{width:26px; height:26px; stroke:#fff; fill:none;}
.card-prog h3{font-size:19px; margin-bottom:10px;}
.card-prog p{font-size:14px; color:var(--ink-soft); margin-bottom:20px; flex:1;}
.card-prog .meta{display:flex; align-items:center; justify-content:space-between; padding-top:16px; border-top:1px dashed var(--line);}
.card-prog .meta .tag{font-size:12px; font-family:'Alexandria'; font-weight:700; color:var(--teal-deep);}
.card-prog .meta .more{font-size:13px; font-family:'Alexandria'; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:6px;}
.card-prog .meta .more svg{width:14px; height:14px;}

/* Filters */
.filters{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px;}
.filter-btn{
  font-family:'Alexandria'; font-weight:700; font-size:13px; padding:10px 16px; border-radius:999px;
  border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); cursor:pointer;
  transition:all .2s ease;
}
.filter-btn:hover,.filter-btn.active{background:var(--navy); color:#fff; border-color:var(--navy);}

/* Why */
.why{padding:110px 0;}
.why .wrap{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.why-feats{display:grid; gap:26px;}
.feat{display:flex; gap:18px;}
.feat .num{
  font-family:'Alexandria'; font-weight:800; font-size:14px; color:var(--teal);
  width:38px; height:38px; border:1px solid var(--line); border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none;
}
.feat h4{font-size:16px; margin-bottom:6px;}
.feat p{font-size:14px; color:var(--ink-soft);}
.why-media{position:relative; border-radius:20px; overflow:hidden; aspect-ratio:1/1; box-shadow:var(--shadow);}
.why-media svg{width:100%; height:100%; display:block;}

/* Trainers / journey */
.journey{padding:110px 0; background:var(--navy); color:#fff; position:relative; overflow:hidden;}
.journey-lines{position:absolute; inset:0; opacity:.25;}
.journey .sec-head h2, .journey .sec-head p{color:#fff;}
.journey .sec-head p{color:#b9cdd8;}
.journey-steps{position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:20px;}
.jstep{background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:28px 22px; backdrop-filter:blur(4px);}
.jstep .n{font-family:'Alexandria'; font-weight:900; font-size:34px; color:var(--gold); margin-bottom:14px;}
.jstep h4{color:#fff; font-family:'Alexandria'; font-size:17px; margin-bottom:8px;}
.jstep p{font-size:13px; color:#b9cdd8;}
.trainer-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.tcard-pro{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:28px 22px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.tcard-pro:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.tcard-pro .avatar-lg{
  width:72px; height:72px; border-radius:50%; background:linear-gradient(135deg,var(--teal-deep),var(--cyan));
  color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Alexandria'; font-weight:800; font-size:24px; margin-bottom:18px;
}
.tcard-pro h3{font-size:18px; margin-bottom:6px;}
.tcard-pro .role{font-size:13px; color:var(--teal); font-family:'Alexandria'; font-weight:700; margin-bottom:10px;}
.tcard-pro p{font-size:14px; color:var(--ink-soft);}

/* Testimonials */
.testi{padding:110px 0; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.tcard{background:var(--bg); border-radius:var(--radius); padding:30px 26px; border:1px solid var(--line);}
.tcard .stars{color:var(--gold); font-size:14px; margin-bottom:16px; letter-spacing:2px;}
.tcard p{font-size:15px; color:var(--navy); margin-bottom:22px;}
.tcard .who{display:flex; align-items:center; gap:12px;}
.tcard .avatar{width:44px; height:44px; border-radius:50%; background:var(--teal); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Alexandria'; font-weight:800;}
.tcard .who b{display:block; font-family:'Alexandria'; font-size:14px;}
.tcard .who span{font-size:12px; color:var(--ink-soft);}

/* News / certs preview */
.news{padding:110px 0;}
.grid-news{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.ncard{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--surface); transition:transform .3s ease, box-shadow .3s ease; display:flex; flex-direction:column;}
.ncard:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.ncard .thumb{aspect-ratio:16/10; background:linear-gradient(135deg, var(--teal-deep), var(--teal)); position:relative; overflow:hidden;}
.ncard .thumb svg{position:absolute; inset:0; width:100%; height:100%; opacity:.5;}
.ncard .thumb .date{position:absolute; bottom:14px; right:14px; background:#fff; color:var(--navy); font-family:'Alexandria'; font-weight:700; font-size:12px; padding:6px 12px; border-radius:8px;}
.ncard .body{padding:22px 22px 26px; flex:1; display:flex; flex-direction:column;}
.ncard h3{font-size:17px; margin-bottom:10px; line-height:1.5;}
.ncard p{font-size:13px; color:var(--ink-soft); margin-bottom:16px; flex:1;}
.ncard .more{font-family:'Alexandria'; font-weight:700; font-size:13px; color:var(--teal-deep); display:flex; align-items:center; gap:6px;}

/* CTA */
.cta-band{padding:80px 0;}
.cta-band .box{
  background:linear-gradient(120deg, var(--teal-deep), var(--teal) 55%, var(--cyan));
  border-radius:24px; padding:56px 60px; display:flex; align-items:center; justify-content:space-between; gap:40px;
  color:#fff; position:relative; overflow:hidden; flex-wrap:wrap;
}
.cta-band .box::after{
  content:""; position:absolute; inset:0; background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M0 200 L200 0" stroke="white" stroke-opacity="0.08" stroke-width="40"/></svg>');
  background-size:200px; opacity:.5;
}
.cta-band h3{color:#fff; font-size:clamp(22px,2.6vw,30px); max-width:480px; position:relative; z-index:1;}
.cta-band p{color:#e4f3f8; margin-top:10px; max-width:440px; position:relative; z-index:1; font-size:15px;}
.cta-band .actions{position:relative; z-index:1;}

/* Footer */
footer.site{background:var(--navy); color:#b9cdd8; padding-top:80px;}
footer.site .wrap{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.1);}
.fcol h5{color:#fff; font-family:'Alexandria'; font-size:15px; margin-bottom:20px;}
.fcol ul{display:grid; gap:12px;}
.fcol a{font-size:14px; color:#b9cdd8; transition:color .2s;}
.fcol a:hover{color:var(--cyan);}
.fbrand img{height:46px; margin-bottom:18px; filter:brightness(0) invert(1);}
.fbrand p{font-size:14px; color:#a9c2cf; max-width:280px; margin-bottom:22px;}
.fbrand .fsocial{display:flex; gap:10px;}
.fbrand .fsocial a{width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center;}
.fbrand .fsocial a:hover{background:var(--teal);}
.fbrand .fsocial svg{width:15px; height:15px; fill:#fff;}
.fcontact li{display:flex; gap:10px; font-size:14px; align-items:flex-start;}
.fcontact svg{width:16px; height:16px; flex:none; margin-top:3px; stroke:var(--cyan); fill:none;}
.fbottom{padding:22px 0; display:flex; align-items:center; justify-content:space-between; font-size:13px; color:#8ba7b5; flex-wrap:wrap; gap:12px;}
.fbottom .flinks{display:flex; gap:18px;}
.fbottom .flinks a:hover{color:#fff;}

/* Accreditations */
.acc-section{padding:80px 0 110px;}
.acc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.acc-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:32px 28px;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.acc-card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--teal);}
.acc-card .badge{
  display:inline-flex; align-items:center; gap:8px; font-family:'Alexandria'; font-weight:700; font-size:12px;
  color:var(--teal-deep); background:rgba(14,126,166,.08); padding:6px 12px; border-radius:999px; margin-bottom:18px;
}
.acc-card .mark{
  width:64px; height:64px; border-radius:16px; background:linear-gradient(135deg,var(--navy),var(--teal));
  color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Alexandria'; font-weight:900; font-size:18px; margin-bottom:18px;
}
.acc-card h3{font-size:20px; margin-bottom:10px;}
.acc-card p{font-size:14px; color:var(--ink-soft); margin-bottom:18px;}
.acc-card ul{display:grid; gap:8px;}
.acc-card li{font-size:13px; color:var(--ink); padding-inline-start:16px; position:relative;}
.acc-card li::before{content:""; position:absolute; right:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--gold);}

/* Program detail */
.prog-detail{padding:70px 0 110px;}
.prog-layout{display:grid; grid-template-columns:1.4fr .8fr; gap:40px; align-items:start;}
.prog-main{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:40px 36px;}
.prog-main h2{font-size:24px; margin:28px 0 14px;}
.prog-main h2:first-child{margin-top:0;}
.prog-main p{color:var(--ink-soft); margin-bottom:14px;}
.prog-main ul{display:grid; gap:10px; margin:16px 0 8px;}
.prog-main li{position:relative; padding-inline-start:22px; color:var(--ink); font-size:15px;}
.prog-main li::before{content:""; position:absolute; right:0; top:10px; width:8px; height:8px; border-radius:50%; background:var(--teal);}
.meta-row{display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 8px;}
.chip{
  font-family:'Alexandria'; font-weight:700; font-size:12px; padding:8px 14px; border-radius:999px;
  background:rgba(14,126,166,.08); color:var(--teal-deep);
}
.prog-side{position:sticky; top:110px; display:grid; gap:18px;}
.side-card{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px 24px; box-shadow:var(--shadow);}
.side-card h3{font-size:18px; margin-bottom:14px;}
.side-list{display:grid; gap:14px; margin-bottom:22px;}
.side-list div{display:flex; justify-content:space-between; gap:12px; font-size:14px; border-bottom:1px dashed var(--line); padding-bottom:10px;}
.side-list div:last-child{border:none; padding:0;}
.side-list b{font-family:'Alexandria'; color:var(--navy);}
.side-list span{color:var(--ink-soft); text-align:start;}
.related{padding:0 0 110px;}

/* Forms */
.form-section{padding:70px 0 110px;}
.form-layout{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:start;}
.form-card,.info-card{
  background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:36px 32px; box-shadow:var(--shadow);
}
.form-card h2,.info-card h2{font-size:24px; margin-bottom:8px;}
.form-card > p,.info-card > p{color:var(--ink-soft); margin-bottom:28px; font-size:15px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-grid .full{grid-column:1 / -1;}
.field{display:grid; gap:8px;}
.field label{font-family:'Alexandria'; font-weight:700; font-size:13px; color:var(--navy);}
.field label .req{color:var(--danger); margin-inline-start:4px;}
.field input,.field select,.field textarea{
  width:100%; border:1px solid var(--line); border-radius:10px; padding:13px 14px;
  background:#fff; color:var(--ink); transition:border-color .2s, box-shadow .2s;
}
.field textarea{min-height:120px; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--teal); box-shadow:0 0 0 4px rgba(14,126,166,.12);
}
.field input.is-invalid,.field select.is-invalid,.field textarea.is-invalid{
  border-color:var(--danger); box-shadow:0 0 0 4px rgba(192,57,43,.1);
}
.field .error{font-size:12px; color:var(--danger); min-height:16px;}
.field-check{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink-soft);}
.field-check input{margin-top:5px; width:16px; height:16px; accent-color:var(--teal); flex:none;}
.field-check label{flex:1; cursor:pointer;}
.field-check .error{flex:0 0 100%;}
.form-actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:8px;}
.form-note{font-size:13px; color:var(--ink-soft);}
.alert{
  display:none; border-radius:12px; padding:14px 16px; margin-bottom:20px; font-size:14px; font-family:'Alexandria'; font-weight:600;
}
.alert.show{display:block;}
.alert-success{background:rgba(31,122,77,.1); color:var(--success); border:1px solid rgba(31,122,77,.25);}
.alert-error{background:rgba(192,57,43,.08); color:var(--danger); border:1px solid rgba(192,57,43,.2);}
.info-list{display:grid; gap:16px;}
.info-list li{display:flex; gap:12px; align-items:flex-start;}
.info-list .ico{
  width:42px; height:42px; border-radius:12px; background:rgba(14,126,166,.08); color:var(--teal);
  display:flex; align-items:center; justify-content:center; flex:none; font-family:'Alexandria'; font-weight:800;
}
.info-list b{display:block; font-family:'Alexandria'; font-size:14px; color:var(--navy);}
.info-list span{font-size:13px; color:var(--ink-soft);}

/* Content pages */
.content-section{padding:70px 0 110px;}
.content-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:40px; align-items:start;}
.prose{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:40px 36px;}
.prose h2{font-size:22px; margin:28px 0 12px;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--ink-soft); margin-bottom:14px;}
.prose ul{display:grid; gap:10px; margin:12px 0 18px;}
.prose li{padding-inline-start:18px; position:relative; color:var(--ink);}
.prose li::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--gold); position:absolute; right:0; top:10px;}

/* reveal */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--gold); outline-offset:2px; border-radius:6px;
}

@media(max-width:1080px){
  nav.main-nav{display:none;}
  .burger{display:flex;}
  .hero .wrap{grid-template-columns:1fr; padding-bottom:50px;}
  .hero-art{order:-1; max-width:280px; margin:0 auto;}
  .hero-stats{grid-template-columns:repeat(2,1fr); gap:18px;}
  .hero-stats div{border-inline-start:none; padding-inline-start:0;}
  .about .wrap,.why .wrap,.prog-layout,.form-layout,.content-grid{grid-template-columns:1fr;}
  .prog-side{position:static;}
  .why-media{order:-1;}
  .grid-programs, .testi-grid, .grid-news, .acc-grid, .trainer-grid{grid-template-columns:repeat(2,1fr);}
  .journey-steps{grid-template-columns:repeat(2,1fr);}
  footer.site .wrap{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  .wrap{padding:0 20px;}
  .topbar .topbar-links span.hide-sm{display:none;}
  .grid-programs, .testi-grid, .grid-news, .journey-steps, .acc-grid, .trainer-grid{grid-template-columns:1fr;}
  .partners .wrap{justify-content:center; text-align:center;}
  .cta-band .box{padding:36px 26px;}
  footer.site .wrap{grid-template-columns:1fr;}
  .about-pillars,.form-grid{grid-template-columns:1fr;}
  .prog-main,.form-card,.info-card,.prose{padding:28px 22px;}
}
