:root{
  --line:color-mix(in oklab,var(--ink) 16%,transparent);
  --soft:color-mix(in oklab,var(--ink) 66%,var(--paper));
  --tint:color-mix(in oklab,var(--ink) 5%,var(--paper));
  --step-0:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --step-1:clamp(1.25rem,1.15rem + .45vw,1.5rem);
  --step-2:clamp(1.6rem,1.35rem + 1.1vw,2.35rem);
  --step-3:clamp(2.1rem,1.6rem + 2.4vw,3.6rem);
  --step-4:clamp(2.7rem,1.7rem + 4.6vw,6.2rem);
  --gut:clamp(1rem,.6rem + 2vw,2.5rem);
  --r:3px;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{scroll-behavior:smooth;scroll-padding-top:5rem;scrollbar-color:var(--acc) var(--tint);-webkit-text-size-adjust:100%}
body{font-family:var(--f-t);font-size:var(--step-0);line-height:1.55;background:var(--paper);color:var(--ink);font-optical-sizing:auto}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
::selection{background:var(--acc);color:#fff}
h1,h2,h3{font-family:var(--f-d);font-weight:var(--f-w);line-height:1.04;letter-spacing:-.015em;text-wrap:balance}
h2{font-size:var(--step-3);margin-bottom:clamp(1.2rem,3vw,2.2rem)}
h3{font-size:var(--step-1)}
p{text-wrap:pretty}
.mono{font-family:var(--f-m);font-variant-numeric:tabular-nums}
.wrap{width:min(100% - 2*var(--gut),1180px);margin-inline:auto}
section{margin-block:clamp(3.3rem,7.3vw,7.15rem)}
.note{font-size:.88em;color:var(--soft);margin-top:1rem;max-width:62ch}
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;z-index:50;background:var(--paper);padding:.5rem 1rem}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:3.1rem;padding:.8rem 1.4rem;border-radius:var(--r);
  background:var(--acc);color:#fff;font:inherit;font-weight:600;text-decoration:none;border:0;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:color-mix(in oklab,var(--acc) 84%,#000)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.sm{min-height:2.6rem;padding:.5rem 1rem;font-size:.92em}
.btns{display:flex;flex-wrap:wrap;gap:.75rem}
.u-link{font-weight:600}

.draft{position:relative;z-index:30;background:var(--ink);color:var(--paper);font-size:.82rem;padding:.55rem 2.6rem .55rem 1rem;text-align:center}
.draft a{color:inherit;font-weight:600}
.draft button{position:absolute;right:.4rem;top:50%;translate:0 -50%;background:none;border:0;color:inherit;font-size:1.3rem;cursor:pointer;padding:.2rem .6rem}

.top{display:flex;align-items:center;gap:1.5rem;padding-block:1.1rem}
.logo{display:flex;align-items:center;gap:.7rem;font-family:var(--f-d);font-weight:var(--f-w);font-size:1.35rem;text-decoration:none;line-height:1.1;max-width:22rem}
.mark{flex:none;width:2.4rem;height:2.4rem;display:grid;place-items:center;background:var(--ink);color:var(--paper);border-radius:var(--r);font-size:1.15rem}
.top nav{display:flex;gap:1.6rem;margin-left:auto;font-size:.95rem}
.top nav a{text-decoration:none;color:var(--soft)}
.top nav a:hover{color:var(--ink)}
.phone{font-weight:600;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}

.hero{margin-block:clamp(1rem,3vw,2.5rem) 0}
.kick{font-size:.95rem;color:var(--soft);margin-bottom:1rem}
.hero h1{font-size:var(--step-4);line-height:.96;letter-spacing:-.02em}
.lead{font-size:var(--step-1);line-height:1.4;max-width:30ch;margin:1.3rem 0 1.8rem;color:color-mix(in oklab,var(--ink) 84%,var(--paper))}
.now{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:1.6rem;font-size:.95rem;color:var(--soft)}
.now [data-now]:not(:empty){color:var(--ink);font-weight:600}
.now [data-now]:not(:empty)::before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--dot,#2e9e5b);margin-right:.5em;vertical-align:.08em}
.hero-p img{width:100%;object-fit:cover;clip-path:var(--clip)}

.L-split .hero-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,4vw,4rem);align-items:end}
.L-split .hero-p img{aspect-ratio:4/5}
.L-stack .hero-t{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:3rem;align-items:end}
.L-stack .hero h1{grid-column:1/-1;font-size:clamp(3rem,2rem + 6vw,8.5rem)}
.L-stack .lead{margin-top:1.6rem}
.L-stack .btns{align-self:center}
.L-stack .now{grid-column:1/-1}
.L-stack .hero-p{margin-top:clamp(1.5rem,4vw,3rem)}
.L-stack .hero-p img{aspect-ratio:21/9}
.L-full .hero{margin:0;position:relative;color:var(--paper);background:var(--ink)}
.L-full .hero-in{min-height:min(88svh,820px);display:flex;align-items:flex-end;padding-block:clamp(2rem,6vw,5rem)}
.L-full .hero-t{position:relative;z-index:1;max-width:44rem}
.L-full .hero-p{position:absolute;inset:0;margin:0}
.L-full .hero-p img{height:100%;opacity:.5}
.L-full .kick,.L-full .now{color:color-mix(in oklab,var(--paper) 78%,transparent)}
.L-full .now [data-now]:not(:empty){color:var(--paper)}
.L-full .lead{color:var(--paper)}
.L-full .hero .btn.ghost{color:var(--paper);box-shadow:inset 0 0 0 1.5px var(--paper)}
.L-full .hero .btn.ghost:hover{background:var(--paper);color:var(--ink)}

.sl-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem}
.sl-head p{color:var(--soft)}
.sl-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink)}
.sl-day{padding:1rem 1.2rem 1.4rem 0;border-right:1px solid var(--line)}
.sl-day+.sl-day{padding-left:1.2rem}
.sl-day:last-child{border-right:0}
.sl-day h3{font-family:var(--f-t);font-weight:600;font-size:1rem;margin-bottom:.9rem}
.sl-day h3 small{display:block;color:var(--soft);font-weight:400}
.sl-day .chips{gap:.4rem}
.sl-none{color:var(--soft);font-size:.92rem}
.sl-nojs{padding:1rem 0;color:var(--soft)}

.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{font:inherit;font-size:.95rem;font-variant-numeric:tabular-nums;min-height:2.6rem;padding:.4rem .85rem;border-radius:var(--r);
  border:1.5px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.chip:hover{border-color:var(--ink)}
.chip[aria-checked=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chip small{display:block;font-size:.75em;opacity:.7}
.hint{color:var(--soft);font-size:.92rem;padding:.5rem 0}

.prices .pl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem clamp(2rem,5vw,4.5rem)}
.pl-g h3{font-family:var(--f-t);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);padding-bottom:.6rem;border-bottom:2px solid var(--ink)}
.pl{list-style:none;padding:0;margin-bottom:1.8rem}
.pl li{display:flex;align-items:baseline;gap:.6rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.pl i{flex:1;min-width:1rem;border-bottom:1px dotted color-mix(in oklab,var(--ink) 30%,transparent);translate:0 -.3em}
.pl-n{color:var(--soft);font-size:.85em;white-space:nowrap}
.pl b{white-space:nowrap;font-variant-numeric:tabular-nums}

.ws-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem}
.ws-head p{color:var(--soft);font-size:.9rem}
.ws-sheet{position:relative;background:var(--tint);border:1px solid var(--line);padding:clamp(.8rem,2.5vw,2rem);overflow-x:auto}
.ws table{width:100%;border-collapse:collapse;min-width:30rem}
.ws th,.ws td{text-align:left;padding:.75rem .6rem;border-bottom:1px solid var(--line);vertical-align:baseline}
.ws thead th{font-family:var(--f-m);font-weight:500;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);border-bottom:2px solid var(--ink)}
.ws .ws-cat th{font-family:var(--f-d);font-weight:var(--f-w);font-size:1.35rem;padding-top:1.4rem;border-bottom-color:var(--ink);text-transform:uppercase;letter-spacing:.02em}
.ws td:first-child{color:var(--soft);width:3rem}
.ws-note{color:var(--soft);font-size:.9em}
.ws-p{text-align:right;white-space:nowrap;font-weight:600}
.ws-stamp{position:absolute;right:clamp(1rem,4vw,3rem);top:.8rem;font-family:var(--f-m);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--acc);
  border:2px solid var(--acc);padding:.35rem .6rem;rotate:-6deg;opacity:.85}

.mn{background:var(--ink);color:var(--paper);padding-block:clamp(3rem,7vw,6rem)}
.mn h2{color:var(--paper)}
.mn-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:2rem clamp(2rem,5vw,4rem)}
.mn-col h3{font-size:var(--step-2);font-style:italic;margin-bottom:.8rem;color:color-mix(in oklab,var(--acc) 55%,var(--paper))}
.mn-col ul{list-style:none;padding:0}
.mn-col li{display:flex;align-items:baseline;gap:.6rem;padding:.6rem 0}
.mn-col li span{display:flex;flex-direction:column}
.mn-col small{font-size:.8em;opacity:.65}
.mn-col i{flex:1;border-bottom:1px dotted color-mix(in oklab,var(--paper) 35%,transparent);translate:0 -.3em}
.mn-col b{font-variant-numeric:tabular-nums;white-space:nowrap}
.mn .note{color:color-mix(in oklab,var(--paper) 65%,transparent)}

.sc-scroll{overflow-x:auto;border-top:2px solid var(--ink)}
.sc table{width:100%;border-collapse:collapse;min-width:44rem;table-layout:fixed}
.sc th,.sc td{padding:.35rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.sc thead th{font-weight:600;padding-block:.8rem}
.sc tbody th{width:4.2rem;color:var(--soft);font-weight:500;padding-top:.9rem}
.sc-c{width:100%;min-height:3.4rem;text-align:left;font:inherit;font-size:.86rem;line-height:1.25;padding:.5rem .6rem;border:0;border-left:3px solid var(--acc);
  background:var(--tint);color:var(--ink);cursor:pointer;border-radius:0 var(--r) var(--r) 0}
.sc-c:hover{background:color-mix(in oklab,var(--acc) 14%,var(--paper))}

.rm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1.5rem}
.rm img{aspect-ratio:10/7;object-fit:cover;margin-bottom:1rem;border-radius:var(--r)}
.rm p{color:var(--soft)}
.rm .rm-p{color:var(--ink);margin:.6rem 0 1rem}
.rm .rm-p b{font-size:1.35rem}

.cs-l{list-style:none;padding:0;border-top:2px solid var(--ink)}
.cs-l li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;gap:1rem 2rem;align-items:baseline;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.cs-k{font-family:var(--f-d);font-size:var(--step-2);line-height:1.05}
.cs-p{white-space:nowrap;font-weight:600}

.st{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 clamp(2rem,6vw,6rem)}
.st h2{grid-column:1/-1}
.st-l{list-style:none;padding:0;counter-reset:s}
.st-l li{counter-increment:s;display:grid;grid-template-columns:3rem 1fr;row-gap:.2rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.st-l li::before{content:counter(s,decimal-leading-zero);grid-row:span 2;font-family:var(--f-m);color:var(--acc);font-size:.95rem;padding-top:.15rem}
.st-l span{color:var(--soft)}
.st-f{display:grid;gap:0;align-content:start;border-top:2px solid var(--ink)}
.st-f div{padding:1.2rem 0;border-bottom:1px solid var(--line)}
.st-f dt{font-family:var(--f-d);font-weight:var(--f-w);font-size:var(--step-2);line-height:1}
.st-f dd{color:var(--soft);margin-top:.35rem}
.st-solo{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));column-gap:2rem}

.gl{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(.6rem,1.5vw,1.2rem)}
.gl figure{margin:0}
.gl img{width:100%;height:100%;object-fit:cover;border-radius:var(--r)}
.gl figcaption{font-size:.85rem;color:var(--soft);margin-top:.5rem}
.gl-0{grid-column:1/8;grid-row:span 2}
.gl-0 img{aspect-ratio:4/3.4}
.gl-1{grid-column:8/13}
.gl-2{grid-column:8/13}
.gl-1 img,.gl-2 img{aspect-ratio:16/10}

.rvw{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem clamp(1.5rem,5vw,4rem);align-items:center;padding-block:clamp(1.5rem,4vw,3rem);border-block:2px solid var(--ink)}
.rvw-n{font-family:var(--f-d);font-weight:var(--f-w);font-size:clamp(4rem,3rem + 6vw,9rem);line-height:.85;color:var(--acc)}
.rvw-t{font-size:var(--step-1);font-weight:600;margin-bottom:.4rem}
.rvw p+p{color:var(--soft);margin-bottom:.8rem;max-width:56ch}

.bk{background:var(--tint);border-block:1px solid var(--line);padding-block:clamp(3rem,7vw,6rem)}
.bk-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.bk-side p{color:var(--soft);max-width:34ch}
.bk-alt{margin-top:1.4rem}
.bk-form,.bk-done{grid-column:2;display:grid;gap:1.2rem;background:var(--paper);padding:clamp(1.2rem,3vw,2.2rem);border:1px solid var(--line);border-top:3px solid var(--acc)}
.bk-done[hidden],.bk-form[hidden]{display:none}
.f{display:grid;gap:.45rem;min-width:0}
.f2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1.2rem}
.f label,.lbl{font-size:.88rem;font-weight:600}
input,select,textarea{font:inherit;font-size:1rem;width:100%;min-height:3rem;padding:.7rem .85rem;border-radius:var(--r);border:1.5px solid var(--line);background:var(--paper);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--acc) 25%,transparent)}
input[aria-invalid=true]{border-color:#b3261e}
textarea{resize:vertical;min-height:5.5rem}
.seg{border:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}
.seg legend{width:100%;margin-bottom:.45rem}
.seg label{display:flex;align-items:center;gap:.45rem;font-weight:400;font-size:1rem}
.seg input,.agree input{width:1.15rem;min-height:0;height:1.15rem;accent-color:var(--acc)}
.agree{display:flex;gap:.6rem;align-items:flex-start;font-size:.82rem;color:var(--soft)}
.err{color:#b3261e;font-size:.9rem;min-height:1.2em}
.total{font-weight:600;min-height:1.5em}
.bk-ok{font-family:var(--f-d);font-weight:var(--f-w);font-size:var(--step-2);line-height:1.05}
.bk-note{font-size:.88rem;color:var(--soft);border-top:1px solid var(--line);padding-top:1rem}

.fq{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:0 clamp(2rem,5vw,5rem)}
.fq-l{border-top:2px solid var(--ink)}
.fq details{border-bottom:1px solid var(--line)}
.fq summary{cursor:pointer;list-style:none;padding:1.15rem 2.5rem 1.15rem 0;font-weight:600;position:relative}
.fq summary::-webkit-details-marker{display:none}
.fq summary::after{content:"+";position:absolute;right:.2rem;top:.85rem;font-size:1.5rem;font-weight:400;color:var(--acc);transition:rotate .2s}
.fq details[open] summary::after{rotate:45deg}
.fq details p{padding:0 0 1.2rem;color:var(--soft);max-width:62ch}

.ct{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,4rem);align-items:start}
.ct-l{display:grid;gap:1.2rem;margin-bottom:1.6rem}
.ct-l dt{font-size:.85rem;color:var(--soft)}
.ct-l dd{font-size:var(--step-1);font-weight:500}
.hrs{border-collapse:collapse;font-size:1rem;font-weight:400}
.hrs th{text-align:left;font-weight:500;padding:.15rem 1.2rem .15rem 0;color:var(--soft)}
.hrs td{font-variant-numeric:tabular-nums}
.map{width:100%;aspect-ratio:4/3;border:0;border-radius:var(--r);background:var(--tint)}
.map-link{display:grid;place-items:center;text-align:center;padding:2rem;font-weight:600;border:1px dashed var(--line)}

.own{background:var(--ink);color:var(--paper);padding-block:clamp(3rem,7vw,6rem);margin-bottom:0}
.own-in{max-width:52rem}
.own-k{font-family:var(--f-m);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in oklab,var(--paper) 60%,transparent);margin-bottom:1rem}
.own h2{color:var(--paper);font-size:var(--step-2)}
.own ul{padding-left:1.1rem;display:grid;gap:.6rem;margin-bottom:1.6rem}
.own li::marker{color:color-mix(in oklab,var(--acc) 50%,var(--paper))}
.own-p{font-size:var(--step-1);font-weight:600;margin-bottom:1.4rem}
.own .btn.ghost{color:var(--paper);box-shadow:inset 0 0 0 1.5px var(--paper)}
.own .btn.ghost:hover{background:var(--paper);color:var(--ink)}
.own-s{margin-top:1.6rem;font-size:.88rem;color:color-mix(in oklab,var(--paper) 65%,transparent)}
.ft{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding-block:2rem 6rem;font-size:.85rem;color:var(--soft)}

.dock{display:none}

html.js .rv{opacity:0;translate:0 .6em;transition:opacity .7s ease,translate .7s cubic-bezier(.2,.7,.2,1)}
html.js .rv.in{opacity:1;translate:0 0}
@keyframes unveil{from{clip-path:inset(0 0 100% 0)}to{clip-path:var(--clip)}}
html.js .hero-p img{animation:unveil 1.1s cubic-bezier(.6,.05,.2,1) both}

@media (max-width:900px){
  .top nav{display:none}
  .top .phone{margin-left:auto}
  .L-split .hero-in,.L-stack .hero-t,.st,.fq,.ct,.bk-in{grid-template-columns:1fr}
  .bk-form,.bk-done{grid-column:auto}
  .L-split .hero-p{order:-1}
  .L-split .hero-p img{aspect-ratio:4/3}
  .L-stack .hero-p img{aspect-ratio:3/2}
  .sl-board{grid-template-columns:1fr}
  .sl-day,.sl-day+.sl-day{padding:1rem 0;border-right:0;border-bottom:1px solid var(--line)}
  .gl-0,.gl-1,.gl-2{grid-column:1/-1;grid-row:auto}
  .gl-1,.gl-2{grid-column:span 6}
  .cs-l li{grid-template-columns:1fr}
  .rvw{grid-template-columns:1fr}
  .dock{display:flex;gap:.5rem;position:fixed;left:.6rem;right:.6rem;bottom:.6rem;z-index:20;padding:.4rem;background:var(--paper);
    border:1px solid var(--line);border-radius:calc(var(--r) + 3px);box-shadow:0 10px 30px -12px color-mix(in oklab,var(--ink) 50%,transparent)}
  .dock .btn{flex:1;min-height:2.9rem;padding-inline:.6rem}
  .logo{font-size:1.1rem}
}
@media (max-width:640px){
  .ws table{min-width:0}
  .ws thead{display:none}
  .ws tbody tr:not(.ws-cat){display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;column-gap:.6rem;border-bottom:1px solid var(--line);padding-block:.7rem}
  .ws tbody tr:not(.ws-cat) td{border:0;padding:0}
  .ws td.ws-note{grid-column:2;grid-row:2;font-size:.85em}
  .ws td.ws-p{grid-column:3;grid-row:1}
  .ws .ws-cat{display:block}
  .ws .ws-cat th{display:block;padding-inline:0}
  .ws-stamp{position:static;display:inline-block;margin-top:1rem;rotate:-3deg}
  .pl li{flex-wrap:wrap}
  .pl-n{order:3;width:100%;white-space:normal}
}
@media (max-width:520px){
  .gl-1,.gl-2{grid-column:1/-1}
  .phone{font-size:.9rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.js .rv{opacity:1;translate:none;transition:none}
  html.js .hero-p img{animation:none}
}
@media print{.draft,.dock,.own,.bk,.map{display:none}}
[data-days]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}
@media (max-width:520px){[data-days]{grid-template-columns:repeat(4,minmax(0,1fr))}}
[data-days] .chip{padding-inline:.2rem;font-size:.88rem}
