/* Photo-led catalogue, using the menu's existing wine and warm paper palette. */
.catalog-editorial { background: #f3efea; }
.catalog-editorial .catalog-topbar { height: calc(64px + env(safe-area-inset-top)); padding: calc(12px + env(safe-area-inset-top)) 28px 12px; background: rgba(253,251,248,.97); border-bottom: 1px solid #5e152210; }
.catalog-editorial .catalog-page { padding: calc(86px + env(safe-area-inset-top)) 32px calc(106px + env(safe-area-inset-bottom)); background: #f3efea; }
.catalog-editorial .catalog-page-category:nth-child(even) { background: #eee8e1; }
.catalog-cover-spread, .catalog-spread { width: min(1240px,100%); height: 100%; min-height: 0; border-radius: 22px; overflow: hidden; box-shadow: 0 16px 60px #30151a0d; }
.catalog-cover-spread { display: grid; grid-template-columns: 1fr 1.05fr; background: var(--wine-950); color: #fbf4ee; }
.catalog-cover-copy { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(28px,4vw,68px); background: radial-gradient(ellipse at top left,#8c3c4240,transparent 70%); }
.catalog-kicker { font-size: .65rem; letter-spacing: .2em; line-height: 1.8; font-weight: 500; }
.catalog-cover-copy > .catalog-kicker { color: var(--amber-soft); margin-bottom: 32px; }
.catalog-cover-heading { font-family: var(--font-serif); font-size: clamp(2.6rem,5vw,4.7rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.08; }
.catalog-cover-heading em { display: block; font-weight: 400; color: var(--amber-soft); }
.catalog-cover-description { max-width: 320px; font-size: .88rem; line-height: 1.9; margin-top: 24px; color: #fbf4eec2; }
.catalog-cover-stats { margin-top: 25px; color: var(--amber-soft); font-size: .72rem; letter-spacing: .06em; }
.catalog-discover { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; padding: 14px 22px; border: 1px solid #ecd3a366; border-radius: 999px; background: #fbf4ee; color: var(--wine-900); font-size: .8rem; transition: background .2s, transform .2s; }
.catalog-discover:hover { background: var(--amber-soft); transform: translateY(-2px); }
.catalog-cover-photo, .catalog-visual { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
.catalog-cover-photo > .product-image, .catalog-visual > .product-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.catalog-cover-photo::after, .catalog-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 45%,#201416ab); pointer-events: none; }
.catalog-photo-seal { position: absolute; top: 26px; right: 26px; width: 94px; height: 94px; padding: 16px; display: grid; place-items: center; border: 1px solid #fff8; border-radius: 50%; background: #fbf4eedb; color: var(--wine-900); font-family: var(--font-serif); font-size: .73rem; letter-spacing: .08em; text-align: center; line-height: 1.5; transform: rotate(12deg); }
.catalog-cover-caption { position: absolute; z-index: 1; bottom: 32px; left: 32px; right: 32px; color: white; display: grid; gap: 7px; }
.catalog-cover-caption span { font-size: .64rem; letter-spacing: .15em; text-transform: uppercase; }
.catalog-cover-caption strong { font-family: var(--font-serif); font-size: 1.7rem; font-weight: 500; }
.catalog-spread { display: grid; grid-template-columns: .85fr 1.15fr; background: #fdfbf8; }
.catalog-visual-number { position: absolute; top: 20px; left: 26px; z-index: 1; color: #fff; text-shadow: 0 2px 16px #0003; font-family: var(--font-serif); font-size: 4rem; font-style: italic; line-height: 1; }
.catalog-hero-caption { position: absolute; z-index: 1; left: 22px; right: 22px; bottom: 22px; display: flex; flex-direction: column; gap: 10px; padding: 24px; text-align: left; border: 1px solid #fff3; border-radius: 14px; color: white; background: #30151ac9; backdrop-filter: blur(12px); transition: background .2s; }
.catalog-hero-caption:hover { background: #421019ef; }
.catalog-hero-caption .catalog-kicker { color: var(--amber-soft); font-size: .6rem; }
.catalog-hero-caption strong { font-family: var(--font-serif); font-size: clamp(1.4rem,2.6vw,2.2rem); font-weight: 500; line-height: 1.2; }
.catalog-hero-bottom { display: flex; justify-content: space-between; align-items: center; font-family: var(--font-serif); font-size: 1.1rem; color: var(--amber-soft); }
.catalog-hero-bottom > span { font-family: inherit; font-size: .82rem; color: white; }
.catalog-editorial .catalog-menu-page { width: 100%; max-height: none; min-height: 0; gap: 0; padding: clamp(22px,3.5vw,46px); overflow: hidden; }
.catalog-editorial .catalog-header { align-items: stretch; text-align: left; gap: 10px; flex: none; padding-bottom: 20px; }
.catalog-category-meta { display: flex; align-items: center; gap: 10px; color: var(--wine-800); font-size: .6rem; letter-spacing: .13em; }
.catalog-category-meta > span:last-child { margin-left: auto; color: var(--ink-soft); letter-spacing: .03em; }
.catalog-editorial .catalog-header-title { font-family: var(--font-serif); font-size: clamp(1.6rem,3vw,2.65rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.15; }
.catalog-category-description { color: var(--ink-soft); font-family: var(--font-display-alt); font-style: italic; font-size: 1.1rem; }
.catalog-editorial .catalog-header-rule { width: 42px; height: 2px; margin-top: 4px; transform-origin: left; }
.catalog-editorial .catalog-items { flex: 1; min-height: 0; margin: 0 -8px; padding: 0 8px; gap: 0; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #7c1b2d45 transparent; }
.catalog-editorial .catalog-items::after { display: none; }
.catalog-editorial .catalog-li { flex: none; border-bottom: 1px solid #5e152214; }
.catalog-editorial .catalog-li:last-child { border-bottom: 0; }
.catalog-editorial .catalog-item { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-radius: 0; }
.catalog-editorial .catalog-item > .product-image { flex: none; width: 66px; height: 66px; border-radius: 10px; }
.catalog-editorial .catalog-item-main { flex: 1; min-width: 0; gap: 5px; }
.catalog-editorial .catalog-item-namerow { justify-content: space-between; gap: 14px; }
.catalog-editorial .catalog-item-name { font-size: 1rem; line-height: 1.35; }
.catalog-editorial .catalog-item-price { font-size: .95rem; }
.catalog-editorial .catalog-item-desc { font-size: .78rem; line-height: 1.55; -webkit-line-clamp: 2; }
.catalog-item-recommendation { font-size: .58rem; text-transform: uppercase; letter-spacing: .07em; color: var(--wine-800); }
.catalog-detail-hint { flex: none; padding-top: 15px; color: var(--ink-soft); font-size: .64rem; line-height: 1.5; border-top: 1px solid #5e152214; }
.catalog-editorial .catalog-nav { width: min(410px,calc(100% - 32px)); bottom: calc(16px + env(safe-area-inset-bottom)); padding: 8px 12px 12px; gap: 12px; border-radius: 18px; background: #fffdf9f5; box-shadow: 0 5px 25px #42101912; }
.catalog-navigation-center { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.catalog-jump { width: 100%; }
.catalog-jump select { width: 100%; padding: 4px 22px 4px 8px; text-align: center; border: 0; color: var(--wine-900); background: transparent; font-family: var(--font-serif); font-size: .93rem; cursor: pointer; text-overflow: ellipsis; }
.catalog-editorial .catalog-pageno { min-width: 0; font-size: .58rem; letter-spacing: .16em; }
.catalog-editorial .catalog-arrow { width: 38px; height: 38px; flex: none; }
.catalog-progress { position: absolute; height: 2px; left: 28px; right: 28px; bottom: 5px; background: #5e152210; overflow: hidden; }
.catalog-progress span { display: block; height: 100%; background: var(--wine-700); transition: width .45s ease; }
.catalog-editorial .catalog-info { width: min(680px,100%); padding: 32px; gap: 20px; border: 1px solid var(--line); border-radius: 20px; background: #fdfbf8; }
.catalog-editorial :is(button,select,[tabindex="0"]):focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }
.catalog-editorial .page-active .catalog-cover-copy > * { animation: menuTextIn .7s cubic-bezier(.22,1,.36,1) both; }
.catalog-editorial .page-active .catalog-cover-heading { animation-delay: .08s; }
.catalog-editorial .page-active .catalog-cover-description { animation-delay: .16s; }
.catalog-editorial .page-active .catalog-cover-stats { animation-delay: .22s; }
.catalog-editorial .page-active .catalog-discover { animation-delay: .28s; }
.catalog-editorial .page-active .catalog-visual > .product-image img { animation: catalogPhotoIn .9s cubic-bezier(.22,1,.36,1) both; }
@keyframes catalogPhotoIn { from { transform: scale(1.045); opacity: .65; } to { transform: scale(1); opacity: 1; } }

@media (max-width: 700px) {
  .catalog-editorial .catalog-topbar { padding-left: 16px; padding-right: 16px; height: calc(58px + env(safe-area-inset-top)); }
  .catalog-editorial .catalog-page { padding: calc(72px + env(safe-area-inset-top)) 14px calc(94px + env(safe-area-inset-bottom)); }
  .catalog-cover-spread { grid-template-columns: 1fr; grid-template-rows: 1.2fr 1fr; border-radius: 17px; }
  .catalog-cover-copy { padding: 24px; }
  .catalog-cover-copy > .catalog-kicker { font-size: .55rem; margin-bottom: 14px; }
  .catalog-cover-heading { font-size: clamp(2.1rem,8vw,3rem); }
  .catalog-cover-description { margin-top: 14px; font-size: .75rem; line-height: 1.7; }
  .catalog-cover-stats { margin-top: 14px; font-size: .63rem; }
  .catalog-discover { margin-top: 18px; padding: 11px 18px; font-size: .75rem; }
  .catalog-photo-seal { width: 68px; height: 68px; padding: 10px; top: 16px; right: 16px; font-size: .57rem; }
  .catalog-cover-caption { left: 22px; right: 22px; bottom: 20px; gap: 5px; }
  .catalog-cover-caption strong { font-size: 1.35rem; }
  .catalog-spread { grid-template-columns: 1fr; grid-template-rows: clamp(150px,25dvh,210px) minmax(0,1fr); border-radius: 17px; }
  .catalog-visual > .product-image img { object-position: center 52%; }
  .catalog-visual-number { top: 15px; left: 18px; font-size: 2.5rem; }
  .catalog-hero-caption { left: 15px; right: 15px; bottom: 12px; padding: 12px 15px; gap: 4px; border-radius: 10px; }
  .catalog-hero-caption strong { font-size: 1.2rem; }
  .catalog-hero-caption .catalog-kicker { font-size: .49rem; }
  .catalog-hero-bottom { font-size: .9rem; }
  .catalog-hero-bottom > span { font-size: .7rem; }
  .catalog-editorial .catalog-menu-page { padding: 20px 16px 12px; }
  .catalog-editorial .catalog-header { gap: 7px; padding-bottom: 12px; }
  .catalog-category-meta { font-size: .52rem; gap: 7px; }
  .catalog-category-meta svg { width: 16px; height: 16px; }
  .catalog-editorial .catalog-header-title { font-size: 1.65rem; }
  .catalog-category-description { font-size: .92rem; }
  .catalog-editorial .catalog-header-rule { width: 32px; margin-top: 1px; }
  .catalog-editorial .catalog-item { padding: 11px 0; gap: 11px; }
  .catalog-editorial .catalog-item > .product-image { width: 52px; height: 52px; border-radius: 8px; }
  .catalog-editorial .catalog-item-name { font-size: .9rem; }
  .catalog-editorial .catalog-item-price { font-size: .85rem; }
  .catalog-editorial .catalog-item-namerow { gap: 8px; }
  .catalog-editorial .catalog-item-desc { font-size: .75rem; }
  .catalog-detail-hint { padding-top: 10px; font-size: .56rem; }
  .catalog-editorial .catalog-info { padding: 20px 16px; }
  .catalog-editorial .catalog-nav { bottom: calc(12px + env(safe-area-inset-bottom)); }
}
@media (max-height: 740px) and (max-width: 700px) {
  .catalog-cover-description { display: none; }
  .catalog-cover-copy { padding: 20px; }
  .catalog-cover-copy > .catalog-kicker { margin-bottom: 9px; }
  .catalog-cover-heading { font-size: 2rem; }
  .catalog-spread { grid-template-rows: 128px minmax(0,1fr); }
  .catalog-category-description { display: none; }
  .catalog-editorial .catalog-menu-page { padding-top: 14px; }
}
@media (min-width: 701px) and (max-height: 660px) {
  .catalog-editorial .catalog-page { padding-top: 76px; padding-bottom: 88px; }
  .catalog-cover-copy { padding: 25px; }
  .catalog-cover-copy > .catalog-kicker { margin-bottom: 18px; }
  .catalog-cover-heading { font-size: 2.5rem; }
  .catalog-cover-description { margin-top: 15px; font-size: .78rem; }
  .catalog-cover-stats, .catalog-discover { margin-top: 15px; }
  .catalog-editorial .catalog-menu-page { padding: 24px; }
  .catalog-editorial .catalog-header { padding-bottom: 12px; }
}
