/* GOOD CHIPS — reviews
   Ported from the supplied static build. Colors and type sizes resolve from
   global theme settings via the --gc-* custom properties emitted by
   components/theme-css-var.html. */

.gc-reviews { position:relative; overflow:hidden; padding:clamp(92px,12dvh,160px) 0 clamp(100px,13dvh,170px); background:radial-gradient(ellipse 55% 34% at 70% 28%,rgba(255,255,255,.62),transparent 72%),var(--gc-cream); color:var(--gc-ink); font-family:var(--gc-product-serif); }
.gc-review-intro { width:min(88vw,1480px); margin:0 auto clamp(58px,8dvh,96px); }
.gc-review-eyebrow { margin:0 0 18px; font:400 calc((22px) * var(--gc-type-scale, 1))/1 var(--gc-sans); letter-spacing:.24em; text-transform:uppercase; }
.gc-review-title { margin:0; max-width:1050px; font:600 calc((clamp(70px,7.8vw,132px)) * var(--gc-type-scale, 1))/.88 var(--gc-product-serif); letter-spacing:-.055em; }
.gc-review-title .italic { font-style:italic; }
.gc-review-good { font-family:var(--gc-display); font-weight:900; }
.gc-review-good span[aria-hidden] span:nth-child(1) {color:var(--gc-teal)}
.gc-review-good span[aria-hidden] span:nth-child(2) {color:var(--gc-korean)}
.gc-review-good span[aria-hidden] span:nth-child(3) {color:var(--gc-cheddar)}
.gc-review-good span[aria-hidden] span:nth-child(4) {color:#c0371a}
.gc-review-proof { width:min(88vw,1480px); margin:0 auto clamp(48px,7dvh,82px); display:grid; grid-template-columns:minmax(220px,.55fr) minmax(420px,1.45fr); gap:clamp(42px,7vw,110px); align-items:center; }
.gc-review-rating strong { display:block; font:900 calc((clamp(62px,6vw,96px)) * var(--gc-type-scale, 1))/.85 var(--gc-display); }
.gc-review-stars { display:block; margin:16px 0 10px; color:var(--gc-cheddar); font-size:calc((20px) * var(--gc-type-scale, 1)); letter-spacing:.13em; }
.gc-review-rating small,
.gc-featured cite { font:500 calc((12px) * var(--gc-type-scale, 1))/1.4 var(--gc-sans); letter-spacing:.12em; text-transform:uppercase; }
.gc-featured { position:relative; min-height:160px; margin:0; padding-left:clamp(24px,3vw,46px); border-left:1px solid rgba(var(--gc-ink-rgb),.2); }
.gc-featured p { margin:0 0 20px; font:600 italic calc((clamp(27px,2.6vw,42px)) * var(--gc-type-scale, 1))/1.13 var(--gc-product-serif); transition:opacity .35s ease,transform .35s ease; }
.gc-featured cite { font-style:normal; }
.gc-featured.is-changing p,
.gc-featured.is-changing cite { opacity:0; transform:translateY(-8px); }
.gc-review-dots { display:flex; gap:8px; margin-top:22px; }
.gc-review-dots { gap:0; margin-left:-13px; flex-wrap:wrap; }
.gc-review-dots button { position:relative; width:34px; height:34px; padding:0; border:0; background:transparent; cursor:pointer; }
.gc-review-dots button::before { content:""; position:absolute; left:50%; top:50%; width:8px; height:8px; border-radius:50%; background:rgba(var(--gc-ink-rgb),.18); transform:translate(-50%,-50%); transition:transform .2s ease,background .2s ease; }
.gc-review-dots button.is-active::before { background:var(--gc-cheddar); transform:translate(-50%,-50%) scale(1.25); }
.gc-review-hint { margin:0 0 22px; text-align:center; font:600 calc((10px) * var(--gc-type-scale, 1))/1 var(--gc-sans); letter-spacing:.18em; text-transform:uppercase; color:rgba(var(--gc-ink-rgb),.56); }
.gc-review-wall { position:relative; overflow:hidden; padding:8px 0; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.gc-review-row { display:flex; width:max-content; gap:clamp(16px,2vw,30px); padding:13px 0; animation-timing-function:linear; animation-iteration-count:infinite; animation-play-state:paused; will-change:transform; }
.gc-review-wall.is-active .gc-review-row { animation-play-state:running; }
.gc-review-wall.is-reading .gc-review-row { animation-play-state:paused; }
.gc-review-row.to-left { animation-name:gcReviewLeft; }
.gc-review-row.to-right { animation-name:gcReviewRight; }
.gc-review-row[data-depth="far"] { animation-duration:104s; font-size:calc((.88em) * var(--gc-type-scale, 1)); }
.gc-review-row[data-depth="mid"] { animation-duration:78s; font-size:calc((.94em) * var(--gc-type-scale, 1)); }
.gc-review-row[data-depth="near"] { animation-duration:58s; }
@keyframes gcReviewLeft { to { transform:translate3d(-50%,0,0); } }
@keyframes gcReviewRight { from { transform:translate3d(-50%,0,0); } to { transform:translate3d(0,0,0); } }
.gc-review-card { --focus:0; flex:0 0 clamp(280px,25vw,390px); min-height:245px; display:flex; flex-direction:column; gap:13px; padding:clamp(24px,2.2vw,34px); border:1px solid rgba(255,255,255,calc(.52 + var(--focus)*.32)); border-radius:18px; background:rgba(255,255,255,.34); box-shadow:0 calc(12px + var(--focus)*10px) calc(35px + var(--focus)*20px) rgba(74,55,28,calc(.07 + var(--focus)*.06)); backdrop-filter:blur(17px) saturate(110%); transform:scale(calc(.91 + var(--focus)*.09)); filter:blur(calc((1 - var(--focus))*2.4px)); opacity:calc(.35 + var(--focus)*.65); cursor:pointer; }
.gc-review-stars-card { color:var(--gc-cheddar); letter-spacing:.12em; }
.gc-review-card h3 { margin:0; font:700 calc((24px) * var(--gc-type-scale, 1))/1.05 var(--gc-display); }
.gc-review-card p { margin:0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; font-size:calc((17px) * var(--gc-type-scale, 1)); line-height:1.48; }
.gc-review-meta { margin-top:auto; padding-top:15px; border-top:1px solid rgba(var(--gc-ink-rgb),.12); font:600 calc((10px) * var(--gc-type-scale, 1))/1.55 var(--gc-sans); letter-spacing:.11em; text-transform:uppercase; }
.gc-review-flavor { display:block; margin-top:5px; }
.gc-review-flavor.seasalt {color:var(--gc-teal)}
.gc-review-flavor.koreanbbq {color:var(--gc-korean)}
.gc-review-flavor.cheddar {color:#a9780f}
.gc-review-overlay { position:fixed; z-index:1200; inset:0; display:grid; place-items:center; padding:24px; opacity:0; visibility:hidden; background:rgba(49,42,33,.34); backdrop-filter:blur(10px); transition:opacity .28s ease,visibility .28s; }
.gc-review-overlay.is-open { opacity:1; visibility:visible; }
.gc-review-dialog { position:relative; width:min(92vw,680px); max-height:86dvh; overflow:auto; padding:clamp(34px,5vw,64px); border:1px solid rgba(255,255,255,.78); border-radius:24px; background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(var(--gc-cream-rgb),.68)); box-shadow:0 34px 90px rgba(49,38,22,.25); transform:translateY(14px) scale(.985); transition:transform .28s ease; }
.gc-review-overlay.is-open .gc-review-dialog {transform:none}
.gc-review-close { position:absolute; top:16px; right:16px; width:42px; height:42px; border:1px solid rgba(var(--gc-ink-rgb),.2); border-radius:50%; background:rgba(255,255,255,.48); font-size:calc((24px) * var(--gc-type-scale, 1)); cursor:pointer; }
.gc-review-dialog .gc-review-card-full {display:grid;gap:16px}
.gc-review-dialog h3 {margin:0;font:700 calc((clamp(34px,5vw,54px)) * var(--gc-type-scale, 1))/1 var(--gc-display)}
.gc-review-dialog p {margin:0;font-size:calc((20px) * var(--gc-type-scale, 1));line-height:1.55}
.gc-review-dialog .gc-review-meta {font-size:calc((11px) * var(--gc-type-scale, 1))}
@media (hover:hover) and (pointer:fine) {
.gc-review-close:hover { color:var(--gc-teal); background:rgba(var(--gc-teal-rgb),.09); }
.gc-review-dots button:hover::before { background:var(--gc-cheddar); transform:translate(-50%,-50%) scale(1.3); }
}
@media (max-aspect-ratio:9/10) {
.gc-review-eyebrow { font-size:calc((11px) * var(--gc-type-scale, 1)); }
.gc-review-intro,
.gc-review-proof { width:calc(100% - 40px); }
.gc-review-title { font-size:calc((clamp(54px,15vw,76px)) * var(--gc-type-scale, 1)); }
.gc-review-proof { grid-template-columns:1fr; gap:30px; }
.gc-featured { min-height:175px; padding:26px 0 0; border-left:0; border-top:1px solid rgba(var(--gc-ink-rgb),.18); }
.gc-review-card { flex-basis:72vw; min-height:230px; }
.gc-review-row[data-depth="far"] { display:none; }
.gc-review-row[data-depth="mid"] { animation-duration:96s; }
.gc-review-row[data-depth="near"] { animation-duration:76s; }
.gc-review-dialog { width:calc(100vw - 24px); padding:54px 26px 32px; }
}
@media (prefers-reduced-motion:reduce) {
.gc-review-wall { overflow-x:auto; -webkit-mask-image:none; mask-image:none; scroll-snap-type:x proximity; }
.gc-review-row { animation:none!important; transform:none!important; }
.gc-review-row[data-depth="far"],
.gc-review-row[data-depth="mid"] { display:none; }
.gc-review-card { --focus:1!important; scroll-snap-align:center; }
}
.gc-review-overlay-backdrop { position:absolute; inset:0; }
.gc-review-clone { display:contents; }

/* ==========================================================================
   Section-driven support
   ========================================================================== */

/* The merchant's wall-speed setting is applied as a multiplier on top of the
   packaged per-row durations, so the depth relationship between the three rows
   is preserved. */

.gc-page .gc-review-row[data-depth='far'] {
  animation-duration: calc(104s * var(--gc-review-speed, 1));
}

.gc-page .gc-review-row[data-depth='mid'] {
  animation-duration: calc(78s * var(--gc-review-speed, 1));
}

.gc-page .gc-review-row[data-depth='near'] {
  animation-duration: calc(58s * var(--gc-review-speed, 1));
}

@media (max-width: 900px) {
  .gc-page .gc-review-row[data-depth='mid'] {
    animation-duration: calc(96s * var(--gc-review-speed, 1));
  }

  .gc-page .gc-review-row[data-depth='near'] {
    animation-duration: calc(76s * var(--gc-review-speed, 1));
  }
}


