:root{
  --navy:#14336B;
  --navy-2:#1B4F9C;
  --cream:#F7F9FC;
  --gold:#F2B705;
  --coral:#2F6FE0;
  --sage:#4FC3E8;
  --sky:#4FC3E8;
  --red:#D62828;
  --ink:#1B2233;
  --line: rgba(20,51,107,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:'Inter',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.5;
}
h1,h2,h3{font-family:'Fraunces',serif; font-weight:600; letter-spacing:-0.01em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{list-style:none;}

.ruled{
  background-image: repeating-linear-gradient(
    to bottom, transparent, transparent 27px, var(--line) 28px
  );
}

/* NAV */
/* BRAND WAVE — full-width flowing divider, connects across the whole header/footer */
.wave-divider{display:block; width:100%; height:52px; margin-top:-4px; line-height:0;}
.wave-divider svg{width:100%; height:100%; display:block;}

.footer-wave-topper{display:block; line-height:0;}
.footer-wave-topper svg{width:100%; height:120px; display:block;}
footer{margin-top:-1px;}

header{position:sticky; top:0; z-index:50; background:#fff; border-bottom:none; overflow:visible;}
.nav-wrap{position:relative; z-index:2;}
.utility-inner{position:relative; z-index:2;}
.footer-inner, .footer-bottom{position:relative; z-index:2;}

@media (max-width:600px){
  .wave-divider{height:32px;}
  .footer-wave-topper svg{height:70px;}
}
.header-wave-wrap{position:relative; overflow:hidden; height:0;}
.nav-wrap{max-width:1180px; margin:0 auto; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:700; font-size:1.25rem; color:var(--navy);}
.logo-text{display:flex; flex-direction:column; line-height:1.15;}
.logo-main{font-size:1.2rem; font-weight:700;}
.logo-sub{font-family:'Inter',sans-serif; font-size:0.62rem; font-weight:600; letter-spacing:0.02em; color:#5C6478; text-transform:uppercase;}
.logo-mark{width:38px; height:38px; object-fit:contain;}
@media (min-width:901px) and (max-width:1200px){
  nav ul{gap:18px;}
  nav a{font-size:0.88rem;}
  .nav-wrap{gap:10px;}
}
@media (min-width:901px){
  .nav-wrap{padding:22px 32px;}
  .logo-mark{width:52px; height:52px;}
  .logo-main{font-size:1.5rem;}
  .logo-sub{font-size:0.78rem;}
  nav ul{gap:34px;}
  nav a{font-size:1rem;}
  .nav-portal{font-size:0.92rem; padding:11px 22px;}
  .nav-cta{font-size:0.95rem; padding:12px 24px;}
}
.stripe-accent{
  position:relative; overflow:hidden;
  background: linear-gradient(115deg, var(--navy) 0%, var(--navy) 42%, #fff 44%, #fff 47%, var(--coral) 49%, var(--coral) 56%, var(--gold) 58%, var(--gold) 64%, var(--navy) 66%, var(--navy) 100%);
}
nav ul{display:flex; gap:26px;}
nav a{font-size:0.92rem; font-weight:500; color:var(--navy); padding:4px 0;}
nav a.active{color:var(--coral);}
nav a:hover{color:var(--coral);}
.nav-cta{background:var(--gold); color:var(--navy) !important; padding:12px 22px; border-radius:6px; font-weight:700; font-size:0.85rem; flex-shrink:0; letter-spacing:0.01em;}
.nav-cta:hover{background:#DDA200;}
.nav-portal{border:1.5px solid var(--navy); color:var(--navy) !important; padding:9px 18px; border-radius:999px; font-weight:600; font-size:0.85rem; white-space:nowrap; flex-shrink:0;}
.nav-portal:hover{background:var(--navy); color:#fff !important;}
.logo{flex-shrink:0;}
nav{flex-shrink:1; min-width:0;}

/* UTILITY BAR — light, minimal, matches reference top strip */
.utility-bar{background:#F4F6F9; color:var(--navy); padding:10px 24px; font-size:0.82rem; border-bottom:1px solid var(--line);}
.utility-inner{max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.utility-left{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.utility-left a{color:var(--navy); display:flex; align-items:center; gap:7px; font-weight:500;}
.utility-left a:hover{color:var(--coral);}
.utility-right{display:flex; align-items:center; gap:20px;}
.utility-right a{color:#4A5568; font-weight:500; font-size:0.82rem;}
.utility-right a:hover{color:var(--coral);}
.utility-portal{background:none !important; color:#4A5568 !important; padding:0 !important; font-weight:500 !important; font-size:0.82rem !important;}
.utility-portal:hover{color:var(--coral) !important;}
.utility-social{display:none;}
.utility-search{color:#4A5568; font-size:0.9rem;}
@media (max-width:700px){
  .utility-left{display:none;}
  .utility-bar{padding:8px 16px;}
  .utility-right{gap:12px;}
  .utility-right a{font-size:0.75rem;}
}
nav ul{flex-shrink:0;}
.menu-toggle{display:none; font-size:1.6rem; background:none; border:none; color:var(--navy); cursor:pointer; z-index:60;}
.mobile-nav{display:none; position:fixed; top:74px; left:0; right:0; bottom:0; background:var(--cream); z-index:55; padding:20px 24px; overflow-y:auto;}
.mobile-nav.open{display:block;}
.mobile-nav ul{display:flex; flex-direction:column; gap:4px;}
.mobile-nav a{display:block; padding:16px 4px; font-size:1.1rem; font-weight:600; color:var(--navy); border-bottom:1px solid var(--line);}
.mobile-nav a.active{color:var(--coral);}
.mobile-nav .nav-cta{display:block; text-align:center; margin-top:20px;}
.mobile-nav .nav-portal{display:block; text-align:center; margin-top:12px; margin-right:0;}

/* PAGE HERO (interior pages) — full-bleed colored banner, letterhead-style */
.page-hero{
  position:relative; overflow:hidden; padding:64px 24px 48px;
  background:linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 55%, var(--coral) 160%);
}
.page-hero-inner{max-width:1180px; margin:0 auto; position:relative; z-index:2;}
.page-hero::before{
  content:''; position:absolute; top:-40px; right:-60px; width:220px; height:220px;
  background:var(--gold); border-radius:50%; opacity:0.18;
}
.page-hero::after{
  content:''; position:absolute; bottom:0; left:0; right:0; height:6px;
  background:linear-gradient(to right, var(--gold) 0%, var(--gold) 50%, var(--sky) 50%, var(--sky) 100%);
}
/* Page-specific accent colors — overrides --coral per page for visual variety while keeping navy/gold constant */
body.page-about{--coral:#5B8C5A;}
body.page-curriculum{--coral:#C9A227;}
body.page-admissions{--coral:#2F6FE0;}
body.page-gallery{--coral:#D65F5F;}
body.page-contact{--coral:#2F6FE0;}
body.page-policies{--coral:#8B6BB8;}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:0.76rem; letter-spacing:0.09em; text-transform:uppercase;
  color:#fff; font-weight:700; margin-bottom:16px;
  background:rgba(255,255,255,0.18); backdrop-filter:blur(4px); padding:6px 14px 6px 10px; border-radius:999px;
}
.eyebrow::before{content:''; width:16px; height:2px; background:var(--gold); display:inline-block; opacity:1;}

.page-hero h1{
  font-size:clamp(2.1rem,4.2vw,3.2rem); color:#fff; line-height:1.08; margin-bottom:16px; max-width:22ch;
  position:relative; text-shadow:0 2px 12px rgba(0,0,0,0.2);
}
.page-hero p{font-size:1.05rem; color:rgba(255,255,255,0.9); max-width:60ch;}
.stripe-bar{display:none;}

/* FULL-BLEED HERO — cinematic banner instead of boxed portrait crop */
.hero-full{
  position:relative; width:100%; min-height:600px; display:flex; align-items:flex-end;
  background-size:cover; background-position:center 30%; overflow:hidden;
}
.hero-full::before{content:''; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(8,16,34,0.96) 0%, rgba(8,16,34,0.82) 25%, rgba(8,16,34,0.4) 55%, rgba(8,16,34,0.1) 80%, rgba(8,16,34,0.05) 100%);
}
.hero-full-content{position:relative; z-index:2; max-width:1180px; margin:0 auto; padding:80px 24px 52px; width:100%;}
.hero-full .eyebrow{background:rgba(255,255,255,0.18); backdrop-filter:blur(4px);}
.hero-full h1{color:#fff; font-size:clamp(2.3rem,5vw,3.8rem); line-height:1.05; margin-bottom:18px; max-width:16ch; text-shadow:0 2px 16px rgba(0,0,0,0.35);}
.hero-full h1 .accent{color:var(--gold);}
.hero-full p{color:#fff; font-size:1.1rem; max-width:46ch; margin-bottom:28px; text-shadow:0 1px 8px rgba(0,0,0,0.4); font-weight:500;}
.hero-full .btn-secondary{border-color:#fff; color:#fff;}

/* BENTO GRID — asymmetric photo mosaic */
.bento-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap:14px;}
.bento-item{border-radius:16px; overflow:hidden; position:relative; box-shadow:0 8px 20px rgba(15,30,61,0.1);}
.bento-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.35s;}
.bento-item:hover img{transform:scale(1.06);}
.bento-item.b-large{grid-column:span 2; grid-row:span 2;}
.bento-item.b-tall{grid-row:span 2;}
.bento-item.b-wide{grid-column:span 2;}
@media (max-width:860px){
  .hero-full{min-height:520px;}
  .highlights-wrap{margin-top:-20px;}
  .highlights{padding:20px 20px; border-radius:14px;}
  .bento-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;}
  .bento-item.b-large,.bento-item.b-tall,.bento-item.b-wide{grid-column:auto; grid-row:auto;}
}
.btn-row{display:flex; gap:14px; flex-wrap:wrap;}
.btn-primary{background:var(--navy); color:#fff; padding:14px 26px; border-radius:999px; font-weight:600; font-size:0.95rem; display:inline-block; border:none; cursor:pointer;}
.btn-secondary{border:1.5px solid var(--navy); color:var(--navy); padding:13px 25px; border-radius:999px; font-weight:600; font-size:0.95rem; display:inline-block;}
.hero-visual{position:relative; aspect-ratio: 4/5; border-radius:18px; overflow:visible; box-shadow:0 20px 50px rgba(15,30,61,0.16);}

/* Modern placeholder card — replaces flat color rectangles */
.placeholder-visual{
  position:relative; width:100%; height:100%; overflow:hidden;
  background: linear-gradient(160deg, #EEF2F8 0%, #E3E9F3 100%);
  border:1px solid var(--line); border-radius:18px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
  text-align:center; padding:28px;
}
.placeholder-visual .ph-icon{font-size:2.6rem; opacity:0.35;}
.placeholder-visual .ph-label{font-size:0.85rem; font-weight:600; color:#7C8598; letter-spacing:0.02em; max-width:22ch;}
.placeholder-visual::before{
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background: linear-gradient(to right, var(--navy) 0% 33%, var(--coral) 33% 66%, var(--gold) 66% 100%);
}
.hero-visual::after{content:''; position:absolute; inset:0; background-image: repeating-linear-gradient(to bottom, transparent, transparent 27px, rgba(255,255,255,0.06) 28px);}
.hero-badge{position:absolute; bottom:20px; left:20px; right:20px; background:#fff; border-radius:12px; padding:16px 18px; display:flex; gap:14px; align-items:center; box-shadow:0 8px 24px rgba(15,30,61,0.12);}
.hero-badge .num{font-family:'Fraunces',serif; font-size:1.6rem; font-weight:700; color:var(--coral);}
.hero-badge .lbl{font-size:0.8rem; color:#4A4F58; line-height:1.3;}

/* HERO SPLIT — matches reference: light bg, text+photo split, ribbon corners */
.hero-split{position:relative; background:#EEF1F5; overflow:hidden; padding:56px 24px 40px;}
.hero-split-inner{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; position:relative; z-index:2;}
.hero-text h1{font-size:clamp(2rem,3.6vw,3rem); color:var(--navy); line-height:1.15; max-width:14ch;}
.hero-text h1 .accent{color:var(--gold);}
.gold-underline{width:70px; height:4px; background:var(--gold); border-radius:2px; margin:18px 0;}
.hero-text p{color:#5A6272; font-size:1rem; max-width:42ch; margin-bottom:26px;}
.hero-photo{position:relative; border-radius:16px; overflow:hidden; aspect-ratio:5/4; box-shadow:0 20px 44px rgba(20,51,107,0.16);}
.hero-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.ribbon-tr{position:absolute; top:-30px; right:-50px; width:220px; height:90px; background:linear-gradient(120deg, var(--sky), var(--navy)); transform:rotate(20deg); border-radius:50px; opacity:0.9; z-index:1;}
.ribbon-tr::after{content:''; position:absolute; inset:0; background:linear-gradient(120deg, var(--gold), transparent 60%); border-radius:50px; opacity:0.6;}
.ribbon-bl{position:absolute; bottom:-24px; left:-40px; width:150px; height:70px; background:linear-gradient(120deg, var(--gold), #F2B70588); transform:rotate(-18deg); border-radius:40px; z-index:1;}
.hero-dots{display:flex; justify-content:center; gap:8px; margin-top:32px; position:relative; z-index:2;}
.hdot{width:8px; height:8px; border-radius:50%; background:#C7CEDB;}
.hdot.active{background:var(--navy); width:22px; border-radius:4px;}
@media (max-width:860px){
  .hero-split-inner{grid-template-columns:1fr; gap:32px;}
  .hero-photo{order:-1;}
  .ribbon-tr{width:140px; height:60px; top:-20px; right:-30px;}
}

/* QUICK LINKS BAR — 4-icon row matching reference */
.quicklinks-bar{background:#fff; border-bottom:1px solid var(--line); padding:28px 24px;}
.quicklinks-inner{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.qlink{display:flex; align-items:center; gap:14px; text-decoration:none; padding:0 20px; border-right:1px solid var(--line);}
.qlink:last-child{border-right:none;}
.qlink strong{color:var(--navy); font-size:0.95rem; display:block; margin-bottom:2px;}
.qlink span span{color:#8890A0; font-size:0.8rem; font-weight:400;}
.qicon{width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0;}
.qicon-gold{background:#FCEFCB; color:var(--gold-dark, #B8860B);}
.qicon-navy{background:#DCE6F7; color:var(--navy);}
@media (max-width:900px){
  .quicklinks-inner{grid-template-columns:repeat(2,1fr);}
  .qlink{border-right:none; border-bottom:1px solid var(--line); padding-bottom:16px;}
}

/* SECTIONS */
section{max-width:1180px; margin:0 auto; padding:70px 24px;}
.section-head{max-width:640px; margin-bottom:40px;}
.section-head h2{font-size:clamp(1.8rem,3vw,2.4rem); color:var(--navy);}
.section-head p{color:#4A4F58; margin-top:12px; font-size:1.02rem;}

/* STAGES STRIP */
.stages{display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.stage{padding:26px 18px; border-right:1px solid var(--line); background:#fff;}
.stage:last-child{border-right:none;}
.stage:hover{background:#FFF8ED;}
.stage .yr{font-family:'Fraunces',serif; font-weight:700; color:var(--gold); font-size:0.82rem; letter-spacing:0.04em; margin-bottom:10px; display:block;}
.stage h3{font-size:1.05rem; color:var(--navy); margin-bottom:6px;}
.stage p{font-size:0.85rem; color:#666; line-height:1.4;}

/* SPLIT LAYOUT */
/* WELCOME SECTION — photo collage matching reference */
.welcome-section{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.welcome-photos{position:relative; aspect-ratio:1/1;}
.welcome-main-photo{position:absolute; top:0; left:0; width:78%; height:78%; object-fit:cover; border-radius:16px; box-shadow:0 16px 36px rgba(20,51,107,0.14); z-index:2;}
.welcome-inset-photo{position:absolute; bottom:0; right:0; width:52%; height:52%; object-fit:cover; border-radius:14px; border:5px solid #fff; box-shadow:0 16px 30px rgba(20,51,107,0.2); z-index:3;}
.welcome-arc{position:absolute; bottom:-16px; left:10%; width:60%; height:60%; background:linear-gradient(135deg, var(--gold), var(--navy)); border-radius:24px; z-index:1; opacity:0.85;}
@media (max-width:860px){.welcome-section{grid-template-columns:1fr; gap:36px;} .welcome-photos{aspect-ratio:4/3;}}

/* OUR SCHOOL CARDS — icon circle + photo, matching reference */
.school-card-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:18px; text-align:left;}
.school-card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 18px 0; text-decoration:none; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 4px 14px rgba(20,51,107,0.06); transition:transform 0.2s, box-shadow 0.2s;}
.school-card:hover{transform:translateY(-5px); box-shadow:0 16px 32px rgba(20,51,107,0.14);}
.sc-icon{width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:14px;}
.sc-icon-gold{background:var(--gold); color:#fff;}
.sc-icon-navy{background:var(--navy); color:#fff;}
.school-card h3{color:var(--navy); font-size:1.05rem; margin-bottom:2px;}
.sc-sub{color:#8890A0; font-size:0.8rem; display:block; margin-bottom:16px;}
.school-card img{width:calc(100% + 0px); aspect-ratio:4/3; object-fit:cover; border-radius:8px 8px 0 0; margin-top:auto;}
@media (max-width:900px){.school-card-grid{grid-template-columns:repeat(2,1fr);}}

.split{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.split-img{aspect-ratio:1/1; border-radius:16px; position:relative; overflow:hidden; box-shadow:0 16px 36px rgba(15,30,61,0.14);}
.split h2{color:var(--navy); font-size:clamp(1.6rem,2.6vw,2.1rem); margin-bottom:16px;}
.split p{color:#4A4F58; margin-bottom:14px;}
.link-arrow{font-weight:600; color:var(--coral); display:inline-flex; align-items:center; gap:6px;}
.reverse .split-img{order:2;}
.reverse .split-text{order:1;}

/* CARDS */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:28px; transition: transform 0.2s, box-shadow 0.2s; box-shadow:0 2px 8px rgba(15,30,61,0.04);}
.card:hover{transform:translateY(-4px); box-shadow:0 12px 28px rgba(15,30,61,0.12);}
.card .icon{width:44px; height:44px; border-radius:10px; background:linear-gradient(135deg, var(--cream), #EEF1F6); display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:1.2rem;}
.card h3{font-size:1.05rem; color:var(--navy); margin-bottom:8px;}
.card p{font-size:0.9rem; color:#666;}

/* TABLE */
table{width:100%; border-collapse:collapse; background:#fff; border-radius:12px; overflow:hidden; border:1px solid var(--line);}
th,td{padding:14px 18px; text-align:left; font-size:0.92rem; border-bottom:1px solid var(--line);}
th{background:var(--navy); color:#fff; font-weight:600;}
tr:last-child td{border-bottom:none;}

/* GALLERY */
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.gallery-item{
  aspect-ratio:1/1; border-radius:12px; position:relative; overflow:hidden;
  background: linear-gradient(160deg, #EEF2F8 0%, #E3E9F3 100%); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; color:#9AA3B5; font-size:0.78rem; text-align:center; padding:10px;
}
.gallery-item::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(to right, var(--navy) 0% 33%, var(--coral) 33% 66%, var(--gold) 66% 100%);
}

/* FORM */
.form-wrap{background:#fff; border:1px solid var(--line); border-radius:16px; padding:36px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1/-1;}
label{font-size:0.85rem; font-weight:600; color:var(--navy);}
input,textarea,select{padding:12px 14px; border:1px solid var(--line); border-radius:8px; font-family:inherit; font-size:0.95rem; background:var(--cream);}
textarea{resize:vertical; min-height:100px;}
.consent{display:flex; align-items:flex-start; gap:10px; font-size:0.82rem; color:#666; margin:16px 0;}
.consent input{width:auto; margin-top:3px;}
.consent a{color:var(--coral); font-weight:600;}

/* INFO STRIP (contact) */
.info-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:44px;}
@media (max-width:900px){.info-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.info-grid{grid-template-columns:1fr;}}
.info-card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px;}
.info-card h3{font-size:0.95rem; color:var(--navy); margin-bottom:8px;}
.info-card p{font-size:0.9rem; color:#666; line-height:1.5;}

/* CTA BAND */
.cta-band{background:var(--coral); border-radius:20px; padding:56px 40px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; color:#fff;}
.cta-band h2{color:#fff; font-size:clamp(1.5rem,2.6vw,2rem); max-width:420px;}
.cta-band .btn-primary{background:#fff; color:var(--coral);}

/* FOOTER */
footer{background:var(--navy); color:#DDE2EC; padding:60px 24px 28px; position:relative; overflow:hidden;}
footer .footer-inner, footer .footer-bottom{position:relative; z-index:1;}
.footer-inner{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px;}
footer h4{color:#fff; font-size:0.95rem; margin-bottom:16px;}
footer li{margin-bottom:10px; font-size:0.9rem; color:#B7BFD1;}
.footer-logo{color:#fff; margin-bottom:14px; display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:700; font-size:1.1rem;}
.footer-badges{display:flex; gap:14px; align-items:center; margin-top:14px;}
.footer-badges img{height:36px; background:#fff; border-radius:6px; padding:4px;}
.footer-social{display:flex; gap:14px; align-items:center; margin-top:16px;}
.footer-social a{width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; font-size:1rem; color:#fff; transition:background 0.2s;}
.footer-social a:hover{background:rgba(255,255,255,0.2);}
.footer-bottom{max-width:1180px; margin:40px auto 0; padding-top:20px; border-top:1px solid rgba(255,255,255,0.12); font-size:0.82rem; color:#8D97AE; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* SIMPLE PAGE (privacy/cookies) */
.doc h2{color:var(--navy); font-size:1.3rem; margin:32px 0 12px;}
.doc h2:first-child{margin-top:0;}
.doc p, .doc li{color:#4A4F58; margin-bottom:10px; font-size:0.98rem;}
.doc li{margin-left:20px; list-style:disc;}

/* COOKIE CONSENT BANNER */
#cookieBanner{
  position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:var(--navy); color:#fff; padding:20px 24px;
  box-shadow:0 -8px 24px rgba(0,0,0,0.2);
  display:none;
}
#cookieBanner.show{display:block;}
.cookie-inner{max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;}
.cookie-text{flex:1; min-width:240px; font-size:0.88rem; color:#DDE2EC; line-height:1.5;}
.cookie-text a{color:var(--gold); font-weight:600;}
.cookie-buttons{display:flex; gap:10px; flex-wrap:wrap;}
.cookie-btn{padding:10px 20px; border-radius:999px; font-weight:600; font-size:0.85rem; cursor:pointer; border:none;}
.cookie-btn.accept{background:var(--coral); color:#fff;}
.cookie-btn.reject{background:transparent; border:1.5px solid rgba(255,255,255,0.4); color:#fff;}
@media (max-width:600px){.cookie-inner{flex-direction:column; align-items:stretch;} .cookie-buttons{justify-content:stretch;} .cookie-btn{flex:1;}}

@media (max-width:900px){
  .logo-sub{font-size:0.52rem; max-width:120px; line-height:1.1;}
  .nav-wrap .nav-portal{display:none;}
  nav ul{display:none;}
  .menu-toggle{display:block;}
  .hero{grid-template-columns:1fr;}
  .hero-visual{order:-1;}
  .stages{grid-template-columns:repeat(2,1fr);}
  .stage{border-bottom:1px solid var(--line); border-right:none;}
  .stage:nth-child(odd){border-right:1px solid var(--line);}
  .stage:last-child{border-right:none;}
  .split, .reverse{grid-template-columns:1fr;}
  .reverse .split-img{order:0;}
  .footer-inner{grid-template-columns:1fr 1fr;}
  .card-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .form-row{grid-template-columns:1fr;}
  .info-grid{grid-template-columns:1fr;}
}
