@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(fonts/barlow-400-latin.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:500;font-display:swap;src:url(fonts/barlow-500-latin.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(fonts/barlow-600-latin.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:700;font-display:swap;src:url(fonts/barlow-700-latin.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-700-latin.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-display:swap;src:url(fonts/barlow-condensed-800-latin.woff2) format("woff2")}

/* Shape rule: buttons are pills, photos and panels 24px, inputs 10px. One accent: the logo red. */
:root{
  --red:#E42626; --red-hover:#870606; --red-soft:#fbe9e9; --on-red:#fff; --accent:#870606;
  --bg:#ffffff; --surface:#E8E8E6; --panel:#fff;
  --ink:#151515; --muted:#5a5a57; --line:#e6e6e2;
  --shadow:0 14px 44px rgba(22,22,22,.09);
  --foot:#161616; --foot-ink:#c9c9c5;
  --radius:24px; --wrap:1200px;
  --font:"Verdana Pro",Verdana,system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Barlow Condensed",Barlow,system-ui,sans-serif;
  color-scheme:light;
}
:root[data-theme=dark]{
  --red:#ee4a4a; --red-hover:#f56d6d; --red-soft:#3a1517; --accent:#f56d6d;
  --bg:#121212; --surface:#1a1a1a; --panel:#1f1f1f;
  --ink:#f1f1ee; --muted:#a8a8a3; --line:#2d2d2b;
  --foot:#0b0b0b; --foot-ink:#a8a8a3;
  --shadow:0 14px 44px rgba(0,0,0,.45);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.7 var(--font)}
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-underline-offset:3px}
a:hover{color:var(--red-hover)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--display);text-transform:uppercase;font-weight:700;line-height:1.1;letter-spacing:-.025em;margin:0 0 .45em;text-wrap:balance}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem)}
h2{font-size:clamp(1.75rem,3.4vw,2.6rem)}
h3{font-size:1.2rem;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
@media (max-width:640px){.wrap{padding:0 18px}}
.narrow{max-width:780px}
.lead{font-size:1.15rem;color:var(--muted);max-width:58ch}
.eyebrow{display:block;font-size:.85rem;font-weight:600;color:var(--red);margin-bottom:12px}
.more{font-weight:600;text-decoration:none}
.more:hover{text-decoration:underline}
.skip{position:absolute;left:-999px;top:8px;background:var(--panel);color:var(--ink);padding:8px 12px;z-index:99}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:var(--on-red);font:600 1rem/1 var(--font);padding:16px 26px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:background .2s,transform .15s}
.btn:hover{background:var(--red-hover);color:var(--on-red)}
.btn:active{transform:translateY(1px)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px currentColor}
.btn.line:hover{background:var(--ink);color:var(--bg)}
.btn.sm{padding:12px 20px;font-size:.95rem}
.btn[disabled]{opacity:.55;cursor:wait}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);transition:background .25s,border-color .25s}
.site-header .wrap{display:flex;align-items:center;gap:32px;height:72px}
.logo img{height:36px;width:auto}
.logo .l-w{display:none}
[data-theme=dark] .logo .l-b{display:none}[data-theme=dark] .logo .l-w{display:block}
.nav{display:flex;align-items:center;gap:28px;margin-left:auto}
.nav a{color:inherit;text-decoration:none;font-weight:500;font-size:.97rem}
.nav a:hover,.nav a[aria-current=page]{color:var(--red)}
.nav .btn{display:none}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer;color:inherit}
.menu-toggle span{display:block;width:22px;height:2px;background:currentColor;margin:5px 0;transition:transform .2s,opacity .2s}
.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* header over the photo hero: transparent and white until the hero leaves view */
body.over .site-header{position:fixed;left:0;right:0;background:transparent;border-color:transparent;color:#fff}
body.over .site-header .logo .l-b{display:none}
body.over .site-header .logo .l-w{display:block}
body.over .site-header.solid{background:var(--bg);border-color:var(--line);color:var(--ink)}
body.over .site-header.solid .logo .l-w{display:none}
body.over .site-header.solid .logo .l-b{display:block}
[data-theme=dark] body.over .site-header.solid .logo .l-w{display:block}[data-theme=dark] body.over .site-header.solid .logo .l-b{display:none}
body.over .site-header:not(.solid) .nav a:hover{color:#fff;text-decoration:underline}

@media (max-width:900px){
  .menu-toggle{display:block}
  .site-header .wrap > .btn{display:none}
  .nav{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);color:var(--ink);border-bottom:1px solid var(--line);padding:4px 18px 22px}
  .nav.open{display:flex}
  .nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .nav .btn{display:flex;margin-top:18px;border:0;color:var(--on-red)}
}

/* full-bleed photo hero (as on the original site) */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:#fff;isolation:isolate;background:#222}
.hero.short{min-height:100vh;min-height:100svh}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,center);z-index:-2}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,12,12,.5) 0,rgba(12,12,12,0) 160px),linear-gradient(90deg,rgba(12,12,12,.78) 0%,rgba(12,12,12,.5) 38%,rgba(12,12,12,.08) 68%,rgba(12,12,12,0) 100%),linear-gradient(0deg,rgba(12,12,12,.45) 0%,rgba(12,12,12,0) 40%)}
.hero .wrap{width:100%;padding-top:120px;padding-bottom:clamp(64px,14vh,160px)}
.hero h1{font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.55),0 8px 32px rgba(0,0,0,.55);font-size:clamp(2.9rem,7.2vw,5.8rem);line-height:1.02;letter-spacing:-.035em;max-width:11ch;margin-bottom:.3em}
.hero.short h1{font-size:clamp(2.4rem,5.6vw,4.4rem);max-width:14ch}
.hero p{font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:40ch;color:rgba(255,255,255,.88);margin:0}
.hero .eyebrow{color:#fff;opacity:.85}
.hero .btn.line{color:#fff}
.hero .btn.line:hover{background:#fff;color:#161616}
@media (max-width:760px){
  .hero::before{background:linear-gradient(180deg,rgba(12,12,12,.5) 0,rgba(12,12,12,0) 140px),linear-gradient(0deg,rgba(12,12,12,.85) 0%,rgba(12,12,12,.45) 50%,rgba(12,12,12,.2) 100%)}
  .hero,.hero.short{min-height:max(560px,100svh)}
}

/* plain page header (text pages) */
.page-head{padding-top:72px;padding-bottom:36px}
@media (max-width:640px){.page-head{padding-top:48px;padding-bottom:24px}}

/* sections */
section{padding:80px 0}
section.tight{padding:52px 0}
.surface{background:var(--surface)}
@media (max-width:640px){section{padding:68px 0}section.tight{padding:44px 0}}
.head{max-width:640px;margin-bottom:48px}
.head p:last-child{margin-bottom:0}

/* key facts directly under the hero */
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin:0;padding:34px 0;border-bottom:1px solid var(--line)}
.facts div{padding:0 24px;border-left:1px solid var(--line)}
.facts div:first-child{padding-left:0;border-left:0}
.facts dt{font-size:.9rem;color:var(--muted)}
.facts dd{margin:2px 0 0;font-size:clamp(1.15rem,2vw,1.5rem);font-weight:600;letter-spacing:-.02em;line-height:1.25}
@media (max-width:760px){.facts{grid-template-columns:1fr 1fr;gap:22px 0}.facts div:nth-child(3){padding-left:0;border-left:0}}

/* camps: one feature + two compact rows */
.camps{display:grid;grid-template-columns:7fr 5fr;gap:28px}
.camp{display:block;color:inherit;text-decoration:none}
.camp img{width:100%;object-fit:cover;border-radius:var(--radius);transition:opacity .2s}
.camp:hover img{opacity:.9}
.camp:hover h3{color:var(--red)}
.camp.feature img{aspect-ratio:3/2;object-position:center 28%;margin-bottom:22px}
.camp.feature h3{font-size:1.7rem}
.camp .meta{color:var(--muted);margin:0 0 10px}
.camp .price{font-weight:600;font-size:1.1rem;margin:12px 0 0}
.camp .price span{font-weight:400;color:var(--muted);font-size:.95rem}
.camp-side{display:grid;gap:28px;align-content:start}
.camp.row{display:grid;grid-template-columns:160px 1fr;gap:22px;align-items:start;padding-bottom:28px;border-bottom:1px solid var(--line)}
.camp.row:last-child{border-bottom:0;padding-bottom:0}
.camp.row img{aspect-ratio:1;object-position:center 30%}
.camp.row h3{margin-top:4px}
.camp.row p{margin-bottom:0}
@media (max-width:900px){.camps{grid-template-columns:1fr}}
@media (max-width:480px){.camp.row{grid-template-columns:110px 1fr;gap:16px}}

/* image + text split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.split > img,.split > figure img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.split.flip > :first-child{order:2}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:36px}.split.flip > :first-child{order:0}.split > img{aspect-ratio:4/3}}
.points{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;margin:30px 0}
.points div{border-top:2px solid var(--red);padding-top:12px}
.points strong{display:block;font-weight:600}
.points span{color:var(--muted);font-size:.95rem}
@media (max-width:480px){.points{grid-template-columns:1fr}}

/* quotes: one featured, three short */
.quotes{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:start}
.quote-main p{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:600;line-height:1.25;letter-spacing:-.02em;margin-bottom:20px;text-wrap:balance}
.quote-main footer,.quote-list footer{color:var(--muted);font-size:.95rem}
.quote-list{display:grid;gap:0}
.quote-list blockquote{margin:0;padding:22px 0;border-top:1px solid var(--line)}
.quote-list blockquote:first-child{border-top:0;padding-top:0}
.quote-list p{font-weight:500;margin-bottom:6px}
blockquote{margin:0}
@media (max-width:900px){.quotes{grid-template-columns:1fr;gap:40px}}

/* day timeline */
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:t}
.timeline li{position:relative;padding:28px 20px 0 0;border-top:2px solid var(--line)}
.timeline li::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;background:var(--red)}
.timeline time{display:block;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--red)}
.timeline strong{display:block;font-weight:600;margin:4px 0}
.timeline span{color:var(--muted);font-size:.93rem;line-height:1.55;display:block}
@media (max-width:900px){
  .timeline{grid-template-columns:1fr}
  .timeline li{border-top:0;border-left:2px solid var(--line);padding:0 0 26px 26px}
  .timeline li:last-child{padding-bottom:0}
  .timeline li::before{top:8px;left:-7px}
}
.note{color:var(--muted);margin-top:36px}

/* photo row, edge to edge */
.photo-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 10px}
.photo-row img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 30%;border-radius:var(--radius)}
@media (max-width:760px){.photo-row{grid-template-columns:1fr 1fr}}
.row-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.row-head h2{margin:0}

/* faq */
.faq-split{display:grid;grid-template-columns:1fr 1.6fr;gap:64px;align-items:start}
@media (max-width:900px){.faq-split{grid-template-columns:1fr;gap:20px}}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;font-weight:600;font-size:1.08rem;line-height:1.4;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:18px;font-size:1.6rem;font-weight:400;line-height:1;color:var(--red);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details > div{padding:0 0 24px;color:var(--muted);max-width:66ch}
.faq h2.group{font-size:1rem;letter-spacing:0;color:var(--muted);font-weight:500;margin:52px 0 14px}
.faq h2.group:first-child{margin-top:0}

/* lists */
.ticks{list-style:none;padding:0;margin:0 0 1em}
.ticks li{position:relative;padding-left:30px;margin-bottom:12px}
.ticks li::before{content:"";position:absolute;left:2px;top:.55em;width:15px;height:8px;border-left:2.5px solid var(--red);border-bottom:2.5px solid var(--red);transform:rotate(-45deg) translateY(-3px)}
.ticks.two{columns:2 260px;column-gap:40px}
.ticks.two li{break-inside:avoid}
.offer{margin:28px 0 0}
.offer div{padding:18px 0;border-top:1px solid var(--line)}
.offer dt{font-weight:600}
.offer dd{margin:2px 0 0;color:var(--muted)}

/* gallery */
/* An even grid: CSS columns staggered the tops of the columns. */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gallery figure{margin:0}
.gallery img{border-radius:var(--radius);width:100%;aspect-ratio:3/4;object-fit:cover}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.gallery{gap:8px}.gallery img{border-radius:12px}}

/* partners */
.partners{display:flex;flex-wrap:wrap;align-items:center;gap:28px 40px;margin-top:18px}
.partners img{height:42px;width:auto;filter:grayscale(1);opacity:.7}
[data-theme=dark] .partners img{filter:grayscale(1) invert(1);opacity:.65}

/* forms */
.form{display:grid;gap:18px}
.form fieldset{border:0;padding:0;margin:0 0 12px;display:grid;gap:16px}
.form legend{font-size:1.15rem;font-weight:600;margin-bottom:14px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){.row{grid-template-columns:1fr}}
label{display:grid;gap:7px;font-size:.95rem;font-weight:500}
input,select,textarea{font:inherit;font-size:1rem;width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ink)}
textarea{min-height:130px;resize:vertical}
label.check{display:flex;gap:12px;align-items:flex-start;font-weight:400}
label.check input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--red)}
.hp{position:absolute;left:-5000px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:36px}
@media (max-width:640px){.panel{padding:22px}}
.notice{padding:16px 18px;border-radius:10px;background:var(--surface)}
.notice.ok{background:#e7f4ec;color:#174b2c}
.notice.err{background:var(--red-soft);color:var(--red)}
[data-theme=dark] .notice.ok{background:#17301f;color:#bfe6cc}
.programs{display:grid;gap:12px}
.program-opt{display:flex;gap:14px;align-items:flex-start;padding:18px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;font-weight:400}
.program-opt:has(input:checked){border-color:var(--red);background:var(--red-soft)}
.program-opt input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--red)}
.program-opt .t{font-weight:600;display:block}
.program-opt .s{color:var(--muted);font-size:.92rem}
.program-opt.off{opacity:.55;cursor:not-allowed}
.total{display:flex;justify-content:space-between;align-items:center;font-size:1.25rem;font-weight:700;padding:18px 0;border-top:1px solid var(--line)}

/* contact */
.contact-list{list-style:none;padding:0;margin:0}
.contact-list li{padding:18px 0;border-bottom:1px solid var(--line)}
.contact-list li:first-child{padding-top:0}
.contact-list small{display:block;color:var(--muted);font-size:.88rem}

/* closing call to action */
.cta{background:var(--red);color:var(--on-red);border-radius:var(--radius);padding:64px;display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta h2{margin:0;max-width:16ch}
.cta p{margin:10px 0 0;opacity:.88}
.cta .btn{background:#fff;color:var(--accent)}
.cta .btn:hover{background:#161616;color:#fff}
@media (max-width:640px){.cta{padding:36px 24px}}

.legal{max-width:760px}
.legal h2{font-size:1.25rem;margin-top:2.2em;letter-spacing:-.01em}

/* footer */
.site-footer{background:var(--foot);color:var(--foot-ink);padding:72px 0 32px;font-size:.95rem}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.site-footer .cols>*{min-width:0}
@media (max-width:760px){.site-footer .cols{grid-template-columns:1fr 1fr}.site-footer .cols>:first-child,.site-footer .cols>:last-child{grid-column:1/-1}}
.site-footer h2{color:#fff;letter-spacing:0;line-height:1.4;font-size:1rem;font-weight:600;margin:0 0 14px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:8px}
.site-footer a{color:var(--foot-ink);text-decoration:none}
.site-footer a:hover{color:#fff}
.site-footer .logo-f img{height:34px;width:auto;margin-bottom:18px}
.site-footer .copy{border-top:1px solid #2d2d2b;margin-top:48px;padding-top:22px;font-size:.85rem}
.contact-list a,.site-footer a{overflow-wrap:anywhere}

/* soft fade for photos still loading; never hides an image already shown */
img.fade{opacity:0;transition:opacity .5s ease}
img.fade.in{opacity:1}
@media (prefers-reduced-motion:reduce){img.fade{opacity:1;transition:none}.btn,.camp img,.site-header{transition:none}}

/* theme switch */

/* key facts lifted onto the hero edge */
.facts-card{position:relative;z-index:2;margin-top:-64px}
.facts-card .facts{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 34px}
.hero.lifted .wrap{padding-bottom:calc(clamp(64px,14vh,160px) + 48px)}
@media (max-width:760px){.facts-card{margin-top:-44px}.facts-card .facts{padding:22px}}

/* image frames with a quiet hover */
.ph{display:block;overflow:hidden;border-radius:var(--radius)}
.ph img{border-radius:0!important;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.camp:hover .ph img{transform:scale(1.035);opacity:1}
.camp.feature .ph{margin-bottom:22px}
.camp.feature .ph img{margin-bottom:0}
.go{display:inline-block;margin-top:14px;font-weight:600;color:var(--red)}
.go::after{content:" →";transition:margin .2s}
.camp:hover .go::after{margin-left:4px}
.site-header.solid,body:not(.over) .site-header{box-shadow:0 1px 0 var(--line)}
@media (prefers-reduced-motion:reduce){.ph img,.go::after{transition:none}.camp:hover .ph img{transform:none}}
body.over .site-header:not(.solid) .nav a[aria-current=page]{color:#fff;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
@media (max-width:480px){.facts dd{font-size:1.02rem}.facts-card .facts{padding:20px 18px}.facts div{padding:0 14px}}

/* blog: the deploy renders /blog/ in this site's shell (blog PR 3, .wl-blog markup) */
main.wl-blog{max-width:var(--wrap);margin:0 auto;padding:72px 24px 104px;line-height:1.7}
main.wl-blog > h1{margin-bottom:40px}
main.wl-blog .wl-blog-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:48px 32px}
main.wl-blog .wl-blog-card:first-child{grid-column:1/-1}
main.wl-blog .wl-blog-card a{display:block;color:inherit;text-decoration:none}
main.wl-blog .wl-blog-card img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:center 18%;border-radius:var(--radius);margin-bottom:18px;transition:opacity .2s}
main.wl-blog .wl-blog-card:first-child img{aspect-ratio:21/9}
main.wl-blog .wl-blog-card h2{font-size:1.5rem;margin:0 0 6px}
main.wl-blog .wl-blog-card:first-child h2{font-size:clamp(1.8rem,3vw,2.4rem)}
main.wl-blog .wl-blog-card:hover h2{color:var(--red)}
main.wl-blog .wl-blog-card:hover img{opacity:.9}
main.wl-blog .wl-blog-card p{color:var(--muted);margin:0 0 6px;max-width:62ch}
main.wl-blog .wl-blog-meta{color:var(--muted);opacity:1;font-size:.92rem}
main.wl-blog article{max-width:760px;margin:0 auto}
main.wl-blog article > h1{margin-bottom:10px}
main.wl-blog article > img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 22%;border-radius:var(--radius);margin:28px 0 36px}
main.wl-blog .wl-blog-body{font-size:1.1rem}
main.wl-blog .wl-blog-body h2{font-size:1.6rem;margin:1.6em 0 .5em}
main.wl-blog .wl-blog-body img{width:100%;max-height:520px;object-fit:cover;object-position:center 30%;border-radius:var(--radius);margin:12px 0}
main.wl-blog .wl-blog-body blockquote{margin:32px 0;padding:4px 0 4px 24px;border-left:3px solid var(--red)}
main.wl-blog .wl-blog-body blockquote p:first-child{font-size:1.35rem;font-weight:600;line-height:1.35;margin-bottom:6px}
main.wl-blog .wl-blog-body blockquote p:last-child{color:var(--muted);font-size:.95rem}
main.wl-blog .wl-blog-body ul{padding-left:1.2em}
main.wl-blog .wl-blog-body li{margin-bottom:6px}
main.wl-blog article + p{max-width:760px;margin:48px auto 0;font-weight:600}
main.wl-blog .wl-blog-pager{display:flex;justify-content:space-between;margin-top:56px;font-weight:600}
@media (max-width:760px){main.wl-blog{padding:48px 18px 72px}main.wl-blog .wl-blog-list{grid-template-columns:1fr;gap:40px}main.wl-blog .wl-blog-card:first-child img{aspect-ratio:3/2}}

/* small red text on the grey surface: the accent keeps it legible */
.surface .eyebrow,.surface a:not(.btn){color:var(--accent)}




/* ---- phone: most parents sign up from a phone ---- */
.pay-bar{display:grid;gap:18px}
.pay-bar .total{margin:0}
.pay-bar > .btn{justify-self:start}
.m-cta{display:none}
@media (max-width:760px){
  .hero,.hero.short{min-height:max(560px,100svh)}
  .hero h1{font-size:clamp(2.5rem,11.5vw,3.4rem)}
  .hero .actions .btn{flex:1 1 140px}
  section{padding:52px 0}section.tight{padding:36px 0}
  .head{margin-bottom:28px}
  .lead{font-size:1.05rem}
  .site-footer li{margin:0}
  .site-footer li a{display:inline-block;padding:10px 0}

  /* sticky sign-up bar, shown once the hero has scrolled away */
  .m-cta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.08);transform:translateY(110%);transition:transform .25s ease;visibility:hidden}
  .m-cta.show{transform:none;visibility:visible}
  .m-cta span{font-size:.85rem;color:var(--muted);line-height:1.35}
  .m-cta strong{display:block;color:var(--ink);font-size:.98rem}
  .m-cta .btn{padding:14px 20px}
  body:has(.nav.open) .m-cta{transform:translateY(110%);visibility:hidden}
  body.has-m-cta .site-footer{padding-bottom:100px}

  /* signup: one column edge to edge, big targets, total + button always in reach */
  .page-head h1{font-size:2.2rem}
  #signup-form.panel{border:0;padding:0;background:none}
  .form legend{font-size:1.1rem;margin-bottom:10px}
  .program-opt{padding:16px}
  .program-opt input,label.check input{width:24px;height:24px;margin-top:1px}
  label.check{padding:4px 0}
  .pay-bar{position:sticky;bottom:0;z-index:5;gap:10px;margin:0 -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.06)}
  .pay-bar .total{border:0;padding:0;font-size:1.1rem}
  .pay-bar .btn,#pay-box .actions .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){.m-cta{transition:none}}

/* add-ons: one clear yes/no per item */
.choice{display:grid;gap:10px;margin:0 0 6px}
.choice .q{font-weight:600;margin:0}
.choice .q span{display:block;font-weight:400;color:var(--muted);font-size:.92rem}
.choice .opt{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;font-weight:400;cursor:pointer}
.choice .opt:has(input:checked){border-color:var(--red);background:var(--red-soft)}
.choice .opt input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--red)}
.choice .opt b{white-space:nowrap}
.choice > label:not(.opt){margin-top:4px}
#extras .hint{color:var(--muted);font-size:.92rem;margin:0}


/* partners + testimonials in one band: logos drift right, quotes drift left */
.proof{padding:40px 0;border-bottom:1px solid var(--line)}
.proof h2{font-size:.95rem;font-weight:500;color:var(--muted);letter-spacing:0;line-height:1.4;margin:0}
.proof-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
.marquee-pause{font:500 .9rem var(--font);color:var(--muted);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.marquee{overflow:hidden}
.marquee-track{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:16px}
.marquee-track li{flex:0 0 300px;background:var(--surface);border-radius:var(--radius);padding:18px 20px}
.marquee-track blockquote{margin:0}
.marquee-track p{font-weight:600;font-size:1rem;line-height:1.45;letter-spacing:-.01em;margin:0 0 8px}
.marquee-track footer{color:var(--muted);font-size:.88rem}
.marquee.run{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.marquee.run .marquee-track{flex-wrap:nowrap;width:max-content;animation:marquee var(--dur,60s) linear infinite}
.marquee.paused .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(calc(-50% - 8px))}}
@media (max-width:760px){
  .proof{padding:30px 0}
  .marquee-track li{flex-basis:260px}
  .marquee-pause{padding:10px 0}
}
.vb{padding:40px 0;display:grid;gap:22px}
.vb-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.vb-head h2{margin:0;text-align:left}
.vb-row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.vb-track{--gap:72px;display:flex;align-items:center;gap:var(--gap);width:max-content}
.vb-track.run{animation:marquee-b var(--dur,40s) linear infinite reverse}
.vb-track:not(.run){flex-wrap:wrap;width:auto}
.vb-track img{height:48px;width:auto}
.vb .marquee-track li{flex-basis:320px}
.vb.paused .vb-track{animation-play-state:paused}
@keyframes marquee-b{to{transform:translateX(calc(-50% - var(--gap) / 2))}}
@media (prefers-reduced-motion:reduce){.vb-track{padding:0 18px}.vb-row{-webkit-mask-image:none;mask-image:none}}
@media (max-width:760px){.vb-track{--gap:44px}.vb-track img{height:38px}.vb .marquee-track li{flex-basis:260px}}

/* key facts as chips inside the hero, so the first screen is all photo */
.hero-facts{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.hero-facts li{font-size:.92rem;font-weight:500;color:#fff;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero-facts li.price{background:var(--red);border-color:var(--red);font-weight:600}
.hero .actions{margin-top:22px}


/* Om os: photo slider (one at a time, every 5 s, swipe on phones) */
.photo-slider{position:relative;min-width:0}
.photo-slider .slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:var(--radius);scrollbar-width:none;aspect-ratio:4/5;background:var(--surface)}
.photo-slider .slides::-webkit-scrollbar{display:none}
.photo-slider .slide{flex:0 0 100%;margin:0;scroll-snap-align:start}
.photo-slider .slide img{width:100%;height:100%;object-fit:cover;object-position:center 30%;border-radius:0}
.slider-bar{display:flex;align-items:center;gap:14px;margin-top:14px}
.slider-dots{display:flex;gap:4px}
.slider-dots button{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.slider-dots button::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink);opacity:.22}
.slider-dots button[aria-current=true]::before{background:var(--red);opacity:1}
@media (prefers-reduced-motion:no-preference){.photo-slider .slides{scroll-behavior:smooth}}
@media (max-width:900px){.photo-slider .slides{aspect-ratio:4/5}}

/* prices page: two plans, one add-on table, three notes */
.pricing{padding-bottom:24px}
.pricing h2{font-size:1.35rem;letter-spacing:-.01em;margin:44px 0 16px}
.price-meta{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:18px 0 0}
.price-meta li{padding:6px 14px;border-radius:999px;background:var(--surface);font-size:.92rem;font-weight:500}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:760px}
.plan{border:1.5px solid var(--line);border-radius:var(--radius);padding:24px;display:grid;align-content:start}
.plan h3{margin:0;font-size:1.05rem;font-weight:600;color:var(--muted);letter-spacing:0}
.plan .amount{font-size:clamp(2rem,4vw,2.6rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;margin:6px 0 0}
.plan .per{color:var(--muted);margin:0 0 18px}
.plan .btn{justify-self:start}
.addons{width:100%;max-width:760px;border-collapse:collapse}
.addons th,.addons td{text-align:left;padding:14px 12px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
.addons thead th{font-size:.85rem;font-weight:500;color:var(--muted);padding-top:0}
.addons tbody th{font-weight:600}
.addons tbody th span{display:block;font-weight:400;font-size:.9rem;color:var(--muted)}
.addons td{font-weight:600;white-space:nowrap}
.pricing .ticks{max-width:640px}
/* Phones: one price card per row; side by side the button and the "åbner senere" note ran
   out of their cards at 375px */
@media (max-width:520px){.plans{grid-template-columns:1fr}}
@media (max-width:640px){
  .plans{gap:12px}
  .plan{padding:18px}
  .plan .amount{font-size:1.7rem}
  .plan .btn{justify-self:stretch;padding:14px 16px}
}

/* homepage camps: a simple list, photo + name + details + arrow */
.camp-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);max-width:920px}
.camp-list a{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.camp-list .ph{display:block;aspect-ratio:1;border-radius:20px;overflow:hidden}
.camp-list .ph img{width:100%;height:100%;object-fit:cover}
.camp-list .body{display:grid;gap:2px}
.camp-list .t{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}
.camp-list .m{color:var(--muted);font-size:.95rem}
.camp-list .d{margin-top:4px}
.camp-list .arrow{font-size:1.5rem;color:var(--red);padding-right:6px}
.camp-list a:hover .t{color:var(--red)}
@media (max-width:640px){.camp-list a{grid-template-columns:88px minmax(0,1fr) auto;gap:14px;padding:16px 0}.camp-list .t{font-size:1.08rem}.camp-list .d{display:none}}

/* homepage camps: the list on the left, the intro on the right (intro still first in the markup) */
.camps-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:start}
.camps-split .head{margin-bottom:0;order:2}
.camps-split .camp-list{max-width:none}
@media (max-width:900px){.camps-split{grid-template-columns:minmax(0,1fr);gap:28px}.camps-split .head{order:0}}
.camps-split .actions{margin-top:24px}
.camps-photo{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 40%;border-radius:var(--radius);margin-top:28px}
/* the three rows share the column height, so both columns end level */
@media (min-width:901px){.camps-split{align-items:stretch}.camps-split .camp-list{display:flex;flex-direction:column}.camps-split .camp-list li{flex:1;display:flex}.camps-split .camp-list a{flex:1}}
@media (max-width:900px){.camps-photo{display:none}}

/* camps page: the price overview where the camp cards were. Plans on the left at full
   size, add-ons and notes in a grey box on the right; stacked on phones. */
.camps-pricing{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:start;padding-bottom:0}
.camps-pricing h2{margin-top:0;font-size:clamp(1.75rem,3.4vw,2.6rem)}
.camps-pricing .lead{margin-bottom:28px}
.camps-pricing .plans{max-width:none;gap:20px}
.camps-pricing .plan{padding:30px 32px}
.camps-pricing .plan h3{font-size:1.15rem}
.camps-pricing .plan .amount{font-size:clamp(2.2rem,3.6vw,3.1rem)}
.cp-side{background:var(--surface);border-radius:var(--radius);padding:28px 30px}
.cp-side .addons-h{font-size:1.2rem;margin:0 0 14px}
.cp-side .addons{max-width:none}
.cp-side .addons th,.cp-side .addons td{border-bottom-color:rgba(0,0,0,.1)}
.cp-side .ticks{margin:24px 0 0;max-width:none}
.cp-side .ticks li{font-size:.97rem}
@media (max-width:900px){.camps-pricing{grid-template-columns:minmax(0,1fr);gap:32px}}
@media (max-width:640px){.camps-pricing .plan{padding:18px}.camps-pricing .plan .amount{font-size:1.7rem}.cp-side{padding:20px}}

/* a page title set at section-heading size (Workshops) */
.page-head h1.h2-size{font-size:clamp(1.75rem,3.4vw,2.6rem)}

/* form boxes get the brand red frame (workshops, contact, sign-up, payment) */
.panel:has(> form),.form.panel{border:1.5px solid var(--red)}

/* Workshops: title and intro share the top line with the form */
.ws-top{padding-top:72px}
.ws-top h1{margin-top:0}
@media (max-width:640px){.ws-top{padding-top:48px}}
/* Workshops: smaller title on one line; both columns end level (partners at the bottom
   of the left column, the form box stretched to the same height) */
.ws-top h1.h2-size{font-size:clamp(1.6rem,2.4vw,2.1rem)}
@media (min-width:901px){
  .ws-split{align-items:stretch}
  .ws-left{display:flex;flex-direction:column}
  .ws-partners{margin-top:auto}
}
.ws-partners{padding-top:36px}
.ws-partners h2{font-size:1rem;letter-spacing:0;color:var(--muted);font-weight:500;margin:0}
.ws-left .lead{margin-bottom:0}
.ws-left .ws-reply{margin-top:14px}

/* footer: Spørgsmål under the tagline */
.site-footer .foot-faq{margin-top:14px}
.site-footer .foot-faq .btn,.site-footer .foot-faq .btn:hover{color:var(--on-red);padding:12px 22px;font-size:.95rem;text-decoration:none}

/* homepage hero title "Parkour, fællesskab og bevægelsesglæde": a long last word, so a
   little more measure everywhere and a smaller size on phones to keep it on screen */
.hero h1{max-width:20ch;font-size:clamp(2.2rem,4.6vw,4rem)}
@media (max-width:760px){.hero h1{font-size:clamp(1.8rem,7.6vw,2.8rem)}}

/* footer: company details sit under the line, with the copyright */
@media (max-width:640px){.site-footer .copy .sep{display:block;height:0;overflow:hidden}}
.ws-partners .ws-logos{margin-top:18px}
.ws-left,.ws-partners{min-width:0}
.ws-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:900px){.ws-split{grid-template-columns:minmax(0,1fr)}}


/* homepage: what Parkourskolen is, right under the hero */
.about-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.about-intro h2{margin:0}
.about-intro .lead{margin-top:0;color:var(--ink)}
.intro + section{padding-top:0}
@media (max-width:900px){.about-intro{grid-template-columns:minmax(0,1fr);gap:18px}}
.logos-band{padding:8px 0 0}
.logos-band .vb-row{padding:8px 0}
.vb .marquee-track li{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.vb .marquee-track footer{color:var(--red);font-weight:600}
/* gallery albums: one camp at a time */
.albums{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.albums a{padding:10px 18px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink);font-weight:600;text-decoration:none;font-size:.95rem}
.albums a:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.albums a[aria-current=true]{background:var(--red);color:#fff;box-shadow:none}
.album h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0}
.album-lead{color:var(--muted);margin:4px 0 22px}
.album[hidden]{display:none}
.back{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:var(--accent);font-weight:600;text-decoration:none}
.back:hover{color:var(--red)}
/* quote cards: every name sits at the bottom, level across the row */
.vb .marquee-track li{display:flex}
.vb .marquee-track blockquote{display:flex;flex-direction:column;flex:1}
.vb .marquee-track footer{margin-top:auto;padding-top:14px}
.form .opt{font-weight:400;color:var(--muted)}
/* intro: the quotes glide continuously, one quote wide, under the heading (desktop) / after the text (phones) */
.about-intro > div:nth-child(2){grid-column:2;grid-row:1 / span 2}
.about-intro .intro-quotes{grid-column:1;grid-row:2;min-width:0;margin-top:8px}
.intro-quotes .marquee-track li{flex:0 0 var(--w,320px);display:flex;background:#fff;box-shadow:inset 0 0 0 1px var(--line);padding:24px 26px}
.intro-quotes .marquee-track blockquote{display:flex;flex-direction:column;flex:1}
.intro-quotes .marquee-track p{font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.4;margin:0}
.intro-quotes .marquee-track footer{margin-top:auto;padding-top:16px;color:var(--red);font-weight:600;font-size:.95rem}
.intro-quotes .marquee-pause{margin-top:10px}
@media (max-width:900px){.about-intro > div:nth-child(2),.about-intro .intro-quotes{grid-column:auto;grid-row:auto}.about-intro .intro-quotes{margin-top:6px}}
/* camps: prices told in plain words, one part per camp */
.camp-text .lead{max-width:60ch}
.camp-text-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px;margin-top:32px}
.camp-text-grid h3{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:0 0 10px}
.camp-text-grid p{margin:0 0 14px;max-width:60ch}
.camp-text-note{margin-top:24px;max-width:70ch;color:var(--muted)}
@media (max-width:760px){.camp-text-grid{grid-template-columns:minmax(0,1fr);gap:32px}}
.camp-text > p{max-width:65ch}
.camp-text-photo{margin:0;align-self:start}
/* the photo's top lines up with the heading */
.camp-price{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:56px;align-items:start}
.camp-price > *{grid-column:1}
.camp-price > .camp-text-photo{grid-column:2;grid-row:1 / span 6}
.camp-one{margin-top:32px}
.camp-one h3{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:0 0 10px}
.camp-one p{margin:0 0 14px}
@media (max-width:760px){.camp-price{grid-template-columns:minmax(0,1fr)}.camp-price > .camp-text-photo{grid-column:1;grid-row:auto;margin-top:8px}}
.camp-text-photo img{width:100%;height:auto;border-radius:var(--radius)}
/* Sign-up form: a follow-up field under a choice, and a field's own error */
.choice .sub{display:grid;gap:12px;margin:2px 0 0;padding:14px 16px;border-left:3px solid var(--red);background:var(--surface);border-radius:0 12px 12px 0}
.field-err{margin:-6px 0 0;color:var(--red);font-size:.92rem}
.field-err a{color:inherit;text-decoration:underline}
.form .hint{color:var(--muted);font-size:.92rem;margin:-4px 0 0}
.form .field{display:grid;gap:8px;align-content:start}
.form .field .field-err{margin:0}
.form .q{font-weight:600}
.marquee:focus-within .marquee-track{animation-play-state:paused}
.hero-note{margin:14px 0 0;font-size:.95rem;opacity:.85}
.plan .soon{margin:14px 0 0;padding:12px 16px;border-radius:999px;background:var(--surface);color:var(--muted);font-weight:600;text-align:center}
/* News about coming camps: a box at the top of every footer */
.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}
.foot-news{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:start;padding:0 0 48px;margin-bottom:48px;border-bottom:1px solid rgba(255,255,255,.14)}
.foot-news h2{font-size:1.35rem;margin:0 0 6px}
.foot-news p{margin:0}
.news-form{display:grid;gap:12px}
.news-row{display:flex;gap:10px}
.news-row input{flex:1;min-width:0;height:48px;padding:0 16px;border-radius:999px;border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);color:#fff;font:inherit}
.news-row input::placeholder{color:rgba(255,255,255,.6)}
.news-row input:focus{outline:2px solid #fff;outline-offset:2px}
.news-row .btn{flex:none}
.news-form label.check{font-size:.88rem;color:var(--foot-ink)}
.news-form label.check input{accent-color:var(--red)}
.news-msg{font-weight:600;color:#fff}
.news-msg.err{color:#ffb3b3}
@media (max-width:760px){.foot-news{grid-template-columns:1fr;gap:18px}.news-row{flex-direction:column}.news-row .btn{width:100%}}
.news-opt{padding:12px 14px;border-radius:12px;background:var(--surface)}
.news-opt strong{display:block}
/* A partner logo links to its site; the row keeps moving under the mouse, stops on keyboard focus */
.vb-track a{display:block;line-height:0;border-radius:6px}
.vb-track:has(a:focus-visible){animation-play-state:paused}
.news-light .news-msg{color:var(--ink)}
.news-light .news-msg.err{color:var(--red)}
.news-light label.check{color:var(--ink);font-size:.95rem}
[data-theme=dark] .vb-track img{background:#fff;border-radius:8px;padding:4px;box-sizing:content-box}
/* The front-page hero is a <picture>: a standing photo on phones, a wide crop above */
.hero > picture > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focus,center);z-index:-2}
@media (max-width:760px){.hero > picture > img{object-position:50% 30%}}
/* Two photos from the camps under "Hvad er Parkourskolen?" */
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.photo-pair figure{margin:0}
.photo-pair img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}
.photo-pair figcaption{padding-top:16px}
.photo-pair h3{margin:0 0 6px}
.photo-pair p{margin:0;color:var(--muted)}
@media (max-width:760px){.photo-pair{grid-template-columns:1fr;gap:28px}}
/* Phone: 4:3 photos instead of square, so one photo doesn't fill the whole screen. */
@media (max-width:760px){.intro-photo img,.split>img,.photo-pair img{aspect-ratio:4/3!important;height:auto!important;object-fit:cover}}
/* Front-page intro: heading and lead on the left, the rest on the right, bottoms level */
.intro-split{align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px}
@media (max-width:900px){.intro-split{grid-template-columns:minmax(0,1fr)}}
.intro-split > div:nth-child(2){grid-column:auto;grid-row:auto}
.intro-split h2{margin:0 0 20px}
.intro-split .lead{margin:0;font-size:clamp(1.1rem,1.5vw,1.3rem)}
.intro-split > div:nth-child(2) p:first-child{margin-top:0}
.intro-split > div:nth-child(2) p:last-child{margin-bottom:0}
.legal h3{font-size:1.05rem;margin:1.4em 0 .3em}
.photo-pair-sec{padding-top:0}
/* Quotes in the hero: one at a time under the buttons, the next sliding in */
.hero-quotes{margin:28px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.35);max-width:520px;color:#fff}
.hq-stack{display:grid;overflow:hidden}
.hq-stack blockquote{grid-area:1/1;margin:0;opacity:0;visibility:hidden;transform:translateX(100%);transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1),visibility 0s .8s}
.hq-stack blockquote.on{opacity:1;visibility:visible;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1),visibility 0s}
.hq-stack blockquote.out{transform:translateX(-100%)}
.hero-quotes p{max-width:none;margin:0;font-size:1.05rem;line-height:1.5;color:rgba(255,255,255,.92);font-style:italic}
.hero-quotes footer{margin-top:6px;font-size:.85rem;font-weight:600;color:var(--red)}
.hero-quotes footer::before{content:"— "}
.hq-dots{display:flex;gap:0;margin:-8px 0 6px -8px}
/* The dot is drawn in the content box; the padding makes a 24px target a finger can hit */
.hq-dots button{width:24px;height:24px;padding:8px;border:0;border-radius:50%;background-color:rgba(255,255,255,.4);background-clip:content-box;cursor:pointer}
.hq-dots button.on{background-color:#fff}
@media (max-width:760px){.hero-quotes{margin-top:22px}.hero-quotes p{font-size:.95rem}}
@media (prefers-reduced-motion:reduce){.hq-stack blockquote{transition:none;transform:none}}
/* The partner logos at the foot of the hero, straight on the photo. White, since several are
   black and would vanish on it. Elsewhere (Workshops og events) they keep their own colours. */
.hero-logos{position:absolute;left:0;right:0;bottom:0;padding:18px 0 22px;z-index:1;background:linear-gradient(0deg,rgba(12,12,12,.55),rgba(12,12,12,0))}
.hero-logos .vb-track img{filter:brightness(0) invert(1);opacity:.9}
.hero-logos .vb-track img{height:40px}
.hero:has(.hero-logos) .wrap{padding-bottom:calc(clamp(64px,14vh,160px) + 70px)}
@media (max-width:760px){.hero-logos{padding:10px 0}.hero-logos .vb-track img{height:30px}.hero:has(.hero-logos) .wrap{padding-top:96px;padding-bottom:84px}}
/* The front-page hero fills exactly one window, so the logos at its foot are always on the
   first screen and nothing of the next section shows under it. */
@media (min-width:901px){.hero:has(.hero-logos){align-items:flex-start}
.hero:has(.hero-logos) .wrap{padding-top:clamp(104px,15vh,190px);padding-bottom:108px}
.hero:has(.hero-logos) h1{font-size:clamp(2.4rem,3.9vw,4.4rem)}
.hero:has(.hero-logos) .hero-quotes{max-width:760px;margin-top:22px;padding-top:14px}
.hero:has(.hero-logos) .hero-quotes p{font-size:.98rem}}
@media (min-width:901px){.hero:has(.hero-logos){min-height:0;height:100vh;height:100svh}}
/* A low window (a laptop with its browser bars): a little less type and air, so even the
   longest quote stays above the logos */
@media (min-width:901px) and (max-height:760px){.hero:has(.hero-logos) .wrap{padding-top:92px}
.hero:has(.hero-logos) h1{font-size:clamp(2.2rem,3.3vw,3.6rem);margin-bottom:.2em}
.hero:has(.hero-logos) .wrap > p{font-size:1rem}
.hero:has(.hero-logos) .actions{margin-top:16px}
.hero:has(.hero-logos) .hero-quotes{margin-top:16px;padding-top:12px}
.hero:has(.hero-logos) .hq-dots{margin-bottom:2px}
.hero:has(.hero-logos) .hero-quotes p{font-size:.92rem}}
/* Phones: the front-page hero carries heading, buttons, a quote and the logos, so it is set
   tighter — smaller heading, the two buttons side by side, smaller quote type — to fit one
   screen without feeling packed. */
@media (max-width:760px){
  .hero:has(.hero-logos){min-height:0;height:100svh;min-height:560px}
  .hero:has(.hero-logos) .wrap{padding-top:84px;padding-bottom:84px}
  .hero:has(.hero-logos) h1{font-size:clamp(1.8rem,8.2vw,2.5rem);max-width:none;margin-bottom:.3em}
  .hero:has(.hero-logos) .wrap > p{font-size:.98rem;line-height:1.5}
  .hero:has(.hero-logos) .actions{flex-wrap:nowrap;gap:10px;margin-top:18px}
  .hero:has(.hero-logos) .actions .btn{flex:0 1 auto;padding:13px 18px;font-size:.92rem}
  .hero:has(.hero-logos) .hero-quotes{margin-top:18px;padding-top:12px}
  .hero:has(.hero-logos) .hq-dots{margin-bottom:2px}
  .hero:has(.hero-logos) .hq-dots button{padding:8.5px}
  .hero:has(.hero-logos) .hero-quotes p{font-size:.88rem;line-height:1.45}
  .hero:has(.hero-logos) .hero-quotes footer{font-size:.8rem}
}
@media (max-width:359px){.hero:has(.hero-logos) .actions{flex-wrap:wrap}}
/* The hero's two sentences on lines of their own; no word left alone on a last line */
.hero .wrap > p{text-wrap:pretty;max-width:62ch}
.hero .wrap > p.hero-sub2{margin-top:.15em}
.page-head .lead,.page-head h1{text-wrap:pretty}
/* Glade deltagere: text in the cell where a photo was, centred on the square beside it */
.photo-pair .pair-text{align-self:center}
.photo-pair .pair-text>*{max-width:30rem}
.photo-pair .pair-text h3{font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 12px}
.photo-pair .pair-text p{font-size:1.1rem;line-height:1.6}
.day{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px}
.day li{display:grid;grid-template-columns:6.5rem 1fr;gap:12px;align-items:baseline;padding-bottom:14px;border-bottom:1px solid var(--line,#e6e6e6)}
.day li:last-child{border-bottom:0;padding-bottom:0}
.day strong{color:var(--red);font-size:.95rem}
.day span{color:var(--muted)}
.photo-pair .pair-text .day-note{margin-top:20px;font-size:.92rem}
/* Phone: the time of day stays beside its text, like a schedule. */
@media (max-width:420px){.day li{grid-template-columns:6.4rem 1fr;gap:10px}.day strong{font-size:.88rem}.day span{font-size:.95rem;line-height:1.45}}
/* Front-page hero centred: heading, line, buttons and quotes on the middle axis, and on
   desktop in the middle of the space between the nav and the logos */
.hero:has(.hero-logos) .wrap{text-align:center}
.hero:has(.hero-logos) h1,.hero:has(.hero-logos) .wrap > p,.hero:has(.hero-logos) .hero-quotes{margin-left:auto;margin-right:auto}
.hero:has(.hero-logos) .actions{justify-content:center}
.hero:has(.hero-logos) .hq-dots{justify-content:center;margin-left:0}
@media (min-width:901px){.hero:has(.hero-logos){align-items:center}
.hero:has(.hero-logos) .wrap{padding-top:84px;padding-bottom:96px}}
/* One line from tablet up: the heading is ~20.4em wide, so the size follows the wrap's width */
@media (min-width:761px){.hero:has(.hero-logos) h1{white-space:nowrap;max-width:none;font-size:min(53px,calc((100vw - 48px) / 21.5))}
.hero:has(.hero-logos) h1 br{display:none}}
/* Om Parkourskolen: one column, the text straight under its heading */
.intro-split.intro-one{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;align-items:center}
.intro-one > div{max-width:600px}
.intro-photo{margin:0}
.intro-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 60%;border-radius:var(--radius)}
@media (max-width:900px){.intro-split.intro-one{grid-template-columns:1fr;row-gap:28px}}
.intro-one h2{margin:0 0 20px}
.intro-one p{margin:0 0 16px}
.intro-one p:last-child{margin-bottom:0}
/* The two front-page photos beside text: a size smaller than their column */
.intro-photo{justify-self:end;width:100%;max-width:440px}
.photo-pair figure{justify-self:end;align-self:center;width:100%;max-width:440px}
@media (max-width:900px){.intro-photo{justify-self:stretch;max-width:none}}
@media (max-width:760px){.photo-pair figure{max-width:none}}
/* Front page: every photo beside text is the same size as the one at Hvad er Parkourskolen */
.split > img.fp-photo{justify-self:start;max-width:440px}
.photo-pair img{aspect-ratio:4/5}
.split > img.fp-photo{object-position:50% 15%}
@media (max-width:900px){.split > img.fp-photo{max-width:none;justify-self:stretch;order:2}}
/* Mobile: keep the boy's whole figure, head to shoes, under the list */
@media (max-width:760px){.split > img.fp-photo{aspect-ratio:4/5!important}}
/* Every Tilbage is the accent colour, the signup's payment-step button too */
.btn.line.back-btn{color:var(--accent)}
.btn.line.back-btn:hover{background:var(--accent);color:#fff}
/* Har du spørgsmål? on the front page: one grey panel, heading left, the contact form right */
.ask-sec{padding-top:0;padding-bottom:0}
.ask{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start;background:var(--surface);border-radius:var(--radius);padding:clamp(28px,5vw,64px)}
.ask-head h2{margin:0 0 14px;font-size:clamp(2rem,3.6vw,3rem);line-height:1.05}
.ask-head p{margin:0;color:var(--muted)}
.ask-form input,.ask-form textarea{background:#fff;border-color:transparent}
.ask-form input:focus,.ask-form textarea:focus{border-color:var(--red)}
@media (max-width:900px){.ask{grid-template-columns:1fr;gap:28px}}
.faq-sec{padding-top:48px}
/* Front-page FAQ in Jakob's four groups: a group opens to its questions */
.faq-title{margin:0 0 20px;font-size:clamp(1.6rem,2.6vw,2.2rem)}
.faq-group{border-bottom:1px solid var(--line)}
.faq-group:first-child{border-top:1px solid var(--line)}
.faq-group > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 4px;font-weight:700;font-size:clamp(1.1rem,1.6vw,1.3rem)}
.faq-group > summary::-webkit-details-marker{display:none}
.faq-group > summary::after{content:"";width:10px;height:10px;border-right:2.5px solid var(--red);border-bottom:2.5px solid var(--red);transform:rotate(45deg);margin-right:8px;transition:transform .2s}
.faq-group[open] > summary::after{transform:rotate(-135deg)}
.faq-group > .faq{padding:0 0 12px 20px;border-left:3px solid var(--red-soft);margin:0 0 20px 4px}
.faq-group > .faq details:first-of-type{border-top:0}
.faq-group > .faq details:last-of-type{border-bottom:0}
.faq-more{margin:22px 0 0}
/* Jakob's own address on the signup page and its confirmation */
.signup-contact{margin-top:14px;padding:12px 16px;border-radius:12px;background:var(--surface);color:var(--ink)}
.signup-contact a{font-weight:600}

/* Movement Odense: the mark is a bare silhouette, so its name is set beside it. */
.vb-track .logo-named{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.05rem;line-height:1.05;letter-spacing:-.01em;white-space:nowrap;color:var(--ink,#141414)}
.hero-logos .logo-named{color:#fff;opacity:.9}
@media (max-width:760px){.vb-track .logo-named{font-size:.88rem;gap:8px}}

/* Kommende camps on camps.html: where and when, dates added as they are fixed */
.next-camps{max-width:920px;margin-bottom:64px}
.next-list{list-style:none;margin:16px 0 12px;padding:0;border-top:1px solid var(--line)}
.next-list li{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.next-list .t{font-weight:700;font-size:1.1rem}
.next-list .m{color:var(--muted)}
@media (max-width:640px){.next-list li{grid-template-columns:1fr auto;row-gap:2px}.next-list .m{grid-column:1/-1;grid-row:2}}
/* Phone and tablet: the hero text sits in the upper part of the photo, not down by the logos */
/* Front hero: headline and buttons centred on the photo, the quotes at the foot just above the logos */
.hero:has(.hero-logos){align-items:stretch}
.hero:has(.hero-logos) .wrap{display:flex;flex-direction:column;padding-top:96px;padding-bottom:104px}
.hero:has(.hero-logos) .wrap > h1{margin-top:auto}
.hero:has(.hero-logos) .hero-quotes{margin-top:auto;padding-top:28px;border-top:0;max-width:760px}
@media (max-width:760px){.hero:has(.hero-logos) .wrap{padding-top:80px;padding-bottom:max(64px,21svh)}
.hero:has(.hero-logos) h1{font-size:clamp(2.4rem,11vw,3.3rem)}}
/* Hero parallax (site.js moves the photo down at half the scroll speed): clip it to the hero */
.hero{overflow:clip}
.hero > img,.hero > picture > img{will-change:transform}
/* Short phones: the longest quote needs the room, so the quotes stay down by the logos */
@media (max-width:760px) and (max-height:700px){.hero:has(.hero-logos) .wrap{padding-bottom:64px}}

/* Type scale (operator chose option B, 2026-11-07): 8 sizes, phone -> desktop, fluid between 390 and 1440px.
   small 15 | body 17-18 | lead 19-20 | h3 21-24 | h2 30-44 | h1 36-60 | hero 40-68 | numbers 34-44.
   !important because it replaces ~25 one-off sizes set across the rules above. */
body,main p,main li,main li > span,main td,main dd p,.offer dd,details summary,.per{font-size:clamp(17px,calc(17px + 1 * (100vw - 390px) / 1050),18px)!important;line-height:1.6!important}
main li > strong,th,th span,footer p,footer li,footer a,label,.hint,.field-err,.price-meta li,.nav a,.btn,.eyebrow,.copy,.hero-quotes footer,h2.group,.ask-head + * small{font-size:15px!important;line-height:1.5!important}
.lead,.hero .wrap > p,.pair-text p,.page-head p{font-size:clamp(19px,calc(19px + 1 * (100vw - 390px) / 1050),20px)!important;line-height:1.55!important}
h3,.plan h3,.faq-group > summary,.panel h2,.form h2,.notice h2,.facts dd{font-size:clamp(21px,calc(21px + 3 * (100vw - 390px) / 1050),24px)!important;line-height:1.15!important}
h2,.faq-title,.ask-head h2,.pair-text h3,.camp-one h3{font-size:clamp(30px,calc(30px + 14 * (100vw - 390px) / 1050),44px)!important;line-height:1.05!important}
h1{font-size:clamp(36px,calc(36px + 24 * (100vw - 390px) / 1050),60px)!important;line-height:1.02!important}
.hero h1,.hero.short h1{font-size:clamp(40px,calc(40px + 28 * (100vw - 390px) / 1050),68px)!important;line-height:0.98!important}
.amount,.quote-main p{font-size:clamp(34px,calc(34px + 10 * (100vw - 390px) / 1050),44px)!important;line-height:1.1!important}
h2.group,.site-footer h2{font-size:15px!important;line-height:1.3!important}
.btn{line-height:1!important}
/* Hero: the subtitle stays on one line on a phone, and the rotating quote stays small, so the text block keeps its height */
.hero .wrap > p{font-size:clamp(17px,calc(17px + 3 * (100vw - 390px) / 1050),20px)!important}
.hero-quotes p{font-size:clamp(15px,calc(15px + 1 * (100vw - 390px) / 1050),16px)!important;line-height:1.5!important}
/* Hero partner logos ~30% larger (operator: "større, ikke for stort") */
.hero-logos .vb-track img{height:52px}
@media (max-width:760px){.hero-logos .vb-track img{height:40px}}
/* Signup: one block per child, siblings added on the same form and paid together */
.children{display:grid;gap:22px}
.child{display:grid;gap:16px}
.child + .child{padding-top:22px;border-top:1px solid var(--line)}
.child-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.child-head h3{margin:0;font-size:1.25rem}
.child:only-child .child-head{display:none}
.link-btn{background:none;border:0;padding:8px 0;font:inherit;font-weight:600;color:var(--muted);text-decoration:underline;cursor:pointer;min-height:44px}
.link-btn:hover{color:var(--red)}
.add-child{justify-self:start}
.pay-bar .total small{font-weight:400;color:var(--muted);font-size:.9em}

/* Prices: cards use the full width and list what is included; "opens later" is a note, not a dead button */
.pricing .plans{max-width:none}
.pricing .addons{max-width:none;width:100%}
.plan .inc{list-style:none;padding:0;margin:4px 0 22px;display:grid;gap:8px}
.plan .inc li{position:relative;padding-left:28px}
.plan .inc li::before{content:"";position:absolute;left:2px;top:.45em;width:12px;height:7px;border-left:2.5px solid var(--red);border-bottom:2.5px solid var(--red);transform:rotate(-45deg)}
.plan .soon{background:none;border:1.5px dashed var(--line);font-weight:500}

/* Contrast: the brand red is 3.7:1 on the grey surface; a deeper red there passes AA (5.3:1) */
:root:not([data-theme=dark]) :is(.surface,.notice,.cp-side,.choice .sub,.news-opt,.ask,.signup-contact,.signup-help) :is(a:not(.btn),.eyebrow){color:#B3191C}

/* Contact: common questions under the contact details */
.contact-side{display:grid;gap:34px;min-width:0}
.qa{padding:26px 28px;background:var(--surface);border-radius:var(--radius)}
.qa h2{margin:0 0 10px}
.qa ul{list-style:none;padding:0;margin:0}
.qa li a{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #d6d6d2;color:var(--ink);text-decoration:none;font-weight:600}
.qa li:last-child a{border-bottom:0}
.qa li a::after{content:"→";color:var(--red)}
.qa li a:hover{color:var(--red)}

/* Gallery lightbox (site.js) */
.gallery img{cursor:zoom-in}
.lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(12,12,12,.95);color:#fff}
.lb::backdrop{background:rgba(12,12,12,.6)}
.lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr);padding-bottom:24px}
.lb-top{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-weight:600}
.lb-mid{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;justify-items:center;min-height:0}
.lb-mid img{max-width:100%;max-height:calc(100dvh - 110px);object-fit:contain;border-radius:14px}
.lb button:focus:not(:focus-visible){outline:none}
.lb button{width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.26)}
@media (max-width:760px){.lb-mid{grid-template-columns:minmax(0,1fr)}.lb-mid .lb-prev,.lb-mid .lb-next{display:none}.lb-mid img{border-radius:0}}
/* Signup head: one tidy help box; program cards with fixed lines */
.page-head .signup-help{display:grid;gap:10px;margin:22px 0 0;padding:16px 20px;border-radius:12px;background:var(--surface)}
.signup-help > div{display:grid;grid-template-columns:7.5em 1fr;gap:12px;align-items:baseline}
.signup-help dt{font-weight:700;margin:0}
.signup-help dd{margin:0}
.signup-help a{font-weight:600}
.page-head .signup-help dd{font-size:1rem!important}
@media (max-width:480px){.signup-help > div{grid-template-columns:1fr;gap:2px}}
.demo-note{margin:0 0 20px;font-size:.95rem}
.program-opt .body{display:grid;gap:3px;flex:1;min-width:0}
.program-opt .head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:2px}
.program-opt .price{font-weight:700;white-space:nowrap}
.program-opt .seats{margin-top:2px;color:#B3191C;font-size:.92rem;font-weight:700}
.program-opt .seats.out{color:var(--muted)}
/* "+ Tilføj barn" sits on the legend's line, at the right */
/* The button lives in the legend (the fieldset is a grid); the fieldset is named by the text only */
.kids-fs > legend{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%}
.add-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:-10px 0;padding:0 2px;background:none;border:0;font:inherit;font-size:1rem;font-weight:700;color:#B3191C;cursor:pointer}
.add-link .t{text-decoration:underline;text-underline-offset:3px}
.add-link [aria-hidden]{font-size:1.2em;line-height:1}
.add-link:hover{color:var(--red)}
.add-link[hidden]{display:none}

/* Footer: Instagram (@daugparkour, from Jakob via Felix 2026-11-07) */
.site-footer .social{display:flex;gap:10px;margin-top:14px}
.site-footer .social a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#262624;color:#fff}
.site-footer .social a:hover{background:var(--red)}
/* Kontakt: the form panel ends level with the "Måske står svaret her" box; the message field takes the extra height */
@media (min-width:901px){
  .contact-split.split{align-items:stretch!important}
  .contact-split > .panel{display:flex}
  .contact-split > .panel > .form{flex:1;display:flex;flex-direction:column}
  .contact-split > .panel label:has(textarea){flex:1;display:flex;flex-direction:column}
  .contact-split > .panel textarea{flex:1}
}
/* Hero text over the photo: a soft shadow keeps it readable, one step larger (owner, 2026-11-07) */
.hero .wrap > p,.hero-quotes p,.hero-quotes footer{text-shadow:0 1px 2px rgba(0,0,0,.45),0 4px 18px rgba(0,0,0,.5)}
.hero .wrap > p{font-size:clamp(19px,calc(19px + 4 * (100vw - 390px) / 1050),23px)!important}
.hero-quotes p{font-size:clamp(15px,calc(15px + 7 * (100vw - 390px) / 1050),22px)!important}
.hero-quotes footer{font-size:clamp(14px,calc(14px + 3 * (100vw - 390px) / 1050),17px)!important}
/* "Mailadressen er kopieret" after a click on a mail link */
.copy-toast{position:fixed;left:50%;bottom:24px;z-index:50;margin:0;max-width:calc(100% - 32px);padding:12px 18px;border-radius:12px;background:#fff;color:#121212;border-left:4px solid #E42626;font-size:15px;font-weight:600;box-shadow:0 8px 28px rgba(0,0,0,.35);transform:translate(-50%,16px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.copy-toast.on{opacity:1;transform:translate(-50%,0)}
/* Phones: the quotes sit low, under the runner's red shoes, just above the logos (owner, 2026-11-07) */
@media (max-width:760px){.hero:has(.hero-logos) .wrap{padding-bottom:max(72px,10svh)}}
/* Footer contact: the social icons on the phone number's line, to its right (owner, 2026-11-07) */
.site-footer ul:has(> .social){display:flex;flex-wrap:wrap;align-items:center;column-gap:18px}
.site-footer ul:has(> .social) > li:first-child{flex-basis:100%}
.site-footer ul:has(> .social) > li{margin-bottom:0}
.site-footer ul:has(> .social) > li:first-child{margin-bottom:8px}
.site-footer ul:has(> .social) > .social{margin-top:0}

/* Cookie consent */
.cookie-box{position:fixed;z-index:60;left:16px;right:16px;bottom:16px;max-width:560px;margin-left:auto;padding:22px 24px;border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow),0 0 0 1px var(--line)}
.cookie-box h2{font:700 1.35rem/1.1 var(--display);margin:0 0 8px}
.cookie-box p{margin:0 0 14px;font-size:.95rem;color:var(--muted)}
.cookie-box p a{color:var(--ink)}
.cookie-pick{display:grid;gap:10px;margin:0 0 16px}
.cookie-pick[hidden]{display:none}
.cookie-pick label{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-weight:600}
.cookie-pick input{width:20px;height:20px;accent-color:var(--red)}
.cookie-pick span{flex-basis:100%;padding-left:30px;font-weight:400;font-size:.88rem;color:var(--muted)}
.cookie-btns{display:flex;flex-wrap:wrap;gap:10px}
.cookie-btns .btn{flex:1 1 auto}
.site-footer .link{background:none;border:0;padding:0;font:inherit;color:var(--foot-ink);cursor:pointer;text-align:left}
.site-footer .link:hover{color:#fff}
.link-inline{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}

/* Jakob's review 2026-11-08 */
/* Partner row: centred when it stands still; the moving row is centred by its own wrapper */
.vb-track:not(.run){justify-content:center;margin-inline:auto}
.hero-logos .vb-track:not(.run){flex-wrap:nowrap}
.hero-logos{padding:20px 0}
@media (max-width:760px){.hero-logos{padding:10px 0}}
/* Quotes in a white box on the hero, easier to read than type on a photo */
.hero-quotes{background:#fff;color:#151515;border-top:0;border-radius:16px;padding:16px 20px}
.hero:has(.hero-logos) .hero-quotes{padding:14px 18px}
.hero-quotes p{color:#151515;text-shadow:none;font-size:clamp(14px,calc(14px + 3 * (100vw - 390px) / 1050),17px)!important}
.hero-quotes footer{color:#B3191C;text-shadow:none;font-size:14px!important}
.hq-dots button{background-color:rgba(0,0,0,.22)}
.hq-dots button.on{background-color:#B3191C}
/* Front-page photos roll past like the partner logos, three on screen at a time */
.photo-loop{-webkit-mask-image:none;mask-image:none}
.photo-loop .vb-track{--gap:10px}
.photo-loop .vb-track img{height:auto;width:calc((100vw - 20px)/3);aspect-ratio:3/4;object-fit:cover;object-position:center 30%;border-radius:var(--radius);background:none;padding:0}
@media (max-width:760px){.photo-loop .vb-track img{width:72vw;aspect-ratio:4/5}}
.contact-direct{font-weight:600;margin:0 0 12px}
.req{color:#B3191C;font-weight:600}
.req-note{margin:0;font-size:.95rem;color:var(--muted)}
.bday{border:0;padding:0;margin:0;min-width:0}
.bday legend{padding:0;font-size:15px;line-height:1.5}
.bday-row{display:grid;grid-template-columns:1fr 1.6fr 1.1fr;gap:8px}
.ws-logos img[src*="jumpingfun"]{filter:brightness(0)}
/* Om os: the team photos in black and white, as Jakob asked */
.photo-slider .slide img{filter:grayscale(1) contrast(1.05)}
