body:has(.layout) { --ink:#24251e; --line:#c9c6b7; --booking:#773824; --booking-light:#eee1cf; background:#f5f2e8; color:var(--ink); }
body:has(.layout) header { background:#23352d; border-bottom:4px solid #b19b6e; color:#fffae9; }
body:has(.layout) .nav { min-height:68px; }
body:has(.layout) .pole { border-color:#e2cfaa; }
body:has(.shop) main { padding-block:clamp(22px,3.9vw,58px); }
.shop { grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); }
.shop-sign { position:relative; overflow:hidden; background:#23352d; }
.shop-sign .shop-photo { aspect-ratio:1.32; object-position:center; }
.sign-name { position:absolute; inset:auto 0 0; padding:60px 25px 20px; background:linear-gradient(transparent,rgba(17,26,21,.86)); color:#fff6db; font:italic 500 clamp(32px,4vw,60px)/1.1 var(--serif); letter-spacing:-.05em; overflow-wrap:anywhere; }
.shop .hours { padding:17px 22px; background:#23352d; color:#fff8e9; border:0; }
.shop .hours dt { color:#d5ded1; }
.shop .hours dd { color:white; }
.shop .flow { padding-top:6px; }
.shop h1 { font-size:clamp(44px,5vw,69px); margin-bottom:12px; }
.shop .choose { margin:0 0 22px; }
.shop .service { padding:16px 6px; gap:12px; min-height:92px; }
.shop .service span { font:550 clamp(21px,2.4vw,30px)/1.2 var(--serif); }
.shop .service em { display:block; font:400 14px/1.45 Inter,sans-serif; color:#515447; letter-spacing:0; margin-top:5px; }
.shop .service small { white-space:nowrap; font-size:13px; background:#e9e4d6; border-radius:4px; padding:4px 8px; }
.shop .service b { flex:none; }
.week { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin:18px 0; }
.week a { display:flex; flex-direction:column; justify-content:center; align-items:center; padding:8px 0; min-height:60px; text-decoration:none; border:1px solid #a5ad9e; background:#fffdf6; border-radius:5px; }
.week small { font-size:12px; }
.week b { font:600 22px/1.3 var(--serif); }
.week [aria-current],.week a:hover { background:#23352d; color:white; }
.time-block { margin:16px 0 22px; padding:0; min-width:0; border:0; }
.time-block legend { margin-bottom:8px; padding:0; font-size:14px; font-weight:650; }
.layout:not(.shop) aside { background:#e9e5d7; border-top:4px solid #23352d; }
@media(max-width:720px){
  body:has(.layout) .nav { min-height:52px; }
  body:has(.shop) main { padding-top:14px; }
  .shop { display:grid; grid-template-columns:minmax(0,1fr); grid-template-areas:"photo" "menu" "hours"; gap:18px; }
  .shop aside { display:contents; }
  .shop-sign { grid-area:photo; }
  .shop-sign .shop-photo { height:clamp(108px,28vw,180px); aspect-ratio:auto; object-position:50% 46%; }
  .sign-name { padding:30px 16px 10px; font-size:32px; }
  .shop .hours { grid-area:hours; display:grid; grid-template-columns:1fr 1.2fr; gap:10px; padding:16px; }
  .shop h1 { font-size:40px; }
  .shop .choose { font-size:15px; margin-bottom:12px; }
  .shop .service { min-height:72px; padding:12px 2px; gap:8px; }
  .shop .service span { font-size:22px; }
  .shop .service em { font-size:13px; }
  .shop .service b { width:28px;height:28px; }
  .week { gap:3px; }
}