.full-menu { background: var(--paper); }
.showcase-pasta { position: relative; isolation: isolate; aspect-ratio: 1946 / 808; background: #f7efdf; color: #232d1e; overflow: hidden; }
.showcase-artwork { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: fill; }
.showcase-heading { position: absolute; top: 1%; left: 15%; width: 70%; text-align: center; }
.showcase-heading h2 { color: #232d1e; font: 400 clamp(38px,4.45vw,90px)/1.05 'Cormorant Garamond',serif; letter-spacing: -.025em; }
.showcase-heading > p { margin: 1vw 0 0; color: #797563; font: 400 clamp(14px,1.35vw,27px)/1.35 'Cormorant Garamond',serif; }
.showcase-grid { position: absolute; top: 75%; left: 0; right: 0; }
.showcase-card { position: absolute; width: 25%; transform: translateX(-50%); text-align: center; }
.showcase-card:nth-child(1) { left: 13.67%; }
.showcase-card:nth-child(2) { left: 37.4%; }
.showcase-card:nth-child(3) { left: 61.25%; }
.showcase-card:nth-child(4) { left: 86%; }
.showcase-mobile-image { display: none; }
.showcase-card > span { display: inline-block; padding: 2px 3px; background: #f8f0df; box-shadow: 0 0 3px 2px #f8f0df; color: #aa2d1d; font: 500 clamp(9px,.78vw,16px)/1 'DM Sans',sans-serif; letter-spacing: .15em; }
.showcase-card > i { display: block; width: 1.5vw; height: 1px; margin: .5vw auto .55vw; background: transparent; }
.showcase-card h3 { color: #232d1e; font: 400 clamp(23px,2.35vw,48px)/1.1 'Cormorant Garamond',serif; letter-spacing: -.02em; }
.showcase-link { position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 1.6vw; width: max-content; color: #263321; font: 500 clamp(9px,.78vw,16px)/1.4 'DM Sans',sans-serif; letter-spacing: .22em; }
.showcase-link:hover { color: #aa2d1d; }
.showcase-link:focus-visible { outline: 2px solid #aa2d1d; outline-offset: 8px; }
/* Shared style for image spaces intentionally left empty. Preserve the host shape. */
.image-placeholder { background-color: #e9dfcb; background-image: repeating-linear-gradient(135deg, transparent 0 13px, rgba(151, 120, 66, .07) 13px 14px); border: 1px solid #bc8c28; }
.pasta-catalogue { padding: 0; background: #f8f1e4; }
.catalogue-header { min-height: 230px; padding: 46px 6vw 34px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.catalogue-header > p,.catalogue-footer > p { margin: 0 0 15px; color: #a77920; font: 600 12px 'DM Sans',sans-serif; letter-spacing: .42em; }
.catalogue-header h2 { margin: 0; color: #263321; font: 400 clamp(44px,4.6vw,72px)/1.08 'Cormorant Garamond',serif; letter-spacing: -.025em; text-wrap: balance; }
.catalogue-header h2 em { color: #9c351f; font-weight: 400; }
.catalogue-header > span { margin-top: 18px; color: #67685f; font-family: 'Cormorant Garamond',serif; font-size: 20px; }
.catalogue-row { height: calc(220px - 1.5cm); min-height: 0; display: grid; grid-template-columns: 1.06fr .94fr; border-top: 1px solid #b68a35; overflow: hidden; }
.catalogue-row:nth-child(n+4) { display: none; }
.catalogue-list.expanded .catalogue-row:nth-child(n+4) { display: grid; }
.catalogue-row:nth-child(even) { grid-template-columns: .94fr 1.06fr; }
.catalogue-row:nth-child(even) .catalogue-image { order: 2; }
.catalogue-row:nth-child(even) .catalogue-copy { order: 1; }
.catalogue-image { min-height: 0; height: 100%; background-repeat: no-repeat; filter: saturate(.92) contrast(1.02); }
.catalogue-explore-panel { display: none; }
.catalogue-copy { padding: 8px 5vw; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.catalogue-copy > span { display: none; }
.catalogue-copy h3 { margin: 0; color: #191c18; font: 400 clamp(40px,3.5vw,58px)/.88 'Cormorant Garamond',serif; letter-spacing: -.035em; }
.catalogue-copy i { flex: 0 0 auto; width: 46px; height: 1px; margin: 8px 0 7px; background: #b68a35; }
.catalogue-copy p { max-width: 650px; margin: 0; color: #30332d; font: 400 19px/1.2 'Cormorant Garamond',serif; }
.catalogue-copy small { margin-top: 7px; color: #68685f; font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.catalogue-image.r3 + .catalogue-copy h3,.catalogue-image.r5 + .catalogue-copy h3 { font-size: clamp(34px,2.7vw,46px); }
.pasta-shot,.ravioli-shot { background-size: cover; background-position: center; }
.p1 { --catalogue-photo: url('assets/menu-spaghetti.avif'); background-image: var(--catalogue-photo); }
.p2 { --catalogue-photo: url('assets/menu-tagliatelle.avif'); background-image: var(--catalogue-photo); }
.p3 { --catalogue-photo: url('assets/menu-spinach-tagliatelle.avif'); background-image: var(--catalogue-photo); }
.p4 { --catalogue-photo: url('assets/menu-linguine.avif'); background-image: var(--catalogue-photo); }
.p5 { --catalogue-photo: url('assets/menu-ink-linguine.avif'); background-image: var(--catalogue-photo); }
.p6 { --catalogue-photo: url('assets/menu-penne.avif'); background-image: var(--catalogue-photo); }
.p7 { --catalogue-photo: url('assets/menu-pappardelle.avif'); background-image: var(--catalogue-photo); }
.p8 { --catalogue-photo: url('assets/menu-casarecce.avif'); background-image: var(--catalogue-photo); }
.p9 { --catalogue-photo: url('assets/menu-gnocchetti-sardi.avif'); background-image: var(--catalogue-photo); }
.p10 { --catalogue-photo: url('assets/menu-rigatoni.avif'); background-image: var(--catalogue-photo); }
.p11 { --catalogue-photo: url('assets/menu-tagliolini.avif'); background-image: var(--catalogue-photo); }
.p12 { --catalogue-photo: url('assets/menu-lasagne.avif'); background-image: var(--catalogue-photo); }
.p13 { --catalogue-photo: url('assets/menu-spinach-lasagne.avif'); background-image: var(--catalogue-photo); }
.r1 { --catalogue-photo: url('assets/menu-ravioli-spinach-ricotta.avif'); background-image: var(--catalogue-photo); }
.r2 { --catalogue-photo: url('assets/menu-ravioli-mushroom.avif'); background-image: var(--catalogue-photo); }
.r3 { --catalogue-photo: url('assets/menu-ravioli-prawn-mascarpone.avif'); background-image: var(--catalogue-photo); }
.r4 { --catalogue-photo: url('assets/menu-ravioli-smoked-salmon.avif'); background-image: var(--catalogue-photo); }
.r5 { --catalogue-photo: url('assets/menu-ravioli-aubergine-scamorza.avif'); background-image: var(--catalogue-photo); }
.r6 { --catalogue-photo: url('assets/menu-ravioli-crab.avif'); background-image: var(--catalogue-photo); }
.ravioli-start { border-top-width: 4px; }
.catalogue-footer { min-height: 340px; padding: 42px 6vw; background: #f8f1e4; color: var(--ink); border-top: 1px solid #b68a35; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center; }
.catalogue-render { position: absolute; z-index: 0; width: 440px; height: auto; object-fit: contain; pointer-events: none; }
.catalogue-render.render-left { left: -230px; top: 50%; transform: translateY(-50%); }
.catalogue-render.render-right { right: -230px; top: 50%; transform: translateY(-50%); }
.catalogue-cta-content { width: min(1200px,74vw); position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }
.catalogue-cta-content > p { margin: 0 0 12px; color: var(--red); font: 600 11px 'DM Sans',sans-serif; letter-spacing: .32em; }
.catalogue-cta-content h2 { color: #292d28; font: 400 clamp(40px,3.6vw,58px)/1 'Cormorant Garamond',serif; letter-spacing: -.025em; }
.catalogue-cta-content > span { margin-top: 12px; color: #353934; font: 400 20px 'Cormorant Garamond',serif; }
.catalogue-actions { width: 100%; margin-top: 24px; display: flex; justify-content: center; gap: 12px; }
.catalogue-action { width: auto; min-width: 170px; height: 44px; padding: 0 24px; border-radius: 999px; display: flex; align-items: center; justify-content: center; border: 0; cursor: pointer; font: 600 11px 'DM Sans',sans-serif; letter-spacing: .06em; text-transform: none; }
.catalogue-action.primary { background: #b42016; color: white; }
.catalogue-action.secondary { color: #8c681b; border: 1px solid #b68a35; }
.product-dialog { width: min(640px,100%); max-width: none; max-height: 92dvh; margin: auto; padding: 0; border: 0; background: #fbf8f0; color: #263321; box-shadow: 0 24px 80px rgba(22,28,18,.28); }
.product-dialog::backdrop { background: rgba(22,28,18,.58); backdrop-filter: blur(3px); }
.product-dialog-shell { min-height: 100%; background: #fbf8f0; }
.product-dialog-header { position: sticky; z-index: 5; top: 0; min-height: 88px; padding: 18px 24px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d4c7aa; background: rgba(251,248,240,.96); backdrop-filter: blur(14px); }
.product-dialog-header h2 { margin: 0; color: #20271c; font: 400 37px/.9 'Cormorant Garamond',serif; }
.product-dialog-kicker { margin: 7px 0 0; color: #a77920; font: 600 8px/1 'DM Sans',sans-serif; letter-spacing: .28em; text-transform: uppercase; }
.product-dialog-close { width: 42px; height: 42px; padding: 0; border: 1px solid #cbbd9d; border-radius: 50%; background: transparent; color: #263321; cursor: pointer; font: 300 28px/1 'DM Sans',sans-serif; }
.product-dialog-body { padding-bottom: max(28px,env(safe-area-inset-bottom)); }
.product-dialog-intro { padding: 28px 24px 23px; }
.product-dialog-category,.product-detail-eyebrow { margin: 0 0 8px; color: #a77920; font: 600 8px/1.3 'DM Sans',sans-serif; letter-spacing: .26em; text-transform: uppercase; }
.product-dialog-intro h3,.product-detail-section h3 { margin: 0; color: #20271c; font: 400 34px/1 'Cormorant Garamond',serif; letter-spacing: -.02em; }
.product-dialog-description { margin: 13px 0 0; color: #555b50; font: 400 17px/1.5 'Cormorant Garamond',serif; }
.product-gallery { padding: 0 24px 28px; }
.product-gallery-frame { height: clamp(190px,48vw,290px); overflow: hidden; background: #e7ddc7; }
.product-gallery-image { width: 100%; height: 100%; background-position: center; background-size: cover; transition: transform .5s ease; }
.product-gallery-frame:hover .product-gallery-image { transform: scale(1.025); }
.product-detail-section { margin: 0 24px; padding: 24px 0; border-top: 1px solid #d8ccb2; }
.product-facts { margin: 18px 0 0; }
.product-fact-row { display: grid; grid-template-columns: 92px 1fr; gap: 14px; padding: 10px 0; border-top: 1px solid rgba(180,142,64,.22); }
.product-fact-row dt { color: #64675e; font: 400 14px/1.35 'Cormorant Garamond',serif; }
.product-fact-row dd { margin: 0; color: #20271c; font: 700 10px/1.45 'DM Sans',sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.product-fact-row.is-unconfirmed dd { color: #9c351f; }
.product-detail-note { margin: 12px 0 0; color: #707268; font: 400 13px/1.45 'Cormorant Garamond',serif; }
.product-dialog-actions { padding: 8px 24px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.product-dialog-action { min-height: 45px; padding: 0 10px; display: grid; place-items: center; border: 1px solid #b68a35; color: #755616; font: 600 9px/1.2 'DM Sans',sans-serif; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.product-dialog-action.is-primary { border-color: #9c351f; background: #9c351f; color: #fff; }
body.product-dialog-open { overflow: hidden; }
.nav { position: fixed; height: 68px; padding: 0 3vw; background: transparent; color: var(--ink); border-bottom-color: rgba(30,37,27,.12); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); box-shadow: 0 8px 30px rgba(30,37,27,.07); }
.nav .nav-cta { border-color: rgba(30,37,27,.4); }
.nav nav { font-size: 15px; font-weight: 500; }
.nav .nav-cta { font-size: 13px; }
.nav { transition: color .4s ease, border-color .4s ease, box-shadow .4s ease; }
.nav.nav-on-light { color: #11150f; border-bottom-color: rgba(17,21,15,.14); }
.nav.nav-on-light .nav-cta { border-color: rgba(17,21,15,.42); }
.nav.nav-on-dark { color: #fff; border-bottom-color: rgba(255,255,255,.22); box-shadow: 0 8px 30px rgba(0,0,0,.12); }
.nav.nav-on-dark .nav-cta { border-color: rgba(255,255,255,.58); }
html { scroll-padding-top: 82px; }
.nav-logo-link { width: 102px; height: 68px; display: grid; place-items: center; overflow: hidden; background: #fff; align-self: flex-start; }
.nav-logo { width: 90px; height: 63px; object-fit: contain; }
.hero-copy { top: 46%; transform: translateY(-50%); }
.hero-copy.reveal.visible { transform: translateY(-50%); }
.trust-strip { height: 8cm; min-height: 0; padding: 32px 8vw 20px; background: var(--paper) url('assets/trust-frame-background.png') center / auto 125% no-repeat; color: var(--ink); border-block: 1px solid #d2c5aa; position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.trust-frame { display: none; }
.trust-frame .frame-wheat { stroke: var(--red); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.trust-frame .frame-flower { stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.trust-kicker { --trust-item-progress: var(--trust-kicker-progress, 1); position: relative; z-index: 2; margin-bottom: 20px; font-family: "Montserrat", sans-serif; font-size: 16px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase; }
.trust-strip h2 { position: relative; z-index: 2; max-width: 1000px; font-family: "Cormorant Garamond", serif; font-size: clamp(38px,3vw,58px); line-height: 1.22; letter-spacing: 0; font-weight: 400; }
.trust-line { display: block; letter-spacing: 0; }
.trust-line-one { --trust-item-progress: var(--trust-line-one-progress, 1); }
.trust-line-two { --trust-item-progress: var(--trust-line-two-progress, 1); }
.trust-strip h2 em { position: relative; display: inline-block; color: #b98508; font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 400; }
.trust-strip h2 em::after { content: ''; position: absolute; left: 0; right: 0; bottom: -.08em; height: 2px; background: currentColor; opacity: .65; transform: scaleX(var(--trust-accent-progress, 1)); transform-origin: left; }
.trust-kicker,.trust-line { opacity: var(--trust-item-progress, 1); transform: translate3d(0, calc((1 - var(--trust-motion-progress, 1)) * 110px), 0); }
.trust-rule { display: none; }
.restaurant-hero { min-height: 680px; height: 82vh; position: relative; color: var(--paper); }
.restaurant-hero > img, .restaurant-hero > .hero-shade { position: absolute; inset: 0; }
.restaurant-hero-copy { position: absolute; left: 8vw; top: 39%; transform: translateY(-34%); max-width: 850px; }
.restaurant-hero-copy h1 { font-size: clamp(64px, 8vw, 118px); }
.restaurant-hero-copy > p:not(.eyebrow) { max-width: 520px; line-height: 1.7; margin: 30px 0; }
.trade-summary { background: var(--paper); }
.trade-facts { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #c8c3b5; }
.trade-facts article { padding: 30px; border-right: 1px solid #c8c3b5; }
.trade-facts article:last-child { border: 0; }
.trade-facts strong { display: block; min-height: 72px; color: var(--red); font: 34px 'DM Serif Display', serif; }
.trade-facts h3 { font-size: 23px; }.trade-facts p { color: #676d62; font-size: 11px; line-height: 1.7; }
.choose-service { background: #e8dfca; display: grid; grid-template-columns: .8fr 1fr 1fr; gap: 24px; align-items: stretch; }
.choose-heading { align-self: center; padding-right: 30px; }
.choose-heading h2 { font-size: clamp(48px, 5vw, 74px); }
.service-card { background: var(--paper); border-top: 5px solid var(--red); padding: 34px; transition: transform .25s ease; }
.service-card:hover { transform: translateY(-6px); }
.service-card.business { background: var(--olive); color: var(--paper); border-color: var(--gold); }
.service-card > span { font-size: 9px; letter-spacing: .18em; color: var(--red); }
.service-card.business > span { color: var(--gold); }
.service-card h3 { font-size: 34px; margin-top: 32px; }
.service-card p { min-height: 72px; color: #666c61; font-size: 12px; line-height: 1.7; }
.service-card.business p { color: #c3c8bd; }
.service-card b { display: inline-block; margin-top: 26px; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.menu-header { max-width: 760px; margin-bottom: 70px; }
.menu-header > p:last-child,
.trade-heading > p:last-child { max-width: 580px; line-height: 1.7; color: #60675b; }
.menu-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.menu-secondary { margin-top: 28px; }
.menu-group { border: 1px solid #c9c1ae; padding: 34px; }
.menu-group-title { display: flex; align-items: center; gap: 18px; padding-bottom: 22px; border-bottom: 2px solid var(--red); }
.menu-group-title > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--red); font-size: 11px; }
.menu-group-title h3, .trade-lists h3 { font-size: 34px; }
.choice-list, .priced-list { list-style: none; padding: 0; margin: 12px 0 0; }
.choice-list li, .priced-list li { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #d8d1c2; }
.choice-list li > span, .priced-list li > span { font: 20px 'DM Serif Display', serif; }
.choice-list small, .priced-list small { color: var(--red); font: 8px 'DM Sans', sans-serif; letter-spacing: .11em; margin-left: 8px; }
.priced-list b { font: 22px 'DM Serif Display', serif; white-space: nowrap; }
.menu-note { color: #656a5f; font-size: 11px; line-height: 1.6; margin: 22px 0 0; }
.priced-list.detailed li { padding: 10px 0; }
.priced-list.detailed i { display: block; max-width: 440px; color: #656a5f; font: 10px/1.5 'DM Sans', sans-serif; margin-top: 5px; }
.trade { background: var(--olive); color: var(--paper); display: grid; grid-template-columns: .7fr 1.3fr; gap: 8vw; }
.trade-heading > p:last-child { color: #c2c8bc; }
.trade-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; }
.trade-lists h3 { padding-bottom: 14px; border-bottom: 1px solid #ffffff40; }
.trade .priced-list li { border-color: #ffffff25; min-height: 37px; }
.trade .priced-list li > span { font-size: 15px; }
.trade .priced-list b { font-size: 15px; color: var(--gold); }
.trade .button { margin-top: 30px; }
.allergen-legend { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.allergen-legend span { display: flex; align-items: center; gap: 9px; color: #535a50; font-size: 10px; }
.allergen-legend b { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--red); border-radius: 50%; color: var(--red); font-size: 8px; }
.contact-details { display: flex; flex-direction: column; border-top: 1px solid #ffffff60; }
.contact-details a { padding: 18px 0; border-bottom: 1px solid #ffffff60; display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.contact-details small { font-size: 8px; letter-spacing: .16em; color: #ffffffaa; }
.contact-details strong { font: 20px 'DM Serif Display', serif; text-align: right; }
.map-card { cursor: pointer; }
.map-card .map-pin { transition: transform .25s ease, box-shadow .25s ease; }
.map-card:hover .map-pin { transform: rotate(-45deg) scale(1.08); box-shadow: 0 10px 28px rgba(90,22,14,.25); }
.direction-card { height: 540px; padding: 34px; background: #eee5d1; border: 1px solid #c9a654; display: block; color: var(--ink); isolation: isolate; }
.direction-card::after { content: ''; position: absolute; inset: 11px; z-index: -1; border: 1px solid rgba(52,69,41,.2); pointer-events: none; }
.direction-card .map-lines { inset: -10%; z-index: -2; opacity: .48; background: repeating-linear-gradient(28deg,transparent 0 66px,rgba(83,99,70,.16) 67px 69px),repeating-linear-gradient(118deg,transparent 0 94px,rgba(83,99,70,.14) 95px 97px); transform: rotate(-3deg) scale(1.08); }
.direction-route { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; overflow: visible; }
.direction-route path { fill: none; stroke: rgba(170,45,29,.7); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 3 10; }
.direction-route circle { fill: #eee5d1; stroke: var(--red); stroke-width: 2; }
.direction-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 17px; border-bottom: 1px solid rgba(52,69,41,.32); font-size: 10px; letter-spacing: .18em; }
.direction-top small { color: #68715f; font-size: 8px; letter-spacing: .16em; }
.direction-card .map-pin { position: absolute; top: 27%; right: 18%; width: 68px; height: 68px; box-shadow: 0 12px 28px rgba(91,32,21,.2); }
.direction-copy { position: absolute; left: 34px; bottom: 34px; width: min(360px,calc(100% - 68px)); padding: 25px 27px 27px; background: rgba(251,247,236,.94); border-top: 3px solid var(--red); box-shadow: 0 18px 50px rgba(38,45,31,.16); }
.direction-copy > small { color: var(--red); font-size: 8px; font-weight: 600; letter-spacing: .22em; }
.direction-copy h3 { margin-top: 9px; color: #20271c; font: 400 38px/.92 'Cormorant Garamond',serif; letter-spacing: -.025em; }
.direction-copy p { margin: 13px 0 21px; color: #68715f; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.direction-copy strong { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid #cfc5ae; color: #20271c; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.direction-copy strong span { color: var(--red); font-size: 18px; transition: transform .25s ease; }
.direction-card:hover .direction-copy strong span { transform: translate(3px,-3px); }
.visit { grid-template-columns: 1fr 1fr; gap: 0; padding: 0; min-height: 360px; }
.visit-copy { padding: 38px 6vw; align-self: center; }
.visit-copy h2 { font-size: clamp(48px,4vw,66px); }
.visit-copy > p:not(.eyebrow) { margin: 20px 0; line-height: 1.6; }
.visit-copy dl { margin: 22px 0; gap: 42px; }
.google-map-card { position: relative; min-width: 0; min-height: 360px; overflow: hidden; background: #e6dfce; }
.google-map-card iframe { width: 100%; height: 100%; min-height: 360px; display: block; border: 0; filter: saturate(.9) contrast(.96); }
.google-map-card > a { position: absolute; right: 24px; bottom: 24px; z-index: 2; min-width: 170px; padding: 15px 18px; display: flex; align-items: center; justify-content: space-between; background: #182614; color: #fff; box-shadow: 0 10px 30px rgba(21,30,17,.24); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.google-map-card > a span { margin-left: 24px; color: var(--gold); font-size: 17px; }
.official-logo { width: 180px; height: auto; mix-blend-mode: screen; }
.quote-card cite { display: block; margin-top: 14px; font: 8px 'DM Sans', sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.story-plain { max-width: 80ch; margin: 0 auto; padding: 40px 24px; font-size: 16px; line-height: 1.65; }
.story-plain h2 { margin: 0 0 20px; font-family: inherit; font-size: 28px; font-weight: 500; line-height: 1.25; letter-spacing: normal; }
.story-plain p { margin: 0 0 20px; }
.story-plain p:last-child { margin-bottom: 0; }
.product-list li { position: relative; min-height: 112px; padding: 14px 0 14px 108px; justify-content: flex-start; }
.product-list li::before { content: ''; position: absolute; left: 0; top: 12px; width: 86px; height: 86px; background-repeat: no-repeat; border-radius: 50%; box-shadow: inset 0 0 0 1px #00000010; }
.product-list li > span { display: block; width: 100%; }
.product-list i { display: block; color: #656a5f; font: 10px/1.5 'DM Sans', sans-serif; margin-top: 7px; }
.pasta-products li::before, .trade-pasta-products li::before { background-image: url('assets/product-pasta.png?v=20260827-2'); background-size: 300% 400%; }
.pasta-products li:nth-child(1)::before, .trade-pasta-products li:nth-child(1)::before { background-position: 0 0; }
.pasta-products li:nth-child(2)::before, .trade-pasta-products li:nth-child(4)::before { background-position: 50% 0; }
.pasta-products li:nth-child(3)::before, .trade-pasta-products li:nth-child(10)::before { background-position: 100% 0; }
.pasta-products li:nth-child(4)::before, .trade-pasta-products li:nth-child(5)::before { background-position: 0 33.33%; }
.pasta-products li:nth-child(5)::before, .trade-pasta-products li:nth-child(11)::before { background-position: 50% 33.33%; }
.pasta-products li:nth-child(6)::before, .trade-pasta-products li:nth-child(2)::before { background-position: 100% 33.33%; }
.pasta-products li:nth-child(7)::before, .trade-pasta-products li:nth-child(6)::before { background-position: 0 66.66%; }
.trade-pasta-products li:nth-child(3)::before { background-position: 50% 66.66%; }
.trade-pasta-products li:nth-child(7)::before { background-position: 100% 66.66%; }
.trade-pasta-products li:nth-child(8)::before { background-position: 0 100%; }
.trade-pasta-products li:nth-child(9)::before { background-position: 50% 100%; }
.trade-pasta-products li:nth-child(12)::before, .trade-pasta-products li:nth-child(13)::before { background-position: 100% 100%; }
.ravioli-products li::before, .trade-ravioli-products li::before { background-image: url('assets/product-ravioli.png?v=20260827-2'); background-size: 200% 300%; }
.ravioli-products li:nth-child(1)::before, .trade-ravioli-products li:nth-child(2)::before { background-position: 0 0; }
.ravioli-products li:nth-child(2)::before, .trade-ravioli-products li:nth-child(1)::before { background-position: 100% 0; }
.ravioli-products li:nth-child(3)::before, .trade-ravioli-products li:nth-child(4)::before { background-position: 0 50%; }
.ravioli-products li:nth-child(4)::before, .trade-ravioli-products li:nth-child(5)::before { background-position: 100% 50%; }
.ravioli-products li:nth-child(5)::before, .trade-ravioli-products li:nth-child(3)::before { background-position: 0 100%; }
.trade-ravioli-products li:nth-child(6)::before { background-position: 100% 100%; }
.sauce-products li::before, .sides-products li::before { background-image: url('assets/product-sauces.png?v=20260827-2'); background-size: 400% 300%; }
.sauce-products li:nth-child(1)::before { background-position: 0 0; }.sauce-products li:nth-child(2)::before { background-position: 33.33% 0; }.sauce-products li:nth-child(3)::before { background-position: 66.66% 0; }.sauce-products li:nth-child(4)::before { background-position: 100% 0; }.sauce-products li:nth-child(5)::before { background-position: 0 50%; }.sauce-products li:nth-child(6)::before { background-position: 33.33% 50%; }.sauce-products li:nth-child(7)::before { background-position: 66.66% 50%; }
.sides-products li:nth-child(1)::before { background-position: 100% 50%; }.sides-products li:nth-child(2)::before { background-position: 0 100%; }.sides-products li:nth-child(3)::before { background-position: 33.33% 100%; }.sides-products li:nth-child(4)::before { background-position: 66.66% 100%; }.sides-products li:nth-child(5)::before { background-position: 100% 100%; }
.trade .product-list li { min-height: 84px; padding-left: 78px; }
.trade .product-list li::before { width: 62px; height: 62px; }
.trade .product-list i { color: #bfc5b9; }

@media (max-width: 800px) {
  html { scroll-padding-top: 72px; }
  .nav { height: 60px; padding: 0 16px; }
  .nav nav { top: 60px; }
    .nav nav { background: rgba(255,255,255,.94); color: var(--ink); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
  .nav-logo-link { width: 84px; height: 60px; }
  .nav-logo { width: 76px; height: 55px; }
  .menu-button { font-size: 12px; }
  .hero-copy { top: 45%; transform: translateY(-50%); }
    .hero-copy.reveal.visible { transform: translateY(-50%); }
  .trust-strip { height: 8.5cm; min-height: 0; padding: 30px 28px 20px; background-size: auto 125%; }
  .trust-frame { inset: 28px -190px 20px; width: calc(100% + 380px); height: calc(100% - 48px); }
  .trust-kicker { margin-bottom: 18px; font-size: 9px; letter-spacing: .18em; }
  .trust-strip h2 { max-width: 390px; font-size: clamp(30px, 8.8vw, 38px); line-height: 1.18; }
  .trust-strip h2 br { display: none; }
  .trust-rule { width: 130px; margin-top: 46px; }
  .trust-strip::before,.trust-strip::after { display: none; }
  .restaurant-hero { min-height: 640px; }
  .restaurant-hero-copy { left: 24px; right: 24px; top: 39%; transform: translateY(-25%); }
  .trade-facts { grid-template-columns: 1fr 1fr; }
  .trade-facts article:nth-child(2) { border-right: 0; }
  .choose-service { grid-template-columns: 1fr; }
  .menu-columns, .trade, .trade-lists { grid-template-columns: 1fr; }
  .menu-header { margin-bottom: 45px; }
  .menu-group { padding: 24px 18px; }
  .choice-list li > span, .priced-list li > span { font-size: 17px; }
  .allergen-legend { grid-template-columns: 1fr 1fr; }
  .contact-details strong { font-size: 15px; overflow-wrap: anywhere; }
  .direction-card { height: 460px; padding: 24px; }
  .direction-top { align-items: flex-start; flex-direction: column; gap: 7px; }
  .direction-card .map-pin { top: 25%; right: 14%; width: 58px; height: 58px; }
  .direction-copy { left: 24px; bottom: 24px; width: calc(100% - 48px); padding: 21px 22px 22px; }
  .direction-copy h3 { font-size: 34px; }
  .visit { grid-template-columns: 1fr; min-height: 0; }
  .visit-copy { padding: 64px 24px; }
  .google-map-card,.google-map-card iframe { min-height: 300px; height: 300px; }
  .google-map-card > a { right: 16px; bottom: 16px; }
  .product-list li { padding-left: 92px; }
  .showcase-pasta { aspect-ratio: auto; padding: 32px 0 28px; }
  .showcase-artwork { display: none; }
  .showcase-heading { position: relative; inset: auto; width: auto; margin: 0 24px 26px; }
  .showcase-heading h2 { font-size: clamp(38px,8vw,58px); }
  .showcase-heading > p { max-width: 420px; margin: 12px auto 0; font-size: 18px; }
  .showcase-grid { position: relative; inset: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 26px; }
  .showcase-card { position: static; width: auto; transform: none; }
  .showcase-mobile-image { display: block; width: 100%; aspect-ratio: 486.5 / 380; margin-bottom: 14px; background: url('assets/showcase-table-artwork.png') 0 47% / 400% auto no-repeat; }
  .showcase-card:nth-child(2) .showcase-mobile-image { background-position-x: 33.333%; }
  .showcase-card:nth-child(3) .showcase-mobile-image { background-position-x: 66.667%; }
  .showcase-card:nth-child(4) .showcase-mobile-image { background-position-x: 100%; }
  .showcase-card > span { font-size: 10px; background: none; box-shadow: none; }
  .showcase-card > i { width: 22px; margin: 8px auto; background: #b98508; }
  .showcase-card h3 { padding: 0 8px; font-size: clamp(24px,4.8vw,34px); }
  .showcase-link { position: relative; inset: auto; transform: none; margin: 28px auto 0; gap: 16px; font-size: 9px; }
  .catalogue-header { min-height: 190px; padding: 38px 24px 30px; }
  .pasta-catalogue .reveal { opacity: 1; transform: none; }
  .catalogue-header h2 { max-width: 12ch; font-size: clamp(42px,10vw,56px); }
  .catalogue-header > span { font-size: 17px; }
  .catalogue-row,.catalogue-row:nth-child(even) { height: auto; min-height: 0; grid-template-columns: 1fr; grid-template-rows: 230px; }
  .catalogue-list.expanded .catalogue-row:nth-child(n+4) { display: grid; }
  .catalogue-row:nth-child(even) .catalogue-image,.catalogue-row:nth-child(even) .catalogue-copy { order: initial; }
  .catalogue-image { position: relative; min-height: 0; width: 100%; height: 230px; overflow: hidden; background-image: none; background-color: #f8f1e4; }
  .catalogue-image::before { content: ''; position: absolute; z-index: 1; inset: 0; background: var(--catalogue-photo) center / cover no-repeat; transform: translate3d(0,0,0); transition: transform .72s cubic-bezier(.22,.75,.18,1); will-change: transform; }
  .catalogue-explore-panel { position: absolute; z-index: 2; inset: 0 66% 0 0; padding: 17px 11px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border: 0; border-right: 1px solid #b68a35; background: #f8f1e4; color: #263321; cursor: pointer; transform: translate3d(-101%,0,0); transition: transform .72s cubic-bezier(.22,.75,.18,1); will-change: transform; }
  .catalogue-explore-panel span { font: 400 clamp(16px,4.8vw,21px)/.95 'Cormorant Garamond',serif; letter-spacing: -.02em; text-align: center; text-wrap: balance; }
  .catalogue-explore-panel small { color: #9c351f; font: 600 8px/1 'DM Sans',sans-serif; letter-spacing: .18em; text-transform: uppercase; }
  .catalogue-explore-panel:focus-visible { outline: 2px solid #9c351f; outline-offset: -5px; }
  .catalogue-image.is-mobile-focus::before { transform: translate3d(34%,0,0); }
  .catalogue-image.is-mobile-focus .catalogue-explore-panel { transform: translate3d(0,0,0); }
  .catalogue-copy { display: none; }
  .catalogue-copy h3 { font-size: 43px; }
  .catalogue-copy p,.catalogue-copy i { display: none; }
  .catalogue-copy small { font-size: 9px; }
  .catalogue-image.r3 + .catalogue-copy h3,.catalogue-image.r5 + .catalogue-copy h3 { font-size: 34px; }
  .catalogue-footer { min-height: 320px; padding: 36px 24px; }
  .catalogue-render { display: none; }
  .catalogue-render.render-left { left: -180px; }
  .catalogue-render.render-right { right: -180px; }
  .catalogue-cta-content { width: 100%; }
  .catalogue-cta-content > p { margin-bottom: 10px; font-size: 9px; line-height: 1.5; }
  .catalogue-cta-content h2 { font-size: 38px; }
  .catalogue-cta-content > span { margin-top: 10px; font-size: 18px; line-height: 1.3; }
  .catalogue-actions { margin-top: 20px; flex-direction: row; gap: 10px; }
  .catalogue-action.primary { flex: 1 1 100%; min-width: 0; width: 100%; height: 48px; padding: 0 20px; font-size: 11px; }
  .catalogue-action.secondary { display: none; }
  .product-dialog { inset: 0; width: 100%; height: 100dvh; max-height: none; margin: 0; }
  .product-dialog-header { padding-top: max(18px,env(safe-area-inset-top)); }
}

@media (prefers-reduced-motion: reduce) {
  .trust-kicker,.trust-line { opacity: 1; transform: translateY(0); }
  .trust-strip h2 em::after { transform: none; }
  .trust-kicker { letter-spacing: .22em; }
  .trust-line { letter-spacing: 0; }
  .trust-strip h2 { letter-spacing: 0; }
  .catalogue-image::before,.catalogue-explore-panel,.product-gallery-image { transition-duration: .01ms; }
}
