@charset "UTF-8";
/* Fanyu site extension components (works with base.css tokens) */
:root { --fy-border: #e2e8f0; --fy-panel: #f5f8fc; }

/* form controls */
.field { width: 100%; border: 1px solid var(--fy-border); border-radius: 0.5rem; background: #fff;
  padding: 0.625rem 0.875rem; font-size: 0.875rem; line-height: 1.5; color: #0f172a; transition: border-color .2s, box-shadow .2s; }
.field:focus { outline: none; border-color: #1a2f5a; box-shadow: 0 0 0 3px rgba(26,47,90,.08); }
.field::placeholder { color: #94a3b8; }
textarea.field { resize: vertical; }
select.field { appearance: auto; }
.field[aria-invalid="true"] { border-color: #d0342c; }

/* item cards */
.item-card { display: block; background: #fff; border: 1px solid var(--fy-border); border-radius: 0.5rem;
  overflow: hidden; box-shadow: 0 1px 2px rgba(15,38,63,.05); transition: box-shadow .25s, transform .25s, border-color .25s; }
.item-card:hover { box-shadow: 0 14px 30px rgba(15,38,63,.12); transform: translateY(-3px); border-color: rgba(208,52,44,.35); }

/* quote cart badge */
.quote-badge { position: absolute; top: -6px; right: -8px; min-width: 18px; height: 18px; border-radius: 9px;
  background: #d0342c; color: #fff; font-size: 11px; line-height: 18px; text-align: center; padding: 0 4px; font-weight: 700; }

/* sizing calculator output */
.calc-out { border: 1px solid var(--fy-border); border-radius: .5rem; background: var(--fy-panel); padding: 1rem 1.25rem; }
.calc-out h4 { font-weight: 700; color: #1a2f5a; margin-bottom: .5rem; font-size: .95rem; }
.calc-out table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.calc-out td, .calc-out th { padding: .45rem .5rem; border-bottom: 1px dashed var(--fy-border); text-align: left; }
.calc-out th { color: #64748b; font-weight: 500; white-space: nowrap; }
.calc-out tr:last-child td { border-bottom: 0; }

/* footer fact rows */
.foot-facts p { line-height: 1.75; }

/* table helpers */
.min-w-xl { min-width: 36rem; }
.min-w-2xl { min-width: 42rem; }
.text-text-primary { color: #0f172a; }

/* mobile action bar */
.mobile-action-bar a, .mobile-action-bar button { -webkit-tap-highlight-color: transparent; }

/* print: hide navigation */
@media print { nav, .mobile-action-bar { display: none !important; } }

/* cart quantity stepper */
.qty-ctrl { display: inline-flex; align-items: center; border: 1px solid var(--fy-border); border-radius: .375rem; overflow: hidden; }
.qty-ctrl button { width: 30px; height: 30px; background: var(--fy-panel); color: #1a2f5a; font-weight: 700; }
.qty-ctrl button:hover { background: #e8eef7; }
.qty-ctrl input { width: 46px; height: 30px; text-align: center; border: 0; font-size: .85rem; }

/* horizontal snap track on small screens (intentional swipe, not overflow bug) */
@media (max-width: 767px) {
  .proof-track { overflow-x: auto; grid-auto-columns: minmax(17rem, 84vw); }
}

/* brand mark sizing overrides (keep >=44px rendered, audit requires >=40px) */
.brand-logo-shell { width: 2.75rem !important; height: 2.75rem !important; }
.hero-logo-chip { width: 2.5rem !important; height: 2.5rem !important; }
.hero-logo-chip img { width: 2.125rem !important; height: 2.125rem !important; }
.hero-stage .hero-logo-chip img { width: 2.75rem !important; height: 2.75rem !important; }

@media (min-width: 768px) {
  .hero-logo-chip { width: 3rem !important; height: 3rem !important; }
  .hero-stage .hero-logo-chip img { width: 2.8rem !important; height: 2.8rem !important; }
}

@media (max-width: 767px) {
  .hero-logo-chip { width: 2.6rem !important; height: 2.6rem !important; }
  .hero-stage .hero-logo-chip img { width: 2.4rem !important; height: 2.4rem !important; }
}

/* mobile hero chip: ensure rendered mark >= 40px (audit min-size) */
@media (max-width: 767px) {
  .hero-stage .hero-logo-chip { width: 3rem !important; height: 3rem !important; }
  .hero-stage .hero-logo-chip img { width: 2.75rem !important; height: 2.75rem !important; }
}

/* product images are studio shots on white — override the dark gradient base */
.item-card .media-panel { background: #fff !important; }
