/* Shared finishing layer: preserve the approved palette, type, and composition. */
:root {
  --control-hit: 44px;
  --control-radius: 9px;
  --control-duration: 160ms;
  --control-ease: cubic-bezier(.23, 1, .32, 1);
  --control-border: #7d8c84;
  --focus-color: #947331;
  --link-underline: .2em;
}

html { scroll-behavior: auto; }
body.live-page { font-family: var(--sans); line-height: 1.75; }
body.live-page :is(button, input, select, textarea) { font-family: inherit; }
body.live-page ::selection { background: var(--gold); color: var(--navy); }
body.live-page :is(input, textarea) { caret-color: var(--ink); }
body.live-page main [id] { scroll-margin-top: 7rem; }

/* Static content stays visible; movement is reserved for a deliberate press. */
body.live-page *,
body.live-page *::before,
body.live-page *::after { animation: none; transition: none; }

body.live-page :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--focus-color);
  outline-offset: 4px;
  transition: none;
}

body.live-page :is(main p, main dd) a:not([class]),
body.live-page main li > a:not([class]):not(:has(*)) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: var(--link-underline);
  text-decoration-skip-ink: auto;
}

/* The image keeps its optical size inside a comfortable home-link target. */
.review-header .review-wordmark {
  flex: 0 0 280px;
  display: flex;
  align-items: center;
  min-height: var(--control-hit);
}
.review-header .review-mobile-toggle {
  min-width: var(--control-hit);
  justify-content: center;
  padding-inline: 11px;
  border-radius: var(--control-radius);
  cursor: pointer;
  list-style: none;
}
.review-header .review-mobile-toggle::-webkit-details-marker { display: none; }
.review-header .review-mobile-menu { display: none; }
.review-header .review-mobile-menu[open] .review-mobile-toggle,
.review-header .review-mobile-toggle[aria-expanded="true"] {
  background: #e8ece5;
}
.review-header :is(.review-desktop-nav, .review-mobile-nav) a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: #947331;
  text-decoration-thickness: 2px;
  text-underline-offset: .45em;
}
.review-header .review-mobile-nav { overscroll-behavior: contain; }
.review-header .review-mobile-nav a { min-width: var(--control-hit); }
@media (prefers-reduced-motion: no-preference) {
  .review-header .review-mobile-nav[data-pointer-open] {
    opacity: 1;
    transform: none;
    transition:
      opacity var(--control-duration) var(--control-ease),
      transform var(--control-duration) var(--control-ease);
  }
  @starting-style {
    .review-header .review-mobile-nav[data-pointer-open] {
      opacity: 0;
      transform: translateY(-6px);
    }
  }
  .review-header .review-mobile-nav[data-pointer-open]:focus-within {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.review-header .review-nav-cta[aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: .25em;
}

/* Keep the wordmark prominent without compressing navigation or touch controls. */
@media (min-width: 1280px) and (max-width: 1399px) {
  .review-header .review-wordmark { flex-basis: 260px; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .review-header .review-wordmark { flex-basis: 225px; }
}
@media (max-width: 1023px) {
  .review-header { container-type: inline-size; }
  .review-header .review-wordmark { flex-basis: 260px; }
  .review-header .review-header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 76px auto;
    row-gap: 0;
  }
  .review-header .review-wordmark { width: min(260px, 100%); }
  .review-header .review-mobile-menu { display: contents; }
  .review-header .review-mobile-nav {
    width: 100cqi;
    margin-inline: -24px;
  }
}
@media (max-width: 720px) {
  .review-header .review-wordmark { flex-basis: clamp(200px, calc(100vw - 146px), 260px); }
  .review-header .review-header-inner { grid-template-rows: 72px auto; }
  .review-header .review-mobile-nav {
    margin-inline: -20px;
  }
}
@media (max-width: 359px) {
  .review-header .review-wordmark { flex-basis: 190px; }
  .review-header .review-header-inner { gap: 12px; row-gap: 0; }
  .review-header .review-mobile-nav {
    margin-inline: -16px;
  }
}

/* All filled calls to action share states without changing their labels. */
body.live-page :is(.button, .lh-button, .review-nav-cta, .lr-action-primary,
  .lr-action-secondary, .lr-download-link, .live-contact-form button) {
  min-height: 48px;
  border-radius: var(--control-radius);
  background: var(--control-bg, var(--navy));
  color: var(--control-fg, var(--paper));
  text-decoration: none;
  touch-action: manipulation;
  transform: none;
  transition: none;
}
body.live-page :is(.button-gold, .lh-button-gold, .lr-download-link) {
  --control-bg: var(--gold);
  --control-fg: var(--navy);
  --control-hover: #e8cc92;
}
body.live-page .lr-action-secondary {
  --control-bg: transparent;
  --control-fg: var(--ink);
  --control-hover: #e9ece5;
  border-color: var(--control-border);
}
body.live-page :is(.text-link, .lh-text-link, .live-resource-action) {
  min-height: var(--control-hit);
  text-underline-offset: var(--link-underline);
}
body.live-page :is(.button, .text-link) img { transform: none; }
body.live-page :is(button:disabled, [aria-disabled="true"]) {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
}

/* Match the input's readable size on every device, including mobile Safari. */
.live-contact-form :is(input, select, textarea) {
  min-height: 52px;
  padding: 13px 14px;
  border-color: var(--control-border);
  border-radius: var(--control-radius);
  font-size: 16px;
  line-height: 1.5;
  accent-color: var(--navy);
}
.live-contact-form textarea { min-height: 180px; resize: vertical; }
.live-contact-form :is(input, select, textarea):focus-visible {
  border-color: var(--ink);
}
.live-contact-form :is(input, select, textarea):user-invalid {
  border-color: #947331;
}
.live-contact-form :is(input, textarea)::placeholder { color: var(--muted); opacity: 1; }
.live-contact-form :is(input, select, textarea):disabled { opacity: .6; cursor: not-allowed; }
.live-footer a { text-underline-offset: var(--link-underline); }
body.live-page .live-footer a:focus-visible { outline-color: var(--gold); }

@media (hover: hover) and (pointer: fine) {
  body.live-page :is(.button, .lh-button, .review-nav-cta, .lr-action-primary,
    .lr-action-secondary, .lr-download-link, .live-contact-form button):hover {
    background: var(--control-hover, #293e49);
  }
  body.live-page :is(.text-link, .lh-text-link):hover { border-color: currentColor; }
  body.live-page .live-footer a:hover { color: var(--gold); }
  body.live-page :is(button:disabled, [aria-disabled="true"]):hover {
    background: var(--control-bg, var(--navy));
    transform: none;
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body.live-page :is(.button, .lh-button, .review-nav-cta, .lr-action-primary,
    .lr-action-secondary, .lr-download-link, .live-contact-form button) {
    transition: transform var(--control-duration) var(--control-ease);
  }
  body.live-page :is(.button, .lh-button, .review-nav-cta, .lr-action-primary,
    .lr-action-secondary, .lr-download-link, .live-contact-form button):active:not(:focus-visible):not(:disabled):not([aria-disabled="true"]) {
    transform: scale(.98);
  }
  body.live-page :is(a, button):focus-visible { transition: none; transform: none; }
}

@media (max-width: 1023px) {
  body.live-page main :is(h2, h3) > a,
  body.live-page main :is(.lp-breadcrumb, .lr-breadcrumb, .live-breadcrumb, .lp-lead-copy, .lr-related) a,
  body.live-page main .live-bio-facts dd > a,
  body.live-page main .lr-notes a[href^="#fnref-"] {
    display: inline-flex;
    align-items: center;
    min-height: var(--control-hit);
    min-width: var(--control-hit);
    max-width: 100%;
  }
  .live-footer-column a {
    display: inline-flex;
    align-items: center;
    min-width: var(--control-hit);
    min-height: var(--control-hit);
    padding-block: 8px;
    overflow-wrap: anywhere;
  }
  .live-contact-person > p:last-child a { min-height: var(--control-hit); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.live-page *, body.live-page *::before, body.live-page *::after {
    animation: none !important;
    transition: none !important;
  }
}
