:root{
  --paper:#F6EEE1; --beige:#EADBC2; --card:#FCF8F0; --ink:#2B1D14; --muted:#6A5444; --line:#D9C4A3;
  --green:#2A1D15; --green-2:#4A3426; --on-green:#F6EEE1; --burgundy:#B0362B; --brown:#8A5A35;
  --btn:#B0362B; --on-btn:#FFF8EE; --focus:#2463D1; --ok:#2F6B4A;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Source Sans 3","Segoe UI",Roboto,Arial,sans-serif;
  --type:"Courier Prime","Courier New",Courier,monospace;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#19120E; --beige:#231913; --card:#2B2019; --ink:#F2E7D5; --muted:#BCA993; --line:#45342A;
    --green:#120C09; --green-2:#3A2A20; --burgundy:#E07A6C; --brown:#D9A576; --btn:#B0362B; --on-btn:#FFF8EE; --focus:#8DB0FF; --ok:#7FC79E;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#19120E; --beige:#231913; --card:#2B2019; --ink:#F2E7D5; --muted:#BCA993; --line:#45342A;
  --green:#120C09; --green-2:#3A2A20; --burgundy:#E07A6C; --brown:#D9A576; --btn:#B0362B; --on-btn:#FFF8EE; --focus:#8DB0FF; --ok:#7FC79E;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth; scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto} *{animation:none!important; transition:none!important}}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:1.075rem; line-height:1.6; -webkit-font-smoothing:antialiased}
img,video{max-width:100%; display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--focus); outline-offset:3px; border-radius:4px}
.wrap{max-width:1160px; margin:0 auto; padding:0 1.25rem}
h1,h2,h3{font-family:var(--serif); font-weight:800; line-height:1.08; letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,4vw,2.9rem); margin:0 0 1rem; max-width:22ch}
h3{font-size:1.35rem; margin:0 0 .5rem}
h1,h2{font-family:"Caveat Brush","Fraunces",Georgia,serif; font-weight:400; letter-spacing:0; line-height:1}
h2{font-size:clamp(2.3rem,5vw,3.4rem)}
.lead{font-size:1.15rem; color:var(--muted); max-width:62ch; margin:0 0 2.5rem}
section.block{padding:5.5rem 0}
.bg-beige{background:var(--beige)}
.bg-green{background:var(--green); color:var(--on-green)}
.bg-green .lead{color:var(--on-green); opacity:.85}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; text-decoration:none; font:inherit; font-weight:700; padding:.85rem 1.4rem; border-radius:10px; border:2px solid var(--btn); background:var(--btn); color:var(--on-btn); cursor:pointer; text-align:center; line-height:1.25}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent; color:inherit; border-color:currentColor}
.btn.small{padding:.55rem 1rem; font-size:.95rem}
.btns{display:flex; flex-wrap:wrap; gap:.8rem}
.stamp{display:inline-block; border:3px double var(--burgundy); color:var(--burgundy); font-family:var(--serif); font-weight:800; padding:.15rem .7rem; transform:rotate(-4deg); font-size:.95rem; letter-spacing:.02em}
.note{background:#FFFDF6; color:#1F1B16; font-family:var(--type); padding:1rem 1.1rem; box-shadow:0 6px 16px rgba(0,0,0,.14); position:relative; line-height:1.45}
.note::before{content:""; position:absolute; top:-8px; left:50%; width:48px; height:16px; margin-left:-24px; background:rgba(123,34,50,.35); transform:rotate(-3deg)}

/* Header */
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:20; background:var(--green)}
header.site{position:sticky; top:env(safe-area-inset-top,0px); z-index:19; background:var(--green); color:var(--on-green)}
header.site .wrap{display:flex; align-items:center; gap:1.2rem; min-height:76px}
.logo{flex:none; background:#fff; border-radius:999px; padding:4px 16px; display:block}
.logo img{height:52px; width:auto}
nav.main{margin-left:auto}
nav.main ul{list-style:none; display:flex; gap:1.15rem; margin:0; padding:0; align-items:center}
nav.main a{text-decoration:none; font-weight:600; font-size:.97rem}
nav.main a:not(.btn):hover{text-decoration:underline; text-underline-offset:5px}
.menu-btn{display:none; margin-left:auto; background:none; border:2px solid currentColor; color:inherit; border-radius:10px; padding:.45rem .9rem; font:inherit; font-weight:700}
@media (max-width:1060px){
  .menu-btn{display:block}
  nav.main{position:absolute; left:0; right:0; top:100%; background:var(--green); display:none; padding:.5rem 1.25rem 1.5rem; max-height:calc(100vh - 80px); overflow:auto}
  nav.main.open{display:block}
  nav.main ul{flex-direction:column; align-items:stretch; gap:.1rem}
  nav.main a{display:block; padding:.65rem 0; font-size:1.1rem}
  nav.main .btn{margin-top:.8rem; display:flex}
  .logo img{height:44px}
}

/* Hero */
.hero{position:relative; background:var(--green); color:var(--on-green); overflow:hidden}
.hero .media{position:absolute; inset:0}
.hero .media video{width:100%; height:100%; object-fit:cover; opacity:.45}
.hero{background:radial-gradient(circle at 78% 28%, rgba(222,166,72,.30), transparent 55%), radial-gradient(circle at 10% 90%, rgba(176,54,43,.18), transparent 50%), var(--green)}
.reel{position:relative; justify-self:center; margin:3.5rem 0; width:min(100%,360px); background:#FCF8F0; padding:12px 12px 46px; transform:rotate(2.5deg); box-shadow:0 24px 50px rgba(0,0,0,.45)}
.reel video{width:100%; aspect-ratio:4/5; object-fit:cover; background:#2a1d15}
.reel figcaption{position:absolute; left:18px; right:0; bottom:10px; text-align:left; font-family:"Caveat Brush",cursive; font-size:1.35rem; color:#2B1D14}
.reel::before{content:""; position:absolute; top:-10px; left:50%; width:20px; height:20px; margin-left:-10px; border-radius:50%; background:#B0362B; box-shadow:inset -3px -3px 0 rgba(0,0,0,.3), 0 3px 4px rgba(0,0,0,.35); z-index:2}
.reel .mascot{position:absolute; right:-105px; bottom:-40px; width:200px; height:auto; transform:rotate(-1deg); -webkit-mask-image:linear-gradient(to bottom,#000 82%,transparent); mask-image:linear-gradient(to bottom,#000 82%,transparent); filter:drop-shadow(0 10px 16px rgba(0,0,0,.4)); pointer-events:none}
.hero .wrap{position:relative; display:grid; grid-template-columns:1.2fr .8fr; gap:2rem; align-items:end; min-height:600px}
.hero .copy{padding:5rem 0 4.5rem}
.hero h1{font-size:clamp(2.8rem,6.4vw,5.2rem); margin:0 0 1.5rem; max-width:16ch}
.hero h1 span{display:block}
.hero .quote{font-family:var(--serif); font-style:italic; font-weight:500; font-size:1.25rem; max-width:40ch; margin:0 0 2.2rem; opacity:.92}
.hero .btn.ghost{color:var(--on-green)}
.hero .dog{justify-self:end; width:100%; max-width:400px; margin-top:2rem; filter:drop-shadow(0 20px 30px rgba(0,0,0,.35))}
.hero.has-video .dog{display:none}
.paws{position:absolute; right:2%; top:8%; width:260px; opacity:.13; color:var(--on-green)}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr; min-height:0}
  .hero .copy{padding:3rem 0 0}
  .reel{justify-self:center; width:min(78%,300px); margin:2rem auto 3.5rem}
  .reel .mascot{right:-60px; width:130px; bottom:-28px}
  .hero .media::after{background:linear-gradient(180deg, rgba(15,29,23,.85), rgba(15,29,23,.6))}
}

/* Next case folder */
.folder{position:relative; margin-top:3.4rem; background:var(--card); border:1px solid var(--line); border-radius:0 16px 16px 16px; box-shadow:0 18px 40px rgba(30,58,47,.12); padding:2.2rem}
.folder .tab{position:absolute; top:-2.35rem; left:-1px; background:var(--card); border:1px solid var(--line); border-bottom:0; border-radius:12px 12px 0 0; padding:.45rem 1.2rem .6rem; font-weight:700; display:flex; gap:.5rem; align-items:center; font-size:.97rem}
.folder .tab svg{width:20px; height:20px; color:var(--burgundy)}
.folder-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem}
.folder h3{font-size:clamp(1.5rem,3vw,2.1rem); margin:.6rem 0 1rem}
.folder .story{font-family:var(--serif); font-style:italic; font-size:1.12rem; color:var(--muted); margin:0 0 1.4rem}
.meta{display:grid; grid-template-columns:auto 1fr; gap:.45rem 1rem; margin:0}
.meta dt{font-weight:700}
.meta dd{margin:0; color:var(--muted)}
.slots-title{font-weight:700; margin:0 0 .8rem}
.slots{display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:.55rem}
.slot{font:inherit; font-weight:700; padding:.6rem .4rem; border-radius:8px; border:2px solid var(--green-2); background:transparent; color:var(--ink); cursor:pointer; text-align:center}
.bg-green .slot{color:var(--on-green)}
.slot:hover{background:var(--beige)}
.slot[disabled]{opacity:.4; text-decoration:line-through; cursor:not-allowed; background:transparent}
.slot.selected,.slot[aria-pressed="true"]{background:var(--green-2); color:#F3ECDD; border-color:var(--green-2)}
.folder .hint{font-size:.92rem; color:var(--muted); margin:.9rem 0 1.2rem}
@media (max-width:860px){.folder{padding:1.5rem} .folder-grid{grid-template-columns:1fr; gap:1.8rem}}

.later{margin-top:2rem}
.later h3{font-size:1.2rem; margin:0 0 .8rem}
.later-item{display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; align-items:baseline; padding:.9rem 1.2rem; background:var(--card); border:1px dashed var(--line); border-radius:12px; margin-bottom:.6rem}
.later-item b{font-family:var(--serif)}
.later-item span{color:var(--muted)}

.mi-right{display:grid; grid-template-columns:210px 1fr; gap:2rem; align-items:center}
@media (max-width:560px){.mi-right{grid-template-columns:1fr}}
.snap{position:relative; margin:0 auto; width:min(100%,240px); background:#FCF8F0; padding:10px 10px 40px; transform:rotate(-2.5deg); box-shadow:0 16px 34px rgba(0,0,0,.25)}
.snap video{width:100%; aspect-ratio:4/5; object-fit:cover}
.snap figcaption{position:absolute; left:0; right:0; bottom:8px; text-align:center; font-family:"Caveat Brush",cursive; font-size:1.3rem; color:#2B1D14}
.snap::before{content:""; position:absolute; top:-9px; left:50%; width:18px; height:18px; margin-left:-9px; border-radius:50%; background:#B0362B; box-shadow:inset -2px -2px 0 rgba(0,0,0,.3), 0 2px 3px rgba(0,0,0,.4); z-index:1}
/* What is it */
.split{display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start}
.benefits{list-style:none; margin:0; padding:0; display:grid; gap:1.2rem}
.benefits li{display:grid; grid-template-columns:52px 1fr; gap:1rem; align-items:center; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:1rem 1.2rem; font-weight:600; font-size:1.1rem}
.benefits svg{width:52px; height:52px; color:var(--burgundy)}
@media (max-width:860px){.split{grid-template-columns:1fr; gap:2rem}}

/* Steps */
.steps{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; counter-reset:s; position:relative}
.steps li{counter-increment:s; position:relative}
.steps .loop{width:100%; aspect-ratio:1; object-fit:cover; border-radius:4px; margin-bottom:1.2rem; border:8px solid #FCF8F0; box-shadow:0 14px 30px rgba(0,0,0,.35)}
.steps li::before{content:counter(s); position:absolute; top:-14px; left:-10px; z-index:1; color:#fff; border-color:#B0362B !important; width:3.4rem; height:3.4rem; border-radius:50%; border:2px solid currentColor; font-family:var(--serif); font-weight:800; font-size:1.5rem; display:grid; place-items:center; background:#B0362B}

.steps p{margin:0; opacity:.85}
@media (max-width:860px){.steps{grid-template-columns:1fr} .steps li:not(:last-child)::after{display:none}}

/* Two game types */
.types{display:grid; grid-template-columns:1fr 1fr; gap:2rem}
.type{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:2rem; display:flex; flex-direction:column; position:relative; overflow:hidden}
.type .kicker{font-family:var(--serif); font-weight:800; font-size:1rem; color:var(--burgundy); margin:0 0 .2rem}
.type h3{font-size:1.7rem}
.type .teaser{font-family:var(--serif); font-style:italic; font-size:1.1rem; border-left:4px solid var(--burgundy); padding-left:1rem; margin:.4rem 0 1.2rem}
.type .facts{display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:0 0 1.2rem}
.type .facts li{background:var(--beige); border-radius:999px; padding:.3rem .8rem; font-weight:600; font-size:.92rem}
.type p{margin:0 0 1rem}
.type ul.ex{margin:0 0 1.4rem; padding-left:1.2rem; color:var(--muted)}
.type .btn{margin-top:auto; align-self:flex-start}
.type.adventure{background:var(--green-2); color:var(--on-green); border-color:transparent}
.type.adventure .kicker{color:#E8B4BC}
.type.adventure .teaser{border-color:#E8B4BC}
.type.adventure .facts li{background:rgba(255,255,255,.12)}
.type.adventure .btn{--btn:#F3ECDD; --on-btn:#1E3A2F}
@media (max-width:860px){.types{grid-template-columns:1fr}}
.archive{margin-top:4rem}
.cork{background-color:#A9794D; background-image:radial-gradient(rgba(60,30,10,.22) 1px, transparent 1.6px), radial-gradient(rgba(255,235,200,.12) 1px, transparent 1.6px); background-size:7px 7px, 11px 11px; background-position:0 0, 3px 5px; border:14px solid #4A3020; border-radius:10px; box-shadow:inset 0 0 40px rgba(0,0,0,.35); padding:2.5rem 1.5rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:2.2rem 1.8rem; align-items:start}
.note-card{background:#FCF8F0; color:#2B1D14; padding:1.4rem 1.2rem 1.3rem; box-shadow:0 10px 20px rgba(0,0,0,.3); position:relative; transform:rotate(-1.5deg)}
.note-card:nth-child(2n){transform:rotate(1.8deg); background:#F3E3B5}
.note-card:nth-child(3n){transform:rotate(-.6deg)}
.note-card::before{content:""; position:absolute; top:-8px; left:50%; width:16px; height:16px; margin-left:-8px; border-radius:50%; background:#B0362B; box-shadow:inset -2px -2px 0 rgba(0,0,0,.3), 0 2px 3px rgba(0,0,0,.4)}
.note-card b{display:block; font-family:"Caveat Brush",cursive; font-weight:400; font-size:1.55rem; line-height:1.05; margin-bottom:.5rem}
.note-card p{margin:0; font-family:var(--type); font-size:.92rem; line-height:1.5; color:#4A3A2E}
.pol{margin:0; background:#FCF8F0; color:#2B1D14; padding:10px 10px 14px; box-shadow:0 10px 20px rgba(0,0,0,.3); position:relative; transform:rotate(-2deg)}
.pol:nth-child(2n){transform:rotate(2.5deg)} .pol:nth-child(3n){transform:rotate(-1deg)}
.pol::before{content:""; position:absolute; top:-8px; left:50%; width:16px; height:16px; margin-left:-8px; border-radius:50%; background:#B0362B; box-shadow:inset -2px -2px 0 rgba(0,0,0,.3), 0 2px 3px rgba(0,0,0,.4); z-index:1}
.pol img{width:100%; aspect-ratio:1; object-fit:cover}
.pol figcaption{padding-top:.6rem; line-height:1.3}
.pol span{display:block; font-size:.82rem; font-weight:700; color:#8A5A35}
.pol b{display:block; font-family:"Caveat Brush",cursive; font-weight:400; font-size:1.35rem; line-height:1.05; margin:.15rem 0 .25rem}
.pol p{margin:0; font-size:.88rem; color:#6A5444}
.pol.slip{background:#F3E3B5; font-family:var(--type); align-self:start; padding:1.2rem 1rem}
.archive h3{font-size:1.3rem; margin-bottom:1.2rem}
.archive-list{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; list-style:none; padding:0; margin:0}
.archive-list li{border-top:2px solid var(--ink); padding-top:.8rem}
.archive-list b{display:block; font-family:var(--serif); font-size:1.08rem}
.archive-list span{color:var(--brown); font-weight:700; font-size:.9rem}
.archive-list p{margin:.3rem 0 0; color:var(--muted); font-size:.97rem}
@media (max-width:860px){.archive-list{grid-template-columns:1fr}}

/* Readiness + not a competition */
.duo{display:grid; grid-template-columns:1fr 1fr; gap:2rem}
.panel{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:2rem}
.panel h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.panel p{margin:0 0 1rem}
.panel.warm{background:var(--beige); border-color:transparent}
@media (max-width:860px){.duo{grid-template-columns:1fr}}

/* Course */
.course{display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start}
.course h3{font-size:1.25rem; margin:2rem 0 .8rem}
.checks{list-style:none; padding:0; margin:0 0 1rem; display:grid; gap:.55rem}
.checks li{padding-left:1.9rem; position:relative}
.checks li::before{content:""; position:absolute; left:0; top:.35rem; width:1.1rem; height:1.1rem; border-radius:50%; background:#B0362B; -webkit-mask:none}
.checks li::after{content:""; position:absolute; left:.38rem; top:.5rem; width:.3rem; height:.55rem; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg)}
.why{list-style:none; padding:0; margin:0 0 1.5rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.why li{background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:1rem; font-size:.97rem}
.why b{display:block; margin-bottom:.2rem}
@media (max-width:560px){.why{grid-template-columns:1fr}}
.course-card{position:sticky; top:100px; background:var(--card); color:var(--ink); border-radius:18px; padding:1.8rem; box-shadow:0 20px 40px rgba(0,0,0,.3)}
.course-card h3{margin:1.6rem 0 .7rem; font-size:1.15rem}
.course-card .meta{margin-top:1.2rem}
.course-prices{list-style:none; padding:0; margin:0; display:grid; gap:.5rem}
.course-prices li{display:flex; justify-content:space-between; gap:1rem; align-items:baseline; padding:.7rem 0; border-bottom:1px solid var(--line)}
.course-prices b{font-family:var(--serif); font-size:1.4rem; white-space:nowrap}
.course-prices li:first-child b{color:var(--burgundy)}
.course-prices li.expired{opacity:.5; text-decoration:line-through}
.course-card .opt{margin:1.2rem 0 .8rem; font-weight:700; color:var(--burgundy)}
@media (max-width:860px){.course-card{position:static}}
.course-banner{grid-column:1/-1; width:100%; border-radius:16px; box-shadow:0 20px 40px rgba(0,0,0,.35)}
.timeline{list-style:none; padding:0; margin:0 0 1.5rem; display:grid; grid-template-columns:repeat(6,1fr); gap:.4rem}
.timeline li{text-align:center; padding:.8rem .2rem; border-radius:8px; background:rgba(255,255,255,.1); font-weight:700; font-family:var(--serif)}
.timeline li.final{background:#B23A4C; color:#fff}
.timeline-legend{display:flex; flex-wrap:wrap; gap:1.2rem; font-size:.95rem; margin-bottom:1.5rem; opacity:.9}
.timeline-legend i{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:.4rem; vertical-align:-1px; background:rgba(255,255,255,.3)}
.timeline-legend i.final{background:#B23A4C}
.course .next{background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:14px; padding:1.4rem; margin-bottom:1.4rem}
.course .next b{font-family:var(--serif); font-size:1.3rem; display:block}
@media (max-width:860px){.course{grid-template-columns:1fr; gap:2rem}}

/* Forms */
form.card, .card{background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:18px; padding:1.8rem}
.bg-green form.card{border-color:transparent}
fieldset{border:0; padding:0; margin:0 0 1.8rem; min-width:0}
legend{font-family:var(--serif); font-weight:800; font-size:1.25rem; margin-bottom:.9rem; padding:0}
.field{display:grid; gap:.35rem; margin-bottom:1rem}
.row{display:grid; grid-template-columns:1fr 1fr; gap:0 1rem}
@media (max-width:560px){.row{grid-template-columns:1fr}}
label{font-weight:600; font-size:.97rem}
.opt{font-weight:400; color:var(--muted); font-size:.9rem}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],select,textarea{width:100%; font:inherit; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:.7rem .8rem; min-height:48px}
textarea{min-height:100px; resize:vertical}
.q{margin-bottom:1.3rem}
.q > p{font-weight:600; margin:0 0 .5rem}
.choice{display:flex; gap:.65rem; align-items:flex-start; font-weight:400; margin-bottom:.5rem}
.choice input{margin-top:.32rem; width:18px; height:18px; flex:none; accent-color:var(--burgundy)}
.declaration{background:var(--beige); border-radius:12px; padding:1rem 1.1rem; font-size:.97rem}
.dog-row{display:grid; grid-template-columns:1fr 1fr auto; gap:.8rem; align-items:end; padding:1rem; border:1px dashed var(--line); border-radius:12px; margin-bottom:.8rem}
.dog-row .field{margin:0}
.dog-row .nose{grid-column:1/3}
@media (max-width:560px){.dog-row .nose{grid-column:auto}}
.dog-row .remove{background:none; border:0; color:var(--burgundy); font:inherit; font-weight:700; cursor:pointer; padding:.7rem .3rem}
@media (max-width:560px){.dog-row{grid-template-columns:1fr}}
.add-dog{background:none; border:2px dashed var(--line); color:var(--ink); border-radius:10px; padding:.7rem 1rem; font:inherit; font-weight:700; cursor:pointer; width:100%}
.err{color:var(--burgundy); font-weight:600; font-size:.95rem; margin:.4rem 0 0; display:none}
.err.show{display:block}

.booking{display:grid; grid-template-columns:1.25fr .75fr; gap:2rem; align-items:start}
.summary{position:sticky; top:100px; background:var(--green); color:var(--on-green); border-radius:18px; padding:1.6rem}
.summary h3{font-size:1.3rem; margin-bottom:1rem}
.summary dl{display:grid; grid-template-columns:auto 1fr; gap:.4rem .9rem; margin:0 0 1.2rem; font-size:.97rem}
.summary dt{opacity:.75}
.summary dd{margin:0; font-weight:600}
.total{display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid rgba(255,255,255,.25); padding-top:1rem; margin-bottom:1rem}
.total b{font-family:var(--serif); font-size:1.9rem}
.summary .small{font-size:.9rem; opacity:.85; margin:0 0 .6rem}
.summary .btn{width:100%; --btn:#B23A4C; margin-top:.6rem}
@media (max-width:960px){.booking{grid-template-columns:1fr} .summary{position:static}}
.rules{border-left:4px solid var(--burgundy); padding:.2rem 0 .2rem 1rem; margin:0 0 1.5rem}
.rules p{margin:0 0 .4rem}

.done{display:none}
.done.show{display:block}
.done h3{font-size:1.6rem}

/* Prices */
.price-table{width:100%; border-collapse:collapse; font-size:1.1rem; margin-bottom:1.2rem}
.price-table th,.price-table td{text-align:left; padding:.9rem 0; border-bottom:1px solid var(--line)}
.price-table td:last-child,.price-table th:last-child{text-align:right; font-family:var(--serif); font-weight:800}
.price-table th{font-family:var(--sans); font-size:.95rem; color:var(--muted); font-weight:600}

/* Private */
.who{list-style:none; padding:0; margin:0 0 2rem; display:flex; flex-wrap:wrap; gap:.6rem}
.who li{border:1px solid var(--line); border-radius:999px; padding:.4rem .9rem; font-weight:600; background:var(--card)}
.basics{columns:2; column-gap:2.5rem; padding-left:1.2rem; margin:0 0 3rem}
.basics li{margin-bottom:.6rem; break-inside:avoid}
@media (max-width:860px){.basics{columns:1}}
.catalog{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.6rem; margin-bottom:3rem}
.game{background:var(--card); border:1px solid var(--line); border-radius:0 16px 16px 16px; position:relative; margin-top:1.6rem; display:flex; flex-direction:column}
.game .tab{position:absolute; top:-1.6rem; left:-1px; background:var(--card); border:1px solid var(--line); border-bottom:0; border-radius:10px 10px 0 0; padding:.2rem .9rem .35rem; font-size:.85rem; font-weight:700; color:var(--brown)}
.game.kind-kaland .cover{background:#7A3B1F}
.game.kind-szabadulo .cover{background:#1F2A33}
.game.kind-kaland .tab,.game.kind-szabadulo .tab{color:var(--burgundy)}
.game .cover{height:120px; background:var(--green-2); color:#F3ECDD; display:grid; place-items:center; font-size:3rem; border-radius:0 16px 0 0}
.game .body{padding:1.4rem; display:flex; flex-direction:column; flex:1}
.game .teaser{font-family:var(--serif); font-style:italic; color:var(--muted); margin:0 0 1rem}
.game dl{display:grid; grid-template-columns:auto 1fr; gap:.3rem .8rem; font-size:.93rem; margin:0 0 1.3rem}
.game dt{font-weight:700}
.game dd{margin:0; color:var(--muted)}
.game .btn{margin-top:auto}
.offer-box{display:grid; grid-template-columns:.8fr 1.2fr; gap:2.5rem; align-items:start}
.offer-box .price-note{font-family:var(--serif); font-size:1.3rem; font-weight:600; margin:0 0 1rem}
@media (max-width:860px){.offer-box{grid-template-columns:1fr}}

/* FAQ */
.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; padding:1.1rem 2.2rem 1.1rem 0; font-weight:700; font-size:1.1rem; position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:.3rem; top:.9rem; font-family:var(--serif); font-size:1.6rem; color:var(--burgundy); transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 1.2rem; color:var(--muted)}

/* Footer */
footer{background:var(--green); color:var(--on-green)}
footer .wrap{padding-top:3.5rem; padding-bottom:2.5rem}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2rem; margin-bottom:2rem}
footer h3{font-family:var(--sans); font-size:1rem; margin:0 0 .7rem}
footer p{margin:0 0 .4rem; opacity:.85}
footer .logo{display:inline-block; margin-bottom:1rem}
.legal details{border-top:1px solid rgba(255,255,255,.15)}
.legal summary{cursor:pointer; padding:.8rem 0; font-weight:600}
.legal p{font-size:.93rem; opacity:.85; max-width:80ch}
.legal .doc{padding:0 0 1.5rem; max-width:80ch}
.legal .doc h4{font-family:var(--sans); font-size:1rem; margin:1.3rem 0 .4rem}
.legal .doc ul{font-size:.93rem; opacity:.85; padding-left:1.2rem; margin:.4rem 0 1rem}
.legal .doc li{margin-bottom:.35rem}
.legal a{color:inherit}
.copy-line{font-size:.88rem; opacity:.6; margin-top:1.5rem}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr}}

/* ---------- kiegészítések a saját foglalási rendszerhez ---------- */
.hp{position:absolute!important; left:-10000px!important; width:1px; height:1px; overflow:hidden}
.notice-box{text-align:center; padding:2rem 1.5rem}
.notice-box .stamp{margin-bottom:.8rem}
.notice-box h3{margin:.4rem 0 .6rem}
.slot.sk{display:block; min-height:2.9rem; border-color:var(--line); background:linear-gradient(90deg,transparent,var(--beige),transparent); background-size:200% 100%; animation:sk 1.2s linear infinite; cursor:default}
@keyframes sk{from{background-position:200% 0} to{background-position:-200% 0}}
.btn[disabled],.btn[aria-busy="true"]{opacity:.65; cursor:progress}
#err-submit{margin:.2rem 0 .8rem}
.cancel-page{min-height:70vh}
.cancel-page .card{max-width:640px; margin:0 auto}
.cancel-page dl.meta{margin:1rem 0 1.4rem}
.cancel-page .actions{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.2rem}
[hidden]{display:none!important}
.game .cover.has-img{padding:0; overflow:hidden}
.game .cover.has-img img{width:100%; height:100%; object-fit:cover}
