/* Shared layout corrections. Keep content scrollable; solve overflow at its source. */
html{scroll-padding-top:calc(var(--site-header-height) + 20px)}
.site-header{direction:ltr;column-gap:24px}
.header-actions{flex-shrink:0}
.desktop-nav{min-width:0}
.mobile-nav{z-index:49;padding-bottom:calc(32px + env(safe-area-inset-bottom));overscroll-behavior:contain}

/* Grid tracks must be allowed to shrink below the intrinsic width of their text. */
.intro-row>*,.section-heading>*,.heading-aside>*,.footer-top>*,
.story-hero>*,.story-space>*,.story-taste-heading>*,.story-visit>*,
.lc-gift>*,.lc-club-gift>*,.lc-matrix-heading>*,.lc-tier-heading>*,
.booking-heading>*,.booking-card-head>*,.bakery-shop-catalog-heading>*,
.bakery-shop-toolbar>*,.login-number>*,.order-mode-options>button>span{min-width:0}
.story-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.story-space{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
.story-taste-grid,.story-visit,.lc-gift,.lc-club-gift,.contact-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
.dish-dialog[open]{grid-template-columns:repeat(2,minmax(0,1fr))}
.dialog-copy,.dialog-photo,.contact-information,.order-mode-options>button{min-width:0}
.dish-copy h3,.article-card h3,.article-header h1,.article-body h2,
.lc-tier-dossier dt,.lc-tier-dossier dd,.lc-matrix th,.lc-matrix td,
.bakery-bread-dialog-copy dd,.order-total strong,.order-dock-total,.toast{overflow-wrap:anywhere}
.footer-top,.footer-bottom,.article-byline{flex-wrap:wrap}
.location-card{flex-wrap:wrap}
.location-card>div{flex:1 1 100px;min-width:0}
.location-card>a{margin-right:auto}

/* Centered dialogs follow their contents; only their interior scrolls at the viewport limit. */
.dish-dialog,.order-mode-dialog,.lc-gift-dialog{
 height:max-content;block-size:max-content;min-height:0;
 max-height:calc(100svh - 24px);max-height:calc(100dvh - 24px);
 overscroll-behavior:contain;
}
.lc-gift-dialog{padding-top:68px}
.lc-gift-close{padding:0;flex-shrink:0}
.lc-gift-close svg{display:block}
.lc-gift-format,.booking-summary-actions,.order-line-controls{flex-wrap:wrap}
.lc-gift-display:before{inset:5% 0}
.order-mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.order-panel-header>div{min-width:0}
.order-empty{min-height:0;overflow:auto}
.order-line-controls{row-gap:8px}
.order-dock>div{min-width:0}
.order-dock-count{white-space:nowrap}
.order-dock .button{flex-shrink:0}
.order-total{flex-wrap:wrap;gap:8px 20px}
.order-total strong{white-space:normal}
.order-panel-body{padding-bottom:calc(36px + env(safe-area-inset-bottom))}
.order-dock{bottom:calc(22px + env(safe-area-inset-bottom))}

/* Dropdowns expand the form instead of covering a neighboring field or leaving the card. */
.booking-popover,.booking-field:nth-child(even) .booking-popover{
 position:relative;top:auto;right:auto;left:auto;
 width:100%;min-width:0;max-width:100%;margin-top:10px;
}
.booking-times{grid-template-columns:repeat(auto-fit,minmax(50px,1fr))}
.booking-trigger>span:not(.booking-change){overflow-wrap:anywhere}
.booking-change{flex-shrink:0}
.booking-direct,.booking-summary dl div{flex-wrap:wrap}
.booking-heading{flex-wrap:wrap}
.booking-heading h1 em{display:inline-block}

/* Switch the whole shared header together, before five links squeeze its actions. */
@media(max-width:1100px){
 :root{--site-header-height:72px}
 .site-header{direction:ltr;gap:18px}
 .desktop-nav{display:none}
 .menu-toggle{display:flex}
 .site-header .header-actions{direction:rtl}
 .mobile-nav{inset:var(--site-header-height) 0 0}
}
@media(min-width:1101px){.mobile-nav{display:none!important}}
@media(min-width:1101px) and (max-width:1250px){
 .lc-membership-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
}

@media(max-width:900px){
 .intro-row{flex-direction:column;align-items:stretch;gap:24px}
 .intro-row>p{margin-bottom:0}
 .section-heading,.story-taste-heading,.lc-matrix-heading{flex-wrap:wrap}
 .menu-toolbar{flex-wrap:wrap}
 .search-field{flex:1 1 240px;min-width:0}
 .contact-layout{grid-template-columns:minmax(0,1fr);gap:36px}
 .contact-photo{min-height:0;height:auto;aspect-ratio:4/3;max-height:560px}
 .contact-photo>img{position:absolute;inset:0}
 .bakery-visit{flex-wrap:wrap;gap:20px 28px}
 .bakery-visit>div{flex-basis:100%}
}

@media(max-width:760px){
 .login-layout{max-width:470px;grid-template-columns:minmax(0,1fr)}
 .login-brand-panel{display:none}
 .login-mobile-brand{display:flex;justify-content:center;margin-bottom:25px}
 .login-mobile-brand img{width:64px;height:auto}
 .login-step-icon{display:none}
 .story-hero{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:600px){
 .story-taste-grid,.story-visit,.lc-gift,.lc-club-gift{grid-template-columns:minmax(0,1fr)}
 .order-mode-options{grid-template-columns:minmax(0,1fr)}
 .lc-gift-dialog{padding-top:68px}
 .lc-gift-format{gap:12px 20px}
 .lc-tier-heading{flex-wrap:wrap}
 .lc-tier-heading>p{flex-shrink:0}
 .lc-tier-dossier dl>div{align-items:flex-start}
 .lc-tier-dossier dt,.lc-tier-dossier dd{flex:1 1 0;min-width:0}
 .bakery-bread-dialog-copy dl>div{gap:12px}
 .bakery-bread-dialog-copy dt{flex-shrink:0}
 .bakery-bread-dialog-copy dd{min-width:0}
 .contact-photo{aspect-ratio:4/5;max-height:460px}
 .location-card{gap:10px;padding:14px;inset-inline:14px;bottom:14px}
 .article-byline{gap:8px 20px}
}

@media(max-width:560px){
 /* The featured price previously occupied the same absolute coordinates as the title. */
 .signature-grid .dish-copy .dish-price{position:static;margin:16px 0 0;font-size:16px}
 .signature-grid .dish-copy p{max-width:100%}
 .page-intro h1{font-size:clamp(32px,9vw,45px)}
 .dish-dialog[open]{display:flex;flex-direction:column}
 .dish-dialog .dialog-photo{flex:0 0 auto;width:100%}
 .dish-dialog .dialog-copy{flex:0 0 auto;padding:28px 20px}
 .dialog-copy .dish-order-section{align-self:stretch}
 .order-line{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px 12px}
 .order-line>img,.order-line-no-image{grid-column:1;grid-row:1/3}
 .order-line-info{grid-column:2;grid-row:1}
 .order-line-total{grid-column:2;grid-row:2;max-width:none;margin:0;text-align:right}
 .order-panel-header{gap:14px;padding-inline:16px}
 .order-panel-header h2{font-size:clamp(23px,6.5vw,27px)}
 .order-panel-body{padding-inline:16px;padding-bottom:calc(30px + env(safe-area-inset-bottom))}
 .order-checkout-steps{flex-wrap:wrap;row-gap:8px}
 .waiter-lines li{align-items:flex-start;gap:14px}
 .waiter-lines h3{min-width:0;overflow-wrap:anywhere;font-size:19px}
 .waiter-lines strong{font-size:24px;flex-shrink:0}
 .order-dock{max-width:calc(100vw - 24px);bottom:calc(12px + env(safe-area-inset-bottom))}
 .order-dock>div{gap:0 8px}
 .order-dock-count{grid-column:1/-1;grid-row:auto}
 .order-dock-caption{grid-column:1;grid-row:2}
 .order-dock-total{grid-column:1;grid-row:3}
 .order-mode-options>button{min-width:0}
 .order-mode-options svg{flex-basis:34px;width:34px;height:34px}
}

@media(max-width:800px) and (pointer:coarse){
 .order-fields input,.order-address textarea,.order-notes textarea,
 .lc-gift-custom input,.lc-gift-message textarea,.booking-notes textarea,
 .search-field input,.login-form-body input[type=tel]{font-size:16px}
}

@media(max-height:600px) and (min-aspect-ratio:6/5){
 :root{--site-header-height:64px}
}
@media(max-width:900px) and (max-height:440px) and (min-aspect-ratio:6/5){
 /* A landscape phone still needs enough room for the complete copy and the bottom rail. */
 .cinema.is-autoplay .cinema-sticky{height:max(100svh,420px)}
 .hero-copy{align-self:center;padding:16px 18px}
 .hero-copy h1.hero-display{font-size:clamp(23px,3.5vw,30px);line-height:1.45}
 .hero-copy .hero-description{font-size:11px;margin:10px 0 14px}
}
@media(max-height:420px){
 .curtain-center{width:min(220px,54vw)}
 .tide-brand{width:105px;margin-bottom:14px}
 .curtain-wordmark{width:155px}
 .curtain-caption{margin-top:12px;font-size:10px}
 .curtain-tide{width:115px;margin-top:12px}
}
