/* ДУБ БАНЯ — visual pages: program builder, programs, SPA */

/* ---------- photo page header ---------- */
.vh{position:relative;min-height:clamp(380px,62vh,600px);display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--line)}
.vh .bg{position:absolute;inset:-4%;background:#0b0b0b center/cover no-repeat;animation:vhZoom 18s ease-out both}
@keyframes vhZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.vh::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,11,.25) 0%,rgba(11,11,11,.35) 40%,rgba(11,11,11,.96) 100%)}
.vh .wrap{position:relative;z-index:2;padding:calc(var(--head) + 40px) 0 clamp(36px,6vw,64px)}
.vh .kick{font:500 .72rem/1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.vh h1{margin:0 0 .25em;max-width:14em}
.vh .lead{max-width:44em;margin:0}
.vh .chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.vchip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:99px;background:rgba(11,11,11,.55);backdrop-filter:blur(6px);font-size:.86rem;color:#efe5cb}
.vchip svg{width:16px;height:16px;color:var(--gold)}
@media(prefers-reduced-motion:reduce){.vh .bg{animation:none}}

/* ---------- section heading ---------- */
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:26px}
.sh h2{margin:0}
.sh .kick{font:500 .72rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}

/* ---------- program chooser cards (visual menu) ---------- */
.pchoose{display:grid;gap:16px}
@media(min-width:860px){.pchoose{grid-template-columns:repeat(3,1fr)}}
.pc{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;border:1px solid var(--line);border-radius:4px;overflow:hidden;text-decoration:none;color:#f4ebd5;isolation:isolate;transition:border-color .4s,transform .5s cubic-bezier(.2,.7,.2,1)}
.pc .ph{position:absolute;inset:0;background:center/cover no-repeat;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);z-index:-2}
.pc::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,11,.05) 30%,rgba(11,11,11,.92));z-index:-1}
.pc:hover{border-color:var(--gold);transform:translateY(-3px)}
.pc:hover .ph{transform:scale(1.06)}
.pc .in{padding:22px 22px 20px}
.pc .who{font:500 .7rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold-hi)}
.pc h3{font-size:2rem;margin:.35em 0 .2em}
.pc .row2{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:1px solid rgba(201,162,78,.35);padding-top:12px;margin-top:10px;font-size:.9rem;color:#d9cfb6}
.pc .row2 b{font-family:var(--serif);font-size:1.45rem;font-weight:600}
.pc .go{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(246,230,168,.5);display:grid;place-items:center;background:rgba(11,11,11,.45);color:var(--gold-hi);transition:background .3s}
.pc:hover .go{background:var(--gold);color:#1a1205}
.pc.mini{min-height:230px}
.pc.mini h3{font-size:1.55rem}

/* ---------- program block ---------- */
.pblock{padding:clamp(56px,8vw,104px) 0;border-top:1px solid var(--line);scroll-margin-top:calc(var(--head) + 10px)}
.pgrid{display:grid;gap:clamp(26px,4vw,56px);align-items:start}
@media(min-width:960px){.pgrid{grid-template-columns:1.1fr 1fr}.pblock.alt .pgrid .mosaic{order:2}}
.mosaic{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;aspect-ratio:5/4.2}
.mosaic .m{position:relative;overflow:hidden;border-radius:3px;border:1px solid var(--line);background:#141414}
.mosaic .m i{position:absolute;inset:0;background:center/cover no-repeat;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.mosaic .m:hover i{transform:scale(1.07)}
.mosaic .m0{grid-row:1/4}
.mosaic .tag{position:absolute;left:14px;bottom:14px;z-index:2;font:500 .68rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:8px 12px;border-radius:99px;background:rgba(11,11,11,.66);border:1px solid var(--line);color:var(--gold-hi)}
.pinfo .who{font:500 .72rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.pinfo h2{margin:.35em 0 .3em}
.pinfo .intro{font-size:1.12rem;color:#e6dcc4;margin:0 0 22px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 22px}
.fact{border:1px solid var(--line);border-radius:3px;padding:14px 12px;background:var(--ink-2);text-align:center}
.fact svg{width:22px;height:22px;color:var(--gold);margin:0 auto 6px;display:block}
.fact b{display:block;font-family:var(--serif);font-size:1.15rem;font-weight:600;color:#f4ebd5;line-height:1.15}
.fact span{font-size:.76rem;color:var(--muted)}
.pricebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border:1px solid rgba(201,162,78,.5);border-radius:3px;background:linear-gradient(135deg,rgba(201,162,78,.12),rgba(201,162,78,.02))}
.pricebar .p{font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:600;line-height:1}
.pricebar .wk{font-size:.86rem;color:#d9cfb6}
.pricebar .wk b{color:var(--gold-hi);font-weight:600}
.pbtns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

/* ritual timeline */
.tl{list-style:none;margin:clamp(30px,4vw,48px) 0 0;padding:0;display:grid;gap:14px;counter-reset:t}
@media(min-width:820px){.tl{grid-template-columns:1fr 1fr}}
.tl li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:16px;padding:18px 18px 18px 16px;border:1px solid var(--line);border-radius:3px;background:var(--ink-2);transition:border-color .35s,background .35s}
.tl li:hover{border-color:rgba(201,162,78,.6);background:#181613}
.tl .ic{position:relative;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(201,162,78,.55);background:radial-gradient(circle at 30% 25%,rgba(246,230,168,.18),rgba(201,162,78,.04));color:var(--gold-hi)}
.tl .ic svg{width:26px;height:26px}
.tl .ic em{position:absolute;right:-4px;top:-4px;min-width:22px;height:22px;border-radius:99px;background:var(--foil);color:#1a1205;font:600 .72rem/22px var(--sans);font-style:normal;text-align:center;padding:0 5px}
.tl h3{font-size:1.32rem;margin:.1em 0 .3em}
.tl p{margin:0;font-size:.95rem;color:#d4cab2;line-height:1.55}

/* included strip */
.incl{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.incl .it{display:flex;gap:14px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:3px;background:var(--ink-2)}
.incl svg{width:30px;height:30px;color:var(--gold);flex:none}
.incl b{display:block;color:#f4ebd5;font-weight:500}
.incl span{font-size:.85rem;color:var(--muted)}

/* ---------- BUILDER ---------- */
.bsteps{position:sticky;top:var(--head);z-index:30;background:rgba(11,11,11,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bsteps .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:10px 0}
.bsteps .wrap::-webkit-scrollbar{display:none}
.bsteps a{flex:none;display:inline-flex;align-items:center;gap:9px;padding:9px 14px 9px 9px;border:1px solid transparent;border-radius:99px;color:#cfc4aa;text-decoration:none;font-size:.88rem;white-space:nowrap;transition:all .25s}
.bsteps a i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font:600 .74rem/1 var(--sans);font-style:normal;color:var(--gold-hi)}
.bsteps a .c{display:none;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--foil);color:#1a1205;font:600 .7rem/20px var(--sans);text-align:center}
.bsteps a.has .c{display:inline-block}
.bsteps a:hover{color:#f4ebd5}
.bsteps a.on{border-color:var(--gold);color:var(--gold-hi);background:rgba(201,162,78,.1)}
.bsteps a.on i{background:var(--foil);color:#1a1205;border-color:transparent}

.bgrid{display:grid;gap:30px;align-items:start}
@media(min-width:1040px){.bgrid{grid-template-columns:minmax(0,1fr) 370px;gap:44px}}
.bsec{scroll-margin-top:calc(var(--head) + 70px);padding:0 0 clamp(40px,5vw,60px)}
.bsec+.bsec{border-top:1px solid var(--line);padding-top:clamp(40px,5vw,60px)}
.bh{display:flex;gap:16px;align-items:flex-start;margin-bottom:22px}
.bh .n{flex:none;font-family:var(--serif);font-size:2.6rem;line-height:.9;font-weight:600}
.bh h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:0 0 .2em}
.bh p{margin:0;color:var(--muted);font-size:.93rem;max-width:58ch}

/* visit counters */
.vgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.vbox{border:1px solid var(--line);border-radius:4px;padding:16px;background:var(--ink-2)}
.vbox .lbl{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted);margin-bottom:10px}
.vbox .lbl svg{width:18px;height:18px;color:var(--gold)}
.vbox input[type=date]{width:100%;background:#0e0e0e;border:1px solid var(--line);border-radius:2px;color:#f4ebd5;padding:10px 12px;font:inherit;color-scheme:dark;min-height:44px}
.cnt{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cnt output{font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1;color:#f4ebd5;min-width:2ch;text-align:center}
.cnt button,.bstp button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(201,162,78,.5);background:transparent;color:var(--gold-hi);font-size:1.25rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s,opacity .2s}
.cnt button:hover,.bstp button:hover{background:var(--gold);color:#1a1205}
.cnt button:disabled,.bstp button:disabled{opacity:.3;pointer-events:none}
.dayline{margin:14px 0 0;padding:12px 16px;border-radius:3px;border:1px solid var(--line);font-size:.9rem;color:#d4cab2;display:flex;gap:10px;align-items:center}
.dayline svg{width:18px;height:18px;flex:none;color:var(--gold)}
.dayline.ok{border-color:rgba(120,190,120,.5);background:rgba(90,160,90,.08);color:#bfe3b8}
.dayline.ok svg{color:#9fd49a}
.dayline.sp,.dayline.bad{border-color:rgba(224,144,127,.5);background:rgba(200,110,90,.08);color:#f0c4b8}
.dayline.sp svg,.dayline.bad svg{color:#e0907f}

/* item cards */
.bcards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.bcard{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--ink-2);transition:border-color .3s,box-shadow .3s,transform .4s cubic-bezier(.2,.7,.2,1)}
.bcard:hover{transform:translateY(-2px)}
.bcard .ph{position:relative;aspect-ratio:16/10;overflow:hidden}
.bcard .ph i{position:absolute;inset:0;background:center/cover no-repeat;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.bcard:hover .ph i{transform:scale(1.06)}
.bcard .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(20,20,20,.85))}
.bcard .pr{position:absolute;right:10px;bottom:10px;z-index:2;font-family:var(--serif);font-weight:600;font-size:1.25rem;color:#fff3cf;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.bcard .pr small{font:400 .72rem var(--sans);color:#d9cfb6;margin-left:3px}
.bcard .bd{flex:1;display:flex;flex-direction:column;gap:6px;padding:14px 14px 14px}
.bcard h4{margin:0;font-family:var(--serif);font-size:1.18rem;font-weight:600;line-height:1.2;color:#f4ebd5}
.bcard .nt{font-size:.8rem;color:var(--muted)}
.bcard .ft{margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.bcard .ok{position:absolute;top:10px;left:10px;z-index:2;width:30px;height:30px;border-radius:50%;background:var(--foil);color:#1a1205;display:grid;place-items:center;transform:scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.bcard .ok svg{width:16px;height:16px}
.bcard.sel{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 14px 34px -18px rgba(201,162,78,.6)}
.bcard.sel .ok{transform:scale(1)}
.bstp{display:flex;align-items:center;gap:6px}
.bstp output{min-width:28px;text-align:center;font-weight:600;color:#f4ebd5}
.btog{flex:1;min-height:40px;border:1px solid rgba(201,162,78,.5);border-radius:2px;background:transparent;color:var(--gold-hi);font:500 .86rem var(--sans);letter-spacing:.04em;cursor:pointer;transition:all .25s}
.btog:hover{border-color:var(--gold)}
.bcard.sel .btog{background:var(--foil);color:#1a1205;border-color:transparent}
.unit{font-size:.74rem;color:var(--muted)}

/* veniki & accordions */
.vlist{display:grid;gap:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--ink-2)}
.vtop{display:flex;align-items:center;gap:16px;padding:14px;border-bottom:1px solid var(--line)}
.vtop i{width:88px;height:64px;border-radius:3px;background:center/cover no-repeat;flex:none}
.vtop h4{margin:0;font-family:var(--serif);font-size:1.3rem;color:#f4ebd5}
.vtop p{margin:2px 0 0;font-size:.82rem;color:var(--muted)}
.brow{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:11px 14px;border-top:1px solid rgba(201,162,78,.12);transition:background .25s}
.brow:first-child{border-top:0}
.brow.sel{background:rgba(201,162,78,.08)}
.brow .nm{font-size:.94rem;color:#ece2c9;line-height:1.35}
.brow .nm small{display:block;font-size:.78rem;color:var(--muted);margin-top:2px}
.brow .pp{font-family:var(--serif);font-size:1.12rem;font-weight:600;color:var(--gold-hi);white-space:nowrap}
.brow .bstp button{width:34px;height:34px;font-size:1.05rem}
.acc{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--ink-2)}
.acc+.acc{margin-top:12px}
.acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:12px 16px 12px 12px}
.acc summary::-webkit-details-marker{display:none}
.acc summary i{width:76px;height:56px;border-radius:3px;background:center/cover no-repeat;flex:none}
.acc summary .t{flex:1;min-width:0}
.acc summary b{display:block;font-family:var(--serif);font-size:1.3rem;font-weight:600;color:#f4ebd5}
.acc summary span{font-size:.8rem;color:var(--muted)}
.acc summary .c{min-width:24px;height:24px;padding:0 7px;border-radius:99px;background:var(--foil);color:#1a1205;font:600 .74rem/24px var(--sans);text-align:center;display:none}
.acc.has summary .c{display:inline-block}
.acc summary .ch{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold-hi);transition:transform .3s}
.acc[open] summary .ch{transform:rotate(180deg)}
.acc .note{padding:0 16px 8px;margin:0;font-size:.82rem;color:var(--muted)}
.acc .rows{border-top:1px solid var(--line)}

/* summary panel */
.bsum{position:sticky;top:calc(var(--head) + 76px)}
.bsum .panel{border:1px solid rgba(201,162,78,.5);border-radius:4px;background:linear-gradient(180deg,#171512,#111);padding:22px 22px 20px;box-shadow:0 24px 60px -30px rgba(0,0,0,.8)}
.bsum h3{font-size:1.6rem;margin:0 0 14px;display:flex;justify-content:space-between;align-items:baseline}
.bsum h3 small{font:400 .78rem var(--sans);color:var(--muted)}
.prog4{display:flex;align-items:center;gap:10px;font-size:.84rem;color:#d4cab2;margin-bottom:12px}
.prog4 .dots{display:flex;gap:5px}
.prog4 .dots i{width:22px;height:6px;border-radius:3px;background:#2a2722;transition:background .3s}
.prog4 .dots i.on{background:var(--foil)}
.sumlist{max-height:44vh;overflow:auto;margin:0 -4px;padding:0 4px;scrollbar-width:thin}
.sl{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid rgba(201,162,78,.12);font-size:.88rem;color:#e2d8c0}
.sl span:last-child{white-space:nowrap;color:#f4ebd5}
.sl.g{font:500 .68rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);border:0;padding:14px 0 4px}
.sl.neg span:last-child{color:#9fd49a}
.sumempty{font-size:.88rem;color:var(--muted);padding:6px 0 10px}
.stot{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:2px solid var(--gold);margin-top:12px;padding-top:14px}
.stot span{font-size:.9rem;color:#d9cfb6}
.stot b{font-family:var(--serif);font-size:2.3rem;font-weight:600;line-height:1}
.sdep{display:flex;justify-content:space-between;font-size:.86rem;color:var(--muted);margin-top:6px}
.swarn{margin-top:12px;padding:10px 12px;border-radius:3px;border:1px solid rgba(224,144,127,.45);background:rgba(200,110,90,.08);color:#f0c4b8;font-size:.84rem}
.sbtns{display:grid;gap:8px;margin-top:16px}
.sbtns .btn{width:100%}
.btn-wa{background:transparent;border-color:rgba(110,200,140,.55);color:#9fe0b4}
.btn-wa:hover{background:rgba(90,180,120,.12)}
.sfine{font-size:.78rem;color:var(--muted);margin:12px 0 0;line-height:1.5}
.bump{animation:bump .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}

/* mobile bottom bar */
.bbar{display:none}
@media(max-width:1039px){
  .bsum{position:static}
  .bbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(15,14,12,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(201,162,78,.5)}
  .bbar .t span{display:block;font-size:.74rem;color:var(--muted)}
  .bbar .t b{font-family:var(--serif);font-size:1.6rem;font-weight:600;line-height:1}
  .bbar .btn{min-height:44px;padding:.8em 1.2em}
  body.has-bbar{padding-bottom:84px}
}

/* ---------- SPA cards with photo ---------- */
.spcards{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.spc{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--ink-2);transition:border-color .4s,transform .5s cubic-bezier(.2,.7,.2,1)}
.spc:hover{border-color:rgba(201,162,78,.6);transform:translateY(-3px)}
.spc .ph{position:relative;aspect-ratio:4/3;overflow:hidden}
.spc .ph i{position:absolute;inset:0;background:center/cover no-repeat;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.spc:hover .ph i{transform:scale(1.06)}
.spc .ph em{position:absolute;left:14px;top:14px;font:600 .72rem/1 var(--sans);font-style:normal;letter-spacing:.2em;color:var(--gold-hi);padding:7px 10px;border-radius:99px;background:rgba(11,11,11,.6);border:1px solid var(--line)}
.spc .in{padding:18px 20px 22px}
.spc h3{font-size:1.5rem;margin:0 0 .35em}
.spc p{margin:0;color:#d4cab2;font-size:.96rem}

/* booking: calc banner */
.calcnote{margin:0 0 14px;padding:12px 16px;border:1px solid rgba(201,162,78,.55);border-radius:3px;background:rgba(201,162,78,.1);color:#f6e6a8;font-size:.92rem}

/* fixes */
.btn-wa svg{width:18px;height:18px;flex:none}
.sumlist{max-height:max(150px,calc(100vh - var(--head) - 500px))}
.acc summary{font-family:var(--sans)}
.acc summary::before,.acc summary::after{display:none!important;content:none!important}
.acc summary span{font-family:var(--sans);font-weight:400}
.incl .it{flex-wrap:nowrap}
.incl .it>div{min-width:0}

/* ---------- photo headers for inner pages ---------- */
body.has-pgh .pgh{padding:calc(var(--head) + clamp(80px,11vw,140px)) 0 clamp(40px,5vw,60px);border-bottom:1px solid var(--line);margin-bottom:clamp(8px,2vw,20px);overflow:hidden;isolation:isolate}
body.has-pgh .pgh::before{content:"";position:absolute;inset:-3%;z-index:-1;background:radial-gradient(ellipse 70% 60% at 50% 55%,rgba(11,11,11,.55),rgba(11,11,11,.2) 70%),linear-gradient(180deg,rgba(11,11,11,.55) 0%,rgba(11,11,11,.15) 35%,rgba(11,11,11,.55) 70%,#0b0b0b 100%),#0b0b0b var(--pgh) var(--pgh-pos,center)/cover no-repeat;animation:vhZoom 18s ease-out both}
body.has-pgh .pgh h1{text-shadow:0 4px 34px rgba(0,0,0,.65)}
body.has-pgh .pgh .lead{color:#f1e8d3;text-shadow:0 2px 16px rgba(0,0,0,.8)}
body.has-pgh .pgh .kick{text-shadow:0 1px 10px rgba(0,0,0,.8)}

/* ---------- icon cards (terms, health) ---------- */
.icards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.icard{position:relative;padding:24px 24px 22px;border:1px solid var(--line);border-radius:4px;background:linear-gradient(160deg,#171512,#121212);transition:border-color .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
.icard:hover{border-color:rgba(201,162,78,.6);transform:translateY(-2px)}
.icard .ii{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(201,162,78,.55);background:radial-gradient(circle at 30% 25%,rgba(246,230,168,.18),rgba(201,162,78,.04));color:var(--gold-hi);margin-bottom:16px}
.icard .ii svg{width:24px;height:24px}
.icard h3{font-size:1.45rem;margin:0 0 .4em}
.icard p{margin:0;color:#d4cab2;font-size:.97rem;line-height:1.6}
.icard .no{position:absolute;top:20px;right:22px;font-family:var(--serif);font-size:1.6rem;font-weight:600;color:rgba(201,162,78,.28)}
.inote{margin-top:22px;padding:16px 20px;border-left:2px solid var(--gold);background:rgba(201,162,78,.06);color:var(--muted);font-size:.9rem}

/* contacts icons */
.ccard .ci{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(201,162,78,.5);color:var(--gold-hi);margin-bottom:12px}
.ccard .ci svg{width:19px;height:19px}
@media(min-width:860px){body.has-pgh .cgrid{grid-template-columns:repeat(3,1fr)}}

/* ---------- privacy page, cookie notice, consent ---------- */
.doc h2{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:1.8em 0 .5em}
.doc p,.doc li{color:#d9cfb6;line-height:1.7}
.doc ul{padding-left:1.2em}
.doc a{color:var(--gold-hi)}
.legal a{color:var(--gold-hi);margin-left:6px;white-space:nowrap}
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:560px;margin-left:auto;display:flex;gap:16px;align-items:center;padding:14px 16px 14px 18px;border:1px solid rgba(201,162,78,.5);border-radius:4px;background:rgba(17,16,14,.96);backdrop-filter:blur(10px);box-shadow:0 18px 40px -18px rgba(0,0,0,.8)}
.ck[hidden]{display:none}
.ck p{margin:0;font-size:.82rem;line-height:1.5;color:#d9cfb6}
.ck a{color:var(--gold-hi)}
.ck .btn{flex:none;min-height:40px;padding:.6em 1.1em}
body.has-bbar .ck{bottom:96px}
@media(max-width:560px){.ck{flex-direction:column;align-items:stretch;text-align:left}}
.pdchk a{color:var(--gold-hi)}
.chk.need span{color:#f0c4b8}
.chk.need input{outline:2px solid #e0907f;outline-offset:2px}
.chk.need{animation:ckShake .4s}
@keyframes ckShake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
.pgh h1{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
@media(max-width:560px){.pgh h1{font-size:clamp(2rem,9.5vw,2.7rem)}}
/* 404 */
.nf{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.nfl{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);border-radius:4px;background:var(--ink-2);color:#f4ebd5;text-decoration:none;transition:border-color .3s,transform .4s cubic-bezier(.2,.7,.2,1)}
.nfl:hover{border-color:var(--gold);transform:translateY(-2px)}
.nfl .ii{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(201,162,78,.55);color:var(--gold-hi);flex:none}
.nfl .ii svg{width:20px;height:20px}
.nfl b{flex:1;font-weight:500}
.nfl .ar svg{width:18px;height:18px;color:var(--gold)}
/* a11y: proper heading levels with the original look; larger slideshow tap targets */
.foot h2.fh{font-family:var(--serif);font-weight:600;font-size:1.4rem;margin:0 0 .6em;color:var(--gold-hi);line-height:inherit;letter-spacing:normal}
.bookaside h2.as{font-size:1.7rem;margin:0 0 .5em}
.hshow-dots{gap:16px}
.hshow-dots button{position:relative}
.hshow-dots button::before{content:"";position:absolute;inset:-8px}

/* ---------- mobile fit v6 ---------- */
.pgrid>*,.bgrid>*,.bmain,.bsec,.pinfo{min-width:0}
.facts{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:380px){.fact{padding:12px 6px}.fact b{font-size:1.02rem}.fact span{font-size:.74rem}.bh{gap:12px}.bh .n{font-size:2.1rem}}
.pinfo h2,.bh h2{overflow-wrap:break-word;hyphens:auto}
.mosaic .tag,.sl.g{font-size:.74rem}
.gw-more{min-height:34px;padding:6px 0}
input[type=checkbox]{width:22px;height:22px}
#app{overflow-x:clip}

/* ---------- builder v7: time range, gated actions ---------- */
.vbox select{width:100%;background:#0e0e0e;border:1px solid var(--line);border-radius:2px;color:#f4ebd5;padding:10px 12px;font:inherit;min-height:44px}
.trange{margin-top:8px;font-size:.84rem;color:var(--gold-hi);font-variant-numeric:tabular-nums}
.sbtns .off{opacity:.42;cursor:not-allowed;filter:grayscale(.4)}
#s_warn.shake{animation:wshake .45s}
@keyframes wshake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.need-procs{border:1px solid rgba(201,162,78,.5);background:rgba(201,162,78,.08);padding:12px 16px;border-radius:3px;color:#f6e6a8;margin-bottom:10px}

/* ---------- gallery v7: album with captions, no zoom ---------- */
#gal .pic{cursor:default;margin:0 0 30px}
#gal .pic[hidden]{display:none}
#gal .pic .mat img{height:auto}
figure.pic{margin:0}

/* ---------- reviews, masters rating, guest uploads ---------- */
.stars{display:inline-flex;gap:1px;font-size:1.05rem;line-height:1;vertical-align:-1px;margin-right:6px}
.stars i{font-style:normal;color:rgba(201,162,78,.28)}.stars i.on{color:var(--gold-hi)}
.mrate{display:flex;align-items:center;gap:6px;margin-top:14px;flex-wrap:wrap}
.mrate b{color:#f4ebd5;font-weight:600}
.rvform{margin-top:18px}
.rstars{border:0;padding:0;margin:0 0 14px;display:inline-flex;flex-direction:row-reverse;gap:4px}
.rstars legend{float:left;width:100%;font-size:.88rem;color:var(--muted);margin-bottom:6px;padding:0}
.rstars input{position:absolute;opacity:0;width:1px;height:1px}
.rstars label{font-size:2.1rem;line-height:1;color:rgba(201,162,78,.3);cursor:pointer;padding:2px;transition:color .15s,transform .15s}
.rstars input:checked~label,.rstars label:hover,.rstars label:hover~label{color:var(--gold-hi)}
.rstars input:focus-visible+label{outline:2px solid var(--gold-hi);outline-offset:2px}
.rvform select,.sbox input:not([type=checkbox]):not([type=file]),.sbox select,.rvform input:not([type=checkbox]):not([type=radio]),.rvform textarea{width:100%;background:#0e0e0e;border:1px solid var(--line);border-radius:2px;color:#f4ebd5;padding:11px 13px;font:inherit;min-height:46px}
.rvlist{display:grid;gap:16px;margin-top:24px}
@media(min-width:860px){.rvlist{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rvi{border:1px solid var(--line);background:rgba(201,162,78,.04);padding:20px 22px;border-radius:2px;min-width:0}
.rvh{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px}
.rvh b{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:#f4ebd5}
.rvi p{margin:0;color:#e0d6bd;overflow-wrap:anywhere}
.qr-img svg{width:100%;height:100%;display:block}
.qrfs{position:fixed;inset:0;z-index:300;background:rgba(8,8,8,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px}
.qrfs[hidden]{display:none}
.qrfs-in{width:min(80vw,70vh,520px);aspect-ratio:1;background:#fff;padding:14px;border-radius:12px}
.qrfs-in svg{width:100%;height:100%;display:block}
.qrfs p{font-family:var(--serif);font-size:1.5rem;color:#f4ebd5;margin:0}
.sharegrid{display:grid;gap:28px}
@media(min-width:980px){.sharegrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}}
.sbox{border:1px solid var(--line);background:rgba(201,162,78,.04);padding:clamp(22px,3vw,34px);border-radius:2px;min-width:0}
.sbox h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:0 0 .3em}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:150px;margin:18px 0 12px;border:1px dashed rgba(201,162,78,.55);border-radius:4px;background:rgba(201,162,78,.05);cursor:pointer;text-align:center;padding:20px;transition:background .2s,border-color .2s}
.drop.on,.drop:hover{background:rgba(201,162,78,.12);border-color:var(--gold-hi)}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.drop b{font-family:var(--serif);font-size:1.4rem;color:var(--gold-hi);font-weight:600}
.drop:focus-within{outline:2px solid var(--gold-hi);outline-offset:2px}
.uplist{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.uplist li{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;gap:4px 10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:3px;font-size:.92rem}
.uplist .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uplist .s{color:var(--muted);font-size:.84rem}
.uplist button{width:32px;height:32px;border:0;background:none;color:var(--muted);font-size:1.3rem;cursor:pointer}
.uplist .bar{grid-column:1/-1;height:3px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.uplist .bar b{display:block;height:100%;width:0;background:var(--gold-hi);transition:width .2s}
.uplist li.ok .bar b{background:#6fcf8f}.uplist li.bad{border-color:rgba(230,90,90,.6)}
.upok{padding:24px 0}.upok h3{font-size:1.6rem;margin:0 0 .3em}
