/* Concept V2: food-first cards, honest rating sources, and reachable order actions. */
.fc-site .fc-concept-notice { padding:.7rem 1rem; background:#fff0c2; border-block:1px solid #e9cb7b; color:#604109; font:600 .78rem/1.5 "Nunito",system-ui,sans-serif; text-align:center; position:relative; z-index:3; }
.fc-site .fc-rating { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; width:fit-content; min-height:2.75rem; margin:0 0 .35rem; color:#5f6671; font:600 .9rem/1.3 "Nunito",system-ui,sans-serif; }
.fc-rating:hover { text-decoration:underline; }
.fc-rating-star { color:#fbbc04; font-size:1.3rem; }
.fc-rating-stars { display:inline-flex; gap:.06em; font-size:1.05rem; line-height:1; letter-spacing:0; }
.fc-rating-stars i { font-style:normal; color:#d9d2c3; }
.fc-rating-stars i.on { color:#fbbc04; }
.fc-google-source { display:inline-flex; padding:10px 10px 5px; }
.fc-site .fc-google-logo { height:18px; width:auto; max-width:none; object-fit:contain; }
.fc-google-score>span { color:#fbbc04; }
.fc-demo-tag { background:#fff0c2; border:1px solid #e7cc80; color:#1e496b; border-radius:.3rem; padding:.15rem .3rem; font:600 .65rem/1.2 "Nunito",system-ui,sans-serif; }
.fc-demo-price { display:block; font:500 .65rem/1.3 "Nunito",system-ui,sans-serif; color:#2a557b; }
.fc-demo-detail { color:#2a557b!important; font-size:.8rem!important; }
.fc-site .fc-product h3 { font-family:"Signika",system-ui,sans-serif; font-weight:600; letter-spacing:-.035em; }
.fc-site .fc-product h3 a { color:#15191b; }
.fc-product-tabs { display:flex; border-bottom:1px solid var(--fc-line); margin:1rem 0; }
.fc-product-tabs button { background:none; border:0; border-bottom:3px solid transparent; padding:.8rem 1rem; color:#5f6671; font-weight:600; min-height:2.75rem; }
.fc-product-tabs button[aria-selected=true] { color:var(--brand-red); border-bottom-color:var(--brand-red); }
.fc-site [data-product-panel][hidden] { display:none; }
.fc-site .fc-detail h1 { font-family:"Signika",system-ui,sans-serif; font-weight:700; letter-spacing:-.045em; font-size:clamp(2rem,4vw,3.2rem); }
.fc-review { padding:1rem 0; border-bottom:1px solid var(--fc-line); }
.fc-review header { display:flex; justify-content:space-between; gap:.75rem; flex-wrap:wrap; font-size:.85rem; }
.fc-review p { overflow-wrap:anywhere; white-space:pre-line; margin:.4rem 0; }
.fc-review-policy { font-size:.85rem!important; }
.fc-review-form { display:grid; gap:1rem; margin:1rem 0; }
.fc-review-form label { display:grid; gap:.4rem; }
.fc-review-form select,.fc-review-form textarea { width:100%; border:1px solid var(--fc-line); border-radius:.65rem; padding:.7rem; font-size:1rem; background:white; }
.fc-review-form .fc-review-consent { display:flex; align-items:start; gap:.6rem; font-size:.8rem; }
.fc-review-consent input { flex:none; width:1.2rem; height:1.2rem; accent-color:var(--brand-red); }
.fc-review-pagination { display:flex; align-items:center; gap:1rem; }
.fc-review-pagination button { min-height:2.75rem; padding:.5rem; }
.fc-review-empty { padding:1rem; border:1px solid #ecd897; background:#fff8e7; border-radius:.8rem; }
.fc-review-empty h2 { margin:.6rem 0; }
.fc-google-rating { display:grid; gap:.75rem; max-width:42rem; margin-block:2rem 3rem; padding:1.5rem; border:1px solid var(--fc-line); border-radius:1rem; background:#fff; }
.fc-google-rating[hidden] { display:none; }
.fc-site .fc-google-rating h2 { font-size:1.5rem; margin:.5rem 0; color:#171717; }
.fc-site .fc-google-rating p { font-size:.85rem; margin:0; }
.fc-google-source { font:400 14px/1.5 "Nunito",system-ui,sans-serif; font-style:normal; letter-spacing:normal; white-space:nowrap; color:#5e5e5e; }
.fc-site .fc-google-score { font-size:1.8rem; color:#171717; font-weight:600; }
.fc-google-score>span { color:#1467ae; }
.fc-google-score small { font-size:.85rem; font-weight:500; }
.fc-google-actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.fc-google-actions a { min-height:2.75rem; display:inline-flex; align-items:center; text-decoration:underline; font-size:.85rem; }
.fc-google-note a { text-decoration:underline; }
.fc-detail-dock .fc-button { gap:1rem; }
.fc-site .fc-quantity input { color:#171717; background:transparent; font-weight:700; }
.fc-cart-dock { display:none; }
@media (max-width:1023px), (max-width:1439px) and (pointer:coarse) {
  .fc-site.fc-has-detail-dock,.fc-site.fc-has-cart-dock { padding-bottom:calc(var(--fc-nav-height) + 5.5rem + env(safe-area-inset-bottom)); }
  .fc-site .fc-detail-dock { position:fixed; bottom:calc(var(--fc-nav-height) + env(safe-area-inset-bottom)); left:0; right:0; z-index:98; display:flex; flex-wrap:nowrap; gap:.6rem; padding:.7rem max(.7rem,env(safe-area-inset-right)) .7rem max(.7rem,env(safe-area-inset-left)); margin:0; background:#fff; border-top:1px solid var(--fc-line); box-shadow:0 -4px 18px #202f390c; }
  .fc-detail-dock .fc-button { flex:1; min-width:0; justify-content:space-between; padding:.8rem; font-size:.85rem; }
  .fc-detail-dock .fc-button strong { white-space:nowrap; }
  .fc-detail-dock .fc-quantity { flex:none; border-radius:2rem; background:#fff0f0; border:1px solid #dbe9ed; }
  .fc-detail-dock .fc-quantity button { width:2.75rem; min-width:2.75rem; }
  .fc-detail-dock .fc-quantity input { width:2rem; min-width:0; padding:0; appearance:textfield; }
  .fc-detail-dock input::-webkit-inner-spin-button { appearance:none; }
  .fc-site .fc-cart-dock:not([hidden]) { display:flex; gap:.85rem; align-items:center; position:fixed; inset:auto .6rem calc(var(--fc-nav-height) + env(safe-area-inset-bottom) + .5rem); z-index:98; padding:.7rem 1rem; min-height:3.5rem; border-radius:1rem; color:#fff; background:var(--brand-red); box-shadow:0 3px 14px #10545c29; }
  .fc-cart-dock [data-cart-dock-count] { display:grid; place-items:center; border-radius:50%; min-width:2rem; height:2rem; background:white; color:var(--brand-red); font-weight:600; }
  .fc-cart-dock strong { margin-left:auto; }
}
@media (max-width:767px) {
  .fc-site .fc-menu-section { background:var(--fc-cream); }
  .fc-site .fc-menu-section .fc-page-heading h1 { color:#171717; font-family:"Signika",system-ui,sans-serif; font-weight:700; letter-spacing:-.04em; }
  .fc-site .fc-menu-note,.fc-site .fc-result-count { color:var(--fc-muted)!important; }
  .fc-site .fc-category { color:#282f35; border-color:var(--fc-line); background:white; }
  .fc-site .fc-category[aria-pressed=true] { background:var(--brand-red); color:white; border-color:var(--brand-red); }
  .fc-site .fc-products:not(.fc-featured) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
  .fc-site .fc-products:not(.fc-featured) .fc-product { display:flex; flex-direction:column; padding:0; border-radius:1rem; }
  .fc-site .fc-products:not(.fc-featured) .fc-product-image { min-height:0; aspect-ratio:1.25; border-radius:0; background:#dae6f1; }
  .fc-site .fc-products:not(.fc-featured) .fc-product-image img { width:100%; height:100%; object-fit:contain; }
  .fc-site .fc-products:not(.fc-featured) .fc-product-body { padding:.65rem; }
  .fc-site .fc-products:not(.fc-featured) h3 { font-size:clamp(.95rem,4vw,1.25rem); line-height:1.25; margin:0; }
  .fc-site .fc-product .fc-product-description { display:none; }
  .fc-site .fc-product .fc-rating { font-size:.75rem; gap:.25rem; margin:0; }
  .fc-site .fc-products:not(.fc-featured) .fc-product-bottom { flex-wrap:wrap; gap:.4rem; }
  .fc-site .fc-products:not(.fc-featured) .fc-product-price { color:#171717; font-size:1.1rem; }
  .fc-site .fc-products:not(.fc-featured) .fc-button { font-size:.75rem; min-height:2.75rem; padding:.5rem .65rem; border-radius:2rem; }
  .fc-detail-image { border-radius:1rem; }
  .fc-detail-dock .fc-button { flex-direction:column; justify-content:center; gap:.15rem; }
  .fc-detail-dock .fc-button span { font-size:.8rem; }
  .fc-site .fc-option { border-radius:.8rem; }
  .fc-site .fc-google-rating { padding:1.1rem; }
}
@media (max-width:359px) {
  .fc-site .fc-products:not(.fc-featured) { grid-template-columns:1fr; }
  .fc-site .fc-products:not(.fc-featured) .fc-product { display:grid; grid-template-columns:40% minmax(0,1fr); }
  .fc-site .fc-products:not(.fc-featured) .fc-product-image { height:100%; aspect-ratio:auto; }
}
/* the kept rating's star row, on every page that carries the Google box (the feed's own rule is
   in storefront-feed.css, which only the home page loads) */
.fc-google-rating .fc-google-stars { display:inline-block; font-size:1.3rem; letter-spacing:.06em; line-height:1; margin:.15rem 0 .5rem; }
.fc-google-rating .fc-google-stars>span { background:linear-gradient(90deg,#fbbc04 var(--star-fill),#c9cbd1 var(--star-fill)); background-clip:text; -webkit-background-clip:text; color:transparent; }

/* The Google box as a compact review badge (owner, 2026-09-26, from a reference card): the brand's
   deep red, a small Google G in a white circle, the rating, overlapping round faces beside the count,
   and two small pill buttons. No paragraph of small print; the attribution line appears only when
   the live Google rating is loaded. */
.fc-site .fc-google-rating[data-google-configured] {
  display:grid; gap:1.1rem; max-width:27rem; margin-inline:auto; padding:1.25rem 1.3rem 1.15rem;
  /* light (owner, 2026-09-26: the deep red was too strong on the eye): the brand's golden glow as a
     soft cream, the brand red kept for the count and the actions */
  border:1px solid #f1dcb1; border-radius:1.15rem; color:#0c192b;
  background:linear-gradient(135deg,#fffaf0 0%,#fff1d6 100%);
  box-shadow:0 12px 26px -20px #1d628c66;
}
.fc-gr-top { display:flex; align-items:center; gap:.8rem; }
.fc-gr-logo { flex:none; width:2.6rem; height:2.6rem; border-radius:50%; background:#fff; display:grid; place-items:center; box-shadow:0 2px 8px #1d628c22; }
.fc-gr-g { width:1.35rem; height:1.35rem; }
.fc-site .fc-google-rating .fc-gr-top h2 { margin:0; font:700 1.15rem/1.2 "Nunito",system-ui,sans-serif; letter-spacing:-.01em; color:#0c192b; }
.fc-site .fc-google-rating .fc-gr-score { display:flex; align-items:center; gap:.4rem; margin:.15rem 0 0; font-size:.85rem; color:#0c192b; }
.fc-gr-score strong { font-size:.95rem; }
.fc-google-rating .fc-gr-score .fc-google-stars { display:inline-block; margin:0; font-size:.95rem; letter-spacing:.04em; }
.fc-google-rating .fc-gr-score .fc-google-stars>span { background:linear-gradient(90deg,#fbbc04 var(--star-fill),#d9d2c3 var(--star-fill)); background-clip:text; -webkit-background-clip:text; color:transparent; }
.fc-gr-proof { display:flex; align-items:center; gap:.9rem; }
.fc-gr-faces { display:flex; flex:none; }
.fc-gr-faces>img, .fc-gr-faces>span { width:2.75rem; height:2.75rem; border-radius:50%; border:2px solid #fff; margin-left:-.7rem; object-fit:cover; background:#d2e0ec; box-shadow:0 2px 6px #0004; }
.fc-gr-faces>:first-child { margin-left:0; }
.fc-gr-faces>span { display:grid; place-items:center; color:#fff; font:700 1rem/1 "Nunito",system-ui,sans-serif; }
.fc-gr-proof strong { display:block; font:800 2rem/1 "Nunito",system-ui,sans-serif; letter-spacing:-.02em; color:var(--brand-red); }
.fc-gr-proof span { display:block; margin-top:.2rem; font-size:.82rem; color:#396073; }
.fc-gr-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.fc-site .fc-google-rating .fc-gr-pill {
  display:inline-flex; align-items:center; gap:.3rem; min-height:2rem; width:auto; margin:0; padding:.3rem .85rem;
  border:1px solid var(--brand-red); border-radius:2rem; background:transparent; color:var(--brand-red);
  font:600 .78rem/1.2 "Nunito",system-ui,sans-serif; text-decoration:none; cursor:pointer;
}
.fc-site .fc-google-rating .fc-gr-pill-solid { background:var(--brand-red); border-color:var(--brand-red); color:#fff; }
.fc-site .fc-google-rating .fc-gr-pill:hover { background:#1d628c12; }
.fc-site .fc-google-rating .fc-gr-pill-solid:hover { background:var(--brand-yellow,#ffc222); border-color:var(--brand-yellow,#ffc222); color:#0c192b; }
.fc-site .fc-google-rating .fc-gr-note { margin:-.4rem 0 0; font-size:.68rem; color:#396073; }
.fc-site .fc-google-rating .fc-gr-note a { color:var(--brand-red); text-decoration:underline; }
.fc-google-rating .fc-demo-tag { font-size:.62rem; }
/* iPads and wider: the phone's narrow card left empty space on both sides (owner, 2026-09-26), so the
   badge takes the full width in one row: the Google name and rating, the faces and the count behind a
   thin divider, the two buttons at the right end. */
@media (min-width:768px) {
  .fc-site .fc-google-rating[data-google-configured] {
    max-width:none; grid-template-columns:auto auto 1fr; align-items:center; gap:.75rem 2rem; padding:1.35rem 1.75rem;
  }
  .fc-gr-proof { padding-left:2rem; border-left:1px solid #e8cf9f; }
  .fc-gr-actions { justify-content:flex-end; }
  .fc-site .fc-google-rating .fc-gr-note { grid-column:1 / -1; margin:0; }
}
/* 2026-09-26, owner: six faces instead of three, and the two buttons small everywhere, never breaking
   their words (on an iPad held upright "Write a / review" broke onto two lines). From 768 to 1023px the
   buttons take their own row under the rating, so the faces and the count keep their room; from 1024px
   the badge is one row again. */
.fc-gr-faces>img, .fc-gr-faces>span { width:2.3rem; height:2.3rem; margin-left:-.62rem; border-width:2px; }
.fc-gr-faces>:first-child { margin-left:0; }
.fc-site .fc-google-rating .fc-gr-pill { min-height:1.8rem; padding:.22rem .75rem; font-size:.74rem; white-space:nowrap; flex:none; }
.fc-gr-actions { gap:.45rem; }
@media (max-width:380px) { .fc-gr-faces>img, .fc-gr-faces>span { width:2.05rem; height:2.05rem; margin-left:-.6rem; } }
@media (min-width:768px) and (max-width:1023px) {
  .fc-site .fc-google-rating[data-google-configured] { grid-template-columns:auto 1fr; }
  .fc-gr-actions { grid-column:1 / -1; justify-content:flex-start; }
}
@media (min-width:768px) { .fc-gr-faces>img, .fc-gr-faces>span { width:2.5rem; height:2.5rem; margin-left:-.7rem; } }
/* beside six faces on a phone the line breaks: evenly, never one word left alone */
.fc-gr-proof span { text-wrap:balance; }
/* Phones and upright iPads (owner, 2026-09-26): the count stands to the right of the faces and its
   caption runs under them; on a phone the two buttons sit centred at the foot. From 1024px the one-row
   badge is unchanged. */
@media (max-width:1023px) {
  .fc-gr-proof { display:grid; grid-template-columns:auto auto; grid-template-areas:"faces count" "cap cap"; justify-content:start; align-items:center; column-gap:1rem; row-gap:.5rem; }
  .fc-gr-faces { grid-area:faces; }
  .fc-gr-proof>div:not(.fc-gr-faces) { display:contents; }
  .fc-gr-proof strong { grid-area:count; }
  .fc-gr-proof span { grid-area:cap; margin-top:0; }
}
@media (max-width:767px) {
  .fc-gr-actions { justify-content:center; }
}
/* The owner's mockups, 2026-09-26:
   phone: the faces at the left, the count at the right with its caption right-aligned under it in two
   lines, the buttons centred at the foot;
   upright iPad: the right half holds, centred one under another, the count, its caption and the faces;
   the Google name, the rating and the buttons stay at the left. */
@media (max-width:767px) {
  .fc-gr-proof { grid-template-columns:auto 1fr; grid-template-areas:"faces text"; justify-content:stretch; }
  .fc-gr-proof>div:not(.fc-gr-faces) { display:block; grid-area:text; justify-self:end; text-align:right; }
  .fc-gr-proof span { max-width:9.5rem; margin:.2rem 0 0 auto; line-height:1.25; }
}
@media (min-width:768px) and (max-width:1023px) {
  .fc-gr-proof { grid-template-columns:1fr; grid-template-areas:"count" "cap" "faces"; justify-items:center; justify-content:stretch; text-align:center; row-gap:.3rem; }
  .fc-gr-faces { margin-top:.45rem; }
}
@media (min-width:768px) and (max-width:1023px) {
  /* the buttons stay under the Google name at the left; the count, caption and faces stand beside
     both rows at the right */
  .fc-site .fc-google-rating[data-google-configured] { grid-template-areas:"top proof" "acts proof"; row-gap:1rem; }
  .fc-gr-top { grid-area:top; }
  .fc-gr-proof { grid-area:proof; align-self:center; }
  .fc-gr-actions { grid-area:acts; grid-column:auto; }
}
