/* Shared app shell and small-screen compositions. No device-specific content copies.
   Home owns its hero geometry; commerce continues to use the existing store/API. */
.fc-notification-page { max-width:42rem; }
.fc-push-options { display:grid; gap:1rem; margin:1.5rem 0; }
.fc-push-options label { display:flex; gap:.8rem; align-items:flex-start; }
.fc-push-options input { width:1.3rem; height:1.3rem; accent-color:var(--brand-red); margin-top:.2rem; flex:none; }
.fc-push-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.fc-push-status { margin-top:1rem!important; }
.fc-order-list { display:grid; gap:1rem; margin-bottom:1.5rem; }
.fc-order-card { background:var(--fc-paper); color:var(--fc-ink); border-radius:1rem; padding:1.25rem; }
.fc-order-card header { display:flex; justify-content:space-between; gap:1rem; align-items:start; }
.fc-order-card h2 { font-size:1.45rem; margin-bottom:.5rem; color:#171717; }
.fc-order-card p { font-size:.9rem; }
.fc-site .fc-order-card br,.fc-site .fc-contact-visit br,.fc-site .fc-push-options br { display:initial; }
.fc-order-status { background:#ffeb9d; color:#492b09; padding:.25rem .6rem; border-radius:2rem; font-size:.8rem; }
.fc-order-progress { display:grid; grid-template-columns:repeat(3,1fr); padding:1rem 0; gap:.5rem; list-style:none; }
.fc-order-progress li { border-top:4px solid #ddd8d0; padding-top:.7rem; font-size:.8rem; text-align:center; }
.fc-order-progress .is-done { border-color:var(--brand-red); font-weight:700; }
.fc-order-card .fc-order-lines { border-top:1px solid var(--fc-line); padding-top:.8rem; }
.fc-order-card footer { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.fc-account-links { display:grid; gap:.6rem; margin:1rem 0; }
.fc-account-links a { display:grid; grid-template-columns:2.75rem 1fr auto; align-items:center; gap:.8rem; padding:1rem; background:var(--fc-paper); border:1px solid var(--fc-line); border-radius:1rem; font:700 1.2rem/1.2 "Nunito","Nunito",system-ui,sans-serif; color:#171717; }
.fc-account-links i:first-child { width:2.75rem; height:2.75rem; display:grid; place-items:center; border-radius:50%; background:var(--brand-red); color:white; font-size:1.2rem; }
.fc-account-links small { display:block; margin-top:.3rem; font:400 .85rem/1.4 "Nunito",system-ui,sans-serif; color:#626775; }
.fc-site .checkout-section input[type=radio],.fc-site .checkout-section input[type=checkbox] { min-height:0; width:1.2rem; height:1.2rem; flex:none; accent-color:var(--brand-red); }
.fc-site .fc-menu-section .fc-page-heading h1 { color:var(--fc-ink); }
.fc-site .fc-product h3,.fc-site .fc-product h3 a,.fc-site .fc-detail h1 { color:#171717; }
.fc-site a.dsf-points-hero { display:block; min-height:0; padding:1.25rem; color:#171717; background:linear-gradient(120deg,#ffe283,#fff0b1); border:0; }
.fc-site a.dsf-points-hero h3 { color:#171717; margin:0 0 .5rem; }
.fc-site a.dsf-points-hero p { margin:0 0 .35rem; }
.fc-site a.dsf-points-hero::before,.fc-site a.dsf-points-hero::after { display:none; }
.fc-auth-art picture { display:contents; }
.fc-auth-art picture img { width:100%; height:28rem; object-fit:contain; background:#f0e3ce; flex:1; }
.fc-site .fc-page-heading h1,.fc-site .fc-blog-body h2 { text-wrap:balance; }
.fc-site .tagcloud { display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0 1.4rem; }
.fc-site .tagcloud a { display:inline-flex; align-items:center; min-height:2.75rem; border:1px solid var(--fc-line); border-radius:2rem; padding:.5rem 1rem; font-size:.85rem; background:var(--fc-paper); white-space:nowrap; }
.fc-site .tagcloud a[aria-current] { background:var(--brand-yellow); border-color:var(--brand-yellow); color:#171717; }
.fc-contact-message { scroll-margin-top:2rem; }
.fc-contact-visit h2 { margin-bottom:.8rem; }
.fc-contact-visit .fc-map { margin-bottom:1.25rem; }
.fc-contact-visit .fc-button { width:100%; margin-top:.75rem; }
.fc-site .fc-contact-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.fc-about-links { display:grid; gap:1rem; }
.fc-about-link { display:grid; grid-template-columns:24% 3.5rem minmax(0,1fr) 2rem; gap:1.25rem; align-items:center; overflow:hidden; border:1px solid var(--fc-line); border-radius:1rem; background:var(--fc-paper); padding-right:1.25rem; }
.fc-about-link>img { width:100%; height:10rem; object-fit:cover; }
.fc-about-link .fc-about-icon { display:grid; place-items:center; width:3.5rem; height:3.5rem; border-radius:50%; background:var(--brand-yellow); color:#171717; }
.fc-site .fc-about-link h2 { color:#171717; margin:0 0 .3rem; }
.fc-site .fc-about-link p { margin:0; color:var(--fc-muted); }
.fc-about-link>.fc-icon { color:var(--brand-red); }
.fc-site .fc-legacy-content .breadcrumb-wrapper .page-heading { padding:0; }
.fc-site .fc-legacy-content .breadcrumb-wrapper .page-heading .breadcrumb-title { font:700 clamp(2rem,4vw,3.5rem)/1.15 "Nunito","Nunito",system-ui,sans-serif; text-transform:none; }
.fc-site .fc-legacy-content .breadcrumb-wrapper .girl-shape,.fc-site .fc-legacy-content .breadcrumb-wrapper .bottom-shape { display:none; }
@media (min-width:768px) and (max-width:1439px) {
  .fc-site.fc-page-my-account [data-account].fc-panel { background:transparent; padding:0; border:0; }
  .fc-site.fc-page-my-account .dsf-account { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr); gap:1rem; align-items:start; }
  .fc-site.fc-page-my-account .dsf-acct-head { display:flex; flex-direction:column; text-align:center; padding:1.25rem; margin:0; gap:1rem; box-shadow:none; }
  .fc-site.fc-page-my-account .dsf-acct-head::before { display:none; }
  .fc-site.fc-page-my-account .dsf-acct-who h2 { color:#171717; font-size:1.6rem; }
  .fc-site.fc-page-my-account .dsf-acct-who p { font-size:.85rem; }
  .fc-site.fc-page-my-account .dsf-acct-badges { justify-content:center; }
  .fc-site.fc-page-my-account .dsf-acct-body { display:block; min-width:0; }
  .fc-site.fc-page-my-account .dsf-acct-nav { flex-wrap:nowrap; overflow:auto; padding:.5rem; margin:0 0 .75rem; }
  .fc-site.fc-page-my-account .dsf-acct-nav a { flex:none; white-space:nowrap; }
  .fc-site.fc-page-my-account .fc-account-links { grid-template-columns:1fr; }
}
@media (max-width:1023px), (max-width:1439px) and (pointer:coarse) {
  html:has(.fc-site) { scroll-padding-block:1rem calc(6rem + env(safe-area-inset-bottom)); }
  .fc-site { --fc-nav-height:4.6rem; padding-bottom:calc(var(--fc-nav-height) + env(safe-area-inset-bottom)); }
  /* Reuse the copyright strip's original artwork, scale and client paint tokens.
     This shared rule follows Home's styles so every app route has one branded bar. */
  .fc-site .fc-bottom-nav { display:flex; position:fixed; inset:auto 0 0; z-index:99; border:0; border-radius:1.3rem 1.3rem 0 0; padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom)); background-color:var(--brand-red-deep); background-image:var(--brand-paint-tile),var(--brand-footer-paint,var(--brand-paint)); background-size:180px 180px,auto; box-shadow:0 -3px 16px #56090a14; color:white; }
  .fc-site .fc-bottom-nav>a { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; gap:.25rem; min-width:0; min-height:3.9rem; padding:.25rem 0; border-radius:.6rem; font:400 .9rem/1.3 "Nunito",system-ui,sans-serif; }
  /* Move only the artwork: labels, tap targets and the bar never shift. */
  .fc-site .fc-bottom-nav .fc-icon { width:1.6rem; height:1.6rem; transform:translateY(0); transition:transform 220ms cubic-bezier(.2,.7,.2,1); }
  .fc-site .fc-bottom-nav a[aria-current] { background:transparent; color:var(--brand-yellow); }
  .fc-site .fc-bottom-nav a[aria-current] .fc-icon,
  .fc-site .fc-bottom-nav a:focus-visible .fc-icon { transform:translateY(-5px); }
  .fc-site .fc-bottom-nav a[aria-current] .fc-icon { stroke-width:2.4; }
  .fc-site .fc-bottom-nav a[aria-current][href="index.html"] .fc-icon { fill:currentColor; }
  .fc-site .app-install-banner { bottom:calc(5.3rem + env(safe-area-inset-bottom)); }
  /* App layouts end at their content and shared tab bar, not the desktop
     newsletter/contact/legal footer. Keep this in the tab bar's media rule. */
  .fc-site .fc-footer { display:none; }
  .fc-site:not(.fc-home-reference) .fc-header { position:relative; border:0; padding-top:env(safe-area-inset-top); }
  .fc-site:not(.fc-home-reference) .fc-header::after { content:""; position:absolute; height:12px; left:0; right:0; bottom:-11px; background:var(--fc-header-bg,var(--fc-paper)); border-radius:0 0 50% 50%; pointer-events:none; }
  .fc-site .fc-red-section { background:radial-gradient(ellipse at 85% 10%,#ffffff08,transparent 65%),var(--brand-red); }
  .fc-site .fc-red-section .fc-page-heading { text-align:left; }
  .fc-site .fc-red-section .fc-page-heading .fc-eyebrow { display:none; }
  .fc-site .fc-red-section .fc-page-heading h1 { margin:0; }
  .fc-site .fc-red-section .fc-page-heading>p:last-child { margin:.75rem 0 0; }
  .fc-site .fc-account-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* any-pointer also covers touch laptops and tablets with a mouse or trackpad.
   Pure touch devices get the selected state, without a sticky hover effect. */
@media (any-hover:hover) and (any-pointer:fine) {
  .fc-site .fc-bottom-nav a:hover .fc-icon { transform:translateY(-5px); }
}
@media (min-width:1024px) and (pointer:fine), (min-width:1440px) {
  .fc-site .fc-bottom-nav { display:none; }
  .fc-site { padding-bottom:0; }
}
@media (max-width:767px) {
  .fc-site { --fc-cream:#fffaf1; --fc-paper:#fffdf9; --fc-ink:#171717; --fc-muted:#606570; --fc-line:#e8e2d9; }
  .fc-site:not(.fc-home-reference) .fc-header-inner { min-height:4.3rem; }
  .fc-site:not(.fc-home-reference) .fc-logo { width:32vw; max-width:9rem; }
  .fc-site:not(.fc-home-reference) .fc-logo img { height:auto; max-height:none; }
  .fc-site:not(.fc-home-reference) .fc-icon-button { color:#111; }
  .fc-site:not(.fc-home-reference) .fc-container { width:calc(100% - 1.25rem); }
  .fc-site:not(.fc-home-reference) .fc-section { padding-block:1.6rem; }
  .fc-site:not(.fc-home-reference) .fc-page-heading { margin-bottom:1.2rem; }
  .fc-site:not(.fc-home-reference) .fc-page-heading>.fc-eyebrow { display:none; }
  .fc-site:not(.fc-home-reference) .fc-page-heading h1 { font-size:clamp(1.85rem,8.2vw,2.8rem); }
  .fc-site .fc-legacy-content .breadcrumb-wrapper { padding:1.6rem 0!important; }
  .fc-site .fc-legacy-content .breadcrumb-items { margin:0; }
  .fc-page-shop .fc-menu-section,.fc-page-menu .fc-menu-section { background:linear-gradient(var(--brand-red) 0 23rem,var(--fc-cream) 23rem); }
  .fc-menu-section .fc-page-heading { text-align:left; }
  .fc-site .fc-menu-section .fc-page-heading h1 { color:white; }
  .fc-menu-section .fc-page-heading>p { display:none; }
  .fc-menu-toolbar { gap:.6rem; }
  .fc-menu-toolbar .fc-search { border-radius:2rem; min-height:3rem; }
  .fc-menu-toolbar>.fc-button { background:#ffe58c; border-color:#ffe58c; color:#21160b; min-height:2.75rem; justify-content:flex-start; padding:.6rem 1rem; }
  .fc-site .fc-menu-note { color:#fff7e9!important; font-size:.75rem!important; margin:.6rem .5rem; }
  .fc-categories { gap:.4rem; margin:0; padding:.5rem 0 .75rem; }
  .fc-site .fc-category { border:1px solid #fff8; color:white; background:transparent; border-radius:2rem; padding:.5rem .8rem; font-size:.85rem; }
  .fc-site .fc-category[aria-pressed=true] { color:#21160b; background:var(--brand-yellow); border-color:var(--brand-yellow); font-weight:600; }
  .fc-site .fc-result-count { color:#fff!important; margin-bottom:.5rem; font-size:.75rem!important; }
  .fc-products:not(.fc-featured) { gap:.65rem; }
  .fc-products:not(.fc-featured) .fc-product { grid-template-columns:41% minmax(0,1fr); border-radius:1rem; border:1px solid #ebe6de; padding:.4rem; box-shadow:0 2px 6px #44300c04; }
  .fc-products:not(.fc-featured) .fc-product-image { min-height:9.2rem; border-radius:.75rem; background:#f7f0e2; overflow:hidden; }
  .fc-products:not(.fc-featured) .fc-product-image img { width:100%; height:100%; object-fit:contain; }
  .fc-products:not(.fc-featured) .fc-product-body { padding:.25rem .4rem .25rem .65rem; }
  .fc-products:not(.fc-featured) h3 { color:#111; font-size:clamp(1.2rem,5.4vw,1.55rem); line-height:1.12; }
  .fc-products:not(.fc-featured) p { font-size:.84rem; line-height:1.4; }
  .fc-products:not(.fc-featured) .fc-product-price { font-size:1.1rem; }
  .fc-products:not(.fc-featured) .fc-button { padding:.5rem .7rem; font-size:.85rem; }
  .fc-site .fc-back { margin:0 0 .75rem; font-size:.9rem; }
  .fc-detail { gap:1.2rem; }
  .fc-detail-image { padding:0; aspect-ratio:1.15; background:#f6ecda; border-radius:1rem; }
  .fc-detail-image img { height:100%; width:100%; object-fit:contain; }
  .fc-detail h1 { color:#111; margin-bottom:.3rem; }
  .fc-detail-price { margin-bottom:.5rem!important; }
  .fc-detail fieldset { padding:0; border:0; }
  .fc-detail legend { padding:0; font-weight:700; }
  .fc-option { border-radius:2rem; flex:1; justify-content:center; padding:.6rem; }
  .fc-option:has(input:checked) { background:#ffe484; border-color:#f5bc20; }
  .fc-cart-line { grid-template-columns:34% minmax(0,1fr); gap:.5rem .8rem; padding:.65rem; }
  .fc-cart-line img { height:100%; min-height:7rem; grid-row:span 2; object-fit:contain; border-radius:.65rem; background:#f5eddf; }
  .fc-cart-line h2 { color:#111; font-size:1.45rem; }
  .fc-cart-line strong { color:var(--brand-red); font-size:1.35rem; }
  .fc-cart-line p { margin-bottom:.35rem; }
  .fc-cart-line-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.1rem .4rem; }
  .fc-cart-line-actions .fc-quantity button { min-width:2.5rem; width:2.5rem; }
  .fc-cart-line-actions .fc-quantity output { width:2rem; }
  .fc-cart-panel { border:0; }
  .fc-site .checkout-section .row { --bs-gutter-x:1rem; }
  .fc-page-my-account [data-account].fc-panel { background:transparent; padding:0; border:0; }
  .fc-page-my-account .dsf-acct-head { display:grid; grid-template-columns:4rem minmax(0,1fr); text-align:left; padding:1rem; margin:0 0 .8rem; border-radius:1rem; gap:.8rem; background:var(--fc-paper); box-shadow:none; border:0; }
  .fc-page-my-account .dsf-acct-head::before { display:none; }
  .fc-page-my-account .dsf-acct-photo { margin:0; }
  .fc-page-my-account .dsf-avatar.is-big { width:4rem; height:4rem; font-size:1.5rem; }
  .fc-page-my-account .dsf-acct-who h2 { color:#111; font-size:1.3rem; }
  .fc-page-my-account .dsf-acct-who p { font-size:.8rem; margin:0; }
  .fc-page-my-account .dsf-acct-progress { grid-column:1/-1; padding:.4rem 0 0; border-top:1px solid var(--fc-line); display:flex; align-items:center; gap:.75rem; }
  .fc-page-my-account .dsf-acct-progress .ring { width:2.6rem; height:2.6rem; font-size:.65rem; }
  .fc-page-my-account .dsf-acct-progress small { display:none; }
  .fc-page-my-account .dsf-acct-progress strong,.fc-page-my-account .dsf-acct-progress a { font-size:.75rem; }
  .fc-page-my-account .dsf-acct-body { display:block; }
  .fc-page-my-account .dsf-acct-nav { display:flex; flex-wrap:nowrap; overflow:auto; border-radius:.8rem; padding:.4rem; margin-bottom:.8rem; }
  .fc-page-my-account .dsf-acct-nav a { flex:none; white-space:nowrap; }
  .fc-page-my-account .dsf-card { box-shadow:none; padding:1rem; border-radius:1rem; }
  .fc-site .fc-account-links { grid-template-columns:1fr; }
  .fc-page-my-account .fc-red-section>.fc-container>.fc-page-heading>p:last-child { display:none; }
  .fc-auth-layout { position:relative; }
  .fc-auth-art { background:transparent; height:10rem; margin:5rem 0 .5rem; }
  .fc-auth-art>img,.fc-auth-art picture img { width:100%; height:10rem; object-fit:contain; background:transparent; }
  .fc-auth-content { padding:.5rem 1rem 1rem; }
  .fc-auth-content .fc-page-heading { position:absolute; top:0; left:0; right:0; }
  .fc-auth-content .fc-page-heading>p:last-child { display:none; }
  .fc-site .fc-auth-content h1 { font-size:clamp(2rem,9vw,2.8rem); }
  .fc-auth-content .fc-field input { background:#fffdf9; border-color:#babcc1; border-radius:.6rem; }
  /* the app's own button face, the one Send message and every other full width button wears:
     1.3rem bold was sized for the old 48px button and crowded the 32px one (owner, 2026-09-25) */
  .fc-auth-content .signup-btn { font:600 .94rem/1.2 "Nunito","Nunito",system-ui,sans-serif; letter-spacing:.01em; }
  .fc-site .fc-auth-content .forgot-password a,.fc-site .fc-auth-content .signin-link a { color:var(--brand-red); }
  .fc-split { gap:1.1rem; }
  .fc-split-image img { aspect-ratio:1.75; border-radius:.75rem; object-fit:cover; }
  .fc-page-about .fc-split h1,.fc-page-history .fc-split h1 { font-size:2.2rem; margin-bottom:.7rem; }
  .fc-page-about .fc-split h1::after,.fc-page-history .fc-split h1::after { content:""; display:block; width:3rem; height:4px; border-radius:4px; background:var(--brand-yellow); margin-top:.75rem; }
  .fc-split .fc-lead { font-size:1rem!important; }
  .fc-story-stage { display:grid; grid-template-columns:39% minmax(0,1fr); gap:.9rem; background:var(--fc-paper); border:1px solid var(--fc-line); border-radius:1rem; overflow:hidden; margin-bottom:.7rem; }
  .fc-story-stage>div:first-child { height:100%; }
  .fc-story-stage:nth-child(even)>div:first-child { order:0; }
  .fc-story-stage img { height:100%; min-height:10rem; object-fit:cover; border-radius:0; }
  .fc-story-stage>div:last-child { padding:.7rem .7rem .7rem 0; }
  .fc-story-stage .fc-eyebrow { display:none; }
  .fc-story-stage h2 { font-size:1.4rem; margin-bottom:.5rem; }
  .fc-story-stage p { font-size:.85rem; line-height:1.45; margin:0; }
  .fc-page-catering .fc-editorial-photo { margin:0; border-radius:.75rem; }
  .fc-page-catering .fc-catering-layout { gap:1.2rem; }
  .fc-page-catering .fc-catering-layout { background:var(--brand-red); border-radius:1rem; padding:.5rem; }
  .fc-page-catering .fc-catering-layout>div { color:white; }
  .fc-site.fc-page-catering .fc-catering-layout>div>h2 { color:white; }
  .fc-page-catering .fc-catering-layout>div>h2,.fc-page-catering .fc-catering-layout>div>p,.fc-page-catering .fc-catering-layout>div>a { margin-inline:.75rem; }
  .fc-page-catering .fc-catering-layout>div>h2 { font-size:1.8rem; margin:1rem 0 .5rem; }
  .fc-page-catering form.fc-panel { background:var(--fc-paper); border:5px solid var(--brand-red); padding:1.2rem; }
  .fc-site .fc-contact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-bottom:1rem; }
  .fc-contact-cards .fc-panel { display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; padding:1rem; }
  .fc-contact-cards .fc-icon { width:2.5rem; height:2.5rem; border-radius:50%; padding:.55rem; background:var(--brand-red); color:white; }
  .fc-contact-cards h2 { font-size:1.3rem; }
  .fc-contact-cards span { font-size:.75rem; }
  .fc-contact-visit { order:-1; }
  .fc-site .fc-contact-cards .fc-panel { display:grid; grid-template-columns:2.25rem 1fr; align-items:center; padding:.85rem .7rem; min-height:5rem; }
  .fc-site .fc-contact-cards h2 { font-size:1.08rem; margin:0; color:#171717; }
  .fc-site .fc-contact-cards .fc-icon { width:2.25rem; height:2.25rem; margin:0; }
  .fc-page-about .fc-split .fc-eyebrow,.fc-page-history .fc-split .fc-eyebrow { display:none; }
  .fc-page-about .fc-split,.fc-page-history .fc-split { gap:1rem; }
  .fc-page-about .fc-split h1 { color:#171717; }
  .fc-page-about .fc-section+.fc-section,.fc-page-history .fc-section+.fc-section { padding-top:0; }
  .fc-about-link { grid-template-columns:28% 2rem minmax(0,1fr) 1rem; gap:.55rem; padding-right:.65rem; }
  .fc-about-link>img { height:7rem; }
  .fc-about-link .fc-about-icon { width:2rem; height:2rem; }
  .fc-site .fc-about-link h2 { font-size:1.12rem; }
  .fc-site .fc-about-link p { font-size:.8rem; line-height:1.4; }
  .fc-booking-layout>.fc-panel { order:-1; }
  .fc-booking-photo>img { height:10rem; }
  .fc-booking-photo>div { padding:1.25rem; }
  .fc-site.fc-page-news .tagcloud { flex-wrap:nowrap; overflow:auto; padding-bottom:.35rem; }
  .fc-page-news .fc-page-heading { text-align:left; }
  .fc-page-news .fc-blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
  .fc-page-news .fc-blog-card:first-child { grid-column:1/-1; }
  .fc-page-news .fc-blog-body { padding:.85rem; }
  .fc-site.fc-page-news .fc-blog-body h2 { color:#111; font-size:1.15rem; }
  .fc-site.fc-page-news .fc-blog-card:first-child h2 { font-size:1.65rem; }
  .fc-page-news .fc-blog-body>p:not(.fc-eyebrow) { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .fc-site { scroll-behavior:auto; }
  .fc-site *,.fc-site *::before,.fc-site *::after { animation:none!important; transition:none!important; }
}
