.st-shop { --st-shop-overlay: linear-gradient(0deg,rgba(8,6,8,.88),rgba(8,6,8,.35) 55%,rgba(8,6,8,.15)); --st-shop-nav-height: 64px; }
.st-shop :where(h1,h2,h3,p,figure) { margin: 0; }
.st-shop-section { padding: 64px max(32px,calc((100% - 1248px)/2)); display: flex; flex-direction: column; gap: 24px; }
.st-shop-section[id] { scroll-margin-top: calc(var(--st-header-height) + var(--st-shop-nav-height) + 16px); }
.st-shop .st-section-heading h1 { font: 800 72px/1.1 var(--st-font-en); }
.st-shop .st-section-heading h2 { font-size: 48px; }
.st-shop .st-booking-panel { position: static; width: 100%; max-width: none; box-shadow: none; border: 1px solid var(--st-line); }
.st-shop .st-booking-panel .st-booking-fallback { margin-top: 20px; }
.st-shop .st-store-grid { margin-top: 0; }
.st-shop .st-store-copy h2 { font: 800 clamp(36px,5vw,72px)/1 var(--st-font-en); }
.st-shop-hero { height: 560px; position: relative; color: var(--st-on-dark); background: var(--st-dark); display: flex; align-items: flex-end; }
.st-shop-hero > img,.st-shop-hero::after { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.st-shop-hero::after { content: ''; background: var(--st-shop-overlay); }
.st-shop-hero-copy { position: relative; z-index: 1; padding-bottom: 56px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.st-shop-hero h1 { font: 800 clamp(64px,8.89vw,128px)/.95 var(--st-font-en); margin: 12px 0; overflow-wrap: normal; }
.st-shop-hero .st-eyebrow { color: var(--st-accent); font-size: 18px; }
.st-shop-name { font: 700 24px/1.5 var(--st-font-heading); margin-bottom: 12px !important; }
.st-shop-hero .st-button { min-height: 58px; flex-shrink: 0; }
.st-shop-nav { position: sticky; top: var(--st-header-height); z-index: 95; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); height: var(--st-shop-nav-height); background: var(--st-accent); }
.st-shop-nav a { display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--st-accent-text); text-decoration: none; border-right: 1px solid var(--st-accent-ink); font-size: 15px; font-weight: 700; line-height: 1.3; padding-block: 11px; }
.st-shop-nav a:last-child { border: 0; }
.st-shop-nav small { font: 700 12px/1.2 var(--st-font-en); letter-spacing: .12em; }
.st-shop-nav a:focus-visible { outline-color: var(--st-dark); outline-offset: -4px; }
.st-availability iframe { width: 100%; height: 600px; border: 1px solid var(--st-line); border-radius: 6px; background: var(--st-ground); }
.st-shop-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.st-shop-gallery { background: var(--st-dark); color: var(--st-on-dark); }
.st-shop-gallery .st-section-heading > span,.st-shop-rules .st-section-heading > span { color: var(--st-on-dark-2); }
.st-shop-gallery-intro { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.st-shop-gallery-intro p { max-width: 560px; font-size: 15px; color: var(--st-on-dark-light); }
.st-gallery-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2,196px); gap: 8px; }
.st-gallery-grid img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.st-gallery-grid img:first-child { grid-row: span 2; }
.st-floor-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: start; }
.st-floor-grid figure { border: 1px solid var(--st-line); padding: 16px; border-radius: 6px; text-align: center; }
.st-floor-grid img { display: block; width: 100%; max-height: 500px; object-fit: contain; }
.st-floor-grid figcaption,.st-small { color: var(--st-muted); font-size: 12px; }
.st-spec-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 28px; margin: 0; }
.st-spec-grid > div { padding: 16px 0; border-top: 1px solid var(--st-line); }
.st-spec-grid dt { font-size: 12px; color: var(--st-muted); }
.st-spec-grid dd { margin: 4px 0 0; font-weight: 700; font-size: 15px; }
.st-equipment { border-block: 1px solid var(--st-line); }
.st-equipment summary { min-height: 48px; padding-block: 12px; cursor: pointer; font-weight: 700; }
.st-equipment summary:focus-visible { outline: 3px solid var(--st-accent); }
.st-equipment ul { columns: 2; padding-left: 24px; font-size: 14px; }
.st-equipment li { break-inside: avoid; margin-bottom: 8px; }
.st-shop-price { background: var(--st-ground); }
.st-shop-price .st-price-table tbody { background: var(--st-paper); }
.st-shop-price > p { font-size: 14px; }
.st-access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.st-access-grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.st-access-grid p,.st-access-grid ol { font-size: 15px; }
.st-access-grid ol { padding-left: 1.5em; margin: 0; color: var(--st-ink-2); }
.st-access-grid img { width: 100%; border-radius: 6px; }
.st-map-link { border: 2px solid var(--st-dark); }
.st-shop-video { margin: 40px auto 0; width: 100%; max-width: 960px; }
.st-shop-video h2 { margin-bottom: 20px; }
.st-shop-video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; background: var(--st-dark); }
.st-equipment-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 32px; }
.st-equipment-cards article { border: 1px solid var(--st-line); border-radius: 6px; overflow: hidden; }
.st-equipment-cards article > div { padding: 20px; }
.st-equipment-cards img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.st-equipment-heading { margin-top: 40px; font-size: 24px; }
.st-equipment-cards h3 { font-size: 18px; margin: 0; padding: 20px; }
.st-equipment-cards p { font-size: 14px; }
.st-parking-info { margin-top: 40px; padding: 24px; background: var(--st-ground); border-radius: 6px; }
.st-parking-info h3 { margin-top: 24px; }
.st-parking-info p { max-width: 40em; font-size: 14px; margin-top: 12px; }
@media(max-width:767px) { .st-equipment-cards { grid-template-columns: 1fr; } }
.st-shop-rules { background: var(--st-dark-2); color: var(--st-on-dark-light); padding-block: 40px; }
.st-shop-rules .st-section-heading h2 { font-size: 36px; color: var(--st-on-dark); }
.st-shop-rules ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; margin: 0; padding: 0; gap: 20px; font-size: 14px; }
.st-shop-rules li { border-top: 1px solid var(--st-dark-border); padding-top: 14px; }
.st-shop-rules > a { color: var(--st-accent); align-self: flex-start; }
.st-shop-rules > p { margin: 24px 0 12px; }
/* 伏見: the intro / usable-hours block sits right above 空き状況, so the gap between them is one section padding, not two. */
.st-shop .st-shop-section.st-shop-lead { padding-bottom: 0; }
body.admin-bar .st-shop-nav { top: calc(var(--st-header-height) + 32px); }
@media (min-width:768px) and (max-width:1100px) { .st-shop-hero-copy { flex-wrap: wrap; } .st-shop-gallery-intro { align-items: flex-start; flex-direction: column; gap: 16px; } }
@media (max-width:782px) { body.admin-bar .st-shop-nav { top: calc(var(--st-header-height) + 46px); } }
@media (max-width:767px) {
  .st-shop { --st-shop-nav-height: 50px; }
  .st-shop-section { padding: 44px 20px; gap: 18px; }
  .st-shop-section:last-child { padding-bottom: 90px; }
  .st-shop .st-section-heading { flex-wrap: wrap; gap: 6px 10px; }
  .st-shop .st-section-heading h2 { font-size: 36px; }
  .st-shop .st-section-heading h1 { font-size: 58px; }
  .st-shop-hero { height: 460px; }
  .st-shop-hero-copy { padding-bottom: 24px; flex-direction: column; align-items: stretch; gap: 20px; }
  .st-shop-hero h1 { font-size: clamp(42px,14.8vw,64px); }
  .st-shop-hero .st-eyebrow { font-size: 14px; }
  .st-shop-name { font-size: 19px; }
  .st-shop-hero .st-store-tags span:last-child { display: inline; }
  .st-shop-nav a { font-size: 12px; }
  .st-shop-nav small { display: none; }
  .st-shop-nav .st-mobile-only { display: inline; }
  .st-shop-actions { display: grid; grid-template-columns: 1fr; }
  .st-shop-gallery-intro { flex-direction: column; align-items: stretch; gap: 14px; }
  .st-shop-gallery-intro p { font-size: 13px; }
  .st-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: auto; gap: 6px; }
  .st-gallery-grid img { aspect-ratio: 1.55; }
  .st-gallery-grid img:first-child { grid-column: 1/-1; grid-row: auto; }
  .st-floor-grid,.st-access-grid { grid-template-columns: 1fr; gap: 20px; }
  .st-spec-grid { gap: 0 16px; }
  .st-spec-grid > div { padding-block: 12px; }
  .st-spec-grid dd { font-size: 14px; }
  .st-equipment ul { columns: 1; }
  .st-shop-price > p { font-size: 13px; }
  .st-access-grid p,.st-access-grid ol { font-size: 14px; }
  .st-map-link { width: 100%; }
  .st-shop-rules ul { grid-template-columns: 1fr; gap: 12px; }
  .st-shop .st-booking-panel { padding: 20px 16px; }
  .st-availability.st-booking-switch { padding: 0; border: 0; background: none; }
}
@media (max-width:600px) { body.admin-bar .st-shop-nav { top: var(--st-header-height); } }

/* 2026-10-17 店舗ページ上部の英語ページへのリンク */
.st-en-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 10px; padding-inline: 14px; border: 1px solid currentColor; border-radius: 999px; font-family: var(--st-font-en); font-size: 16px; font-weight: 700; letter-spacing: .04em; color: inherit; text-decoration: none; }
.st-en-link:hover, .st-en-link:focus-visible { background: var(--st-paper); color: var(--st-ink); }
