/* Shared review-template design candidate. Package data/routing script unchanged. */
@font-face {
  font-family: Oswald;
  src: url("../assets/preview-oswald-500.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
:root {
  --hero-face: Oswald, "Arial Narrow", sans-serif;
  --headline: Oswald, "Arial Narrow", sans-serif;
  --display: Inter, "Helvetica Neue", Arial, sans-serif;
  --text-muted: #a7aeb8;
}
html { color-scheme: dark; scrollbar-color: #555a60 #050607; }
body::after { display: none; }
::selection { color: #050607; background: #8edaff; }
.review-site { background: #050607; }
.review-site [data-reveal] { opacity: 1; transform: none; transition: none; }
.review-site h1,.review-site h2,.review-site h3 { text-transform: capitalize; }
.review-site .shop-announcement { min-height: 36px; background: #0d1013; color: #c7ccd2; font: 500 12px/1.5 var(--display); text-transform: none; letter-spacing: .025em; border-bottom: 1px solid var(--line); }
.review-site .shop-announcement i { background: var(--cyan); box-shadow: none; animation: none; }
.review-site .shop-header__location { font: 500 13px/1.4 var(--display); letter-spacing: .035em; }
.review-site .shop-drawer { max-height: calc(100dvh - 148px); overflow-y: auto; }
.review-site .shop-drawer__contact a { display: grid; gap: 6px; min-height: 44px; overflow-wrap: anywhere; }
.review-site .shop-kicker,.review-site .shop-preview-tag { display: none; }
.review-site .review-breadcrumb { margin-bottom: 32px; min-height: 54px; font: 500 13px/1.5 var(--display); letter-spacing: 0; text-transform: none; }
.review-site .review-layout { grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 40px; }
.review-site .review-visual { min-height: min(680px,calc(100svh - 48px)); border-color: #343b44; border-radius: 20px; box-shadow: none; }
.review-site .review-visual::after { display: none; }
.review-site .review-visual__badge { padding: 8px 10px; border-color: #66717a; border-radius: 6px; background: #0e1419; color: #f7f8fa; font: 500 12px/1.5 var(--display); letter-spacing: .025em; backdrop-filter: none; }
.review-site .review-visual__copy { left: 28px; right: 28px; bottom: 32px; }
.review-site .review-visual__copy small { color: #d1e2ed; font: 500 12px/1.5 var(--display); letter-spacing: .025em; }
.review-site .review-visual__copy strong { font: 500 clamp(36px,4vw,52px)/1.12 var(--headline); letter-spacing: -.015em; text-transform: capitalize; }
.review-site .review-visual__copy > span { color: #bfcbd5; font: 500 13px/1.5 var(--display); letter-spacing: 0; text-transform: none; }
.review-site .review-panel { padding: 36px; border-color: #343b44; border-radius: 20px; background: #111419; box-shadow: none; }
.review-site .review-heading h1 { font: 500 clamp(44px,4.8vw,62px)/1.12 var(--headline); letter-spacing: -.015em; }
.review-site .review-heading > p { margin-top: 20px; font-size: 17px; line-height: 1.65; }
.review-site .review-price { margin-block: 28px 0; padding: 24px 0; gap: 24px; border: 0; border-block: 1px solid #39434c; border-radius: 0; background: none; box-shadow: none; align-items: center; }
.review-site .review-price > span { gap: 10px; flex-shrink: 0; }
.review-site .review-price small { color: #bfcbd5; font: 500 12px/1.5 var(--display); letter-spacing: 0; text-transform: none; }
.review-site .review-price strong { color: #f7f8fa; font: 600 56px/1.1 var(--display); letter-spacing: -.025em; text-shadow: none; font-variant-numeric: tabular-nums; }
.review-site .review-price p { max-width: 25ch; color: #c7d0d7; font-size: 15px; line-height: 1.6; }
.review-site .review-specs { margin-bottom: 36px; border: 0; border-bottom: 1px solid #39434c; border-radius: 0; background: none; }
.review-site .review-specs div { padding: 18px 12px; }
.review-site .review-specs div:first-child { padding-left: 0; }
.review-site .review-specs dt { color: #a7b2bd; font: 500 12px/1.5 var(--display); letter-spacing: 0; text-transform: capitalize; }
.review-site .review-specs dd { font: 600 15px/1.5 var(--display); font-variant-numeric: tabular-nums; }
.review-site .review-lists { grid-template-columns: 1fr; gap: 32px; }
.review-site .review-lists h2 { margin-bottom: 18px; font: 500 30px/1.2 var(--headline); letter-spacing: -.01em; }
.review-site .review-lists section + section { padding-top: 28px; border-top: 1px solid #39434c; }
.review-site .review-lists ul,.review-site .review-boundary ul { gap: 14px; }
.review-site .review-lists li,.review-site .review-boundary li { padding-left: 20px; color: #cdd5dd; font-size: 16px; line-height: 1.65; }
.review-site .review-lists li::before,.review-site .review-boundary li::before { top: .7em; width: 7px; height: 2px; border: 0; border-radius: 0; background: #8edaff; box-shadow: none; }
.review-site .review-boundary { margin-block: 32px; }
.review-site .review-boundary summary { font: 600 16px/1.5 var(--display); text-transform: capitalize; }
.review-site .review-profile-note { margin: 0; padding: 0; border: 0; background: none; color: #cdd5dd; font-size: 16px; line-height: 1.65; }
.review-site .review-profile-note strong { display: block; margin-bottom: 12px; font: 500 28px/1.2 var(--headline); text-transform: capitalize; }
.review-site .review-next { margin-block: 20px 24px; color: #bfcbd5; font-size: 15px; line-height: 1.65; }
.review-site .review-button { min-height: 60px; padding: 16px 20px; gap: 18px; border-color: #46758b; border-radius: 14px; background: linear-gradient(180deg,rgba(0,174,255,.18),rgba(0,174,255,.07)); box-shadow: none; transform: none; font: 600 16px/1.5 var(--display); letter-spacing: 0; }
.review-site .review-button:hover { background: rgba(0,174,255,.22); box-shadow: none; transform: none; }
.review-site .review-button:active { transform: translateY(1px); }
.review-site .review-question { margin-top: 48px; padding: 32px 0 0; grid-template-columns: 1fr 1fr auto; gap: 32px; border: 0; border-top: 1px solid #39434c; border-radius: 0; background: none; }
.review-site .review-question small { display: none; }
.review-site .review-question strong { font: 500 28px/1.25 var(--headline); text-transform: capitalize; }
.review-site .review-question p { font-size: 16px; line-height: 1.65; }
.review-site .review-question a { font: 600 15px/1.5 var(--display); background: #0e1419; border-color: #39434c; }
.review-site .shop-footer { font: 500 12px/1.5 var(--display); letter-spacing: .035em; }
.review-site a:focus-visible,.review-site button:focus-visible,.review-site summary:focus-visible { outline: 2px solid #8edaff; outline-offset: 4px; }
@media (max-width: 1040px) {
  .review-site .review-layout { grid-template-columns: 1fr; gap: 28px; }
  .review-site .review-visual { min-height: 360px; }
  .review-site .review-visual > img { object-position: center 40%; }
  .review-site .review-question { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .review-site .review-price { flex-direction: row; align-items: center; }
  .review-site .review-price p { max-width: 24ch; }
  .review-site .review-specs div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; }
  .review-site .review-specs dt { margin: 0; font-size: 14px; }
  .review-site .review-question { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 620px) {
  .review-site .shop-shell { width: calc(100% - 40px); }
  .review-site .review-visual { min-height: 320px; }
  .review-site .review-visual__copy { left: 24px; right: 24px; bottom: 26px; }
  .review-site .review-panel { padding: 28px 24px; }
  .review-site .review-heading h1 { font-size: 44px; }
  .review-site .review-price { flex-direction: column; align-items: flex-start; gap: 14px; }
  .review-site .review-price p { max-width: none; }
  .review-site .review-button { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) {
  .review-site *, .review-site *::before,.review-site *::after { animation: none !important; transition: none !important; }
}
