/* Shared Benmore design tokens and site chrome. Page layouts opt into the type scale. */
.v2 {  --ds-font: var(--v2-font);
  --ds-hero: clamp(2.75rem, 6.4vw, 6rem);
  --ds-display: clamp(2.5rem, 4.4vw, 4.5rem);
  --ds-heading: clamp(2rem, 3.4vw, 3.5rem);
  --ds-compact-heading: clamp(1.25rem, 1.75vw, 1.75rem);
  --ds-card-heading: clamp(1.375rem, 1.65vw, 1.75rem);
  --ds-feature-heading: clamp(1.75rem, 2.2vw, 2.25rem);
  --ds-lead: clamp(1.0625rem, 1.3vw, 1.25rem);
  --ds-copy: clamp(1rem, 1.2vw, 1.125rem);
  --ds-body: 1rem;
  --ds-label: .875rem;
  --ds-meta: .8125rem;
  --ds-button: .9375rem;
  --ds-section-gap: clamp(56px, 6vw, 96px);
  --ds-section-inset: clamp(28px, 5vw, 80px);
  --ds-heading-gap: clamp(24px, 2.5vw, 40px);
  --ds-card-padding: clamp(24px, 2.2vw, 36px);
  --ds-grid-gap: 16px;
  --ds-radius: var(--v2-radius);
  --ds-radius-inner: var(--v2-radius-sm);
  --ds-control-radius: 999px;
  --ds-control-height: 48px;
  --ds-control-compact: 44px;
  --ds-ease: var(--v2-ease);
  --ds-fast: 180ms;
  --ds-hover: 280ms;
  --ds-reveal: 700ms;
  --ds-reveal-distance: 20px;
  font-family: var(--ds-font);
}
.v2 :is(button, input, select, textarea) { font-family: var(--ds-font); }
.v2 body .btn {
  min-height: var(--ds-control-height); height: var(--ds-control-height); max-width: 100%;
  padding: 0 24px; gap: 12px; border: 1px solid transparent; border-radius: var(--ds-control-radius);
  font: 500 var(--ds-button)/1.2 var(--ds-font); letter-spacing: -.01em;
  transition: background var(--ds-hover) var(--ds-ease), color var(--ds-hover) var(--ds-ease), border-color var(--ds-hover) var(--ds-ease), transform var(--ds-hover) var(--ds-ease);
}
.v2 :is(.btn.btn-sm, .nav .btn) {
  height: var(--ds-control-compact); min-height: var(--ds-control-compact); padding-inline: 20px; font-size: var(--ds-label);
}
.v2 body .btn-ghost { border-color: currentColor; }
.v2 body .btn-soft { background: #fff; color: var(--v2-fg); }
.v2 body .btn-soft:hover { background: var(--v2-bg); }
.v2 body .btn > span[aria-hidden] {
  display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
  padding: 0; flex: none; border-radius: 0; background: transparent; color: inherit; font-size: 1.1rem;
  transition: transform var(--ds-hover) var(--ds-ease);
}
.v2 body .btn:hover > span[aria-hidden] { transform: translate(2px, -2px); }
.v2 :is(.row-ctrl button, .review-source) {
  width: var(--ds-control-compact); height: var(--ds-control-compact);
  min-width: var(--ds-control-compact); min-height: var(--ds-control-compact);
  border-radius: var(--ds-control-radius); border: 1px solid var(--v2-line);
  font: 400 1.1rem/1 var(--ds-font);
  transition: background var(--ds-hover) var(--ds-ease), opacity var(--ds-hover) var(--ds-ease), border-color var(--ds-hover) var(--ds-ease);
}
.v2 .row-ctrl { gap: 8px; }
.v2 .row-ctrl svg { width: 18px; height: 18px; }
.v2 :is(a, button, summary, [tabindex="0"]):focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 4px; }
.v2 footer .foot { padding-block: var(--ds-section-gap) 48px; gap: 32px; }
.v2 footer .foot h4 { font-size: var(--ds-label); line-height: 1.5; }
.v2 footer .foot :is(li a, .foot-brand p) { font-size: var(--ds-label); line-height: 1.6; }
.v2 footer .foot-brand small { font-size: var(--ds-meta); }
.v2 footer .seo-footer {
  display: grid; gap: 24px; padding-block: 32px 48px;
  font-size: var(--ds-label); line-height: 1.6;
}
.v2 footer .seo-footer nav { align-items: center; gap: 12px 28px; }
.v2 footer .seo-footer nav > span { color: var(--v2-dark-muted); }
.v2 footer .seo-footer > p { margin: 0; color: var(--v2-dark-muted); }
.v2 footer .seo-footer > p a { color: var(--v2-dark-fg); }
.v2 .nav { transition: background var(--ds-hover) var(--ds-ease), color var(--ds-hover) var(--ds-ease), backdrop-filter var(--ds-hover) var(--ds-ease); }

.v2 .nav :is(.btn, .nav-burger, .drawer-close) { border-radius: var(--ds-control-radius); }
.v2 .nav.on-dark :is(a, button):focus-visible, .v2 footer :is(a, button):focus-visible { outline-color: #a8c6ff; }
.v2 footer .seo-footer a { color: inherit; text-underline-offset: 4px; }
.v2 footer .seo-footer a:hover { text-decoration: underline; }
.v2 footer .seo-footer { border-top: 1px solid var(--v2-dark-line); }
.v2 footer .seo-footer nav { display: flex; flex-wrap: wrap; }
@media (max-width: 860px) {
  .v2 { --ds-card-padding: 24px; --ds-reveal-distance: 14px; }
}
@media (max-width: 600px) {
  .v2 footer .seo-footer { padding-block: 28px 40px; }
  .v2 footer .seo-footer nav > span { flex-basis: 100%; }
}
@media (max-width: 480px) {
  .v2 { --ds-radius: 18px; --ds-display: clamp(2.25rem, 9.5vw, 2.75rem); }
  .v2 .nav .btn { padding-inline: 14px; font-size: var(--ds-meta); }
}
@media (hover: none) { .v2 body .btn:hover { transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html.v2, .v2 .track { scroll-behavior: auto; }
  .v2 :is(.btn, .btn > span[aria-hidden], .nav) { transition: none; }
  .v2 body .btn:hover, .v2 body .btn:hover > span[aria-hidden] { transform: none; }
}
