/* ---------- hero ---------- */
.bh{position:relative;padding:170px 0 clamp(70px,8vw,110px);overflow:hidden;isolation:isolate}
.bh-bg{position:absolute;inset:0 0 0 38%;z-index:-2}
.bh-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.bh::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--ink) 0%,var(--ink) 36%,rgba(13,10,9,.75) 55%,rgba(13,10,9,.25) 100%),linear-gradient(0deg,var(--ink),rgba(13,10,9,0) 40%)}
.crumbs{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.crumbs a:hover{color:var(--cream)}
.bh h1{font-size:clamp(52px,7.4vw,118px);line-height:.95;margin:22px 0 28px;max-width:11ch}
.bh .lead{color:rgba(246,239,231,.8);max-width:46ch}
.quick{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.quick a{display:inline-flex;align-items:center;gap:12px;height:54px;padding:0 22px 0 8px;border-radius:999px;border:1px solid var(--line-2);background:rgba(13,10,9,.35);backdrop-filter:blur(8px);font-weight:500;transition:border-color .3s,background .3s}
.quick a i{width:38px;height:38px;border-radius:50%;background:var(--grad);display:grid;place-items:center}
.quick a svg{width:17px;height:17px}
.quick a:hover{border-color:var(--red-2);background:rgba(198,49,27,.15)}
.bh-badges{display:flex;gap:28px;flex-wrap:wrap;margin-top:56px;padding-top:26px;border-top:1px solid var(--line);max-width:640px}
.bh-badges div{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bh-badges b{display:block;font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.01em;text-transform:none;color:var(--cream);margin-bottom:2px}

/* ---------- wizard (paper) ---------- */
.book{scroll-margin-top:80px}
.book-grid{display:grid;grid-template-columns:1fr 380px;gap:clamp(30px,4vw,60px);align-items:start}
.wiz{background:#fffaf4;border-radius:28px;padding:clamp(24px,3.5vw,48px);box-shadow:0 1px 0 rgba(27,19,17,.05),0 40px 80px -50px rgba(27,19,17,.5)}
.steps-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:38px}
.steps-nav button{text-align:left;font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-muted);padding-top:12px;border-top:3px solid rgba(27,19,17,.1);transition:color .3s,border-color .3s}
.steps-nav button b{display:block;font-weight:500;color:var(--red);margin-bottom:2px}
.steps-nav button.on{color:var(--paper-ink);border-color:var(--red)}
.steps-nav button.done{border-color:rgba(198,49,27,.45);color:var(--paper-ink)}
.steps-nav button:disabled{cursor:default}
.step{display:none;border:0;min-width:0;animation:in .5s var(--ease)}
.step.on{display:block}
@keyframes in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.step h2{font-size:clamp(32px,3.4vw,48px);margin-bottom:8px}
.step .hint{color:var(--paper-muted);margin-bottom:28px}

/* choice cards */
.choices{display:grid;gap:12px}
.choices.c5{grid-template-columns:1fr 1fr}
.choices.c5 .choice:last-child{grid-column:1/-1}
.choices.c5 .card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;row-gap:2px;align-items:center;padding:18px 48px 18px 18px}
.choices.c5 .card svg.ic{grid-row:1/3;width:44px;height:44px;padding:9px;border-radius:12px;background:rgba(198,49,27,.08)}
.choices.c5 .tick{top:50%;margin-top:-11px;right:16px}
.choices.c3{grid-template-columns:repeat(3,1fr)}
.choice{position:relative;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice .card{display:flex;flex-direction:column;gap:12px;height:100%;padding:20px 16px 18px;border:1.5px solid rgba(27,19,17,.14);border-radius:18px;background:var(--paper);transition:border-color .25s,background .25s,transform .25s var(--ease),box-shadow .25s}
.choice:hover .card{transform:translateY(-3px);border-color:rgba(198,49,27,.5)}
.choice input:checked + .card{border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(198,49,27,.14),0 16px 30px -18px rgba(198,49,27,.6)}
.choice input:focus-visible + .card{outline:2px solid var(--red);outline-offset:3px}
.choice svg.ic{width:38px;height:38px;color:var(--red)}
.choice b{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.1}
.choice small{color:var(--paper-muted);font-size:13.5px;line-height:1.4}
.choice .tick{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(27,19,17,.2);display:grid;place-items:center;transition:all .25s;background:#fff}
.choice input:checked ~ .tick{background:var(--red);border-color:var(--red)}
.choice input:checked ~ .tick::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.lineup .card{padding:0;overflow:hidden}
.lineup .ph{aspect-ratio:4/3;overflow:hidden}
.lineup .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.lineup .choice:hover img{transform:scale(1.06)}
.lineup .txt{padding:14px 16px 18px;display:flex;flex-direction:column;gap:6px}
.lineup .advise .ph{display:grid;place-items:center;background:var(--grad);color:#fff;font-family:var(--serif);font-style:italic;font-size:46px}

/* fields */
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f{position:relative;display:block}
.f.full{grid-column:1/-1}
.f input,.f textarea,.f select{width:100%;font:inherit;font-size:16px;color:var(--paper-ink);background:var(--paper);border:1.5px solid rgba(27,19,17,.14);border-radius:14px;padding:26px 16px 10px;outline:none;transition:border-color .2s,background .2s;appearance:none}
.f textarea{min-height:150px;resize:vertical}
.f > span{position:absolute;left:17px;top:18px;color:var(--paper-muted);font-size:15.5px;pointer-events:none;transition:all .2s}
.f input:focus,.f textarea:focus,.f select:focus{border-color:var(--red);background:#fff}
.f input:focus + span,.f input:not(:placeholder-shown) + span,.f textarea:focus + span,.f textarea:not(:placeholder-shown) + span,.f.fixed > span{top:9px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.f.bad input,.f.bad textarea{border-color:#d93a23;background:#fff4f1}
.f .err{display:none;font-size:13px;color:#c22d18;margin-top:6px}
.f.bad .err{display:block}
.f.sel::after{content:"";position:absolute;right:18px;top:27px;width:8px;height:8px;border:solid var(--paper-muted);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);pointer-events:none}
.date-note{grid-column:1/-1;display:none;align-items:center;gap:10px;font-size:14.5px;padding:12px 16px;border-radius:12px;background:rgba(198,49,27,.08);color:var(--paper-ink)}
.date-note.on{display:flex}
.date-note b{font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:8px;grid-column:1/-1;margin-top:-2px}
.chips span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-muted);margin-right:4px;align-self:center}
.chips button{font-size:13.5px;padding:7px 13px;border-radius:999px;border:1px solid rgba(27,19,17,.16);background:var(--paper);transition:all .2s}
.chips button:hover{border-color:var(--red);color:var(--red)}
.consent{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--paper-muted);line-height:1.5;cursor:pointer;margin-top:4px}
.consent input{appearance:none;flex:none;width:22px;height:22px;border:1.5px solid rgba(27,19,17,.25);border-radius:6px;display:grid;place-content:center;cursor:pointer;background:#fff;transition:all .2s}
.consent input:checked{background:var(--red);border-color:var(--red)}
.consent input:checked::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.consent.bad input{border-color:#d93a23}
.hp{position:absolute;left:-9999px}
.step-err{display:none;margin-top:16px;font-size:14.5px;color:#c22d18}
.step-err.on{display:block}

.wiz-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:36px;padding-top:24px;border-top:1px solid rgba(27,19,17,.1)}
.wiz-foot .back{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-muted);display:inline-flex;align-items:center;gap:8px}
.wiz-foot .back svg{width:16px;height:16px;transform:rotate(180deg)}
.wiz-foot .back:hover{color:var(--red)}
.wiz-foot .back[hidden]{display:inline-flex;visibility:hidden}
.wiz-foot .count{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--paper-muted)}

/* summary ticket */
.sum{position:sticky;top:100px;background:var(--ink);color:#f6efe7;border-radius:24px;overflow:hidden;box-shadow:0 40px 70px -40px rgba(27,19,17,.7)}
.sum-top{padding:22px 24px;background:var(--grad);display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.sum-top img{height:30px;width:auto;filter:brightness(0) invert(1)}
.sum-body{padding:8px 24px 6px}
.sum-row{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid rgba(246,239,231,.08)}
.sum-row dt{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,239,231,.45);padding-top:4px}
.sum-row dd{font-family:var(--serif);font-size:19px;line-height:1.3;color:#f6efe7;transition:color .3s}
.sum-row dd.empty{color:rgba(246,239,231,.28);font-style:italic}
.sum-row dd.flash{animation:flash .8s}
@keyframes flash{0%{color:var(--red-2)}100%{color:#f6efe7}}
.sum-foot{position:relative;padding:18px 24px 22px;border-top:2px dashed rgba(246,239,231,.14);margin-top:10px}
.sum-foot::before,.sum-foot::after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:var(--paper)}
.sum-foot::before{left:-11px}.sum-foot::after{right:-11px}
.prog{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,239,231,.55);margin-bottom:10px}
.bar{height:4px;border-radius:4px;background:rgba(246,239,231,.1);overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--grad);transition:width .6s var(--ease)}
.sum-note{margin-top:16px;font-size:13.5px;color:rgba(246,239,231,.55);line-height:1.5}
.sum-note a{color:#f6efe7;border-bottom:1px solid rgba(246,239,231,.3)}

/* success */
.done-screen{display:none;text-align:center;padding:30px 10px}
.done-screen.on{display:block;animation:in .6s var(--ease)}
.done-ic{width:96px;height:96px;margin:0 auto 26px;border-radius:50%;background:var(--grad);display:grid;place-items:center;box-shadow:0 20px 40px -14px rgba(198,49,27,.8)}
.done-ic svg{width:42px;height:42px;color:#fff}
.done-ic path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw .7s .2s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.done-screen h2{font-size:clamp(36px,4vw,56px);margin-bottom:14px}
.done-screen p{color:var(--paper-muted);max-width:46ch;margin:0 auto 30px}
.done-screen .row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,100px);align-items:start}
.faq-grid .lead{margin-top:20px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;font-family:var(--serif);font-size:clamp(21px,2vw,27px);line-height:1.25;transition:color .25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red-2)}
.faq summary i{flex:none;position:relative;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-2);transition:background .3s,border-color .3s,transform .4s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:1.5px;margin:-.75px 0 0 -6.5px;background:currentColor}
.faq summary i::after{transform:rotate(90deg);transition:transform .3s}
.faq details[open] summary i{background:var(--red);border-color:var(--red);transform:rotate(180deg)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq details p{color:var(--muted);max-width:60ch;padding:0 50px 28px 0}

/* ---------- direct contact ---------- */
.reach{position:relative;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,80px);align-items:center;padding:clamp(30px,4.5vw,64px);border-radius:30px;background:var(--ink-2);border:1px solid var(--line);overflow:hidden;isolation:isolate}
.reach::before{content:"";position:absolute;left:-10%;top:-40%;width:60%;height:140%;z-index:-1;background:radial-gradient(closest-side,rgba(198,49,27,.22),transparent)}
.reach-face{position:relative;width:96px;height:96px;margin-bottom:26px}
.reach-face img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 20%;border:3px solid var(--ink-2);box-shadow:0 0 0 2px var(--red)}
.reach-face i{position:absolute;right:4px;bottom:6px;width:16px;height:16px;border-radius:50%;background:#3ccf6e;border:3px solid var(--ink-2)}
.reach-intro h2{font-size:clamp(38px,4.2vw,64px);margin:16px 0 18px}
.reach-intro p{color:var(--muted);max-width:36ch}
.reach-list{border-top:1px solid var(--line)}
.line{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.line .ico{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(246,239,231,.05);border:1px solid var(--line);transition:background .3s,border-color .3s}
.line .ico svg{width:21px;height:21px;color:var(--red-2);transition:color .3s}
.line .val{min-width:0}
.line .val small{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:2px}
.line .val b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.9vw,28px);letter-spacing:-.01em;line-height:1.2;transition:color .3s}
.line .cp{position:relative;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--muted);border:1px solid var(--line-2);transition:all .25s}
.line .cp svg{width:18px;height:18px;grid-area:1/1;transition:opacity .2s,transform .3s var(--ease)}
.line .cp .i2{opacity:0;transform:scale(.5);color:#3ccf6e}
.line .cp em{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:6px;background:var(--cream);color:var(--ink);opacity:0;pointer-events:none;transition:all .25s;white-space:nowrap}
.line .cp:hover{color:var(--cream);border-color:var(--cream)}
.line .cp.ok .i1{opacity:0;transform:scale(.5)}
.line .cp.ok .i2{opacity:1;transform:none}
.line .cp.ok em{opacity:1;transform:translate(-50%,0)}
.line .go{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--grad);box-shadow:0 10px 26px -12px rgba(198,49,27,.9);transition:transform .3s var(--ease)}
.line .go svg{width:20px;height:20px;transition:transform .3s var(--ease)}
.line:hover .val b{color:var(--red-2)}
.line:hover .ico{background:var(--red);border-color:var(--red)}
.line:hover .ico svg{color:#fff}
.line:hover .go{transform:scale(1.06)}
.line:hover .go svg{transform:translateX(3px) rotate(-45deg)}

@media (max-width:1100px){
  .book-grid{grid-template-columns:1fr}
  .sum{position:relative;top:0;order:-1;display:none}
  .faq-grid{grid-template-columns:1fr}
  .bh-bg{inset:0}
  .bh::before{background:linear-gradient(0deg,var(--ink) 0%,rgba(13,10,9,.85) 50%,rgba(13,10,9,.55) 100%)}
}
@media (max-width:640px){
  .bh{padding-top:130px}
  .quick a{width:100%}
  .bh-badges{gap:18px}
  .wiz{border-radius:22px;padding:22px 16px}
  .steps-nav button{font-size:0;letter-spacing:0}
  .steps-nav button b{font-size:11.5px;letter-spacing:.12em}
  .choices.c5{grid-template-columns:1fr}
  .choices.c3{grid-template-columns:1fr 1fr}
  .choices.c3 .choice:last-child{grid-column:1/-1}
  .choices.c3 .choice:last-child .ph{aspect-ratio:auto;height:70px}
  .choice .card{padding:16px 14px}
  .lineup .choice .card{padding:0}
  .lineup .txt{padding:12px 12px 14px}
  .choice b{font-size:18px}
  .lineup .txt small{display:none}
  .fields{grid-template-columns:1fr}
  .wiz-foot .count{display:none}
  .wiz-foot .btn{padding:0 20px}
  .reach{grid-template-columns:1fr;padding:28px 18px;border-radius:22px}
  .line{grid-template-columns:auto 1fr auto;gap:12px;padding:18px 0}
  .line .cp{display:none}
  .line > span:empty{display:none}
  .line .ico{width:44px;height:44px}
  .line .go{width:48px;height:48px}
  .faq details p{padding-right:0}
}
