:root{--navy:#060f26;--navy2:#0a1f44;--acid:#c8ff3d;--ink:#0a1220;--muted:#5a657d;--paper:#f4f7fd;--line:#e6ecf7}
html{scroll-padding-top:88px}body{margin:0}.container{max-width:1200px;margin:auto;padding:0 24px}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #648adb;outline-offset:5px}.section{padding:80px 0}.eyebrow{color:#507200;background:#effbd5;border:1px solid #d6edb3;font-size:10px;margin-bottom:18px;letter-spacing:.08em}h1,h2,h3,.brand{font-family:'Unbounded',sans-serif}h1{font-size:clamp(32px,4.4vw,59px);line-height:1.16;letter-spacing:-.035em;font-weight:800}h2{font-size:clamp(26px,3vw,38px);line-height:1.22;letter-spacing:-.025em;font-weight:800}h2 span{color:#6f9800}h3{font-size:19px;line-height:1.45;font-weight:700}p{line-height:1.8}header{position:sticky;top:0;background:rgba(6,15,38,.97);color:#fff;z-index:50;border-bottom:1px solid #203044}.header-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:74px}.brand{white-space:nowrap;font-size:21px;font-weight:800;letter-spacing:-.03em}.brand b{color:var(--acid)}.navigation{display:flex;gap:25px;font-size:14px;font-weight:600;color:#d8dce6}.navigation a:hover{color:var(--acid)}.account{font-size:13px;padding:12px 22px;min-height:44px}.menu-toggle{display:none;background:none;border:1px solid #4d5b73;color:#fff;padding:10px 14px;border-radius:24px;font:inherit}.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 40%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,15,38,.98) 0%,rgba(6,15,38,.92) 35%,rgba(6,15,38,.55) 65%,rgba(6,15,38,.16) 100%)}.hero-content{position:relative;padding:56px 0 66px;max-width:820px}.breadcrumbs{font-size:12px;color:#bdc9df;margin-bottom:32px}.breadcrumbs span{margin:0 9px;color:#7d93b7}.hero .eyebrow{background:#142a32;border-color:#304331;color:var(--acid);padding:8px 15px}.hero h1 span{color:var(--acid)}.hero-intro{font-size:19px;line-height:1.6;max-width:600px;color:#fff;margin-top:24px;font-weight:600}.hero-sub{font-size:16px;color:#d5def0;max-width:610px;margin-top:13px}.hero-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:28px}.text-link{color:#dbe5f5;font-size:14px;text-decoration:underline;text-underline-offset:5px}.hero-stats{display:flex;gap:35px;flex-wrap:wrap;margin-top:40px;padding-top:25px;border-top:1px solid #526178;max-width:620px}.stat-label{font-size:12px;color:#c1cbe0}.stat-value{font-family:'Unbounded',sans-serif;font-size:19px;font-weight:700;color:var(--acid);margin-bottom:4px}.section-head{max-width:760px;margin-bottom:32px}.section-head p{color:var(--muted);font-size:17px;margin-top:18px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}.intro-copy>p{color:var(--muted);margin-top:18px}.intro-photo{position:relative}.intro-photo img{width:100%;height:370px;object-fit:cover;border-radius:24px}.photo-caption{display:inline-block;background:var(--acid);padding:13px 20px;border-radius:15px;font-size:13px;font-weight:700;position:absolute;bottom:22px;left:-18px;max-width:85%;box-shadow:var(--shadow)}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:42px}.feature{border-top:2px solid #dfe8ef;padding-top:19px}.feature-num{font-family:'Unbounded',sans-serif;font-size:13px;color:#6c8f0b;margin-bottom:10px}.feature h3{font-size:15px;line-height:1.55;margin-bottom:10px}.feature p{color:var(--muted);font-size:14px;line-height:1.7}.comfort{background:var(--paper)}.comfort-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}.comfort-photo img{height:340px;object-fit:cover;width:100%;border-radius:24px}.comfort-copy p{color:var(--muted);margin-top:16px}.comfort-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:23px 0;font-size:14px;font-weight:600}.check{display:flex;gap:8px}.check span{background:var(--acid);color:var(--navy);width:22px;height:22px;display:inline-flex;justify-content:center;align-items:center;border-radius:50%;flex-shrink:0}.note{font-size:12px!important;line-height:1.6!important;color:var(--muted)}.program{display:grid;grid-template-columns:45% 1fr;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.program-media{position:relative;min-height:350px}.program-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.program-badge{position:absolute;left:22px;top:22px;display:inline-flex;gap:7px;align-items:center;background:var(--acid);border-radius:99px;font-size:12px;font-weight:800;padding:7px 13px}.program-body{padding:32px 36px}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.tag{font-size:10px;font-weight:700;padding:4px 9px;border-radius:99px;color:#204d89;background:#edf4ff}.tag.orange{background:#fff1dc;color:#985500}.tag.green{background:#ebf9dd;color:#3a6910}.program h3{font-size:27px;letter-spacing:-.02em}.program-description{font-size:14px;color:var(--muted);margin:13px 0}.program-meta{font-size:14px;display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.program-meta span+span:before{content:'·';padding-right:8px;color:#8a96a8}.program-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.price{font-family:'Unbounded',sans-serif;font-weight:700;font-size:22px}.price small{display:block;font-family:'Manrope',sans-serif;font-size:11px;font-weight:500;color:var(--muted);margin-top:3px}.program-section>.container>.note{margin-top:16px}.archive{background:var(--paper)}.archive-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.archive-heading .section-head{margin-bottom:0}.archive-controls{display:flex;gap:10px;flex-shrink:0}.archive-controls[hidden]{display:none}.archive-arrow{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;padding:0;border:1px solid #aab7cc;border-radius:50%;background:#fff;color:var(--navy);font:700 24px/1 sans-serif;cursor:pointer}.archive-arrow:hover:not(:disabled){background:var(--acid);border-color:var(--acid)}.archive-arrow:disabled{opacity:.35;cursor:default}.archive-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3);gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 16px;scrollbar-width:thin;scrollbar-color:#9cabc4 transparent}.archive-card{min-width:0;scroll-snap-align:start;background:#fff;border-radius:20px;border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}.archive-media{height:200px;position:relative;background:var(--navy2)}.archive-media img{height:100%;width:100%;object-fit:cover}.archive-status{position:absolute;top:15px;left:15px;border-radius:99px;padding:5px 11px;background:#fff;color:#40516d;font-size:10px;font-weight:700}.archive-type{display:flex;align-items:center;justify-content:center;height:100%;color:var(--acid);font:800 35px/1.2 'Unbounded',sans-serif;letter-spacing:-.04em;background:radial-gradient(ellipse at 90% 10%,#224778 0,transparent 65%)}.archive-body{padding:23px;display:flex;flex-direction:column;flex:1}.archive-location{font-size:12px;color:var(--muted);margin:8px 0 13px}.archive-body>p{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:22px}.archive-link{font-size:13px;font-weight:800;color:#0a1f44;margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:15px}.archive-link:hover{color:#5b7e00}.benefits{background:var(--navy);color:#fff}.benefits .eyebrow{background:#1b2d35;color:var(--acid);border-color:#304331}.benefits h2 span{color:var(--acid)}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:36px}.benefit{border-top:1px solid #34445f;padding-top:22px}.benefit h3{font-size:17px;color:#fff;margin-bottom:12px}.benefit p{font-size:14px;color:#bcc9df;line-height:1.85}.faq-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:65px}.faq-layout .section-head p{font-size:15px}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list details:first-child{padding-top:0}.faq-list summary{cursor:pointer;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;min-height:30px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';font-size:23px;font-weight:500;color:#6b8e12}.faq-list details[open] summary:after{content:'−'}.faq-list details p{color:var(--muted);font-size:14px;margin:12px 25px 0 0}.final-cta{background:var(--paper);padding:0 0 70px}.cta-box{background:var(--navy2);position:relative;border-radius:28px;overflow:hidden;padding:48px;color:#fff}.cta-box:after{content:'';position:absolute;width:300px;height:300px;right:-170px;bottom:-170px;background:var(--acid);opacity:.1;border-radius:50%;pointer-events:none}.cta-box h2{font-size:clamp(25px,3vw,35px);max-width:800px}.cta-box p{font-size:15px;color:#c1cde2;margin:17px 0 25px;max-width:650px}.cta-box .btn{position:relative;z-index:1}.footer{background:var(--navy);color:#9fafca;padding:42px 0}.footer-row{display:flex;justify-content:space-between;align-items:center;gap:25px;flex-wrap:wrap}.footer .brand{color:#fff}.footer p{font-size:12px;margin-top:12px;max-width:390px}.footer-links{display:flex;gap:24px;align-items:center;font-size:13px}.preview-notice{background:#edf2fa;text-align:center;color:#56657c;padding:12px 24px;font-size:11px}.mobile-nav{display:none;background:var(--navy2);padding:20px 24px}.mobile-nav a{display:block;padding:10px 0;color:#fff}.mobile-nav:not([hidden]){display:block}.skip-link{position:absolute;left:20px;top:-100px;background:var(--acid);padding:10px;color:var(--navy);z-index:100}.skip-link:focus{top:10px}
@media(max-width:1050px){.navigation{gap:16px;font-size:12px}.account{padding:10px 16px}.brand{font-size:18px}.hero-content{max-width:740px}.program h3{font-size:23px}}
@media(max-width:820px){.navigation,.account{display:none}.menu-toggle{display:block}.section{padding:58px 0}.intro-grid,.comfort-grid,.faq-layout{grid-template-columns:1fr;gap:30px}.features{grid-template-columns:1fr 1fr}.intro-photo img{height:330px}.comfort-photo img{height:330px}.comfort-copy{order:-1}.archive-grid{grid-auto-columns:calc((100% - 14px)/2);gap:14px}.archive-media{height:155px}.archive-body{padding:17px}.archive-body h3{font-size:15px}.program-body{padding:26px}.benefit-grid{gap:22px}.program h3{font-size:21px}.hero-shade{background:linear-gradient(90deg,rgba(6,15,38,.96),rgba(6,15,38,.65))}}
@media(max-width:600px){.container{padding:0 20px}.header-row{min-height:68px}.hero-content{padding:29px 0 42px}.breadcrumbs{margin-bottom:25px}h1{font-size:32px}.hero-intro{font-size:17px}.hero-sub{font-size:15px}.hero-photo{object-position:65% 50%}.hero-stats{gap:20px;justify-content:space-between;margin-top:31px}.stat-value{font-size:16px}.stat-label{font-size:10px}.hero-actions{gap:15px}.hero .btn{font-size:13px;padding:14px 21px}.section{padding:45px 0}.intro-photo img{height:270px}.photo-caption{left:12px;bottom:12px;font-size:11px;padding:10px 13px}.features{gap:23px 18px;margin-top:28px}.feature h3{font-size:13px}.feature p{font-size:13px}.section-head p{font-size:15px}.intro-copy>p,.comfort-copy p{font-size:14px}.comfort-list{font-size:13px;gap:12px}.comfort-photo img{height:260px}.program{grid-template-columns:1fr}.program-media{min-height:260px}.program-body{padding:24px}.program h3{font-size:23px}.program-footer .btn{font-size:13px;padding:12px 21px}.archive-heading{flex-direction:column;align-items:flex-start;gap:18px}.archive-controls{align-self:flex-end}.archive-grid{grid-auto-columns:88%;gap:16px}.archive-media{height:230px}.archive-body{padding:22px}.archive-body h3{font-size:20px}.archive-body>p{font-size:14px}.benefit-grid{grid-template-columns:1fr;gap:24px}.benefit h3{font-size:18px}.benefit p{font-size:14px}.faq-layout{gap:10px}.faq-list summary{font-size:14px}.cta-box{padding:30px 24px}.final-cta{padding-bottom:45px}.footer-row{align-items:flex-start}.footer-links{flex-wrap:wrap;gap:18px}.section-head{margin-bottom:26px}.program-meta{font-size:13px}.eyebrow{font-size:9px}h2{font-size:26px}}
@media(max-width:355px){h1{font-size:27px}.hero .eyebrow{font-size:8px}.hero-stats{gap:15px}.stat-value{font-size:14px}}
@media(prefers-reduced-motion:reduce){html,.archive-grid{scroll-behavior:auto}*{transition:none!important}}
.menu-toggle{padding:0}.menu-toggle>summary{padding:10px 14px;cursor:pointer;list-style:none}.menu-toggle>summary::-webkit-details-marker{display:none}.menu-toggle .mobile-nav{display:block;position:absolute;top:68px;right:20px;width:min(280px,calc(100vw - 40px));border:1px solid #31425f;border-radius:16px;box-shadow:0 20px 40px #0004;text-align:left}

.hero{padding-top:72px}.hero-content{padding-top:30px}.program + .program{margin-top:28px}

.summer-empty{padding:32px;border-radius:24px;background:var(--paper)}.summer-empty p{color:var(--muted);margin:15px 0 24px}

/* Winter atmosphere: decorative snow, entrance motion and photo postcards. */
.hero .hero-photo{z-index:0}
.hero .hero-shade{z-index:1;pointer-events:none}
.hero .hero-content{z-index:2}
.summer-snow{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:paint}
.summer-snowflake{position:absolute;top:-12px;left:var(--snow-left);width:var(--snow-size);height:var(--snow-size);border-radius:50%;background:#fff;opacity:var(--snow-opacity);box-shadow:0 0 5px #ffffff55;animation:summer-snowfall var(--snow-speed) linear var(--snow-delay) infinite}
.summer-snow.is-paused .summer-snowflake{animation-play-state:paused}
@keyframes summer-snowfall{from{transform:translate3d(0,-16px,0)}to{transform:translate3d(var(--snow-drift),var(--snow-travel,950px),0)}}
.summer-reveal{transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s ease var(--reveal-delay,0ms)}
.summer-reveal.is-pending{opacity:0;transform:translateY(18px)}
.summer-postcard{position:relative;margin:0;padding:10px;background:#fff;border:1px solid #e1e8f1;border-radius:27px;box-shadow:0 12px 32px #0a1f4412;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;isolation:isolate}
.summer-postcard img{display:block;border-radius:18px}
.summer-postcard::before{content:"";position:absolute;top:18px;right:18px;width:34px;height:34px;border:1px solid #ffffffbb;border-radius:10px;background:#0a1f44d9;z-index:1;pointer-events:none}
.summer-postcard::after{content:"";position:absolute;top:24px;right:24px;width:22px;height:22px;background:var(--acid);clip-path:polygon(50% 0,60% 35%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);z-index:2;pointer-events:none}
.summer-postcard.is-glowing{transform:translateY(-4px) rotate(-.7deg);border-color:#b5d966;box-shadow:0 0 0 2px #c8ff3d66,0 18px 42px #31501c24,0 0 28px #c8ff3d55}
@media(hover:hover){.summer-postcard:hover{transform:translateY(-4px) rotate(-.7deg);border-color:#b5d966;box-shadow:0 0 0 2px #c8ff3d66,0 18px 42px #31501c24,0 0 28px #c8ff3d55}}
@media(max-width:600px){.summer-postcard{padding:8px;border-radius:24px}.summer-postcard img{border-radius:16px}.summer-postcard::before{top:15px;right:15px}.summer-postcard::after{top:21px;right:21px}}
@media(prefers-reduced-motion:reduce){.summer-snow{display:none}.summer-reveal.is-pending{opacity:1;transform:none}.summer-postcard,.summer-postcard:hover,.summer-postcard.is-glowing{transform:none}}

/* Larger hero statistics and readable supporting labels. */
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px;gap:28px}
.hero-stats .stat-value{font-size:32px;line-height:1.25;margin-bottom:8px}
.hero-stats .stat-label{font-size:15px;line-height:1.5}
@media(max-width:820px){.hero-stats{max-width:100%;gap:20px}.hero-stats .stat-value{font-size:28px}.hero-stats .stat-label{font-size:14px}}
@media(max-width:600px){.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}.hero-stats>div:last-child{grid-column:1/-1}}

/* Summer page: airy programme cards and the shared Nordic visual language. */
.summer-page .hero-photo{object-position:75% 42%}
.summer-page .hero-shade{background:linear-gradient(90deg,#060f26fa 0%,#060f26ef 38%,#060f2680 72%,#060f2633 100%)}
.summer-page .hero-content{max-width:820px}
.summer-page .hero-stats{max-width:800px;gap:32px}
.summer-page .hero-stats .stat-value{font-size:clamp(21px,2.5vw,34px)}
.summer-page .hero-stats .stat-label{font-size:13px}
.summer-orbit{position:absolute;right:-80px;top:12%;width:300px;height:300px;border:1px solid #c8ff3d55;border-radius:50%;pointer-events:none}
.summer-orbit::before{content:'';position:absolute;inset:20px;border:1px solid #c8ff3d33;border-radius:50%}
.summer-page .comfort,.summer-page .archive,.summer-page .winter-gallery,.summer-page .final-cta{background:#f7f9ee}
.summer-programs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.summer-program{display:flex;flex-direction:column;min-width:0}
.summer-program .program-media{min-height:0;aspect-ratio:16/10;flex:none}
.summer-program .program-badge{top:auto;bottom:20px;left:20px;background:#f6ffdc}
.summer-number{position:absolute;top:18px;left:20px;padding:7px 11px;border-radius:9px;background:#060f26b8;color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em}
.summer-program .program-body{display:flex;flex-direction:column;flex:1;padding:28px}
.summer-program .program-body h3{font-size:24px}
.summer-program .program-description{margin-bottom:24px}
.summer-program-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
.summer-location{font-size:13px;font-weight:800}.summer-program-type{font-size:12px;color:var(--muted)}
.summer-program-note{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px;padding:22px 24px;border:1px solid #dbe9bd;border-radius:18px;background:#f6fbed}
.summer-program-note p{font-size:13px;line-height:1.6;color:var(--muted);max-width:610px}
.summer-program-note .btn{flex-shrink:0;font-size:13px}
.summer-cta-label{color:var(--acid);font-size:12px;font-weight:800;letter-spacing:.06em;margin-bottom:18px}
.summer-archive-cta{display:inline-block;color:#dce7f5;text-decoration:underline;text-underline-offset:4px;font-size:13px;margin:15px 0 0 20px}
.summer-page .archive-body h3{font-size:17px}
@media(max-width:820px){.summer-program-note{align-items:flex-start;flex-direction:column}.summer-page .hero-stats{gap:24px}.summer-program .program-body{padding:23px}.summer-program .program-body h3{font-size:20px}}
@media(max-width:600px){.summer-programs{grid-template-columns:1fr;gap:20px}.summer-page .hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:22px}.summer-page .hero-stats>div:last-child{grid-column:span 2}.summer-page .hero-stats .stat-value{font-size:24px}.summer-page .hero-stats .stat-label{font-size:12px}.summer-program .program-body h3{font-size:23px}.summer-program-note{padding:20px}.summer-program-note .btn{white-space:normal;text-align:center;max-width:100%}.summer-archive-cta{display:block;margin-left:0}.summer-orbit{width:220px;height:220px;right:-130px;top:5%}.summer-page .hero-photo{object-position:68% center}.summer-page .hero-shade{background:linear-gradient(90deg,#060f26ed,#060f26a8)}}

.summer-programs > .summer-program{margin:0}

/* Keep the supplied square introduction photo and its lettering fully visible. */
.summer-page .intro-photo--happy-summer img{display:block;height:auto;aspect-ratio:1;object-fit:contain}
.summer-page .intro-photo--happy-summer .photo-caption{position:static;margin-top:12px}

/* Show every child in the supplied portrait photo on desktop and mobile. */
.summer-page .comfort-photo--summer-friends img{display:block;height:auto;aspect-ratio:819/1024;object-fit:contain}

/* Summer hero: keep the main smile beside the heading and preserve contrast. */
.summer-page .hero-photo{left:auto;right:0;width:68%;object-position:50% 40%}
.summer-page .hero-shade{background:linear-gradient(90deg,#060f26 0%,#060f26f5 30%,#060f26c2 48%,#060f2638 70%,#060f2614 100%)}
@media(max-width:820px){.summer-page .hero-photo{left:0;width:100%;object-position:50% 35%}.summer-page .hero-shade{background:linear-gradient(180deg,#060f2680 0%,#060f26a8 40%,#060f26ed 100%),linear-gradient(90deg,#060f2655,#060f261a)}}
