/* Small local repairs layered on top of the exported Webflow CSS. */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/bodoni-moda-latin.woff2') format('woff2')}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/bodoni-moda-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
html,body{overflow-x:hidden}
.w-dyn-empty,.w-pagination-wrapper,.filter-tag{display:none!important}
/* The exported Webflow timeline controls the large wordmark and its collapse
   into the sticky header. Keep these elements free of static overrides. */
.restored-story .short-title-overlay-text{pointer-events:none}
.restored-story .absolute-tag{pointer-events:none}
/* Newsletter uses the same Webflow card classes and IX3 targets as stories. */
.restored-newsletter .article-asset{aspect-ratio:1;min-height:13.5rem}
.restored-newsletter .article-asset-img-inner{height:100%;object-position:center}
.masonry-item:focus-within{outline:2px solid var(--dark);outline-offset:3px}
.masonry-item a:focus-visible{outline:none}
.article-container:focus-within .article-asset-img-inner,
a:focus-visible .article-asset-img-inner{transform:scale(1.05)}
.article-container:focus-within .article-dark-cover,
a:focus-visible .article-dark-cover{opacity:1}
.filter-menu-scroll .ms-pill-checkbox:checked+.ms-pill-label,.filter-menu-scroll .ms-pill-label:hover{opacity:1;text-decoration:underline;text-underline-offset:.25em}
.filter-menu-scroll label{cursor:pointer}
[main-nav-inner="article"] .hover-link.underline-link.w--current:not([aria-current="page"]){border-bottom:0}
[main-nav-inner="article"] .hover-link.underline-link[aria-current="page"]{border-bottom:1px solid var(--dark)}
.restored-hidden{display:none!important}
.section_fs-inject.restored-gallery-section{display:block;padding:2rem 0}
.restored-gallery-section .img-slider__thumb{padding:0;background:transparent}
.restored-gallery-section .img-slider__thumb:focus-visible{outline:2px solid var(--light);outline-offset:3px}
.restored-recipe-meta{font:500 1.1rem minion-pro,Georgia,serif;letter-spacing:.05em;border-top:1px solid #1a1818;border-bottom:1px solid #1a1818;padding:1rem 0;margin:0 0 2rem}
.restored-missing-copy{border-top:1px solid #1a1818;padding-top:1rem;font-style:italic}
.article-rich-text img{max-width:100%;height:auto}
.article_product_grid .article-container{height:auto}
.article_product_grid .article-asset{aspect-ratio:1}
.article_product_grid .article-asset-img-inner{height:100%}
[data-gsap-slider-init] .gsap-slider__collection{overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
[data-gsap-slider-init] .gsap-slider__collection::-webkit-scrollbar{display:none}
[data-gsap-slider-init] .gsap-slider__item{scroll-snap-align:start}
.restored-search-bar{max-width:48rem;margin:0 auto 4rem;text-align:center;padding:3rem 1rem 0}
.restored-search-bar label{display:block;font:500 2rem 'Bodoni Moda',Georgia,serif;margin-bottom:1rem}
.restored-search-bar input{width:100%;border:0;border-bottom:1px solid #1a1818;background:transparent;border-radius:0;padding:1rem .25rem;outline:0;font:1.2rem minion-pro,Georgia,serif;color:#1a1818}
.restored-no-results{text-align:center;padding:4rem 1rem;font:1.4rem minion-pro,Georgia,serif}
html.restored-modal-open{overflow:hidden}
@media(max-width:767px){.restored-search-bar{padding-top:5rem}.short-title-overlay-text{font-size:1.35rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* One fluid Webflow container: broad desktop canvases, readable article copy.
   Use the same viewport-relative inset for fixed controls and page sections. */
:root{--site-gutter:3vw}
.padding-global,.padding-global-small,.nav_secondary-container{
  padding-left:var(--site-gutter);padding-right:var(--site-gutter);
}
.container-large{max-width:none}
.fixed-page-nav{padding-right:var(--site-gutter);width:auto}
.nav_logo{max-width:min(105rem,calc(100vw - 2 * var(--site-gutter)))}
@media(max-width:767px){
  :root{--site-gutter:4vw}
  .fixed-page-nav{width:100%;padding-left:var(--site-gutter);padding-right:var(--site-gutter)}
  .filter-menu-scroll,.main-nav-centre{max-width:100%}
}

/* Apply before Webflow initialises, including a saved dark palette on reload. */
:root{
  --theme-paper:#e2dfd4;--theme-ink:#1a1818;--theme-invert:0;
  --light:var(--theme-paper);--dark:var(--theme-ink);
  background-color:var(--theme-paper);color:var(--theme-ink);
}
body[data-theme-status]{background-color:var(--theme-paper);color:var(--theme-ink)}
html.restored-loading .main-wrapper{visibility:hidden;opacity:0}
.nav-container{background-color:var(--theme-paper)}
/* The entire palette is interpolated once on html, never independently on
   children. Preserve spatial/opacity interactions without colour-transition lag. */
html.restored-theme-changing *,html.restored-theme-changing *::before,
html.restored-theme-changing *::after{
  transition-property:transform,opacity,width,height,padding,margin,grid-template-rows!important;
}
[data-theme-invert]{filter:invert(var(--theme-invert))}
.short-title-overlay-text,.small-tag .text-color-white{color:#e2dfd4}
.hamburger-nav__bg{background-color:var(--theme-paper)}
.hamburger-nav__toggle-bar{background-color:var(--theme-ink)}
.hamburger-nav__a,.underline-link{color:var(--theme-ink)}
[data-theme-status="light"] [data-theme-show="dark"],
[data-theme-status="dark"] [data-theme-show="light"],
[data-theme-status="light"] [data-theme-hide="light"],
[data-theme-status="dark"] [data-theme-hide="dark"]{display:none!important}

/* The exported signup and search dialogs are intentionally paper-coloured. */
.modal__card:not(.background-blur),.newsletter-sign-up-container{
  --light:#e2dfd4;--dark:#1a1818;color:#1a1818;
}
.restored-search-bar input{color:var(--theme-ink);border-color:var(--theme-ink)}
.restored-search-bar input::placeholder{color:var(--theme-ink);opacity:.5}

/* One whole-page crossfade keeps the fixed header and scrolling content on
   exactly the same visual clock, including browsers with separate paint layers. */
html.restored-theme-crossfade *,html.restored-theme-crossfade *::before,
html.restored-theme-crossfade *::after{transition:none!important}
html.restored-theme-crossfade::view-transition-group(root){animation-duration:.65s}
html.restored-theme-crossfade::view-transition-old(root){
  animation:none;opacity:1;mix-blend-mode:normal;
}
html.restored-theme-crossfade::view-transition-new(root){
  animation:grounded-theme-reveal .65s cubic-bezier(.65,0,.35,1) both;
  mix-blend-mode:normal;
}
@keyframes grounded-theme-reveal{from{opacity:0}to{opacity:1}}

/* Listing filters now occupy their actual height in document flow. Reserve
   only the expanded masthead, then keep one small gap before the first card. */
.restored-listing{--listing-masthead-rows:19;--listing-card-gap:1rem}
.restored-listing .hero-scroll{min-height:var(--listing-masthead-height,24.5rem)}
.restored-listing .section-content{padding-top:0}
.restored-listing .section-content > .padding-global{padding-top:var(--listing-card-gap)}
.restored-listing .section-content > .padding-global > .padding-small{display:none}
.restored-listing .masonry-wrap{margin-top:0}
.restored-listing .accordion-css__item-bottom-wrap{height:auto;min-height:0}
.restored-listing .accordion-css{max-width:100%}
.restored-listing .filter-menu-scroll{flex-wrap:wrap;justify-content:center;overflow:visible;max-width:100%}
.restored-listing .filter-menu{max-width:100%}
@media(max-width:991px){.restored-listing{--listing-masthead-rows:10}}
@media(max-width:767px){.restored-listing{--listing-masthead-rows:7;--listing-card-gap:.75rem}}
@media(max-width:479px){.restored-listing{--listing-masthead-rows:6}}
