/* Brand, matching the print flyers: teal #0E4C5C, coral #FF6B4A, cream #FDF6E9, Poppins. */
:root{--teal:#0e4c5c;--teal-dark:#0a3742;--coral:#ff6b4a;--coral-shadow:#d9502f;--cream:#fdf6e9;--yellow:#f7bd31;--sky:#bce7e8;--mint:#eef8f6;--ink:#12343c;--paper:#fffdf8;--font:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;--shadow:0 18px 50px rgba(14,76,92,.12);--radius:28px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);line-height:1.6}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.shell{width:min(1160px,calc(100% - 40px));margin-inline:auto}
.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}
.skip-link{position:fixed;top:10px;left:10px;z-index:1000;padding:10px 16px;background:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:none}

/* Language: every string is authored as lang="en" / lang="es" siblings; hide the inactive one.
   Scoped under body so the <html lang> attribute itself never matches. See assets/lang.js. */
html:not([data-lang=es]) body [lang=es],
html[data-lang=es] body [lang=en]{display:none!important}

/* Header */
.site-header{height:92px;background:var(--paper);position:relative;z-index:20}
.header-inner{height:100%;display:flex;align-items:center;gap:28px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;text-transform:uppercase;color:var(--teal);font-size:.8rem;line-height:1.15;letter-spacing:.09em}
.brand img{width:62px}
.brand strong{font-size:1rem;white-space:nowrap}
.site-nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,30px);margin-left:auto}
.site-nav>a:not(.button){font-weight:600;text-decoration:none;position:relative}
.site-nav>a:not(.button):after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:2px;background:var(--coral);transform:scaleX(0);transition:.2s}
.site-nav>a:hover:after,.site-nav>a[aria-current=page]:after{transform:none}
.lang-switch{display:inline-flex;flex:none;gap:2px;padding:3px;border:2px solid var(--teal);border-radius:999px}
.lang-switch button{border:0;border-radius:999px;background:none;color:var(--teal);font:700 .78rem/1 var(--font);letter-spacing:.06em;padding:7px 10px;cursor:pointer}
html:not([data-lang=es]) .lang-switch [data-set-lang=en],html[data-lang=es] .lang-switch [data-set-lang=es]{background:var(--teal);color:#fff}
.lang-switch button:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
.menu-toggle{display:none;background:none;border:0;width:48px;height:48px;padding:12px;cursor:pointer}
.menu-toggle>span:not(.sr-only){display:block;height:2px;background:var(--teal);margin:6px;transition:.2s}

/* Buttons and type */
.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:0;border-radius:999px;background:var(--coral);color:#fff;text-decoration:none;font:700 1rem var(--font);padding:15px 24px;box-shadow:0 8px 0 var(--coral-shadow);cursor:pointer;transition:.2s}
.button:hover{transform:translateY(2px);box-shadow:0 6px 0 var(--coral-shadow)}
.button-small{padding:10px 21px;box-shadow:none}
.button-small:hover{box-shadow:none}
.button-light{background:#fff;color:var(--teal);box-shadow:0 8px 0 var(--yellow)}
.button-light:hover{box-shadow:0 6px 0 var(--yellow)}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--coral);font-weight:700;font-size:.78rem;margin:0 0 18px}
h1,h2,h3{line-height:1.1;margin:0}
h1,h2{text-wrap:balance}
.lead{font-size:1.18rem;max-width:590px;margin:26px 0 30px}
.large-copy{font-size:1.25rem;margin-top:0}
.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.text-link,.arrow-link{font-weight:700;text-underline-offset:5px}
.arrow-link{display:inline-flex;gap:10px;margin-top:14px;color:var(--teal)}
.section{padding:110px 0}
.section-head{margin-bottom:44px}
.section-head h2{font-size:clamp(2rem,3.6vw,3.2rem);color:var(--teal)}

/* Home hero */
.hero{position:relative;overflow:hidden;background:var(--cream);min-height:690px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px;padding-top:70px}
.hero h1{font-size:clamp(2.8rem,5vw,4.6rem);letter-spacing:-.03em;line-height:1.05;color:var(--teal)}
.hero h1 em{font-style:normal;color:var(--coral)}
.hero-art{height:480px;border-radius:50% 50% 36% 36%;background:linear-gradient(#8edbdc 0 57%,#30a0ad 57% 69%,#08758a 69%);position:relative;overflow:hidden;box-shadow:var(--shadow)}
.sun{position:absolute;background:var(--yellow);width:130px;height:130px;border-radius:50%;top:70px;right:82px}
.cloud{position:absolute;width:95px;height:25px;background:rgba(255,255,255,.75);border-radius:50px;top:100px;left:50px}
.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%;width:38px;height:38px;left:18px;top:-18px}
.cloud:after{width:48px;height:48px;left:43px;top:-25px}
.cloud-two{transform:scale(.65);top:170px;left:250px}
.wave{position:absolute;bottom:95px;left:-10%;width:120%;height:55px;border-radius:50%;background:var(--cream);opacity:.95}
.wave-one{transform:rotate(-4deg)}
.wave-two{bottom:50px;background:var(--teal);transform:rotate(3deg)}
.lifeguard-tower{position:absolute;z-index:2;left:130px;bottom:145px;width:125px;height:115px;background:var(--coral);border:10px solid var(--teal);border-radius:10px}
.lifeguard-tower:before,.lifeguard-tower:after{content:"";position:absolute;background:var(--teal);width:13px;height:125px;bottom:-120px;transform:rotate(10deg)}
.lifeguard-tower:before{left:12px}
.lifeguard-tower:after{right:12px;transform:rotate(-10deg)}
.lifeguard-tower span{display:block;width:44px;height:38px;background:var(--cream);margin:18px auto;border:7px solid var(--teal)}
.hero-badge{position:absolute;right:20px;bottom:20px;z-index:3;width:130px;height:130px;border-radius:50%;background:var(--yellow);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(6deg);border:5px solid var(--cream);color:var(--teal);line-height:1.2}
.hero-badge strong{font-size:.95rem}
.hero-badge span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.hero-edge{position:absolute;bottom:-1px;width:100%;height:75px;fill:var(--paper)}

/* Home sections */
.split{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}
.split h2{font-size:clamp(2rem,3.8vw,3.3rem);color:var(--teal)}
.cards-section{background:var(--mint)}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
/* Pillar cards follow Becky's "Skills for Life" slogans sheet: pastel card and border, one accent per pillar. */
.pillars{background:var(--paper);padding-top:0}
.feature-card{--pc:var(--teal);--pc-bg:#fff;--pc-line:#d6e6e5;--pc-icon:var(--coral);--pc-vein:#fff;min-height:340px;padding:30px 26px;border:2px solid var(--pc-line);border-radius:var(--radius);background:var(--pc-bg);position:relative;overflow:hidden}
.feature-card .icon{width:52px;height:52px;stroke-linecap:round;stroke-linejoin:round}
.feature-card .i-sun{fill:#ffc23c}
.feature-card .i-line{fill:none;stroke:var(--pc);stroke-width:3.5}
.feature-card .i-fill{fill:var(--pc-icon)}
.feature-card .i-pulse{fill:none;stroke:#fff;stroke-width:2.5}
.feature-card .i-vein{fill:none;stroke:var(--pc-vein);stroke-width:2.5}
.pillar-label{margin:40px 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.14em;line-height:1.5;text-transform:uppercase;color:var(--pc)}
.feature-card h3{font-size:1.45rem;line-height:1.15;color:var(--pc);margin:0 0 12px}
.feature-card p:not(.pillar-label){margin:0}
.pillar-ocean{--pc:#0b3b54;--pc-bg:#e7f1f3;--pc-line:#c6dee2}
.pillar-rescue{--pc:#c0432b;--pc-bg:#fde7e1;--pc-line:#f7c4b5;--pc-icon:#ff6b4a}
.pillar-earth{--pc:#1e6b4e;--pc-bg:#e4f1ea;--pc-line:#bfe0ce;--pc-icon:#2fa089;--pc-vein:#e4f1ea}
.pillar-play{--pc:#a8720b;--pc-bg:#fef2da;--pc-line:#fbdf9f;--pc-icon:#ffc23c;--pc-vein:#a8720b}
.card-number{position:absolute;right:25px;top:20px;font-weight:700;color:var(--pc);opacity:.5}
.session{background:var(--cream)}
.session-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;align-items:center}
.session h2{font-size:clamp(2.4rem,4.5vw,4rem);color:var(--teal)}
.session .large-copy{margin:20px 0 32px}
.session-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}
.session-facts>div{background:#fff;border-radius:20px;padding:22px 24px;box-shadow:var(--shadow)}
.session-facts .wide{grid-column:1/-1}
.session-facts dt{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:700;color:var(--coral)}
.session-facts dd{margin:6px 0 0;font-size:1.3rem;font-weight:700;color:var(--teal);line-height:1.35}
.session-facts dd small{display:block;font-size:.95rem;font-weight:500;color:var(--ink)}
.cta{background:var(--teal);color:#fff;padding:90px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.cta h2{font-size:clamp(2rem,4vw,3.4rem);color:#fff;max-width:720px}
.cta .eyebrow{color:var(--yellow)}

/* Footer */
.site-footer{background:var(--teal-dark);color:#fff;padding:70px 0 25px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:70px}
.brand-footer{color:#fff}
.footer-place{color:#a9cbd1;font-size:.9rem;margin-top:-6px}
.footer-grid>div>a:not(.brand){display:block;text-decoration:none;margin:8px 0;color:#d9eeee}
.footer-grid h2{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--yellow);margin-bottom:18px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.18);margin-top:55px;padding-top:24px;display:flex;justify-content:space-between;color:#a9cbd1;font-size:.85rem}

/* Inner pages */
.page-hero{background:var(--cream);padding:90px 0 110px;position:relative;overflow:hidden}
.page-hero h1{font-size:clamp(2.6rem,5.6vw,4.8rem);letter-spacing:-.02em;color:var(--teal);max-width:900px}
.page-hero .lead{max-width:720px}
.content-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:10%}
.content-grid h2{font-size:clamp(2rem,3.4vw,3rem);color:var(--teal)}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.stat{padding:25px;border-radius:20px;background:var(--cream)}
.stat strong{font-size:1.6rem;font-weight:700;display:block;color:var(--coral)}
.day-hours{font-weight:600;color:var(--teal);margin-top:20px}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,360px));gap:24px}
.profile{border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.profile-portrait{height:220px;background:var(--sky);display:grid;place-items:center;font-size:5.5rem}
.profile-body{padding:28px}
.profile h2{font-size:1.6rem;color:var(--teal);margin:4px 0 10px}
.profile .role{color:var(--coral);font-weight:700;margin:0}
.profile-invite{background:var(--mint)}
.profile-invite .profile-portrait{background:var(--cream)}
.opportunities{margin-top:90px}
.opportunity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.opportunity{background:#fff;border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow)}
.opportunity .emoji{display:block;font-size:2.4rem;line-height:1;margin-bottom:18px}
.opportunity h3{font-size:1.2rem;line-height:1.25;color:var(--teal);margin:0 0 8px}
.opportunity p{margin:0;font-size:.95rem}
.sponsors{margin-top:90px}
.sponsor-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.sponsor{display:block;padding:26px 24px;border-radius:var(--radius);background:var(--cream);box-shadow:var(--shadow);text-decoration:none}
.sponsor strong{display:block;font-size:1.3rem;color:var(--teal)}
.sponsor span{display:block;margin-top:6px}
.sponsor:hover strong,.sponsor:focus-visible strong{text-decoration:underline}
.check-list{padding:0;list-style:none}
.check-list li{margin:12px 0;padding-left:26px;position:relative}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--coral);font-weight:700}

/* Sign-up form */
.form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%;align-items:start}
.signup-form{padding:35px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.signup-form label{display:block;font-weight:700;margin-bottom:16px}
.signup-form input,.signup-form select,.signup-form textarea{display:block;width:100%;margin-top:7px;padding:13px;border:2px solid #ccdedf;border-radius:12px;font:inherit;font-weight:400;background:#fff}
.signup-form input:focus,.signup-form select:focus,.signup-form textarea:focus{outline:3px solid rgba(255,107,74,.25);border-color:var(--coral)}
.form-note{font-size:.85rem;color:#55747a}
.form-status{margin:18px 0 0;padding:14px 16px;border-radius:12px;font-weight:600}
.form-status-success{background:#e4f1ea;color:#1e6b4e}
.form-status-error{background:#fde7e1;color:#9b3320}
.form-status a{color:inherit}
.button:disabled{opacity:.6;cursor:wait;transform:none}
/* Spam honeypot: invisible to people and screen readers, filled in by bots. */
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* FAQ */
.faq-list{max-width:850px;margin:auto}
.faq-item{border-bottom:2px solid #d6e6e5}
.faq-question{width:100%;padding:24px 0;border:0;background:none;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;text-align:left;color:var(--teal);font:600 1.2rem/1.35 var(--font);cursor:pointer}
.faq-icon{flex:none;transition:.2s}
.faq-question[aria-expanded=true] .faq-icon{transform:rotate(45deg)}
.faq-answer{display:none;padding:0 50px 24px 0}
.faq-answer a{color:var(--teal);font-weight:700}
.faq-item.is-open .faq-answer{display:block}

/* The menu collapses before the page layout does: the Spanish nav labels need ~1000px on one row. */
@media(max-width:1060px){
  .menu-toggle{display:block;position:relative;z-index:22}
  .lang-switch{margin-left:auto;position:relative;z-index:22}
  .site-nav{display:none;position:fixed;inset:0;margin:0;background:var(--cream);padding:120px 32px 40px;flex-direction:column;align-items:stretch;gap:16px;font-size:1.8rem;font-weight:600}
  .site-nav.is-open{display:flex}
  .site-nav .button{margin-top:12px}
  .menu-toggle[aria-expanded=true]>span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle[aria-expanded=true]>span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded=true]>span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}
@media(max-width:1000px){
  .feature-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .site-header{height:78px}
  .header-inner{gap:14px}
  .brand img{width:58px}
  .hero{padding-bottom:45px}
  .hero-grid{grid-template-columns:1fr;padding-top:48px;padding-bottom:100px}
  .hero-art{height:400px}
  .split,.content-grid,.form-wrap,.session-grid{grid-template-columns:1fr;gap:42px}
  .profile-grid{grid-template-columns:1fr}
  .feature-card{min-height:0}
  .cta-inner{align-items:flex-start;flex-direction:column}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1/-1}
  .section{padding:80px 0}
}
@media(max-width:540px){
  .shell{width:min(100% - 28px,1160px)}
  .brand{gap:8px}
  .brand img{width:50px}
  .lang-switch button{padding:6px 8px}
  .hero h1{font-size:2.5rem}
  .hero-art{height:340px}
  .lifeguard-tower{left:72px;transform:scale(.8)}
  .sun{width:90px;height:90px;right:50px}
  .hero-badge{width:105px;height:105px}
  .hero-badge strong{font-size:.8rem}
  .hero-badge span{font-size:.62rem}
  .feature-grid,.session-facts,.stat-grid,.field-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-grid>div:first-child{grid-column:auto}
  .footer-bottom{flex-direction:column;gap:5px}
  .page-hero{padding:65px 0 85px}
  .page-hero h1{font-size:2.4rem}
}
@media(max-width:400px){
  .header-inner{gap:10px}
  .brand{gap:6px;font-size:.68rem;letter-spacing:.05em}
  .brand img{width:44px}
  .brand strong{font-size:.85rem}
  .lang-switch button{padding:5px 7px}
  .menu-toggle{flex:none;width:44px;padding:10px}
  .hero h1{font-size:2.2rem}
}
/* Too narrow for the wordmark: keep the logo, hide the text visually but not from screen readers. */
@media(max-width:330px){
  .brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
