/* One visual language, from the first film to the bottle shelf. */
html { scroll-behavior: smooth; }
.editorial-site { --paper: #f5f1e8; --ink: #2b362f; --muted: #68695f; }
.editorial-wrap,.counter-shell { width: min(1200px,calc(100% - 112px)); }
.editorial-site button,.editorial-site a { -webkit-tap-highlight-color: transparent; }
.editorial-site a:focus-visible,.editorial-site button:focus-visible { outline: 2px solid #b9975b; outline-offset: 5px; }
.skip-content { position: fixed; top: -100px; left: 20px; background: #f5f1e8; color: #24382c; padding: 14px 20px; z-index: 100; }
.skip-content:focus { top: 12px; }
.site-nav { position: fixed; inset: 0 0 auto; z-index: 45; height: 82px; padding: 0 42px; display: flex; align-items: center; gap: 32px; color: #f5f1e8; background: linear-gradient(#12201899,#12201800); transition: background .3s,box-shadow .3s; }
.site-nav.is-scrolled,.site-nav.is-menu-open { background: #1b2b23f5; backdrop-filter: blur(18px); box-shadow: 0 1px 0 #bfb19133; }
.site-brand { display: block; margin-right: auto; flex-shrink: 0; }
.site-brand img { width: 168px; height: 48px; object-fit: contain; }
.site-nav-links { display: flex; align-items: center; gap: 30px; }
.site-nav-links a { position: relative; font-size: 12px; letter-spacing: .06em; padding: 16px 0; }
.site-nav-links a::after { content: ''; position: absolute; height: 1px; inset: auto 0 6px; background: #d3b786; transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.site-nav-links a:hover::after,.site-nav-links a[aria-current]::after { transform: scaleX(1); }
.site-shop { display: flex; align-items: center; gap: 22px; min-height: 44px; border: 1px solid #d3c6a377; padding: 10px 18px; font-size: 12px; letter-spacing: .05em; transition: background .2s; }
.site-shop:hover { background: #d3c6a322; }
.site-shop > span { font-size: 18px; }
.site-menu-toggle { display: none; }
.site-menu[hidden] { display: none; }
.site-menu { position: absolute; top: 100%; left: 0; right: 0; background: #f5f1e8; color: #2a392f; padding: 28px; max-height: calc(100dvh - 76px); overflow: auto; box-shadow: 0 18px 24px #14211926; }
.site-menu > p { font-size: 12px; color: #75735f; margin-bottom: 16px; }
.site-menu > a { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #d8d1c1; padding: 22px 0; font-family: 'Noto Serif JP',serif; font-size: 23px; }
.site-menu small { display: block; font-family: 'Noto Sans JP',sans-serif; color: #696d60; font-size: 11px; margin-top: 9px; }
.site-menu-sub { display: flex; gap: 12px 24px; flex-wrap: wrap; border-top: 1px solid #d8d1c1; padding-top: 16px; }
.site-menu-sub a { font-size: 12px; padding-block: 10px; }
.hero-opening::after { content: ''; position: absolute; inset: 0 0 auto; height: 180px; background: linear-gradient(#0e171c66,transparent); pointer-events: none; }
.hero-enter { bottom: 38px; right: 56px; min-height: 64px; }
.hero-enter > span:first-child { font-size: 17px; }
.hero-enter small { display: block; font-family: 'Noto Sans JP',sans-serif; font-size: 11px; opacity: .8; margin-top: 9px; letter-spacing: .08em; }
.hero-enter-arrow { display: grid; place-items: center; width: 45px; height: 45px; border: 1px solid #f8f2e777; border-radius: 50%; transition: transform .3s; }
.hero-enter:hover .hero-enter-arrow { transform: translateY(4px); }
.hero-toggle { position: absolute; left: 56px; bottom: 44px; z-index: 3; display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; color: #fff9e9; }
.hero-toggle span { font-size: 11px; letter-spacing: .05em; }
.editorial-intro { padding: 100px 0; }
.intro-layout > p { font-size: 14px; line-height: 2.6; }

/* The scene controls sit beside the scene title, before the photograph. */
.counter-experience { padding: 70px 0 50px; background: #1c2a23; }
.counter-heading-row { margin-bottom: 32px; }
.counter-instruction { font-size: 12px; }
.counter-bottom { padding: 22px 0; border-top: 1px solid #87907755; gap: 24px; }
.counter-seat-caption { gap: 18px; align-items: center; }
.counter-seat-number { font-family: 'Noto Sans JP',sans-serif; font-size: 12px; letter-spacing: .08em; white-space: nowrap; }
#counter-seat-title { font-size: 24px; }
#counter-seat-copy { margin-top: 3px; }
.counter-navigation { gap: 15px; }
.counter-seat-nav { gap: 18px; }
.counter-seat { min-height: 44px; padding: 6px; }
.counter-seat > span { font-size: 13px; }
.counter-point-index { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 7px; border: 1px solid #c9c1a4aa; border-radius: 50%; font-family: var(--fx-mincho, 'Noto Serif JP', serif); font-size: 11px; line-height: 1; }
.counter-round { width: 44px; height: 44px; }
.counter-view { grid-template-columns: minmax(0,1fr) 140px; gap: 12px; }
.counter-stage { touch-action: pan-y pinch-zoom; }
.counter-photo-shade { background: linear-gradient(180deg,#00000073,transparent 22%,transparent 78%,#0d181759); }
.counter-scene-marker { font-size: 10px; }
.counter-hotspot-label { background: #17261de0; border: 1px solid #fffff533; backdrop-filter: blur(8px); border-radius: 30px; padding: 8px 13px; }
.counter-hotspot-dot { background: #182a23bf; backdrop-filter: blur(5px); }
.counter-peek { border-color: #7e85625c; }
.counter-peek-label { font-size: 20px; }
.counter-exit { margin-top: 24px; padding-top: 18px; }
.counter-swipe-hint { display: none; pointer-events: none; }
.counter-dialog { box-shadow: 0 24px 100px #0005; }
.counter-close { border-radius: 24px; min-height: 44px; }
.counter-story-visual { min-height: 580px; }
.counter-story-content { padding-top: 72px; }

/* A light interlude breaks up the dark scenes. */
.discovery-section { background: #f5f1e8; color: #2b362f; padding: 88px 0; }
.discovery-section .scene-rule { border-color: #cfc7b8; }
.discovery-section .scene-rule > span:last-child,.discovery-heading .fine-label { color: #827456; }
.discovery-heading > p { color: #676d5f; font-size: 13px; }
.discovery-filters { margin: 30px 0 24px; gap: 8px; }
.discovery-filters button { border-color: #c9c4b5; min-height: 44px; color: #626b5e; }
.discovery-filters button[aria-pressed="true"] { background: #2b4032; border-color: #2b4032; color: #fff9e8; }
.discovery-filters button:hover { border-color: #66765b; }
.discovery-feature { box-shadow: none; background: #fffdf7; border: 1px solid #d9d2c2; grid-template-columns: 1.12fr 1fr; }
.discovery-content { padding: 38px 40px; }
.discovery-photo { min-height: 440px; }
#discovery-title { font-weight: 300; font-size: 32px; }
#discovery-description { font-size: 14px; min-height: 0; }
#discovery-save { min-height: 44px; border-radius: 30px; font-size: 12px; }
#discovery-save::before { content: '＋'; margin-right: 8px; }
#discovery-save[aria-pressed="true"]::before { content: '✓'; }
#discovery-next { background: #2b4032; color: #fff8e8; min-height: 56px; transition: background .2s; }
#discovery-next:hover { background: #40533c; }
#discovery-show-saved { color: #536048; border-color: #909982; min-height: 44px; }
.discovery-status { color: #747663; }
.discovery-mini-card { background: #e8e5d9; border-color: transparent; padding: 9px; }
.discovery-mini-card span,.discovery-empty { color: #54604c; }
.discovery-mini-card[aria-pressed="true"] { border-color: #728464; }
.discovery-saved { border-color: #c9c9b7; }

/* The object and its controls fit together in one display case. */
.bottle-study { padding: 78px 0; background: #1b2923; }
.bottle-study-layout { grid-template-columns: .85fr 1.15fr; grid-template-rows: auto auto; column-gap: 8%; row-gap: 30px; align-items: center; }
.bottle-study-copy { grid-column: 1; grid-row: 1; align-self: end; }
.editorial-site .bottle-study-copy h2 { font-size: clamp(34px,3.5vw,48px); margin: 20px 0; }
.bottle-study-lead { font-size: 13px; }
.bottle-study-description { grid-column: 1; grid-row: 2; align-self: start; margin: 0; padding-top: 25px; }
.bottle-study-description h3 { margin-top: 7px; font-size: 40px; }
.bottle-study-description a { min-height: 44px; padding-top: 12px; margin-top: 15px; }
.bottle-model-area { grid-column: 2; grid-row: 1 / 3; border: 1px solid #a9b28b40; background: radial-gradient(ellipse at 50% 35%,#53604990,#2c3e3060 50%,#1a2a20 85%); padding: 0 20px 12px; overflow: hidden; }
.bottle-model-area::after { content: '529'; font-family: 'Noto Serif JP',serif; font-weight: 300; font-size: clamp(160px,23vw,320px); letter-spacing: -.03em; line-height: 1; color: #d9d9bb08; position: absolute; inset: 27% 0 auto; text-align: center; pointer-events: none; z-index: -1; }
.bottle-model-caption { display: flex; justify-content: space-between; align-items: center; font-family: 'Noto Serif JP',serif; font-size: 21px; padding: 20px 4px 0; color: #d1c39d; letter-spacing: .1em; }
.bottle-model-caption > span { font-family: 'Noto Sans JP',sans-serif; font-size: 10px; letter-spacing: .08em; }
#bottle-model { height: clamp(340px,49svh,480px); }
.bottle-model-controls { margin-top: 0; gap: 18px; }
.bottle-model-controls button { min-height: 44px; border-color: #9ba68777; }
.bottle-model-controls #bottle-reset { border: 0; border-bottom: 1px solid #9ba68788; padding-inline: 6px; }
#bottle-status { font-size: 11px; min-height: 40px; margin: 15px 0 0; color: #b9c4aa; }
.bottle-render-note { right: 12px; bottom: 9px; font-size: 7px; }
.bottle-gesture-cue { position: absolute; top: 64%; left: 50%; transform: translate(-50%,-50%); width: max-content; max-width: 95%; display: flex; align-items: center; gap: 12px; pointer-events: none; background: #f4efdfef; color: #2b3f30; border: 1px solid #ffffdd55; border-radius: 30px; padding: 12px 18px; font-size: 11px; box-shadow: 0 5px 25px #0002; }
.bottle-gesture-cue::before { content: '↔'; font-size: 22px; line-height: 1; }
.bottle-gesture-cue[hidden] { display: none; }
.bottle-model-area::before { bottom: 137px; }

/* A real bottle shelf: labels and flavour descriptions stay visible. */
.editorial-collection { background: #eceadf; padding: 88px 0; }
.collection-heading > p { font-size: 13px; }
.bottle-stories { gap: 28px; }
.bottle-image { aspect-ratio: 4 / 4.4; }
.bottle-third .bottle-image { aspect-ratio: 4 / 4.4; }
.bottle-secondary { margin-top: 65px; }
/* 2枚目と3枚目は写真の下端をそろえる。3枚目は縦に10%長いぶん、上から早く始める（% は列の幅に対する値）。 */
.bottle-third { margin-top: calc(65px - 10%); }
.bottle-title h3 { font-size: 25px; }
.bottle-more { min-height: 36px; padding-top: 5px; }
.lineup-panel { margin-top: 80px; scroll-margin-top: 104px; }
.lineup-heading { padding-top: 30px; margin-bottom: 24px; align-items: flex-end; }
.lineup-heading .fine-label { font-size: 10px; color: #84775c; margin-bottom: 14px; }
.lineup-heading h3 { font-size: 34px; font-weight: 300; line-height: 1.5; }
.lineup-heading > span { font-size: 12px; padding-bottom: 5px; color: #5d6556; }
.lineup-filters { display: flex; gap: 10px; margin-bottom: 28px; flex-wrap: wrap; }
.lineup-filters button { display: flex; align-items: center; gap: 13px; padding: 10px 22px; min-height: 44px; border: 1px solid #b9beaa; border-radius: 30px; color: #536049; font-size: 12px; transition: color .2s,background .2s; }
.lineup-filters button > span { font-size: 10px; opacity: .65; }
.lineup-filters button[aria-pressed="true"] { background: #2b4032; color: #fff9e8; border-color: #2b4032; }
.lineup-filters button:hover { border-color: #435a3e; }
.lineup-list { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; align-items: stretch; }
.lineup-item { gap: 0; padding: 0; background: #f9f7f0; border: 1px solid #d9d6c8; transition: border-color .25s,box-shadow .25s; }
.lineup-item[hidden] { display: none; }
.lineup-photo { display: block; padding: 20px 20px 28px; background: #f2f0e7; overflow: hidden; }
.lineup-photo img { width: 100%; height: 200px; object-fit: contain; object-position: 50% 100%; mix-blend-mode: multiply; transition: transform .45s; }
/* 瓶は底を床の影にのせ、下に余白を残す。丸い瓶（一寸先は光）は背が低く見えるよう、ほかの瓶の約2/3に。 */
.lineup-item .lineup-photo::after { bottom: 21px; }
.lineup-photo--round img { padding-top: 64px; }
.lineup-photo > .lineup-badge { position: absolute; z-index: 1; top: 12px; left: 12px; margin: 0; }
.lineup-card-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; padding: 20px 18px; }
.lineup-taste { font-size: 11px; line-height: 1.6; letter-spacing: .02em; color: #786c48; margin-bottom: 12px; }
.lineup-item-title { flex-direction: column-reverse; align-items: flex-start; gap: 5px; }
.lineup-item-title > strong { font-size: 20px; line-height: 1.6; letter-spacing: 0; }
.lineup-item-title > span { font-size: 11px; }
.lineup-note { font-size: 12px; line-height: 2; margin: 13px 0 20px; color: #5d6558; }
/* 説明文は <wbr>（文節の切れ目）でだけ折り返す。文節改行に未対応のブラウザ（Safari など）でも、語の途中で切れない。
   JavaScript で差し替える文は、データの「｜」が <wbr> になる。 */
.lineup-note, .bottle-note, .tour-lead, .tour-note, .bottle-product-copy, #discovery-description, #discovery-product-note,
#counter-story-copy, #counter-story-note, #time-description, #time-product-note { word-break: keep-all; overflow-wrap: anywhere; text-wrap: pretty; }
.lineup-detail { margin-top: auto; font-size: 11px; color: #536549; border-bottom: 1px solid #abb49c; padding-bottom: 6px; }
.lineup-item:hover { border-color: #95a37e; box-shadow: 0 8px 24px #293c270a; }
.lineup-item:hover .lineup-photo img { transform: translateY(-5px); }
.lineup-item:hover .lineup-item-title { color: #2b4032; }
.collection-shop { padding: 38px 40px; background: #2b4032; margin-top: 36px; }
.collection-shop > a { min-height: 52px; border-color: #c5cdb277; transition: background .2s; }
.collection-shop > a:hover { background: #f3ead018; }

/* 章の飾り数字：区切り線の下、右の説明文の上に収める（.405em は字面の上端まで、.045em は斜体のはみ出し）。
   視差で動かすと線や本文に重なるため、ここでは止める。 */
.editorial-site .fx-numeral { top: calc(127px - .405em); right: calc(max(56px, 50% - 600px) + .045em); font-size: clamp(96px, 11vw, 160px); translate: none; }
/* 工場見学：2段組みのあいだは、上の章の写真とつながらないよう上にも余白を。 */
@media (min-width: 768px) { .editorial-site .home-tour { padding-top: clamp(56px, 7vw, 96px); } }
.editorial-site .tour-call > span:first-child { font-size: 11px; }

@media (min-width: 1001px) {
 .counter-experience { padding: 56px 0 38px; }
 .counter-shell { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 0 34px; }
 .counter-heading-row { grid-column: 1; grid-row: 1; display: block; margin: 0; align-self: start; }
 .editorial-site .counter-heading-row h2 { font-size: 25px; line-height: 1.9; letter-spacing: .04em; margin-top: 22px; }
 .counter-heading-row h2 span { display: block; margin: 0; }
 .counter-instruction { font-size: 11px; line-height: 2; margin-top: 22px; max-width: 205px; }
 .counter-instruction > span { width: 22px; height: 22px; margin-right: 4px; }
 .counter-bottom { grid-column: 1; grid-row: 2; display: block; padding-top: 24px; margin-top: 30px; align-self: end; }
 .counter-seat-caption { display: block; }
 .counter-seat-number { display: block; margin-bottom: 12px; font-size: 10px; }
 #counter-seat-title { font-size: 22px; }
 #counter-seat-copy { font-size: 11px; margin-top: 7px; }
 .counter-navigation { margin-top: 20px; gap: 10px; justify-content: space-between; }
 .counter-seat-nav { flex: 1; justify-content: space-around; gap: 4px; }
 .counter-seat { justify-content: center; min-width: 24px; padding-inline: 2px; }
 .counter-view { grid-column: 2; grid-row: 1 / 3; grid-template-columns: minmax(0,1fr) 82px; align-self: center; }
 .counter-peek-label { font-size: 18px; }
 #counter-peek-title { display: none; }
 .counter-scene-marker > span { display: none; }
 .counter-hotspot-label { font-size: 10px; padding: 7px 10px; }
 .counter-exit { grid-column: 1 / -1; grid-row: 3; }
}

@media (max-width: 1100px) {
 .site-nav { padding-inline: 28px; gap: 22px; }
 .site-nav-links { gap: 20px; }
 .site-brand img { width: 144px; }
 .counter-seat { justify-content: center; min-width: 32px; }
 .counter-seat-nav { gap: 8px; }
 .lineup-list { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .lineup-photo img { height: 194px; }
 .lineup-photo--round img { padding-top: 62px; }
}
@media (max-width: 1000px) {
 .site-nav { height: 76px; gap: 22px; }
 .site-nav-links { display: none; }
 .site-menu-toggle { display: flex; flex-direction: column; align-items: center; gap: 8px; justify-content: center; width: 48px; min-height: 48px; font-size: 11px; letter-spacing: 0; white-space: nowrap; }
 .menu-lines { width: 23px; height: 9px; position: relative; border-top: 1px solid; border-bottom: 1px solid; }
 .is-menu-open .menu-lines { border: 0; }
 .is-menu-open .menu-lines::before,.is-menu-open .menu-lines::after { content: ''; height: 1px; width: 23px; background: currentColor; position: absolute; top: 4px; transform: rotate(45deg); }
 .is-menu-open .menu-lines::after { transform: rotate(-45deg); }
 .editorial-wrap,.counter-shell { width: calc(100% - 64px); }
 .editorial-site .fx-numeral { right: calc(32px + .045em); }
 .counter-heading-row { display: flex; }
 .counter-instruction { max-width: 220px; margin: 0; }
 .counter-view { grid-template-columns: minmax(0,1fr) 110px; }
 .discovery-content { padding: 28px; }
 #discovery-title { font-size: 28px; }
 .bottle-study-layout { column-gap: 5%; }
 .bottle-study-description h3 { font-size: 34px; }
}
@media (max-width: 767px) {
 .editorial-wrap,.counter-shell { width: calc(100% - 40px); }
 .site-nav { height: 68px; padding-inline: 18px; gap: 12px; }
 .site-brand img { width: 126px; height: 40px; }
 .site-shop { font-size: 11px; padding: 8px 10px; gap: 7px; min-height: 40px; }
 .site-shop > span { font-size: 15px; }
 .site-menu-toggle { width: 44px; flex-shrink: 0; }
 .site-menu { padding: 24px; max-height: calc(100dvh - 68px); }
 .site-menu > a { font-size: 22px; padding-block: 20px; }
 .hero-enter { right: 22px; bottom: 20px; gap: 13px; border: 0; padding: 0; }
 .hero-enter > span:first-child { font-size: 13px; }
 .hero-enter small { font-size: 11px; margin-top: 7px; }
 .hero-enter-arrow { width: 38px; height: 38px; }
 .hero-toggle { left: 22px; bottom: 25px; gap: 7px; }
 .hero-toggle span { font-size: 0; }
 .hero-toggle span::after { content: 'FILM'; font-size: 10px; }
 .hero-copy { bottom: 8rem; }
 .editorial-intro { padding: 62px 0; }
 .intro-layout > p { font-size: 12px; padding-left: 18%; }
 .counter-experience { padding: 42px 0 34px; scroll-margin-top: 68px; }
 .counter-heading-row { display: block; margin-bottom: 22px; }
 .counter-instruction { max-width: none; font-size: 11px; margin-top: 17px; }
 .counter-bottom { padding: 18px 0 15px; display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
 .counter-seat-caption { gap: 15px; }
 .counter-seat-number { font-size: 10px; }
 #counter-seat-title { font-size: 22px; }
 #counter-seat-copy { font-size: 11px; line-height: 1.8; }
 .counter-navigation { margin: 0; gap: 16px; }
 .counter-seat-nav { justify-content: space-evenly; gap: 4px; }
 .counter-seat { max-width: none; padding: 4px 10px; min-height: 44px; flex: 1; }
 .counter-seat > span { font-size: 14px; }
 .counter-round { width: 44px; height: 44px; }
 .counter-view { display: block; }
 .counter-stage { margin-inline: -20px; width: calc(100% + 40px); }
 .counter-scene-marker { top: 12px; left: 20px; }
 .counter-peek { margin-top: 10px; height: 64px; padding-inline: 14px; }
 .counter-peek-label { font-size: 15px; }
 #counter-peek-title { bottom: 22px; font-size: 11px; }
 .counter-point-menu { gap: 6px; margin-top: 13px; }
 .counter-point-choice { font-size: 11px; border: 1px solid #8d9b755c; border-radius: 4px; padding-inline: 2px; }
 .counter-point-index { width: 18px; height: 18px; margin-right: 5px; font-size: 10px; }
 .counter-exit { gap: 13px; margin-top: 20px; }
 .counter-exit > a { min-height: 44px; padding-top: 12px; }
 .counter-close { top: 10px; }
 .counter-story-visual { min-height: 0; }
 .counter-story-content { padding: 26px 22px 28px; }
 .time-interlude { min-height: 560px; scroll-margin-top: 68px; }
 .time-controls { bottom: 20px; }
 .discovery-section { padding: 54px 0; }
 .discovery-heading > p { font-size: 12px; }
 .discovery-filters { display: flex; flex-wrap: nowrap; gap: 6px; margin-top: 24px; }
 .discovery-filters button { font-size: 11px; padding: 8px 10px; letter-spacing: 0; flex: 1; white-space: nowrap; }
 .discovery-feature { grid-template-columns: 1fr; }
 .discovery-photo { min-height: 0; aspect-ratio: 3 / 2; }
 .discovery-content { padding: 25px 22px; }
 #discovery-title { font-size: 26px; }
 #discovery-description { font-size: 13px; }
 .discovery-controls { gap: 12px; padding-top: 22px; }
 #discovery-next { min-height: 52px; }
 .bottle-study { padding: 36px 0 48px; scroll-margin-top: 68px; }
 .bottle-study-layout { grid-template-columns: 1fr; grid-template-rows: auto; gap: 20px; }
 .bottle-study-copy,.bottle-model-area,.bottle-study-description { grid-column: 1; grid-row: auto; }
 .editorial-site .bottle-study-copy h2 { font-size: clamp(26px,7.8vw,32px); line-height: 1.65; margin: 16px 0; letter-spacing: .06em; }
 .bottle-study-lead { font-size: 12px; }
 .bottle-study-lead span,.bottle-study-lead br { display: none; }
 .bottle-model-area { padding-inline: 16px; }
 .bottle-model-caption { font-size: 20px; padding-top: 15px; }
 #bottle-model { height: 360px; }
 .bottle-model-controls { gap: 24px; }
 #bottle-status { font-size: 10px; margin-top: 14px; min-height: 36px; }
 .bottle-gesture-cue { top: 62%; font-size: 10px; padding: 11px 15px; }
 .bottle-study-description { padding-top: 22px; }
 .bottle-study-description h3 { font-size: 33px; margin-bottom: 12px; }
 .bottle-study-description p { font-size: 13px; }
 .bottle-model-area::after { font-size: 220px; }
 .editorial-collection { padding: 54px 0; }
 .collection-heading > p { font-size: 12px; }
 .bottle-stories { gap: 25px 16px; }
 .bottle-primary { width: 87%; }
 .bottle-primary .bottle-image { aspect-ratio: 4 / 4; }
 .bottle-secondary { margin-top: 0; }
 .bottle-third { margin-top: 45px; }
 .bottle-secondary .bottle-image,.bottle-third .bottle-image { aspect-ratio: 3 / 4; }
 .bottle-title h3 { font-size: 22px; }
 .lineup-panel { margin-top: 50px; scroll-margin-top: 90px; }
 .lineup-heading { padding-top: 24px; margin-bottom: 22px; }
 .lineup-heading h3 { font-size: 28px; }
 .lineup-heading > span { font-size: 11px; white-space: nowrap; }
 /* 絞り込みは3つ＋2つの2段に。どの幅でも内側に収まる。 */
 .lineup-filters { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 7px; margin-bottom: 20px; }
 .lineup-filters button { grid-column: span 2; font-size: 11px; padding: 9px 8px; gap: 8px; justify-content: center; white-space: nowrap; }
 .lineup-filters button:nth-child(n+4) { grid-column: span 3; }
 .lineup-filters button > span { font-size: 10px; }
 .lineup-list { grid-template-columns: 1fr; gap: 12px; }
 .lineup-item { display: grid; grid-template-columns: 110px minmax(0,1fr); }
 .lineup-photo { padding: 14px 3px 16px; display: flex; align-items: flex-end; }
 .lineup-photo img { height: 190px; object-fit: cover; }
 .lineup-item .lineup-photo::after { bottom: 10px; }
 .lineup-photo--round img { padding: 60px 10px 0; }
 .lineup-photo > .lineup-badge { top: 10px; left: 6px; writing-mode: vertical-rl; padding: 8px 2px; font-size: 11px; letter-spacing: .12em; } /* 細い写真の列では縦組みにして、瓶にかけない */
 .lineup-card-copy { padding: 20px 16px; }
 .lineup-taste { font-size: 11px; margin-bottom: 9px; }
 .lineup-item-title > strong { font-size: 18px; }
 .lineup-item-title > span { font-size: 11px; }
 .lineup-note { font-size: 12px; margin: 10px 0 14px; line-height: 1.9; }
 .lineup-detail { font-size: 11px; }
 .collection-shop { margin-top: 24px; padding: 28px 24px; }
 .collection-shop h3 { font-size: 21px; }
 .editorial-site .home-instagram { width: calc(100% - 40px); }
 .editorial-site .section-kicker { font-size: 10px; }
 .editorial-site .fx-numeral { top: calc(96px - .405em); right: calc(20px + .045em); font-size: 72px; }
 .fx-hero-vertical { text-shadow: 0 0 10px #000000c7, 0 1px 3px #00000099; }
 .editorial-collection .collection-shop::before { top: -130px; right: -110px; width: 200px; margin-top: 0; } /* 円は右上の角だけに。本文の行末にかからない */
}
@media (max-width: 359px) {
 .site-nav { padding-inline: 12px; gap: 8px; }
 .site-brand img { width: 112px; }
 .site-shop { font-size: 10px; padding-inline: 8px; }
 .editorial-wrap,.counter-shell { width: calc(100% - 32px); }
 .counter-stage { width: calc(100% + 32px); margin-inline: -16px; }
 .counter-navigation { gap: 7px; }
 .counter-seat { padding-inline: 5px; }
 .discovery-filters { display: grid; grid-template-columns: 1fr 1fr; }
 .lineup-filters button { padding-inline: 8px; gap: 5px; }
 .lineup-item { grid-template-columns: 92px minmax(0,1fr); }
 .lineup-photo--round img { padding-inline: 6px; }
 .intro-mark { gap: 8px; }
 .intro-mark .fine-label { letter-spacing: .12em; }
 .intro-mark-line { width: 16px; }
 .editorial-site .fx-seal { width: 76px; }
 .lineup-card-copy { padding: 18px 12px; }
 .lineup-item-title > strong { font-size: 17px; }
 .lineup-heading { display: block; position: relative; }
 .lineup-heading h3 { font-size: 27px; letter-spacing: .04em; }
 .lineup-heading > span { position: absolute; right: 0; top: 24px; font-size: 10px; }
 #bottle-model { height: 280px; }
}
@media (pointer: coarse) {
 .counter-swipe-hint { display: block; position: absolute; bottom: 12px; left: 0; right: 0; text-align: center; font-size: 11px; color: #fffbea; text-shadow: 0 1px 6px #000; }
 .is-counter-swiped .counter-swipe-hint { display: none; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 .site-nav,.site-nav-links a::after,.hero-enter-arrow,.lineup-photo img,.lineup-item,.lineup-filters button { transition: none; }
 .lineup-item:hover .lineup-photo img,.hero-enter:hover .hero-enter-arrow { transform: none; }
}
