/* Actions / native disabled state / no JS required for links. */
.av-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--av-space-2); min-height: var(--av-button-height); padding: var(--av-space-3) var(--av-space-6); border: 1px solid var(--av-button-bg); border-radius: var(--av-button-radius); color: var(--av-button-fg) !important; background: var(--av-button-bg); font-size: var(--av-text-sm); font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; transition: background var(--av-duration), border-color var(--av-duration); }
.av-button:hover:not(:disabled) { background: var(--av-color-hover); border-color: var(--av-color-hover); }
.av-button:active:not(:disabled) { background: var(--av-color-active); }
.av-button--accent { --av-button-bg: var(--av-color-action); --av-button-fg: var(--av-color-on-brand); }
.av-button--accent:hover:not(:disabled) { background: var(--av-color-action-hover); border-color: var(--av-color-action-hover); }
.av-button--accent:active:not(:disabled) { background: var(--av-color-action-active); border-color: var(--av-color-action-active); }
.av-button--secondary { --av-button-bg: var(--av-color-bg); --av-button-fg: var(--av-color-text); border-color: var(--av-color-control); }
.av-button--secondary:hover:not(:disabled), .av-button--secondary:active:not(:disabled) { color: var(--av-color-brand) !important; background: var(--av-color-tint); border-color: var(--av-color-brand); }
.av-button--quiet { --av-button-bg: transparent; --av-button-fg: var(--av-color-text); }
.av-button--quiet:hover:not(:disabled), .av-button--quiet:active:not(:disabled) { color: var(--av-color-brand) !important; background: var(--av-color-soft); border-color: transparent; }
.av-button--small { --av-button-height: 2.75rem; padding: var(--av-space-2) var(--av-space-4); }
.av-button--block { width: 100%; }
.av-button:disabled { color: var(--av-color-muted) !important; background: var(--av-color-soft); border-color: var(--av-color-line); cursor: not-allowed; }
.av-badge { display: inline-flex; align-items: center; padding: var(--av-space-1) var(--av-space-2); border-radius: var(--av-radius-sm); background: var(--av-color-soft); font-size: var(--av-text-xs); font-weight: 600; line-height: 1.5; }
.av-badge--brand { color: var(--av-color-brand); background: var(--av-color-tint); }
.av-badge--info { color: var(--av-color-info); background: var(--av-color-info-tint); }
.av-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: var(--av-space-2) var(--av-space-3); border: 1px solid var(--av-color-control); border-radius: var(--av-radius-chip); background: var(--av-color-bg); font-size: var(--av-text-sm); text-decoration: none; }
.av-chip:hover { border-color: var(--av-color-brand); color: var(--av-color-brand); }
.av-chip[aria-pressed="true"], .av-chip:has(input:checked) { color: var(--av-color-brand); background: var(--av-color-tint); border-color: var(--av-color-brand); font-weight: 700; }
.av-chip:has(input:focus-visible) { outline: 3px solid var(--av-color-focus); outline-offset: 3px; }
.av-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--av-space-2) var(--av-space-4); color: var(--av-color-muted); font-size: var(--av-text-xs); }
/* Header uses native details so its small-screen navigation also works without JS. */
.av-header { position: relative; z-index: 10; border-top: 3px solid var(--av-color-brand); border-bottom: 1px solid var(--av-color-line); background: var(--av-color-bg); }
.av-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--av-space-5); min-height: 80px; }
.av-logo { display: inline-flex; align-items: baseline; gap: var(--av-space-2); white-space: nowrap; font: italic 700 1.75rem/1 var(--av-font-latin); text-decoration: none; }
.av-logo small { color: var(--av-color-muted); font: var(--av-text-xs)/1 var(--av-body-font); letter-spacing: .08em; }
.av-nav { display: flex; gap: var(--av-space-6); }
.av-nav a { padding-block: var(--av-space-6); border-bottom: 2px solid transparent; font-size: var(--av-text-sm); text-decoration: none; }
.av-nav a:hover, .av-nav a[aria-current] { color: var(--av-color-brand); border-bottom-color: var(--av-color-brand); }
.av-menu { display: none; }
.av-menu summary { list-style: none; }
.av-menu summary::-webkit-details-marker { display: none; }
.av-menu nav { position: absolute; top: 100%; inset-inline: 0; display: grid; background: var(--av-color-bg); border-bottom: 1px solid var(--av-color-control); padding: var(--av-space-4) var(--av-gutter); }
.av-menu nav a { display: block; padding: var(--av-space-3); text-decoration: none; border-bottom: 1px solid var(--av-color-line); }
.av-breadcrumb { display: flex; flex-wrap: wrap; gap: var(--av-space-2); padding-block: var(--av-space-5); font-size: var(--av-text-xs); color: var(--av-color-muted); }
.av-breadcrumb a::after { content: "/"; display: inline-block; margin-left: var(--av-space-2); color: var(--av-color-muted); }
.av-footer { padding-block: var(--av-space-12) var(--av-space-6); border-top: 1px solid var(--av-color-line); background: var(--av-color-soft); }
.av-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--av-space-8); }
.av-footer nav { display: grid; align-content: start; gap: var(--av-space-3); font-size: var(--av-text-sm); }
.av-footer__legal { margin-top: var(--av-space-10); padding-top: var(--av-space-5); border-top: 1px solid var(--av-color-line); font-size: var(--av-text-xs); color: var(--av-color-muted); }
/* Media frames: no destructive cropping of cover images. */
.av-media { display: grid; place-items: center; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--av-card-radius); background: var(--av-color-soft); color: var(--av-color-muted); font: var(--av-text-xs)/1.5 var(--av-font-mono); text-align: center; }
.av-media img { width: 100%; height: 100%; object-fit: contain; }
.av-media--wide { aspect-ratio: 16 / 9; }
.av-media--square { aspect-ratio: 1; }
.av-media--portrait img { object-fit: cover; object-position: center top; }
.av-review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--av-space-8); }
.av-review { display: grid; grid-template-columns: minmax(100px, 35%) minmax(0,1fr); gap: var(--av-card-gap); padding-bottom: var(--av-space-6); border-bottom: 1px solid var(--av-color-line); }
.av-review h3 { margin-block: var(--av-space-3) var(--av-space-2); font-size: var(--av-text-lg); line-height: 1.7; }
.av-review a { text-decoration: none; }
.av-review a:hover h3 { color: var(--av-color-brand); text-decoration: underline; }
.av-review__link { display: contents; }
.av-review__link:focus-visible { outline: none !important; }
.av-review:has(.av-review__link:focus-visible) { outline: 3px solid var(--av-color-focus); outline-offset: 4px; }
.av-review--vertical { display: block; }
.av-review--vertical .av-media { margin-bottom: var(--av-space-4); }
.av-related-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--av-space-6); }
.av-feature { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: var(--av-space-12); }
.av-feature--reverse { grid-template-columns: 1fr 1.2fr; }
.av-person-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: var(--av-space-6); }
.av-person { min-width: 0; width: 100%; max-width: var(--av-person-thumb); }
.av-person a { display: block; text-decoration: none; }
.av-person h3 { margin-top: var(--av-space-3); font-size: var(--av-text-base); }
.av-person a:hover h3 { color: var(--av-color-brand); text-decoration: underline; }
.av-profile { display: grid; grid-template-columns: var(--av-profile-image) minmax(0,1fr); gap: var(--av-space-12); align-items: start; }
.av-profile .av-media { width: var(--av-profile-image); }
.av-profile-inline { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: var(--av-space-5); padding-top: var(--av-space-6); border-top: 1px solid var(--av-color-line); }
.av-facts { display: grid; grid-template-columns: minmax(6rem, .35fr) minmax(0,1fr); border-top: 1px solid var(--av-color-line); font-size: var(--av-text-sm); }
.av-facts dt, .av-facts dd { margin: 0; padding-block: var(--av-space-3); border-bottom: 1px solid var(--av-color-line); }
.av-facts dt { color: var(--av-color-muted); padding-right: var(--av-space-3); }
.av-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid var(--av-color-line); }
.av-stats > div { padding: var(--av-space-4); }
.av-stats dt { font-size: var(--av-text-xs); color: var(--av-color-muted); }
.av-stats dd { margin: 0; font-weight: 600; }
/* Search and filtering: standard GET forms remain available in the theme. */
.av-finder { padding: var(--av-space-6); background: var(--av-color-soft); border-radius: var(--av-radius-md); }
.av-form-row { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr) auto; align-items: end; gap: var(--av-space-4); }
.av-label { display: block; margin-bottom: var(--av-space-2); font-size: var(--av-text-sm); font-weight: 600; }
.av-input { display: block; width: 100%; min-width: 0; min-height: 48px; padding: var(--av-space-3); border: 1px solid var(--av-input-border); border-radius: var(--av-radius-sm); background: var(--av-color-bg); font-size: var(--av-text-base); line-height: 1.5; }
.av-input::placeholder { color: var(--av-color-muted); opacity: 1; }
.av-input[aria-invalid="true"] { border: 2px solid var(--av-color-error); }
.av-input:disabled { color: var(--av-color-muted); background: var(--av-color-soft); cursor: not-allowed; }
.av-error { margin-top: var(--av-space-2); color: var(--av-color-error); font-size: var(--av-text-sm); }
.av-filter { margin: 0; padding: 0; border: 0; }
.av-stack > .av-filter { margin-top: var(--av-space-5); }
.av-filter legend { margin-bottom: var(--av-space-3); font-size: var(--av-text-sm); font-weight: 600; }
.av-filter input { accent-color: var(--av-color-brand); }
.av-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--av-space-4); margin-block: var(--av-space-6); }
.av-toolbar .av-input { width: auto; }
.av-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--av-space-2); margin-top: var(--av-space-8); }
.av-pagination :where(a,button,span) { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: var(--av-space-2); border: 1px solid var(--av-color-control); border-radius: var(--av-radius-sm); background: var(--av-color-bg); text-decoration: none; font-size: var(--av-text-sm); }
.av-pagination [aria-current="page"] { color: var(--av-color-on-brand); background: var(--av-color-brand); border-color: var(--av-color-brand); }
.av-pagination :where(a,button):hover { border-color: var(--av-color-brand); }
.av-pagination button:disabled { color: var(--av-color-muted); border-color: var(--av-color-line); cursor: not-allowed; }
.av-empty { padding: var(--av-space-10); background: var(--av-color-soft); border: 1px dashed var(--av-color-control); text-align: center; }
.av-notice { padding: var(--av-space-5); border-left: 3px solid var(--av-color-info); color: var(--av-color-info); background: var(--av-color-info-tint); font-size: var(--av-text-sm); }
.av-notice--error { color: var(--av-color-error); border-color: var(--av-color-error); background: var(--av-color-tint); }
.av-accordion { border-block: 1px solid var(--av-color-line); }
.av-accordion summary { padding: var(--av-space-4); font-weight: 600; }
.av-accordion > div { padding: 0 var(--av-space-4) var(--av-space-5); }
.av-summary { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(0,1.3fr); gap: var(--av-space-8); padding: var(--av-space-8); background: var(--av-color-soft); }
.av-cta { padding: var(--av-space-8); border-top: 3px solid var(--av-color-brand); background: var(--av-color-tint); text-align: center; }
.av-cta .av-cluster { justify-content: center; }
.av-provider-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--av-space-3); }
.av-gallery { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--av-space-3); }
.av-gallery a { text-decoration: none; }
.av-fixed-action { display: none; }
@media (max-width: 960px) { .av-feature { gap: var(--av-space-8); } .av-person-grid { gap: var(--av-space-4); } .av-nav { gap: var(--av-space-4); } }
@media (max-width: 760px) {
  .av-header__inner { min-height: 68px; flex-wrap: wrap; gap: var(--av-space-3); padding-block: var(--av-space-3); } .av-nav { display: none; } .av-menu { display: block; margin-left: auto; }
  .av-header .av-logo { font-size: 1.5rem; }
  .av-review-grid, .av-feature, .av-feature--reverse, .av-summary, .av-profile { grid-template-columns: 1fr; }
  .av-review { grid-template-columns: 88px minmax(0,1fr); --av-card-gap: var(--av-space-4); }
  .av-review h3 { font-size: var(--av-text-base); }
  .av-related-grid { grid-template-columns: 1fr; }
  .av-review--vertical { display: grid; }
  .av-person-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--av-space-6) var(--av-space-3); }
  .av-person h3 { font-size: var(--av-text-sm); }
  .av-profile { --av-profile-image: 11.25rem; gap: var(--av-space-6); }
  .av-profile > .av-media { margin-inline: auto; }
  .av-form-row { grid-template-columns: 1fr; }
  .av-finder, .av-summary, .av-cta { padding: var(--av-space-5); }
  .av-summary > .av-media { width: min(100%, 280px); margin-inline: auto; }
  .av-provider-links { grid-template-columns: 1fr; }
  .av-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .av-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .av-footer__grid > :first-child { grid-column: 1/-1; }
  .av-site--fixed { --av-fixed-clearance: calc(104px + env(safe-area-inset-bottom, 0px)); }
  .av-site--fixed .av-fixed-action { display: block; position: fixed; inset: auto 0 0; z-index: 30; padding: var(--av-space-3) var(--av-gutter) calc(var(--av-space-3) + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--av-color-line); background: var(--av-color-bg); }
}
@media (max-width: 380px) { .av-stats { grid-template-columns: 1fr; } .av-stats > div + div { border-top: 1px solid var(--av-color-line); } }
