@font-face{font-family:"Roboto";src:url("assets/Roboto.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}

/* Brand colours (IcebergVC_Colour_Specifications). Edit here to update the whole page. */
:root{
  --navy:#001E33;      /* text, lettering, contact band */
  --deep:#016275;      /* accent text, buttons (AA contrast on light backgrounds) */
  --deep-hover:#014E5E;
  --teal:#03ACBC;      /* primary brand teal, decorative use */
  --water:#03C0C9;     /* season band */
  --aqua:#9CE5EA;
  --ice:#B8EDF1;       /* borders, pale accents */
  --page:#F0FBFB;      /* hero */
  --muted:#3F5A66;
  --max:1200px;
  --header-h:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 8px)}
body{margin:0;background:var(--page);color:var(--navy);font-family:"Roboto",Arial,Helvetica,sans-serif;line-height:1.6}
a{color:inherit;text-underline-offset:.3em}
a:focus-visible,button:focus-visible{outline:3px solid var(--deep);outline-offset:3px}
h1,h2,h3,p{margin-top:0}
.wrap{width:min(var(--max),calc(100% - 96px));margin-inline:auto}
.skip{position:absolute;top:0;left:1rem;transform:translateY(-150%);z-index:20;background:#fff;color:var(--navy);padding:1rem}
.skip:focus{transform:translateY(0)}

/* Sticky header */
.site-header{position:sticky;top:0;z-index:10;background:transparent;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid rgba(1,98,117,.5)}
.header-inner{display:flex;justify-content:space-between;align-items:center;min-height:var(--header-h);gap:24px}
.brand{text-decoration:none;font-size:14px;letter-spacing:.12em;line-height:1.3}
.brand strong{color:var(--deep)}
.brand span{display:block;font-size:12px;letter-spacing:.23em;margin-top:5px}
nav{display:flex;gap:32px;font-size:14px}
nav a{text-decoration:none;display:inline-block;padding-block:5px}
nav a:hover{color:var(--deep)}
nav a[aria-current="page"]{color:var(--deep);font-weight:700}

/* Type */
.eyebrow{font-size:14px;letter-spacing:.2em;font-weight:700;margin:0 0 22px;color:var(--deep)}
h1{font-size:clamp(2.75rem,4.4vw,4.4rem);line-height:1.04;letter-spacing:-.035em;margin-bottom:25px}
h1 span{color:var(--deep)}
h2{font-size:clamp(2rem,3.1vw,2.8rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:0}

/* Buttons */
.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 26px;background:var(--deep);color:#fff;font:inherit;font-weight:700;text-decoration:none;min-height:52px;border:0;cursor:pointer}
.button:hover{background:var(--deep-hover)}
/* Buttons in a row share one width (the widest label); stacked on narrow screens. */
.actions{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px}
.actions .button{white-space:nowrap}
.button-outline{background:transparent;color:var(--deep);box-shadow:inset 0 0 0 2px var(--deep)}
.button-outline:hover{background:var(--deep);color:#fff}
.button-outline-dark{color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.button-outline-dark:hover{background:var(--navy);color:#fff}
.button-dark{background:var(--navy)}
.button-dark:hover{background:#00304f}

/* 1. Hero (pale ice) */
.hero-inner{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:50px;padding-block:70px 80px}
.age{font-size:20px;font-weight:700;margin-bottom:20px}
.intro{color:var(--muted);max-width:440px;margin-bottom:28px}
.hero-art{padding:45px 25px 30px;text-align:center}
.hero-art img{display:block;width:100%;max-width:360px;height:auto;margin-inline:auto}
.logo-caption{font-size:14px;letter-spacing:.04em;color:var(--navy);margin:30px 0 0}
.logo-caption span{display:block;margin-top:8px;font-size:18px;font-weight:700;letter-spacing:.02em;color:var(--deep)}

/* 2. About (white) */
.about{background:#fff}
.about-inner{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;padding-block:80px}
.about-intro h2{margin-bottom:22px}
.about-intro p:last-child{color:var(--muted);max-width:520px;margin-bottom:0}
.coach{background:var(--page);border:1px solid var(--ice);border-top:4px solid var(--teal);padding:34px 36px}
.coach .eyebrow{margin-bottom:12px}
.coach>p:not(.eyebrow):not(.coach-sign){color:var(--muted);margin-bottom:16px}
.coach-quote{margin:24px 0;padding:18px 22px;background:#fff;border-left:4px solid var(--deep)}
.coach-quote p{margin:0;color:var(--navy);font-weight:500;line-height:1.7}
.coach-quote .quote-title{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);font-weight:700;margin-bottom:8px}
.coach-sign{margin:0;display:flex;flex-direction:column;line-height:1.35}
.coach-sign strong{font-size:1.1rem}
.coach-sign span{color:var(--muted);font-size:14px}

/* 3. Season 2027 (water teal) */
.season{background:var(--water);color:var(--navy)}
.season-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;padding-block:80px;align-items:start}
.season .eyebrow{color:var(--navy)}
.season-intro h2{margin-bottom:20px}
.season-intro p:last-child{max-width:420px;margin-bottom:0}
.season-card{background:#fff;padding:34px 36px;box-shadow:0 2px 0 rgba(0,30,51,.12)}
.season-details{margin:0 0 26px}
.season-details div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--ice)}
.season-details div:first-child{padding-top:0}
.season-details dt{color:var(--muted);font-size:15px}
.season-details dd{margin:0;font-weight:700}
.season-details .sub{display:block;margin-top:4px;font-weight:400;font-size:14px;color:var(--muted)}
.season-note{background:var(--page);border-left:4px solid var(--teal);padding:18px 20px;margin-bottom:26px}
.season-note h3{font-size:1.05rem;margin-bottom:8px}
.season-note p{margin:0;color:var(--muted);font-size:15px}
.steps{list-style:none;counter-reset:step;margin:0 0 14px;padding:0;display:grid;gap:12px}
.steps li{counter-increment:step;position:relative;padding-left:38px;font-size:15px;line-height:1.5;color:var(--navy)}
.steps li::before{content:counter(step);position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;background:var(--deep);color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center}
.season-note .fine{font-size:14px}

/* Sub-page header (policies.html) */
.page-head{padding-block:64px 52px}
.page-head h1{font-size:clamp(2.25rem,4vw,3.25rem);margin-bottom:16px}
.page-head p:not(.eyebrow){max-width:640px;color:var(--muted);margin-bottom:20px}
.text-link{font-weight:700;color:var(--deep)}
.text-link:hover{color:var(--deep-hover)}

/* Policies and Forms (light aqua) */
.docs{background:var(--ice)}
.docs-inner{padding-block:56px 72px}
.docs-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}
.doc-col h3{font-size:1.15rem;margin-bottom:14px}
.doc-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.doc{display:block;position:relative;background:#fff;padding:18px 56px 18px 22px;text-decoration:none;border-left:4px solid var(--teal)}
.doc::after{content:"\2192";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-weight:700;color:var(--deep);font-size:20px}
.doc:hover{background:var(--page)}
.doc:hover .doc-title{color:var(--deep)}
.doc-title{display:block;font-weight:700;line-height:1.35}
.doc-meta{display:block;margin-top:4px;font-size:14px;color:var(--muted);line-height:1.45}
.season-note a{color:var(--deep)}

/* 4. Contact (navy) */
.contact{background:var(--navy);color:#fff}
.contact-inner{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:36px;padding-block:70px}
.contact .eyebrow{color:var(--aqua);margin-bottom:15px}
.detail{padding-top:5px}
.detail h3{color:var(--aqua);font-size:16px;font-weight:400;margin-bottom:12px}
.detail p,.detail a{font-size:20px;margin:0}
.detail a:hover{color:var(--aqua)}
.detail .location{font-size:16px;color:#c9dfe4;margin-top:8px}
.contact a:focus-visible{outline-color:var(--aqua)}

/* Footer */
.site-footer{background:var(--navy);color:#c9dfe4;border-top:1px solid rgba(156,229,234,.25);font-size:12px}
.footer-inner{display:flex;justify-content:space-between;gap:20px;padding-block:22px}
.footer-inner p{margin:0}
.footer-inner a{text-underline-offset:.3em}
.footer-inner a:hover{color:#fff}

@media(max-width:900px){
  .about-inner,.season-inner{grid-template-columns:1fr;gap:36px}
  .docs-grid{grid-template-columns:1fr}
}
@media(max-width:800px){
  .wrap{width:calc(100% - 48px)}
  .hero-inner{gap:30px;padding-block:50px}
  .hero-art{padding-block:35px}
  .contact-inner{grid-template-columns:1fr 1fr}
  .contact-inner>div:first-child{grid-column:1/-1}
  nav{gap:20px}
}
@media(max-width:480px){.actions{grid-auto-flow:row}}
@media(max-width:600px){
  :root{--header-h:96px}
  .header-inner{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;padding-block:10px}
  .brand{font-size:12px}
  .brand span{font-size:10px;margin-top:3px}
  nav{gap:14px;font-size:13px;flex-wrap:wrap}
  nav a{padding-block:2px}
  .hero-inner{grid-template-columns:1fr;padding-block:40px;gap:30px}
  h1{font-size:clamp(2.5rem,11vw,3.8rem)}
  .hero-art{padding:30px 18px}
  .hero-art img{max-width:245px}
  .logo-caption{margin-top:18px}
  .age{font-size:18px}
  .about-inner,.season-inner,.docs-inner{padding-block:52px}
  .coach,.season-card{padding:24px 20px}
    .season-details div{grid-template-columns:1fr;gap:2px}
  .contact-inner{grid-template-columns:1fr;gap:26px;padding-block:46px}
  .contact-inner>div:first-child{grid-column:auto}
  .footer-inner{flex-direction:column;gap:6px}
  .detail a{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Who we are: lead text and offer / expect cards */
.about-intro .lead{color:var(--muted);font-size:1.15rem;max-width:520px;margin:22px 0 26px}
.expect-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.expect-grid>div{background:var(--page);border-top:4px solid var(--teal);padding:18px 20px}
.expect-grid>div:last-child{border-top-color:var(--deep)}
.expect-grid h4{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);margin:0 0 10px}
.expect-grid ul{margin:0;padding-left:18px;font-size:15px;line-height:1.5}
.expect-grid li{margin-bottom:6px}

/* Fall camps (light aqua) */
.camps{background:var(--ice)}
.camps-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;padding-block:56px;align-items:center}
.camps h2{margin-bottom:0}
.camps-copy p{margin:0;max-width:440px}

/* Express interest block in the Season section */
.interest{margin-top:32px;padding-top:24px;border-top:1px solid rgba(0,30,51,.25);max-width:420px}
.interest p{margin-bottom:14px}
@media(max-width:900px){.camps-inner{grid-template-columns:1fr;gap:16px}}
@media(max-width:600px){.expect-grid{grid-template-columns:1fr}.camps-inner{padding-block:44px}}
