/* Neighbors Cocktail v2 — additions and overrides (after original style.css) */
:root {
  --font-sans: system-ui, -apple-system, 'Segoe UI', 'Noto Sans', Arial, sans-serif;
  --font-display: 'Segoe UI', 'Noto Sans', Georgia, serif;
  --gold-nav: #986822;
  --gold-light: #f1c47a;
}
html, body { font-family: var(--font-sans); font-kerning: normal; text-rendering: optimizeLegibility; }
h1, h2, h3, .product-card__name, .quote-banner blockquote, .closing h2, .mood-card h3, .story-signature { font-family: var(--font-display); letter-spacing: -.025em; }
button, input, summary, textarea { font-family: var(--font-sans); }
.nav { gap: clamp(14px, 2.2vw, 34px); }
.nav__link { color: var(--gold-nav); font-size: 15px; font-weight: 750; line-height: 1.4; letter-spacing: .01em; white-space: nowrap; }
.nav__link:hover, .nav__link.is-active { color: #c08937; }
.nav__link::after { height: 2px; background: #c08937; }
.header__cta { min-width: 154px; font-size: 12px; }
.header__inner { gap: 18px; }
.brand { width: 145px; }
.product-card__image-wrap { aspect-ratio: 1 / 1.03; border-radius: 12px; background: #f2e9dc; }
.product-card__image { object-fit: cover; }
.product-card__image-mark { position: absolute; right: 13px; bottom: 14px; font-size: 9px; letter-spacing: 1.2px; color: rgba(82, 50, 19, .5); font-weight: 900; pointer-events: none; }
.product-card__description { overflow-wrap: anywhere; }
.product-card__name { font-weight: 650; letter-spacing: -.035em; }
.product-card__bottom { gap: 12px; }
.menu-note { font-size: 11px; }

/* Testimonials use a center-focused coverflow of 5 on desktop / 3 on mobile. */
.reviews-section { background: radial-gradient(ellipse at 50% 0%, #39281d 0%, #211a16 48%, #161311 100%); color: #fff9ef; overflow: hidden; padding: 110px 0 94px; position: relative; }
.reviews-section::before { content: ''; position: absolute; width: 600px; height: 600px; border: 1px solid rgba(227, 181, 113, .12); border-radius: 50%; left: 50%; top: 28%; transform: translate(-50%,-50%); pointer-events: none; }
.reviews-heading { text-align: center; position: relative; z-index: 1; }
.reviews-heading .eyebrow { justify-content: center; }
.reviews-heading h2 { font-size: clamp(39px, 5.2vw, 68px); line-height: 1.14; margin: 22px 0 15px; font-weight: 660; }
.reviews-heading h2 em { color: var(--gold-light); font-style: normal; }
.reviews-heading > p { color: #cfc2b5; font-size: 15px; }
.reviews-heading .reviews-demo-note { width: fit-content; margin: 14px auto 0; border: 1px solid #73604c; padding: 8px 14px; font-size: 11px; border-radius: 50px; color: #cbbeb0; }
.reviews-heading .reviews-demo-note strong { color: #f4d6a7; }
.reviews-carousel { position: relative; margin-top: 30px; }
.reviews-stage { position: relative; width: 100%; height: 372px; max-width: 1220px; margin: 0 auto; touch-action: pan-y; user-select: none; outline: 0; }
.reviews-stage:focus-visible { outline: 2px solid #e0ad68; outline-offset: 3px; }
.review-card {
  --step: clamp(190px, 20.2vw, 258px);
  position: absolute; z-index: calc(10 - var(--distance)); left: 50%; top: 23px; display: flex; flex-direction: column;
  width: clamp(233px, 25.2vw, 325px); height: 302px;
  padding: 23px 21px 20px;
  background: linear-gradient(145deg, #302722, #241d19 75%);
  border: 1px solid rgba(229, 179, 110, .17); border-radius: 22px; color: #f7f0e9;
  box-shadow: 0 22px 48px rgba(0,0,0,.18); cursor: pointer;
  transform: translateX(calc(-50% + var(--offset) * var(--step))) translateY(calc(var(--distance) * 17px)) scale(calc(1 - var(--distance) * .13));
  opacity: calc(1 - var(--distance) * .25);
  transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .5s, border-color .3s, background .3s;
  transform-origin: center center;
  overflow: hidden;
}
.review-card.is-centered { z-index: 15; border-color: rgba(240, 189, 116, .65); background: linear-gradient(150deg, #3b2e25, #29201b 80%); box-shadow: 0 22px 62px rgba(0,0,0,.3), 0 0 0 1px rgba(225,183,126,.08); }
.review-card.is-centered:hover { border-color: #f0bc73; }
.review-card:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }
.review-card__person { display: flex; gap: 12px; align-items: center; position: relative; min-height: 56px; }
.review-card__avatar { width: 52px; height: 52px; flex: none; border-radius: 50%; object-fit: cover; border: 1px solid #ae845a; }
.review-card__person-info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.review-card__person-info strong { color: #f9f2e8; font-size: 14px; font-weight: 800; line-height: 1.2; }
.review-card__person-info small { color: #ac9c8a; font-size: 10px; }
.review-card__quote-icon { margin-left: auto; align-self: flex-start; color: #896741; font-size: 58px; font-family: Georgia,serif; line-height: .75; }
.review-card__stars { color: #f2b84b; letter-spacing: 3px; font-size: 19px; margin: 19px 0 12px; }
.review-card__text { font-size: 13px; line-height: 1.7; font-weight: 550; color: #e8dfd7; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }
.review-card.is-expanded { height: auto; min-height: 302px; z-index: 16; }
.review-card.is-expanded .review-card__text { display: block; overflow: visible; }
.review-card__date { margin-top: auto; padding-top: 12px; font-size: 10px; color: #998c7f; letter-spacing: .04em; }
.reviews-controls { display: flex; gap: 27px; justify-content: center; align-items: center; margin: 10px 0 0; position: relative; z-index: 20; }
.reviews-arrow { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #947351; background: rgba(255,255,255,.03); color: #f6d3a0; font-size: 24px; border-radius: 50%; transition: .25s ease; }
.reviews-arrow:hover:not(:disabled) { background: #bc8746; border-color: #bc8746; color: #19130e; transform: translateY(-2px); }
.reviews-arrow:disabled { opacity: .3; cursor: default; }
.reviews-counter { font-size: 13px; font-weight: 700; color: #ddc9af; letter-spacing: .22em; font-variant-numeric: tabular-nums; }
.reviews-hint { color: #928578; text-align: center; font-size: 11px; margin: 18px 0 0; }
.reviews-none { position: absolute; left: 50%; top: 45%; transform: translate(-50%,-50%); text-align: center; width: 90%; }

.visit-section { background: #f2ebdf; padding: 96px 0; }
.visit-inner { display: grid; grid-template-columns: 1.1fr 1fr; gap: min(10vw, 130px); align-items: center; }
.visit-inner h2 { margin: 18px 0; font-size: clamp(37px, 4vw, 58px); line-height: 1.1; font-weight: 670; }
.visit-inner h2 em { font-style: normal; color: #a76d2f; }
.visit-inner > div > p { line-height: 1.85; color: #736255; max-width: 480px; font-size: 14px; }
.visit-details { display: grid; grid-template-columns: 1fr 1fr; gap: 25px 18px; border: 1px solid #ddceb9; border-radius: 17px; padding: 31px; background: #fffaf2; box-shadow: 0 15px 40px #3d211311; }
.visit-details > div { display: flex; flex-direction: column; gap: 9px; }
.visit-details > div:first-child { grid-column: 1 / -1; }
.visit-details span { color: #aa7848; font-size: 10px; letter-spacing: 1.2px; font-weight: 850; }
.visit-details strong { font-size: 14px; line-height: 1.5; font-weight: 660; overflow-wrap: anywhere; }
.visit-links { display: flex!important; flex-direction: row!important; gap: 12px!important; flex-wrap: wrap; grid-column: 1/-1; }
.visit-links a { color: #7c542b; border-bottom: 1px solid #a67643; font-size: 12px; font-weight: 750; padding-bottom: 4px; }

@media (max-width: 1100px) {
  .nav__link { font-size: 15px; padding: 14px 0; }
  .nav.is-open { box-shadow: 0 15px 20px #26150916; }
  .header__cta { font-size: 11px; }
}
@media (max-width: 740px) {
  .reviews-section { padding: 80px 0 70px; }
  .reviews-heading h2 { font-size: clamp(38px, 8.4vw, 49px); }
  .reviews-heading > p { font-size: 13px; }
  .reviews-heading .reviews-demo-note { font-size: 10px; line-height: 1.5; border-radius: 12px; }
  .reviews-stage { width: calc(100vw - 38px); height: 365px; }
  .review-card { --step: clamp(185px, 66vw, 290px); width: min(74vw, 310px); min-height: 299px; height: 299px; top: 20px; padding: 22px 19px; transform: translateX(calc(-50% + var(--offset) * var(--step))) translateY(calc(var(--distance) * 18px)) scale(calc(1 - var(--distance) * .24)); opacity: calc(1 - var(--distance) * .33); }
  .review-card__person-info strong { font-size: 13px; }
  .review-card__text { font-size: 12px; }
  .reviews-controls { margin-top: 3px; }
  .visit-section { padding: 74px 0; }
  .visit-inner { grid-template-columns: 1fr; gap: 27px; }
  .visit-details { padding: 23px; }
  .header__cta { display: none; }
}
@media (max-width: 380px) {
  .review-card { width: 78vw; }
  .review-card__avatar { width: 46px; height: 46px; }
  .visit-details { grid-template-columns: 1fr; }
  .visit-details > div { grid-column: 1/-1; }
}
@media (prefers-reduced-motion: reduce) {
  .review-card { transition: none; }
  .reviews-arrow { transition: none; }
}
/* Broad browser compatibility: explicit coverflow positions, no CSS multiplication. */
.review-card--offset-neg2 { transform: translateX(calc(-50% - var(--step) - var(--step))) translateY(34px) scale(.74); opacity: .50; }
.review-card--offset-neg1 { transform: translateX(calc(-50% - var(--step))) translateY(17px) scale(.87); opacity: .75; }
.review-card--offset-0 { transform: translateX(-50%) translateY(0) scale(1); opacity: 1; }
.review-card--offset-1 { transform: translateX(calc(-50% + var(--step))) translateY(17px) scale(.87); opacity: .75; }
.review-card--offset-2 { transform: translateX(calc(-50% + var(--step) + var(--step))) translateY(34px) scale(.74); opacity: .50; }
@media (max-width: 740px) {
  .review-card--offset-neg1 { transform: translateX(calc(-50% - var(--step))) translateY(18px) scale(.76); opacity: .67; }
  .review-card--offset-1 { transform: translateX(calc(-50% + var(--step))) translateY(18px) scale(.76); opacity: .67; }
}
/* A quieter focus treatment for the carousel container; focused cards stay distinct. */
.reviews-stage:focus-visible { outline: none; box-shadow: inset 0 0 0 1px rgba(224, 173, 104, .22); }
@media (max-width: 740px) { .review-card { --step: clamp(158px, 50vw, 220px); } }
