/* 粋の既存の色・字体を使い、実店舗の写真に近づくための演出。 */
.spatial-story { position:relative; padding:130px 0 100px; }
.spatial-stage { position:relative; isolation:isolate; min-height:880px; }
.spatial-heading { position:relative; z-index:3; margin-left:var(--gutter); pointer-events:none; text-shadow:0 2px 30px rgb(5 8 5 / 35%); }
.spatial-heading .display { font-size:clamp(82px,9.4vw,152px); line-height:1.1; }
.spatial-heading>p { margin-top:26px; font:15px/2 var(--serif); letter-spacing:.12em; }
.spatial-window { position:relative; width:70%; margin:-100px 4% 0 auto; }
.spatial-window .photograph>a { overflow:hidden; }
.spatial-window .photograph img { width:100%; height:620px; object-fit:cover; }
.spatial-detail { position:absolute; z-index:2; width:23%; left:var(--gutter); top:45%; box-shadow:0 0 0 12px var(--ink); }
.spatial-detail .photograph img { height:auto; aspect-ratio:.72; object-fit:cover; }
.spatial-detail figcaption { background:var(--ink); padding-bottom:6px; }
.spatial-bottom { position:relative; display:flex; align-items:end; justify-content:space-between; gap:35px; margin:50px 8% 0 38%; }
.spatial-bottom .lead { font-size:14px; }
.spatial-bottom .round-link { flex-shrink:0; }

/* VIPは確認済みの個室写真を主役に、写真・特典・料金・予約を別のリズムで見せます。 */
.home-vip { max-width:1740px; padding:100px var(--gutter) 120px 0; grid-template-columns:1.15fr 1fr; align-items:center; gap:10%; }
.vip-preview-visual { min-width:0; }
.vip-preview-visual img { width:100%; height:clamp(430px,48vw,670px); object-fit:cover; object-position:50% 65%; }
.vip-preview-visual figcaption { padding-left:var(--gutter); font-size:10px; }
.home-vip .vip-preview-copy>.display { font-size:clamp(80px,8.5vw,140px); line-height:1.15; white-space:nowrap; margin-bottom:28px; padding-bottom:.06em; }
.home-vip .vip-preview-copy>.display em { color:var(--gold); }
.home-vip .vip-preview-copy>h2 { font-size:clamp(25px,2.6vw,38px); }
.home-vip .vip-preview-copy>.lead { font-size:14px; }
.vip-arrival { display:grid; grid-template-columns:40% minmax(0,1fr); align-items:center; max-width:1740px; margin:auto; padding:122px var(--gutter) 64px; gap:3%; }
.vip-arrival-copy { position:relative; z-index:1; padding-bottom:12px; }
.vip-arrival .breadcrumb { margin-bottom:30px; }
.vip-arrival-type { font-size:clamp(110px,11.6vw,190px); line-height:.91; letter-spacing:-.065em; padding-bottom:.1em; margin-bottom:24px; }
.vip-arrival-type em { color:var(--gold); }
.vip-arrival h1 { font:400 clamp(23px,2.3vw,34px)/1.8 var(--serif); letter-spacing:.07em; margin-bottom:18px; }
.vip-arrival .lead { font-size:13px; }
.vip-arrival .text-link { margin-top:22px; }
.vip-arrival-photo { min-width:0; align-self:center; }
.vip-arrival-photo .photograph>a { background:var(--surface); }
.vip-arrival-photo img { width:100%; height:clamp(500px,72svh,800px); object-fit:cover; object-position:50% 72%; filter:saturate(.88) contrast(1.02); }
.vip-arrival-photo figcaption { font-size:10px; }
.vip-room-details { display:grid; grid-template-columns:1fr 2fr; align-items:start; gap:8%; padding-top:22px; padding-bottom:100px; }
.vip-room-intro { font:17px/2 var(--serif); letter-spacing:.09em; color:var(--muted); }
.vip-room-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; border-top:1px solid var(--line); padding-top:24px; }
.vip-room-facts dt { font-size:11px; color:var(--muted); margin-bottom:12px; }
.vip-room-facts dd { font:18px/1.8 var(--serif); margin:0; white-space:nowrap; }
.vip-room-facts dd span { font:32px/1 var(--display); padding:0 3px; }
.vip-room-facts small { display:block; font:10px/2 var(--sans); color:var(--muted); margin-top:5px; }
.vip-inclusions { display:grid; grid-template-columns:.85fr 1.45fr; gap:9%; padding-top:100px; padding-bottom:120px; border-top:1px solid var(--line); }
.vip-inclusions-intro .lead { font-size:13px; }
.vip-inclusion-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 11%; }
.vip-inclusion-list>div { border-top:1px solid var(--line); padding-top:22px; }
.vip-inclusion-list dt { font:22px/1.6 var(--serif); letter-spacing:.04em; }
.vip-inclusion-list dt>span { font:31px/1.2 var(--display); letter-spacing:.02em; }
.vip-inclusion-list small { display:block; color:var(--gold); font:11px/1.9 var(--sans); letter-spacing:.02em; margin-top:12px; }
.vip-inclusion-list dd { margin:20px 0 0; color:var(--muted); font-size:13px; line-height:2.1; }
.vip-table-scene { max-width:1740px; margin:0 auto; display:grid; grid-template-columns:1.12fr 1fr; gap:8%; padding:70px var(--gutter) 105px 0; align-items:center; }
.vip-table-photos { display:grid; grid-template-columns:1.4fr 1fr; gap:18px; align-items:end; min-width:0; }
.vip-table-photos>div:last-child { padding-bottom:58px; }
.vip-table-photos img { width:100%; object-fit:cover; aspect-ratio:.78; }
.vip-table-photos>div:last-child img { aspect-ratio:.8; }
.vip-table-photos figcaption { font-size:10px; }
.vip-table-photos>div:first-child figcaption { padding-left:20px; }
.vip-table-copy .lead { font-size:14px; margin-bottom:24px; }
.vip-table-copy .text-link { margin-top:24px; }
.vip-price-section { padding-top:95px; padding-bottom:100px; max-width:1330px; }
.vip-price-heading { margin-bottom:38px; }
.vip-price-heading .lead { font-size:14px; }
.vip-price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; padding:40px 0; border-bottom:1px solid var(--line); }
.vip-price-grid dt { font:18px/1.8 var(--serif); }
.vip-price-grid dt small { display:block; font:11px/1.9 var(--sans); color:var(--muted); margin-top:4px; }
.vip-price-grid dd { margin:28px 0 0; font:clamp(44px,4.8vw,68px)/1.2 var(--display); letter-spacing:-.04em; white-space:nowrap; font-variant-numeric:lining-nums tabular-nums; }
.vip-price-grid dd small { font:12px var(--sans); letter-spacing:0; margin-left:12px; color:var(--muted); }
.vip-price-formula { display:flex; justify-content:center; align-items:center; gap:24px; padding:25px 0; font:15px/1.9 var(--serif); letter-spacing:.04em; border-bottom:1px solid var(--line); }
.vip-price-formula>span[aria-hidden] { color:var(--gold); font:24px/1 var(--display); }
.vip-booking-section { padding-top:100px; padding-bottom:85px; border-top:1px solid var(--line); }
.vip-booking-main { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:center; }
.vip-booking-main .lead { font-size:14px; margin-bottom:24px; }
.vip-booking-contact { min-width:0; }
.vip-phone { display:block; text-decoration:none; padding-block:18px 28px; }
.vip-phone>small { display:block; color:var(--muted); font-size:12px; margin-bottom:14px; }
.vip-phone>span { display:flex; align-items:center; justify-content:space-between; gap:16px; font:clamp(30px,3.4vw,51px)/1.4 var(--display); letter-spacing:-.02em; white-space:nowrap; }
.vip-phone>span>span { color:var(--gold); font:26px var(--sans); }
.vip-phone:hover>span,.vip-phone:focus-visible>span { color:var(--gold); }
.vip-instagram { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:68px; padding:20px 26px; background:var(--gold); color:var(--ink); border:1px solid var(--gold); font-size:13px; text-decoration:none; }
.vip-instagram:hover,.vip-instagram:focus-visible { background:var(--paper); border-color:var(--paper); }
.vip-instagram>span:last-child { font-size:22px; }
.vip-booking-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6%; margin:72px 0 0; padding:34px 0 0 22px; border-top:1px solid var(--line); list-style:decimal-leading-zero; }
.vip-booking-steps>li { padding-left:12px; }
.vip-booking-steps>li::marker { font:17px var(--display); color:var(--gold); }
.vip-booking-steps h3 { font:15px/1.9 var(--serif); margin-bottom:16px; }
.vip-booking-steps p { font-size:12px; line-height:2.1; color:var(--muted); }
.vip-booking-steps a { display:inline-block; margin-top:8px; color:var(--paper); }
.vip-practical { display:grid; grid-template-columns:1fr 2fr; gap:8%; margin-top:75px; padding-top:40px; border-top:1px solid var(--line); }
.vip-practical>h3 { font-size:20px; padding-top:14px; }
.vip-questions details { border-bottom:1px solid var(--line); }
.vip-questions summary { position:relative; cursor:pointer; list-style:none; padding:22px 40px 22px 0; font-size:14px; line-height:1.9; }
.vip-questions summary::-webkit-details-marker { display:none; }
.vip-questions summary::after { content:"+"; position:absolute; right:4px; top:21px; font:24px/1.2 var(--display); color:var(--gold); }
.vip-questions details[open]>summary::after { content:"−"; }
.vip-questions details[open]>summary { color:var(--gold); }
.vip-questions details>p { font-size:13px; line-height:2.1; color:var(--muted); padding:0 35px 24px 0; }
.vip-questions a { color:var(--paper); }
.vip-age-note { font-size:11px; color:var(--muted); margin-top:40px; }

/* 配信に失敗した価格は表示せず、連絡先と再取得だけを残します。 */
.menu-sync { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px 28px; min-height:68px; padding:18px 0; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.9; }
.menu-sync p { max-width:58ch; }
.menu-sync button { flex-shrink:0; min-height:44px; padding:8px 0; border:0; border-bottom:1px solid var(--gold); background:none; color:var(--paper); font-size:12px; }
.menu-sync button span { margin-left:12px; }
.menu-sync[data-state="loading"]::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--gold); transform-origin:left; animation:menu-loading 1.6s ease-in-out infinite alternate; }
.menu-sync[data-state="error"] { color:var(--paper); }
.menu-sync noscript { display:block; }
.menu-sync a { color:var(--paper); text-decoration:underline; text-underline-offset:4px; }
.menu-pricing { min-height:360px; }
.full-menu { min-height:380px; }
.menu-description { display:block; margin-top:5px; font:11px/1.9 var(--sans); color:var(--muted); white-space:pre-line; }
.menu-category>summary { gap:0; font:22px/1.6 var(--serif); padding-top:24px; padding-bottom:24px; }
.menu-category[open]>summary { color:var(--gold); }
.menu-item { padding:13px 0; }
.menu-item dd { font-size:21px; }
.menu-categories { gap:0 8%; }
.full-menu>.note { margin-top:32px; }
.full-menu .catalogue-heading { align-items:start; flex-direction:column; gap:20px; }
.full-menu .catalogue-heading .small-copy { color:var(--muted); }
.pricing-heading h2 { font-size:clamp(25px,3vw,40px); }

.access-map { padding-top:0; padding-bottom:110px; }
.access-map-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:32px; }
.access-map-heading h2 { font-size:clamp(25px,3vw,36px); }
.access-map-frame { min-width:0; background:var(--surface); border:1px solid var(--line); }
.access-map-frame:focus-within { outline:2px solid var(--gold); outline-offset:6px; }
.access-map-frame iframe { display:block; width:100%; max-width:100%; height:clamp(360px,42vw,560px); border:0; color-scheme:normal; }

/* 斜体の下端を、導入アニメーションのマスク内に確保します。 */
.editorial-title>.display,.page-scene-copy>.display,.spatial-heading .display { padding-bottom:.08em; }

/* 複数ページの見出しに写真が追いつく、短い導入。 */
@media (prefers-reduced-motion:no-preference) {
  .js .vip-arrival-type { animation:title-arrival 1.4s var(--ease) both; }
  .js .vip-arrival h1,.js .vip-arrival .lead,.js .vip-arrival .text-link { animation:copy-arrival 1.2s .18s var(--ease) both; }
  .js .vip-arrival-photo .photograph>a { animation:photograph-arrival 1.5s var(--ease) both; }
  .js .editorial-title>.display,
  .js .page-scene-copy>.display { animation:title-arrival 1.4s var(--ease) both; }
  .js .editorial-title>h1,
  .js .editorial-title>.lead,
  .js .page-scene-copy>h1 { animation:copy-arrival 1.2s .18s var(--ease) both; }
  .js .opening-media .photograph>a { animation:photograph-arrival 1.5s var(--ease) both; }
  .js .hero-mark h1 img { animation:mark-arrival 1.8s .1s var(--ease) both; }
  .js .hero-mark .en,
  .js .tate,
  .js .hero-actions { animation:copy-arrival 1.4s .3s var(--ease) both; }
  @keyframes title-arrival { from { opacity:0; transform:translateY(28px); clip-path:inset(0 0 100%); } to { opacity:1; transform:none; clip-path:inset(0); } }
  @keyframes copy-arrival { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
  @keyframes photograph-arrival { from { clip-path:inset(5% 8%); } to { clip-path:inset(0); } }
  @keyframes mark-arrival { from { opacity:0; filter:blur(8px); transform:translateY(12px); } to { opacity:1; filter:blur(0); transform:none; } }
  @keyframes menu-loading { from { transform:scaleX(.12); opacity:.35; } to { transform:scaleX(.72); opacity:.8; } }
}

/* 長いタッチスクロールは増やさず、広い画面だけで写真の拡張を見せます。
   非対応ブラウザは上記の静的な写真構成をそのまま表示します。 */
@media (min-width:1101px) and (min-height:700px) and (prefers-reduced-motion:no-preference) {
  @supports (animation-timeline:view()) and (animation-range:contain 0% contain 100%) {
    .spatial-story { height:180svh; padding:0; view-timeline-name:--sui-space; view-timeline-axis:block; }
    .spatial-stage { position:sticky; top:0; height:100svh; min-height:0; overflow:clip; }
    .spatial-heading { position:absolute; top:16%; left:0; margin-left:var(--gutter); animation:space-heading linear both; animation-timeline:--sui-space; animation-range:contain 0% contain 85%; }
    .spatial-window { position:absolute; inset:0; width:100%; margin:0; clip-path:inset(24% 9% 12% 28%); animation:space-expansion linear both; animation-timeline:--sui-space; animation-range:contain 0% contain 80%; }
    .spatial-window .photograph,
    .spatial-window .photograph>a,
    .spatial-window .photograph img { height:100%; }
    .spatial-window .photograph { opacity:1; transform:none; }
    .spatial-window .photograph img { object-position:50% 54%; }
    .spatial-window figcaption { display:none; }
    .spatial-window::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,rgb(5 8 5 / 85%),transparent 48%); }
    .spatial-detail { top:48%; width:20%; animation:space-detail linear both; animation-timeline:--sui-space; animation-range:contain 0% contain 65%; }
    .spatial-detail .photograph { opacity:1; transform:none; }
    .spatial-detail .photograph img { height:43svh; aspect-ratio:auto; }
    .spatial-bottom { position:absolute; z-index:4; left:var(--gutter); right:var(--gutter); bottom:6svh; margin:0; color:var(--paper); }
    .spatial-bottom .lead { color:var(--paper); text-shadow:0 1px 12px #050805; animation:space-copy linear both; animation-timeline:--sui-space; animation-range:contain 35% contain 85%; }
    .spatial-bottom .round-link { background:rgb(11 12 10 / 55%); }
    @keyframes space-expansion { from { clip-path:inset(24% 9% 12% 28%); } to { clip-path:inset(0); } }
    @keyframes space-heading { from { transform:translateY(0); opacity:1; } to { transform:translateY(-45px); opacity:0; } }
    @keyframes space-detail { from { transform:translateY(0); opacity:1; } to { transform:translateY(110px); opacity:0; visibility:hidden; } }
    @keyframes space-copy { from { transform:translateY(22px); opacity:0; } to { transform:none; opacity:1; } }
  }
}

@media (max-width:1100px) {
  .home-vip { gap:7%; }
  .home-vip .vip-preview-copy>.lead { font-size:12px; }
  .vip-arrival { grid-template-columns:39% minmax(0,1fr); gap:5%; }
  .vip-arrival-type { font-size:clamp(102px,12vw,140px); }
  .vip-arrival h1 { font-size:24px; letter-spacing:.03em; }
  .vip-arrival .lead { font-size:12px; }
  .vip-room-details { grid-template-columns:1fr; gap:30px; }
  .vip-room-intro br { display:none; }
  .vip-inclusions { grid-template-columns:1fr; gap:45px; }
  .vip-inclusions-intro .lead br { display:none; }
  .vip-table-scene { gap:5%; }
  .vip-table-copy h2 { font-size:27px; }
  .vip-table-copy .lead { font-size:12px; }
  .vip-table-photos { gap:12px; }
  .vip-booking-main { gap:7%; }
  .vip-booking-main h2 { font-size:30px; }
  .vip-booking-main .lead { font-size:12px; }
  .vip-booking-steps { gap:5%; }
  .spatial-stage { min-height:760px; }
  .spatial-window { width:75%; margin-top:-55px; }
  .spatial-window .photograph img { height:530px; }
  .spatial-detail { width:26%; top:46%; }
  .spatial-bottom { margin-left:39%; gap:24px; }
  .spatial-bottom .lead { font-size:13px; }
}
@media (max-width:767px) {
  .home-vip { grid-template-columns:1fr; padding:60px var(--gutter) 80px; gap:35px; }
  .vip-preview-visual { margin-left:calc(-1 * var(--gutter)); margin-right:28px; }
  .vip-preview-visual img { height:auto; aspect-ratio:1; object-position:center; }
  .home-vip .vip-preview-copy { padding-left:28px; }
  .home-vip .vip-preview-copy>.display { font-size:clamp(70px,21vw,110px); margin-bottom:22px; }
  .home-vip .vip-preview-copy>h2 { font-size:28px; }
  .home-vip .vip-preview-copy>.lead { font-size:13px; }
  .vip-arrival { display:block; padding:105px var(--gutter) 35px; }
  html:not(.js) .vip-arrival { padding-top:32px; }
  .vip-arrival .breadcrumb { margin-bottom:28px; }
  .vip-arrival-type { font-size:clamp(74px,23vw,132px); line-height:1.1; margin-bottom:20px; padding-bottom:.06em; white-space:nowrap; }
  .vip-arrival-type br { display:none; }
  .vip-arrival-type em { margin-left:.16em; }
  .vip-arrival h1 { font-size:24px; line-height:1.8; margin-bottom:15px; letter-spacing:.07em; }
  .vip-arrival .lead { font-size:13px; }
  .vip-arrival .text-link { margin-top:16px; }
  .vip-arrival-copy { padding-bottom:0; }
  .vip-arrival-photo { margin:36px calc(-1 * var(--gutter)) 0 28px; }
  .vip-arrival-photo img { height:auto; aspect-ratio:1; object-position:center; }
  .vip-arrival-photo figcaption { padding-right:20px; }
  .vip-room-details { padding-top:20px; padding-bottom:62px; gap:25px; }
  .vip-room-intro { font-size:15px; }
  .vip-room-facts { gap:16px; padding-top:20px; }
  .vip-room-facts dt { font-size:10px; margin-bottom:9px; }
  .vip-room-facts dd { font-size:14px; }
  .vip-room-facts dd span { font-size:25px; padding-inline:2px; }
  .vip-room-facts small { font-size:9px; }
  .vip-inclusions { padding-top:65px; padding-bottom:65px; gap:35px; }
  .vip-inclusions h2 { font-size:30px; }
  .vip-inclusions-intro .lead { font-size:13px; }
  .vip-inclusion-list { gap:32px 24px; }
  .vip-inclusion-list dt { font-size:18px; }
  .vip-inclusion-list dt>span { font-size:28px; }
  .vip-inclusion-list small { font-size:10px; min-height:38px; }
  .vip-inclusion-list dd { font-size:12px; margin-top:12px; }
  .vip-table-scene { display:block; padding:15px var(--gutter) 30px; }
  .vip-table-photos { margin-left:calc(-1 * var(--gutter)); margin-right:8px; gap:14px; grid-template-columns:1.3fr 1fr; }
  .vip-table-photos>div:last-child { padding-bottom:38px; }
  .vip-table-photos>div:first-child figcaption { padding-left:var(--gutter); }
  .vip-table-photos figcaption { font-size:9px; }
  .vip-table-copy { margin:32px 0 0 28px; }
  .vip-table-copy h2 { font-size:27px; }
  .vip-table-copy .lead { font-size:13px; }
  .vip-table-copy .small-copy { font-size:11px; }
  .vip-price-section { padding-top:65px; padding-bottom:65px; }
  .vip-price-heading { margin-bottom:28px; }
  .vip-price-heading h2 { font-size:30px; }
  .vip-price-heading .lead { font-size:13px; }
  .vip-price-grid { display:block; padding:0; }
  .vip-price-grid>div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; }
  .vip-price-grid>div+div { border-top:1px solid var(--line); }
  .vip-price-grid dt { font-size:16px; }
  .vip-price-grid dd { margin:0; font-size:46px; }
  .vip-price-grid dd small { font-size:11px; margin-left:10px; }
  .vip-price-formula { font-size:12px; gap:12px; padding-block:22px; letter-spacing:0; }
  .vip-booking-section { padding-top:65px; padding-bottom:60px; }
  .vip-booking-main { display:block; }
  .vip-booking-main h2 { font-size:30px; }
  .vip-booking-main .lead { font-size:13px; }
  .vip-booking-contact { margin-top:32px; }
  .vip-phone>span { font-size:clamp(32px,9.4vw,48px); }
  .vip-instagram { min-height:64px; padding:18px 22px; font-size:13px; }
  .vip-booking-steps { display:block; padding-top:28px; margin-top:42px; }
  .vip-booking-steps>li { padding:0 0 26px 8px; }
  .vip-booking-steps>li:last-child { padding-bottom:0; }
  .vip-booking-steps h3 { font-size:16px; margin-bottom:10px; }
  .vip-booking-steps p { font-size:13px; }
  .vip-practical { display:block; margin-top:42px; padding-top:28px; }
  .vip-practical>h3 { font-size:20px; margin-bottom:12px; }
  .vip-questions summary { font-size:13px; }
  .vip-questions details>p { padding-right:12px; }
  .access-map { padding-bottom:72px; }
  .access-map-heading { align-items:flex-start; flex-direction:column; gap:18px; margin-bottom:26px; }
  .access-map-frame iframe { height:360px; }
  .spatial-story { padding:90px 0 80px; }
  .spatial-stage { min-height:0; }
  .spatial-heading { margin-left:22px; }
  .spatial-heading .display { font-size:clamp(60px,16vw,100px); }
  .spatial-heading>p { font-size:13px; margin-top:20px; }
  .spatial-window { width:86%; margin:38px 0 0 auto; }
  .spatial-window .photograph img { height:420px; object-position:53% 50%; }
  .spatial-window figcaption { padding-right:22px; font-size:10px; }
  .spatial-detail { position:relative; left:auto; top:auto; width:42%; margin:-115px 0 0 22px; box-shadow:0 0 0 8px var(--ink); }
  .spatial-detail .photograph img { height:215px; aspect-ratio:auto; }
  .spatial-detail figcaption { font-size:10px; padding-top:12px; }
  .spatial-bottom { margin:32px 22px 0; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:end; }
  .spatial-bottom .lead { font-size:12px; line-height:2.2; }
  .spatial-bottom .round-link { width:90px; height:90px; font-size:9px; }
  .spatial-bottom .round-link>span:last-child { font-size:29px; }
  .menu-sync { align-items:flex-start; flex-direction:column; gap:4px; font-size:11px; }
  .menu-pricing { min-height:300px; }
  .menu-categories { display:block; }
  .menu-category>summary { font-size:20px; }
  .menu-item { gap:16px; font-size:13px; }
  .menu-item dd { font-size:20px; }
  .menu-description { font-size:11px; }
}
@media (max-width:359px) {
  .home-vip .vip-preview-copy { padding-left:0; }
  .vip-room-facts { gap:10px; }
  .vip-room-facts dd { font-size:12px; }
  .vip-room-facts small { font-size:8px; }
  .vip-inclusion-list { grid-template-columns:1fr; gap:28px; }
  .vip-inclusion-list small { min-height:0; }
  .vip-table-copy { margin-left:0; }
  .vip-price-grid dd { font-size:40px; }
  .vip-price-formula { font-size:11px; gap:8px; }
  .spatial-window .photograph img { height:350px; }
  .spatial-detail .photograph img { height:185px; }
  .spatial-bottom { grid-template-columns:1fr; gap:22px; }
  .spatial-bottom .round-link { justify-self:end; }
}
@media (prefers-reduced-motion:reduce) {
  .menu-sync[data-state="loading"]::after { animation:none; transform:scaleX(.25); }
}

@media (min-width:768px) and (max-height:820px) {
  .vip-arrival { padding-top:110px; padding-bottom:45px; }
  .vip-arrival .breadcrumb { margin-bottom:20px; }
  .vip-arrival-type { font-size:clamp(96px,9vw,132px); margin-bottom:15px; }
  .vip-arrival h1 { font-size:24px; margin-bottom:12px; }
  .vip-arrival .lead { font-size:12px; }
  .vip-arrival .text-link { margin-top:14px; min-height:56px; }
  .vip-arrival-photo img { height:max(440px,calc(100svh - 160px)); }
}

@media (min-width:768px) and (max-height:640px) {
  .vip-arrival { padding-top:100px; }
  .vip-arrival .breadcrumb { margin-bottom:12px; }
  .vip-arrival-type { font-size:90px; margin-bottom:12px; }
  .vip-arrival h1 { font-size:22px; margin-bottom:10px; }
  .vip-arrival-photo img { height:max(380px,calc(100svh - 160px)); }
}
