/* places */
.places{background:var(--charcoal)}
.places__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(16px,2.4vw,32px);margin-top:clamp(40px,6vw,72px)}
.place{position:relative;padding:clamp(28px,3.6vw,52px);border:1px solid var(--line);background:linear-gradient(160deg,rgba(106,29,29,.5),rgba(55,16,16,.55));overflow:hidden;display:flex;flex-direction:column;gap:18px}
.place--bk{background:rgba(255,255,255,.025)}
.place::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,70%) var(--my,0%),rgba(255,181,97,.16),transparent 60%);opacity:0;transition:opacity .6s;pointer-events:none}
@media (hover:hover){.place:hover::before{opacity:1}}
.place__tag{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.place__tag--alt{color:var(--flour);border:1px solid var(--flour-dim);align-self:flex-start;padding:5px 14px;border-radius:999px;letter-spacing:.14em}
.place__h{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.05}
.place__p{color:var(--flour-dim);max-width:48ch}
.place__a{font-style:normal;font-weight:500;line-height:1.5}
.place__l{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:10px}
/* bread */
.bread{background:linear-gradient(var(--charcoal),var(--cellar) 35%,var(--cellar) 80%,var(--charcoal))}
.bk{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,64px);margin-top:clamp(40px,6vw,72px);align-items:start}
.bk__stage{position:sticky;top:calc(var(--hh) + 24px);aspect-ratio:16/11;overflow:hidden;border:1px solid var(--line);background:#150a0a}
.bk__stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;scale:1.06;transition:opacity 1s var(--ease),scale 2.4s var(--ease)}
.bk__stage img.on{opacity:1;scale:1}
.bk__stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(31,16,16,.45));pointer-events:none}
.bk__list li{border-top:1px solid var(--line)}
.bk__list li:last-child{border-bottom:1px solid var(--line)}
.bk__list button{display:grid;grid-template-columns:44px 1fr;column-gap:6px;width:100%;text-align:left;background:none;border:0;padding:16px 4px;min-height:44px;color:var(--flour-dim);transition:color .5s,padding .6s var(--ease)}
.bk__list .no{grid-row:span 2;font-size:.74rem;font-weight:700;letter-spacing:.14em;color:var(--gold);padding-top:.75em}
.bk__list .nm{font-family:var(--serif);font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.2;color:var(--flour)}
.bk__list .ds{font-size:.9rem}
.bk__list button.on{padding-left:14px}
.bk__list button.on .nm{font-style:italic;color:var(--gold)}
@media (hover:hover){.bk__list button:hover{padding-left:14px}}
.bk__band{position:relative;margin-top:clamp(48px,7vw,96px);min-height:340px;display:flex;align-items:flex-end;overflow:hidden;border:1px solid var(--line)}
.bk__band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5) saturate(.8)}
.bk__notes{position:relative;max-width:640px;padding:clamp(24px,4vw,56px);background:linear-gradient(90deg,rgba(31,16,16,.88),rgba(31,16,16,.6));display:flex;flex-direction:column;gap:12px;margin-top:0}
.bk__notes>p:first-child{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.35}
.bk__since{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700}
.bk__kr{font-size:.92rem}
/* cafe */
.cafe{background:var(--charcoal)}
.cafe__g{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,80px);align-items:center}
.cf__big{font-family:var(--serif);font-style:italic;font-size:clamp(1.7rem,3.2vw,2.7rem);line-height:1.1;color:var(--gold);margin:34px 0 18px;padding-top:22px;border-top:1px solid var(--line)}
.cf__l{margin-bottom:22px}
.cf__l li{padding:9px 0;border-bottom:1px solid rgba(245,240,230,.1);color:var(--flour-dim)}
.cafe .note{margin-bottom:22px}
.cf__art{background:var(--paper,#E8E8E8);padding:clamp(10px,1.4vw,18px);box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px var(--gold);rotate:1.2deg}
.cf__art img{width:100%;aspect-ratio:4/3.1;object-fit:cover;object-position:60% 55%}
/* shop */
.shop{background:var(--wine-deep);overflow:hidden}
.shop__g{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,80px);align-items:center}
.shop__n{font-family:var(--serif);font-style:italic;font-size:clamp(8rem,24vw,22rem);line-height:.8;color:transparent;-webkit-text-stroke:1px var(--gold)}
.shop .h2{max-width:12ch}
.shop .lead{color:var(--flour)}
.shop .lead{margin-bottom:30px}
.shop .lead a{color:var(--gold);white-space:nowrap}
/* hours */
.hours{background:var(--cellar)}
.hours__g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,32px);margin-top:clamp(40px,6vw,72px)}
.hcard{border:1px solid var(--line);padding:clamp(24px,3.4vw,48px);display:flex;flex-direction:column;gap:14px;background:rgba(31,31,31,.5)}
.hcard__h{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3vw,2.5rem)}
.hcard address{font-style:normal;color:var(--flour-dim)}
.hcard__s{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-top:10px}
.hcard dl div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid rgba(245,240,230,.1)}
.hcard dt{color:var(--flour-dim)}.hcard dd{font-variant-numeric:tabular-nums;font-weight:600}
.hcard__l{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.hcard .btn{align-self:flex-start;margin-top:6px}
/* reviews */
.rev{background:var(--charcoal)}
.rev__r{margin-top:26px;color:var(--gold);font-weight:600;letter-spacing:.02em}
.rev__g{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:clamp(36px,5vw,64px) 0 28px;border-top:1px solid var(--line)}
.rev__g li{padding:30px 28px 34px 0;border-bottom:1px solid var(--line)}
.rev__g li:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid var(--line)}
.rev__g blockquote{font-family:var(--serif);font-weight:500;font-style:italic;font-size:clamp(1.2rem,1.7vw,1.5rem);line-height:1.35;margin-bottom:18px}
.rev__g blockquote::before{content:"\201E";color:var(--gold);margin-right:2px}
.rev__g blockquote::after{content:"\201C";color:var(--gold)}
.rev__g p{font-size:.84rem;color:var(--flour-dim)}.rev__g b{color:var(--flour)}
.rev__press{margin-top:30px;font-family:var(--serif);font-size:clamp(1.4rem,2.6vw,2.2rem);font-style:italic}
.rev__press a{text-decoration-thickness:1px}
/* contact */
.contact{background:linear-gradient(var(--charcoal),var(--cellar))}
.contact__g{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,32px);margin-top:clamp(36px,5vw,64px)}
.contact article{border-top:1px solid var(--gold);padding-top:22px;display:flex;flex-direction:column;gap:6px}
.contact h3{font-family:var(--serif);font-weight:400;font-size:1.7rem}
.contact p{color:var(--flour-dim);margin-bottom:10px}
.ct__tel{font-family:var(--sans);font-weight:500;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em;font-size:clamp(1.6rem,2.6vw,2.2rem);white-space:nowrap;text-decoration:none;display:inline-block;min-height:44px}
.contact a:not(.ct__tel){display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
/* footer */
.ftr{background:#150a0a;padding:clamp(56px,8vw,110px) 0 36px;border-top:1px solid var(--line)}
.ftr__mark{font-family:var(--serif);font-style:italic;font-size:clamp(4rem,17vw,15rem);line-height:.9;color:var(--wine);margin-bottom:clamp(32px,5vw,64px);white-space:nowrap;overflow:hidden}
.ftr__g{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-bottom:40px}
.ftr h3{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:700}
.ftr address{font-style:normal;margin-bottom:8px}
.ftr a{display:inline-flex;align-items:center;min-height:36px}
@media (max-width:900px){
  .places__grid,.bk,.cafe__g,.hours__g,.contact__g,.ftr__g{grid-template-columns:1fr}
  .bk__stage{position:relative;top:auto}
  .shop__g{grid-template-columns:1fr}.shop__n{font-size:clamp(7rem,40vw,12rem)}
  .rev__g{grid-template-columns:1fr}
  .rev__g li,.rev__g li:not(:nth-child(3n+1)){padding:24px 0;border-left:0}
  .cf__art{rotate:0deg}
  .bk__notes{margin-top:120px}
}
