/*
 * American Airlines Vacations — Reusable Design System
 * Version: 1.0
 */

/* ================================================================
   1. DESIGN TOKENS
   ================================================================ */
:root {
  /* Brand and semantic colors */
  --aav-color-navy-900: #0a2a43;
  --aav-color-navy-800: #123b5d;
  --aav-color-blue-700: #005ea8;
  --aav-color-blue-600: #0078d2;
  --aav-color-blue-500: #1889dc;
  --aav-color-blue-200: #b9dcf4;
  --aav-color-blue-100: #e8f4fd;
  --aav-color-blue-50: #f2f8fd;
  --aav-color-red-600: #c8102e;
  --aav-color-red-100: #fdecef;

  --aav-color-ink: #243447;
  --aav-color-muted: #5f6f82;
  --aav-color-subtle: #7b8998;
  --aav-color-border: #d9e3ef;
  --aav-color-border-strong: #b8c7d8;
  --aav-color-surface: #ffffff;
  --aav-color-surface-soft: #f5f8fc;
  --aav-color-surface-muted: #eef2f6;
  --aav-color-black: #111820;
  --aav-color-white: #ffffff;

  --aav-color-success: #168447;
  --aav-color-success-soft: #eaf7ef;
  --aav-color-warning: #9a6700;
  --aav-color-warning-soft: #fff7dd;
  --aav-color-danger: #b42318;
  --aav-color-danger-soft: #fef0ee;

  /* Typography */
  --aav-leading-tight: 1.15;
  --aav-leading-snug: 1.3;
  --aav-leading-normal: 1.55;
  --aav-leading-relaxed: 1.7;

  /* Spacing */
  --aav-space-0: 0;
  --aav-space-1: 0.25rem;
  --aav-space-2: 0.5rem;
  --aav-space-3: 0.75rem;
  --aav-space-4: 1rem;
  --aav-space-5: 1.25rem;
  --aav-space-6: 1.5rem;
  --aav-space-8: 2rem;
  --aav-space-10: 2.5rem;
  --aav-space-12: 3rem;
  --aav-space-16: 4rem;
  --aav-space-20: 5rem;
  --aav-space-24: 6rem;

  /* Sizing and layout */
  --aav-container-sm: 42rem;
  --aav-container-md: 52rem;
  --aav-container-lg: 64rem;
  --aav-container-xl: 72rem;
  --aav-page-gutter: clamp(1rem, 3vw, 1.5rem);
  --aav-content-measure: 68ch;
  --aav-touch-target: 2.75rem;

  /* Shape */
  --aav-radius-none: 0;
  --aav-radius-sm: 0.25rem;
  --aav-radius-md: 0.5rem;
  --aav-radius-lg: 0.75rem;
  --aav-radius-xl: 1rem;
  --aav-radius-pill: 999px;

  /* Elevation */
  --aav-shadow-sm: 0 2px 8px rgba(10, 42, 67, 0.08);
  --aav-shadow-md: 0 8px 22px rgba(10, 42, 67, 0.10);
  --aav-shadow-lg: 0 16px 40px rgba(10, 42, 67, 0.14);
  --aav-shadow-focus: 0 0 0 3px rgba(0, 120, 210, 0.28);

  /* Motion */
  --aav-duration-fast: 160ms;
  --aav-duration-base: 240ms;
  --aav-duration-slow: 420ms;
  --aav-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --aav-ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);

  /* Layering */
  --aav-z-base: 1;
  --aav-z-raised: 10;
  --aav-z-sticky: 100;
  --aav-z-overlay: 500;
}

/* ================================================================
   2. SCOPED RESET AND BASE
   ================================================================ */

.aav-scope {
  color: var(--aav-color-ink);
  line-height: var(--aav-leading-normal);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.aav-scope :where(h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote) {
  margin: 0;
}

.aav-scope :where(ul, ol) {
  padding-inline-start: 1.25rem;
}

.aav-scope :where(img, picture, video, canvas) {
  display: block;
  max-width: 100%;
}

.aav-scope :where(img, video) {
  height: auto;
}

.aav-scope :where(button, input, select, textarea) {
  color: inherit;
  font: inherit;
}

.aav-scope :where(button, summary, [role="button"], a[href]) {
  -webkit-tap-highlight-color: transparent;
}

.aav-scope :where(a) {
  color: inherit;
}

.aav-scope :where([hidden]) {
  display: none !important;
}

.aav-scope :where(:focus-visible) {
  outline: 2px solid transparent;
  box-shadow: var(--aav-shadow-focus);
}

.aav-scope :where(::selection) {
  color: var(--aav-color-navy-900);
  background: var(--aav-color-blue-200);
}

/* ================================================================
   3. CONTAINERS, SECTIONS, AND LAYOUT PRIMITIVES
   ================================================================ */
.aav-container {
  width: min(100% - (var(--aav-page-gutter) * 2), var(--aav-container-xl));
  margin-inline: auto;
}

.aav-container--sm { max-width: var(--aav-container-sm); }
.aav-container--md { max-width: var(--aav-container-md); }
.aav-container--lg { max-width: var(--aav-container-lg); }
.aav-container--xl { max-width: var(--aav-container-xl); }
.aav-container--full { width: 100%; max-width: none; }

.aav-section {padding-block: clamp(1.5rem, 3vw, 3rem)}

.aav-section--sm { padding-block: clamp(2rem, 4vw, 3rem); }
.aav-section--lg { padding-block: clamp(4rem, 8vw, 7rem); }
.aav-section--flush { padding-block: 0; }
.aav-section--white { background: var(--aav-color-surface); }
.aav-section--soft { background: var(--aav-color-surface-soft); }
.aav-section--blue { background: var(--aav-color-blue-50); }
.aav-section--navy { color: var(--aav-color-white); background: var(--aav-color-navy-900); }
.aav-section--navy :where(.aav-display, .aav-h1, .aav-h2, .aav-h3, .aav-h4, .aav-lead, .aav-section-header__copy) { color: var(--aav-color-white); }
.aav-section--navy .aav-eyebrow { color: var(--aav-color-blue-200); }

.aav-stack {
  display: flex;
  flex-direction: column;
  gap: var(--aav-stack-gap, var(--aav-space-6));
}

.aav-stack--sm { --aav-stack-gap: var(--aav-space-3); }
.aav-stack--lg { --aav-stack-gap: var(--aav-space-10); }

.aav-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--aav-cluster-gap, var(--aav-space-3));
}

.aav-cluster--between { justify-content: space-between; }
.aav-cluster--center { justify-content: center; }
.aav-cluster--end { justify-content: flex-end; }

.aav-auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--aav-grid-min, 15rem)), 1fr));
  gap: var(--aav-grid-gap, var(--aav-space-6));
}

.aav-auto-grid--sm { --aav-grid-min: 12rem; --aav-grid-gap: var(--aav-space-4); }
.aav-auto-grid--lg { --aav-grid-min: 18rem; --aav-grid-gap: var(--aav-space-8); }

.aav-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4rem);
}

.aav-sidebar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--aav-space-8);
}

.aav-content-measure { max-width: var(--aav-content-measure); }
.aav-center { margin-inline: auto; }

/* ================================================================
   4. TYPOGRAPHY PRIMITIVES
   ================================================================ */
.aav-display,
.aav-h1,
.aav-h2,
.aav-h3,
.aav-h4 {
  color: var(--aav-heading-color, var(--aav-color-navy-900));
  font-weight: 600;
  line-height: var(--aav-leading-tight);
  text-wrap: balance;
}

.aav-display { letter-spacing: -0.035em; }
.aav-h1 { letter-spacing: -0.025em; }
.aav-h2 { letter-spacing: -0.02em; }
.aav-h3 { line-height: var(--aav-leading-snug); }
.aav-h4 { line-height: var(--aav-leading-snug); }

.aav-eyebrow {
  color: var(--aav-eyebrow-color, var(--aav-color-blue-700));
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.aav-lead {
  max-width: var(--aav-content-measure);
  color: var(--aav-color-muted);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  line-height: var(--aav-leading-relaxed);
}

.aav-body { color: var(--aav-color-ink); }
.aav-body--lg { color: var(--aav-color-ink); }
.aav-small { color: var(--aav-color-muted); }
.aav-caption { color: var(--aav-color-subtle); }

.aav-prose {
  max-width: var(--aav-content-measure);
  color: var(--aav-color-ink);
}

.aav-prose > * + * { margin-block-start: 1em; }
.aav-prose :where(h2, h3, h4) { margin-block-start: 1.6em; }
.aav-prose :where(a) { color: var(--aav-color-blue-700); text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }
.aav-prose :where(a:hover) { color: var(--aav-color-navy-900); }
.aav-prose :where(strong) { color: var(--aav-color-navy-900); }

.aav-section-header {
  display: grid;
  gap: var(--aav-space-3);
  margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.aav-section-header--center {
  justify-items: center;
  margin-inline: auto;
  text-align: center;
}

.aav-section-header__copy {
  max-width: var(--aav-content-measure);
  color: var(--aav-color-muted);
}

/* ================================================================
   5. BUTTONS, LINKS, BADGES, AND ICONS
   ================================================================ */
.aav-btn {
  display: inline-flex;
  min-height: var(--aav-touch-target);
  align-items: center;
  justify-content: center;
  gap: var(--aav-space-2);
  padding: 0.75rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--aav-radius-sm);
   font-weight: 700 !important;
   line-height: 1.2 !important;
  text-align: center;
  text-decoration: none;
  transition:
    background-color var(--aav-duration-fast) var(--aav-ease-standard),
    border-color var(--aav-duration-fast) var(--aav-ease-standard),
    color var(--aav-duration-fast) var(--aav-ease-standard),
    transform var(--aav-duration-fast) var(--aav-ease-standard),
    box-shadow var(--aav-duration-fast) var(--aav-ease-standard);
}

.aav-btn:hover { text-decoration: none; }
.aav-btn:active { transform: translateY(1px); }
.aav-btn[disabled],
.aav-btn[aria-disabled="true"] { cursor: not-allowed; opacity: 0.52; pointer-events: none; }

.aav-btn--primary {color: var(--aav-color-white) !important;background-color: var(--aav-color-blue-600) !important;}
.aav-btn--primary:hover { background-color: var(--aav-color-blue-700) !important; }

.aav-btn--secondary {
  color: var(--aav-color-blue-700);
  border-color: var(--aav-color-blue-600);
  background: var(--aav-color-white);
}
.aav-btn--secondary:hover { color: var(--aav-color-white); background: var(--aav-color-blue-700); border-color: var(--aav-color-blue-700); }

.aav-btn--navy { color: var(--aav-color-white); background: var(--aav-color-navy-900); }
.aav-btn--navy:hover { background: var(--aav-color-navy-800); }

.aav-btn--ghost { color: var(--aav-color-blue-700); background: transparent; }
.aav-btn--ghost:hover { background: var(--aav-color-blue-100); }

.aav-btn--inverse { color: var(--aav-color-navy-900); background: var(--aav-color-white); }
.aav-btn--inverse:hover { background: var(--aav-color-blue-100); }

.aav-btn--text {
  min-height: auto;
  padding: 0;
  border-radius: 0;
  color: var(--aav-color-blue-700);
  background: transparent;
}
.aav-btn--text:hover { color: var(--aav-color-navy-900); text-decoration: underline; text-underline-offset: 0.2em; }

.aav-btn--sm { min-height: 2.25rem; padding: 0.5rem 0.875rem; }
.aav-btn--lg { min-height: 3.25rem; padding: 0.875rem 1.5rem; }
.aav-btn--full { width: 100%; }
.aav-btn--icon { width: var(--aav-touch-target); padding-inline: 0; border-radius: 50%; }

.aav-link {
  color: var(--aav-color-blue-700);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.2em;
}
.aav-link:hover { color: var(--aav-color-navy-900); }

.aav-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--aav-space-2);
  color: var(--aav-color-blue-700);
  font-weight: 700;
  text-decoration: none;
}
.aav-link-arrow:hover { color: var(--aav-color-navy-900); }
.aav-link-arrow .aav-icon { transition: transform var(--aav-duration-fast) var(--aav-ease-standard); }
.aav-link-arrow:hover .aav-icon { transform: translateX(0.2rem); }

.aav-badge,
.aav-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--aav-space-1);
  width: fit-content;
  border-radius: var(--aav-radius-pill);
  font-weight: 700;
  line-height: 1.2;
}

.aav-badge { padding: 0.35rem 0.65rem; color: var(--aav-color-blue-700); background: var(--aav-color-blue-100); }
.aav-badge--navy { color: var(--aav-color-white); background: var(--aav-color-navy-900); }
.aav-badge--red { color: var(--aav-color-red-600); background: var(--aav-color-red-100); }
.aav-badge--success { color: var(--aav-color-success); background: var(--aav-color-success-soft); }

.aav-chip { min-height: 2.25rem; padding: 0.45rem 0.85rem; border: 1px solid var(--aav-color-border); color: var(--aav-color-ink); background: var(--aav-color-white); }
.aav-chip:hover { border-color: var(--aav-color-blue-600); color: var(--aav-color-blue-700); }
.aav-chip[aria-pressed="true"], .aav-chip.is-active { color: var(--aav-color-white); border-color: var(--aav-color-blue-700); background: var(--aav-color-blue-700); }

.aav-icon {
  display: inline-flex;
  width: 1.25em;
  height: 1.25em;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  font-size: 1.25em;
  line-height: 1;
}

.aav-icon-box {
  display: inline-flex;
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: var(--aav-radius-md);
  color: var(--aav-color-blue-700);
  background: var(--aav-color-blue-100);
}

/* ================================================================
   6. MEDIA AND IMAGE HELPERS
   ================================================================ */
.aav-media {
  position: relative;
  overflow: hidden;
  border-radius: var(--aav-radius-md);
  background: var(--aav-color-surface-muted);
}

.aav-media > :where(img, video, picture),
.aav-media > picture > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.aav-aspect-square { aspect-ratio: 1 / 1; }
.aav-aspect-4-3 { aspect-ratio: 4 / 3; }
.aav-aspect-3-2 { aspect-ratio: 3 / 2; }
.aav-aspect-16-9 { aspect-ratio: 16 / 9; }
.aav-aspect-21-9 { aspect-ratio: 21 / 9; }
.aav-object-cover { object-fit: cover !important; }
.aav-object-contain { object-fit: contain !important; }
.aav-object-center { object-position: center !important; }
.aav-object-top { object-position: top !important; }

/* ================================================================
   7. CARDS AND CONTENT TILES
   ================================================================ */
.aav-card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--aav-color-border);
  border-radius: var(--aav-radius-md);
  color: var(--aav-color-ink);
  background: var(--aav-color-surface);
}

.aav-card--elevated { border-color: transparent; box-shadow: var(--aav-shadow-md); }
.aav-card--soft { border-color: transparent; background: var(--aav-color-surface-soft); }
.aav-card--blue { border-color: var(--aav-color-blue-200); background: var(--aav-color-blue-50); }

.aav-card--clickable {
  transition:
    transform var(--aav-duration-base) var(--aav-ease-emphasized),
    box-shadow var(--aav-duration-base) var(--aav-ease-standard),
    border-color var(--aav-duration-base) var(--aav-ease-standard);
}
.aav-card--clickable:hover { transform: translateY(-0.25rem); border-color: var(--aav-color-blue-200); box-shadow: var(--aav-shadow-lg); }
.aav-card--clickable:focus-within { border-color: var(--aav-color-blue-600); box-shadow: var(--aav-shadow-focus); }

.aav-card__media {
  position: relative;
  aspect-ratio: var(--aav-card-ratio, 16 / 10);
  overflow: hidden;
  background: var(--aav-color-surface-muted);
}
.aav-card__media > :where(img, picture, video),
.aav-card__media > picture > img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--aav-duration-slow) var(--aav-ease-standard); }
.aav-card--clickable:hover .aav-card__media img { transform: scale(1.035); }

.aav-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--aav-space-3);
  padding: clamp(1rem, 2.5vw, 1.5rem);
}
.aav-card__title { color: var(--aav-color-navy-900); font-weight: 600; line-height: var(--aav-leading-snug); }
.aav-card__copy { color: var(--aav-color-muted); }
.aav-card__footer { display: flex; align-items: center; justify-content: space-between; gap: var(--aav-space-3); margin-top: auto; padding-top: var(--aav-space-2); }
.aav-card__badge { position: absolute; z-index: var(--aav-z-raised); inset-block-start: var(--aav-space-3); inset-inline-start: var(--aav-space-3); }

.aav-card--overlay { min-height: 24rem; border: 0; color: var(--aav-color-white); background: var(--aav-color-navy-900); }
.aav-card--overlay .aav-card__media { position: absolute; inset: 0; aspect-ratio: auto; }
.aav-card--overlay::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 42, 67, 0.04) 20%, rgba(10, 42, 67, 0.88) 100%); }
.aav-card--overlay .aav-card__body { position: relative; z-index: 2; justify-content: flex-end; }
.aav-card--overlay .aav-card__title,
.aav-card--overlay .aav-card__copy { color: var(--aav-color-white); }

.aav-stretched-link::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
}
.aav-stretched-link:focus-visible { outline: none; box-shadow: none; }

.aav-feature {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: var(--aav-space-4);
}
.aav-feature--center { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
.aav-feature__title { color: var(--aav-color-navy-900); font-weight: 700; line-height: var(--aav-leading-snug); }
.aav-feature__copy { margin-top: var(--aav-space-1); color: var(--aav-color-muted); }

/* ================================================================
   8. HERO, PROMO, STATS, AND CTA PATTERNS
   ================================================================ */
.aav-hero {
  position: relative;
  overflow: hidden;
  background: var(--aav-color-surface-soft);
}

.aav-hero__inner {
  display: grid;
  min-height: var(--aav-hero-min-height, 30rem);
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.aav-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--aav-space-5);
  padding: clamp(2rem, 6vw, 5rem) var(--aav-page-gutter);
}

.aav-hero__media { position: relative; min-height: 18rem; overflow: hidden; }
.aav-hero__media > :where(img, picture, video),
.aav-hero__media > picture > img { width: 100%; height: 100%; object-fit: cover; }
.aav-hero__actions { display: flex; flex-wrap: wrap; gap: var(--aav-space-3); padding-top: var(--aav-space-2); }
.aav-hero--navy { color: var(--aav-color-white); background: var(--aav-color-navy-900); }
.aav-hero--navy :where(.aav-display, .aav-h1, .aav-lead, .aav-eyebrow) { color: var(--aav-color-white); }

.aav-promo-band,
.aav-cta-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: var(--aav-space-6);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border-radius: var(--aav-radius-lg);
}

.aav-promo-band { color: var(--aav-color-white); background: var(--aav-color-navy-900); }
.aav-cta-panel { border: 1px solid var(--aav-color-blue-200); background: var(--aav-color-blue-50); }
.aav-promo-band__actions,
.aav-cta-panel__actions { display: flex; flex-wrap: wrap; gap: var(--aav-space-3); }

.aav-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--aav-color-border);
  border-radius: var(--aav-radius-md);
  background: var(--aav-color-border);
}
.aav-stat { padding: clamp(1.25rem, 3vw, 2rem); text-align: center; background: var(--aav-color-white); }
.aav-stat__value { color: var(--aav-color-navy-900); font-size: clamp(1.75rem, 3vw, 2.75rem); font-weight: 700; line-height: 1; }
.aav-stat__label { margin-top: var(--aav-space-2); color: var(--aav-color-muted); }

/* ================================================================
   9. TABLES
   ================================================================ */
.aav-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--aav-color-border);
  border-radius: var(--aav-radius-md);
  background: var(--aav-color-white);
  -webkit-overflow-scrolling: touch;
}

.aav-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  table-layout: fixed;
  color: var(--aav-color-ink);
  background: var(--aav-color-white);
}

.aav-table :where(th, td) {
  padding: 1rem 1.125rem;
  border-bottom: 1px solid var(--aav-color-border);
  overflow-wrap: anywhere;
  text-align: start;
  vertical-align: top;
}

.aav-table :where(th) {
  color: var(--aav-color-navy-900);
  background: var(--aav-color-surface-soft);
  font-weight: 700;
}

.aav-table tbody tr:last-child td { border-bottom: 0; }
.aav-table tbody tr:hover { background: var(--aav-color-blue-50); }
.aav-table--compact :where(th, td) { padding: 0.75rem 0.875rem; }
.aav-table--center :where(th, td) { text-align: center; }
.aav-table--comparison thead th:first-child { width: 34%; }
.aav-table--comparison tbody td:first-child { color: var(--aav-color-navy-900); font-weight: 700; }

/* ================================================================
   10. ACCORDION / DETAILS
   ================================================================ */
.aav-accordion {
  display: grid;
  gap: var(--aav-space-3);
}

.aav-accordion__item {
  overflow: clip;
  border: 1px solid var(--aav-color-border);
  border-radius: var(--aav-radius-md);
  background: var(--aav-color-white);
}

.aav-accordion__summary {
  display: grid;
  min-height: var(--aav-touch-target);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--aav-space-4);
  padding: 1rem 1.125rem;
  cursor: pointer;
  color: var(--aav-color-navy-900);
  font-weight: 700;
  list-style: none;
}
.aav-accordion__summary::-webkit-details-marker { display: none; }
.aav-accordion__summary::after {
  content: "+";
  display: grid;
  width: 1.75rem;
  height: 1.75rem;
  place-items: center;
  border-radius: 50%;
  color: var(--aav-color-blue-700);
  background: var(--aav-color-blue-100);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1;
}
.aav-accordion__item[open] .aav-accordion__summary::after { content: "−"; }
.aav-accordion__item[open] .aav-accordion__summary { border-bottom: 1px solid var(--aav-color-border); background: var(--aav-color-blue-50); }
.aav-accordion__content { padding: 1rem 1.125rem 1.25rem; color: var(--aav-color-muted); }
.aav-accordion__content > * + * { margin-top: 0.75rem; }

/* ================================================================
   11. TABS
   ================================================================ */
.aav-tabs { min-width: 0; }
.aav-tabs__list {
  display: flex;
  gap: var(--aav-space-2);
  overflow-x: auto;
  padding: 0 0 var(--aav-space-2);
  border-bottom: 1px solid var(--aav-color-border);
  scrollbar-width: thin;
}

.aav-tabs__tab {
  display: inline-flex;
  min-height: var(--aav-touch-target);
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1rem;
  border: 0;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  color: var(--aav-color-muted);
  background: transparent;
  font-weight: 700;
}
.aav-tabs__tab:hover { color: var(--aav-color-blue-700); }
.aav-tabs__tab[aria-selected="true"],
.aav-tabs__tab.is-active { color: var(--aav-color-navy-900); border-bottom-color: var(--aav-color-blue-600); }
.aav-tabs__panel { padding-top: var(--aav-space-6); }
.aav-tabs__panel[hidden] { display: none !important; }

.aav-tabs--pills .aav-tabs__list { gap: var(--aav-space-3); border-bottom: 0; }
.aav-tabs--pills .aav-tabs__tab { border: 1px solid var(--aav-color-border); border-radius: var(--aav-radius-pill); background: var(--aav-color-white); }
.aav-tabs--pills .aav-tabs__tab[aria-selected="true"],
.aav-tabs--pills .aav-tabs__tab.is-active { color: var(--aav-color-white); border-color: var(--aav-color-blue-700); background: var(--aav-color-blue-700); }

/* ================================================================
   12. CAROUSEL SHELL
   ================================================================ */
.aav-carousel { position: relative; min-width: 0; }
.aav-carousel__viewport { overflow: hidden; }
.aav-carousel__track {
  display: flex;
  gap: var(--aav-carousel-gap, var(--aav-space-5));
  transition: transform var(--aav-duration-slow) var(--aav-ease-emphasized);
  will-change: transform;
}
.aav-carousel__slide {
  min-width: 0;
  flex: 0 0 var(--aav-slide-width, 100%);
}
.aav-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--aav-space-4);
  margin-top: var(--aav-space-6);
}
.aav-carousel__arrow {
  display: inline-grid;
  width: var(--aav-touch-target);
  height: var(--aav-touch-target);
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--aav-color-border-strong);
  border-radius: 50%;
  cursor: pointer;
  color: var(--aav-color-navy-900);
  background: var(--aav-color-white);
  transition: color var(--aav-duration-fast), background-color var(--aav-duration-fast), border-color var(--aav-duration-fast);
}
.aav-carousel__arrow:hover { color: var(--aav-color-white); border-color: var(--aav-color-blue-700); background: var(--aav-color-blue-700); }
.aav-carousel__arrow[disabled] { cursor: not-allowed; opacity: 0.4; }
.aav-carousel__dots { display: flex; align-items: center; justify-content: center; gap: var(--aav-space-2); }
.aav-carousel__dot { width: 0.6rem; height: 0.6rem; padding: 0; border: 0; border-radius: 50%; cursor: pointer; background: var(--aav-color-border-strong); }
.aav-carousel__dot[aria-current="true"], .aav-carousel__dot.is-active { background: var(--aav-color-blue-700); }

/* ================================================================
   13. FORMS
   ================================================================ */
.aav-field { display: grid; gap: var(--aav-space-2); }
.aav-label { color: var(--aav-color-navy-900); font-weight: 700; }
.aav-input,
.aav-select,
.aav-textarea {
  width: 100%;
  min-height: var(--aav-touch-target);
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--aav-color-border-strong);
  border-radius: var(--aav-radius-sm);
  color: var(--aav-color-ink);
  background: var(--aav-color-white);
}
.aav-textarea { min-height: 8rem; resize: vertical; }
.aav-input::placeholder,
.aav-textarea::placeholder { color: var(--aav-color-subtle); }
.aav-input:hover,
.aav-select:hover,
.aav-textarea:hover { border-color: var(--aav-color-blue-600); }
.aav-help { color: var(--aav-color-muted); }
.aav-error { color: var(--aav-color-danger); }
.aav-input[aria-invalid="true"],
.aav-select[aria-invalid="true"],
.aav-textarea[aria-invalid="true"] { border-color: var(--aav-color-danger); }

/* ================================================================
   14. ACCESSIBILITY UTILITIES
   ================================================================ */
.aav-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.aav-skip-link {
  position: fixed;
  z-index: var(--aav-z-overlay);
  inset-block-start: var(--aav-space-3);
  inset-inline-start: var(--aav-space-3);
  padding: 0.75rem 1rem;
  border-radius: var(--aav-radius-sm);
  color: var(--aav-color-white);
  background: var(--aav-color-navy-900);
  transform: translateY(-200%);
}
.aav-skip-link:focus { transform: translateY(0); }

/* ================================================================
   15. ATOMIC UTILITIES
   Utilities intentionally use !important so they can override component
   defaults and CMS-generated declarations predictably.
   ================================================================ */
.aav-hidden { display: none !important; }
.aav-block { display: block !important; }
.aav-inline { display: inline !important; }
.aav-inline-block { display: inline-block !important; }
.aav-flex { display: flex !important; }
.aav-inline-flex { display: inline-flex !important; }
.aav-grid { display: grid !important; }

.aav-relative { position: relative !important; }
.aav-absolute { position: absolute !important; }
.aav-sticky { position: sticky !important; }
.aav-inset-0 { inset: 0 !important; }
.aav-top-0 { top: 0 !important; }
.aav-right-0 { right: 0 !important; }
.aav-bottom-0 { bottom: 0 !important; }
.aav-left-0 { left: 0 !important; }

.aav-overflow-hidden { overflow: hidden !important; }
.aav-overflow-auto { overflow: auto !important; }
.aav-overflow-x-auto { overflow-x: auto !important; }
.aav-overflow-visible { overflow: visible !important; }

.aav-w-auto { width: auto !important; }
.aav-w-full { width: 100% !important; }
.aav-w-fit { width: fit-content !important; }
.aav-h-full { height: 100% !important; }
.aav-min-w-0 { min-width: 0 !important; }
.aav-max-w-none { max-width: none !important; }
.aav-max-w-full { max-width: 100% !important; }
.aav-max-w-prose { max-width: var(--aav-content-measure) !important; }

.aav-flex-row { flex-direction: row !important; }
.aav-flex-col { flex-direction: column !important; }
.aav-flex-wrap { flex-wrap: wrap !important; }
.aav-flex-nowrap { flex-wrap: nowrap !important; }
.aav-flex-1 { flex: 1 1 0% !important; }
.aav-flex-none { flex: none !important; }
.aav-grow { flex-grow: 1 !important; }
.aav-shrink-0 { flex-shrink: 0 !important; }

.aav-items-start { align-items: flex-start !important; }
.aav-items-center { align-items: center !important; }
.aav-items-end { align-items: flex-end !important; }
.aav-items-stretch { align-items: stretch !important; }
.aav-justify-start { justify-content: flex-start !important; }
.aav-justify-center { justify-content: center !important; }
.aav-justify-end { justify-content: flex-end !important; }
.aav-justify-between { justify-content: space-between !important; }

.aav-grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.aav-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.aav-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.aav-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.aav-col-span-2 { grid-column: span 2 / span 2 !important; }
.aav-col-span-full { grid-column: 1 / -1 !important; }

.aav-text-left { text-align: left !important; }
.aav-text-center { text-align: center !important; }
.aav-text-right { text-align: right !important; }
.aav-font-normal { font-weight: 400 !important; }
.aav-font-medium { font-weight: 500 !important; }
.aav-font-semibold { font-weight: 600 !important; }
.aav-font-bold { font-weight: 700 !important; }
.aav-uppercase { text-transform: uppercase !important; }
.aav-no-underline { text-decoration: none !important; }
.aav-underline { text-decoration: underline !important; }
.aav-text-balance { text-wrap: balance !important; }
.aav-text-pretty { text-wrap: pretty !important; }
.aav-nowrap { white-space: nowrap !important; }
.aav-break-words { overflow-wrap: anywhere !important; }

.aav-leading-tight { line-height: var(--aav-leading-tight) !important; }
.aav-leading-snug { line-height: var(--aav-leading-snug) !important; }
.aav-leading-normal { line-height: var(--aav-leading-normal) !important; }
.aav-leading-relaxed { line-height: var(--aav-leading-relaxed) !important; }

.aav-text-navy { color: var(--aav-color-navy-900) !important; }
.aav-text-blue { color: var(--aav-color-blue-700) !important; }
.aav-text-ink { color: var(--aav-color-ink) !important; }
.aav-text-muted { color: var(--aav-color-muted) !important; }
.aav-text-white { color: var(--aav-color-white) !important; }
.aav-text-red { color: var(--aav-color-red-600) !important; }

.aav-bg-white { background-color: var(--aav-color-white) !important; }
.aav-bg-soft { background-color: var(--aav-color-surface-soft) !important; }
.aav-bg-blue-soft { background-color: var(--aav-color-blue-50) !important; }
.aav-bg-blue { background-color: var(--aav-color-blue-600) !important; }
.aav-bg-navy { background-color: var(--aav-color-navy-900) !important; }
.aav-bg-transparent { background-color: transparent !important; }

.aav-border { border: 1px solid var(--aav-color-border) !important; }
.aav-border-0 { border: 0 !important; }
.aav-border-t { border-top: 1px solid var(--aav-color-border) !important; }
.aav-border-b { border-bottom: 1px solid var(--aav-color-border) !important; }
.aav-border-blue { border-color: var(--aav-color-blue-600) !important; }
.aav-rounded-none { border-radius: var(--aav-radius-none) !important; }
.aav-rounded-sm { border-radius: var(--aav-radius-sm) !important; }
.aav-rounded { border-radius: var(--aav-radius-md) !important; }
.aav-rounded-lg { border-radius: var(--aav-radius-lg) !important; }
.aav-rounded-xl { border-radius: var(--aav-radius-xl) !important; }
.aav-rounded-full { border-radius: var(--aav-radius-pill) !important; }
.aav-shadow-none { box-shadow: none !important; }
.aav-shadow-sm { box-shadow: var(--aav-shadow-sm) !important; }
.aav-shadow { box-shadow: var(--aav-shadow-md) !important; }
.aav-shadow-lg { box-shadow: var(--aav-shadow-lg) !important; }

.aav-line-clamp-2,
.aav-line-clamp-3 {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
}
.aav-line-clamp-2 { -webkit-line-clamp: 2 !important; }
.aav-line-clamp-3 { -webkit-line-clamp: 3 !important; }


/* Spacing scale */
.aav-gap-0 { gap: 0 !important; }
.aav-p-0 { padding: 0 !important; }
.aav-px-0 { padding-inline: 0 !important; }
.aav-py-0 { padding-block: 0 !important; }
.aav-pt-0 { padding-top: 0 !important; }
.aav-pr-0 { padding-right: 0 !important; }
.aav-pb-0 { padding-bottom: 0 !important; }
.aav-pl-0 { padding-left: 0 !important; }
.aav-m-0 { margin: 0 !important; }
.aav-mx-0 { margin-inline: 0 !important; }
.aav-my-0 { margin-block: 0 !important; }
.aav-mt-0 { margin-top: 0 !important; }
.aav-mr-0 { margin-right: 0 !important; }
.aav-mb-0 { margin-bottom: 0 !important; }
.aav-ml-0 { margin-left: 0 !important; }
.aav-gap-1 { gap: 0.25rem !important; }
.aav-p-1 { padding: 0.25rem !important; }
.aav-px-1 { padding-inline: 0.25rem !important; }
.aav-py-1 { padding-block: 0.25rem !important; }
.aav-pt-1 { padding-top: 0.25rem !important; }
.aav-pr-1 { padding-right: 0.25rem !important; }
.aav-pb-1 { padding-bottom: 0.25rem !important; }
.aav-pl-1 { padding-left: 0.25rem !important; }
.aav-m-1 { margin: 0.25rem !important; }
.aav-mx-1 { margin-inline: 0.25rem !important; }
.aav-my-1 { margin-block: 0.25rem !important; }
.aav-mt-1 { margin-top: 0.25rem !important; }
.aav-mr-1 { margin-right: 0.25rem !important; }
.aav-mb-1 { margin-bottom: 0.25rem !important; }
.aav-ml-1 { margin-left: 0.25rem !important; }
.aav-gap-2 { gap: 0.5rem !important; }
.aav-p-2 { padding: 0.5rem !important; }
.aav-px-2 { padding-inline: 0.5rem !important; }
.aav-py-2 { padding-block: 0.5rem !important; }
.aav-pt-2 { padding-top: 0.5rem !important; }
.aav-pr-2 { padding-right: 0.5rem !important; }
.aav-pb-2 { padding-bottom: 0.5rem !important; }
.aav-pl-2 { padding-left: 0.5rem !important; }
.aav-m-2 { margin: 0.5rem !important; }
.aav-mx-2 { margin-inline: 0.5rem !important; }
.aav-my-2 { margin-block: 0.5rem !important; }
.aav-mt-2 { margin-top: 0.5rem !important; }
.aav-mr-2 { margin-right: 0.5rem !important; }
.aav-mb-2 { margin-bottom: 0.5rem !important; }
.aav-ml-2 { margin-left: 0.5rem !important; }
.aav-gap-3 { gap: 0.75rem !important; }
.aav-p-3 { padding: 0.75rem !important; }
.aav-px-3 { padding-inline: 0.75rem !important; }
.aav-py-3 { padding-block: 0.75rem !important; }
.aav-pt-3 { padding-top: 0.75rem !important; }
.aav-pr-3 { padding-right: 0.75rem !important; }
.aav-pb-3 { padding-bottom: 0.75rem !important; }
.aav-pl-3 { padding-left: 0.75rem !important; }
.aav-m-3 { margin: 0.75rem !important; }
.aav-mx-3 { margin-inline: 0.75rem !important; }
.aav-my-3 { margin-block: 0.75rem !important; }
.aav-mt-3 { margin-top: 0.75rem !important; }
.aav-mr-3 { margin-right: 0.75rem !important; }
.aav-mb-3 { margin-bottom: 0.75rem !important; }
.aav-ml-3 { margin-left: 0.75rem !important; }
.aav-gap-4 { gap: 1rem !important; }
.aav-p-4 { padding: 1rem !important; }
.aav-px-4 { padding-inline: 1rem !important; }
.aav-py-4 { padding-block: 1rem !important; }
.aav-pt-4 { padding-top: 1rem !important; }
.aav-pr-4 { padding-right: 1rem !important; }
.aav-pb-4 { padding-bottom: 1rem !important; }
.aav-pl-4 { padding-left: 1rem !important; }
.aav-m-4 { margin: 1rem !important; }
.aav-mx-4 { margin-inline: 1rem !important; }
.aav-my-4 { margin-block: 1rem !important; }
.aav-mt-4 { margin-top: 1rem !important; }
.aav-mr-4 { margin-right: 1rem !important; }
.aav-mb-4 { margin-bottom: 1rem !important; }
.aav-ml-4 { margin-left: 1rem !important; }
.aav-gap-5 { gap: 1.25rem !important; }
.aav-p-5 { padding: 1.25rem !important; }
.aav-px-5 { padding-inline: 1.25rem !important; }
.aav-py-5 { padding-block: 1.25rem !important; }
.aav-pt-5 { padding-top: 1.25rem !important; }
.aav-pr-5 { padding-right: 1.25rem !important; }
.aav-pb-5 { padding-bottom: 1.25rem !important; }
.aav-pl-5 { padding-left: 1.25rem !important; }
.aav-m-5 { margin: 1.25rem !important; }
.aav-mx-5 { margin-inline: 1.25rem !important; }
.aav-my-5 { margin-block: 1.25rem !important; }
.aav-mt-5 { margin-top: 1.25rem !important; }
.aav-mr-5 { margin-right: 1.25rem !important; }
.aav-mb-5 { margin-bottom: 1.25rem !important; }
.aav-ml-5 { margin-left: 1.25rem !important; }
.aav-gap-6 { gap: 1.5rem !important; }
.aav-p-6 { padding: 1.5rem !important; }
.aav-px-6 { padding-inline: 1.5rem !important; }
.aav-py-6 { padding-block: 1.5rem !important; }
.aav-pt-6 { padding-top: 1.5rem !important; }
.aav-pr-6 { padding-right: 1.5rem !important; }
.aav-pb-6 { padding-bottom: 1.5rem !important; }
.aav-pl-6 { padding-left: 1.5rem !important; }
.aav-m-6 { margin: 1.5rem !important; }
.aav-mx-6 { margin-inline: 1.5rem !important; }
.aav-my-6 { margin-block: 1.5rem !important; }
.aav-mt-6 { margin-top: 1.5rem !important; }
.aav-mr-6 { margin-right: 1.5rem !important; }
.aav-mb-6 { margin-bottom: 1.5rem !important; }
.aav-ml-6 { margin-left: 1.5rem !important; }
.aav-gap-8 { gap: 2rem !important; }
.aav-p-8 { padding: 2rem !important; }
.aav-px-8 { padding-inline: 2rem !important; }
.aav-py-8 { padding-block: 2rem !important; }
.aav-pt-8 { padding-top: 2rem !important; }
.aav-pr-8 { padding-right: 2rem !important; }
.aav-pb-8 { padding-bottom: 2rem !important; }
.aav-pl-8 { padding-left: 2rem !important; }
.aav-m-8 { margin: 2rem !important; }
.aav-mx-8 { margin-inline: 2rem !important; }
.aav-my-8 { margin-block: 2rem !important; }
.aav-mt-8 { margin-top: 2rem !important; }
.aav-mr-8 { margin-right: 2rem !important; }
.aav-mb-8 { margin-bottom: 2rem !important; }
.aav-ml-8 { margin-left: 2rem !important; }
.aav-gap-10 { gap: 2.5rem !important; }
.aav-p-10 { padding: 2.5rem !important; }
.aav-px-10 { padding-inline: 2.5rem !important; }
.aav-py-10 { padding-block: 2.5rem !important; }
.aav-pt-10 { padding-top: 2.5rem !important; }
.aav-pr-10 { padding-right: 2.5rem !important; }
.aav-pb-10 { padding-bottom: 2.5rem !important; }
.aav-pl-10 { padding-left: 2.5rem !important; }
.aav-m-10 { margin: 2.5rem !important; }
.aav-mx-10 { margin-inline: 2.5rem !important; }
.aav-my-10 { margin-block: 2.5rem !important; }
.aav-mt-10 { margin-top: 2.5rem !important; }
.aav-mr-10 { margin-right: 2.5rem !important; }
.aav-mb-10 { margin-bottom: 2.5rem !important; }
.aav-ml-10 { margin-left: 2.5rem !important; }
.aav-gap-12 { gap: 3rem !important; }
.aav-p-12 { padding: 3rem !important; }
.aav-px-12 { padding-inline: 3rem !important; }
.aav-py-12 { padding-block: 3rem !important; }
.aav-pt-12 { padding-top: 3rem !important; }
.aav-pr-12 { padding-right: 3rem !important; }
.aav-pb-12 { padding-bottom: 3rem !important; }
.aav-pl-12 { padding-left: 3rem !important; }
.aav-m-12 { margin: 3rem !important; }
.aav-mx-12 { margin-inline: 3rem !important; }
.aav-my-12 { margin-block: 3rem !important; }
.aav-mt-12 { margin-top: 3rem !important; }
.aav-mr-12 { margin-right: 3rem !important; }
.aav-mb-12 { margin-bottom: 3rem !important; }
.aav-ml-12 { margin-left: 3rem !important; }
.aav-gap-16 { gap: 4rem !important; }
.aav-p-16 { padding: 4rem !important; }
.aav-px-16 { padding-inline: 4rem !important; }
.aav-py-16 { padding-block: 4rem !important; }
.aav-pt-16 { padding-top: 4rem !important; }
.aav-pr-16 { padding-right: 4rem !important; }
.aav-pb-16 { padding-bottom: 4rem !important; }
.aav-pl-16 { padding-left: 4rem !important; }
.aav-m-16 { margin: 4rem !important; }
.aav-mx-16 { margin-inline: 4rem !important; }
.aav-my-16 { margin-block: 4rem !important; }
.aav-mt-16 { margin-top: 4rem !important; }
.aav-mr-16 { margin-right: 4rem !important; }
.aav-mb-16 { margin-bottom: 4rem !important; }
.aav-ml-16 { margin-left: 4rem !important; }
.aav-gap-20 { gap: 5rem !important; }
.aav-p-20 { padding: 5rem !important; }
.aav-px-20 { padding-inline: 5rem !important; }
.aav-py-20 { padding-block: 5rem !important; }
.aav-pt-20 { padding-top: 5rem !important; }
.aav-pr-20 { padding-right: 5rem !important; }
.aav-pb-20 { padding-bottom: 5rem !important; }
.aav-pl-20 { padding-left: 5rem !important; }
.aav-m-20 { margin: 5rem !important; }
.aav-mx-20 { margin-inline: 5rem !important; }
.aav-my-20 { margin-block: 5rem !important; }
.aav-mt-20 { margin-top: 5rem !important; }
.aav-mr-20 { margin-right: 5rem !important; }
.aav-mb-20 { margin-bottom: 5rem !important; }
.aav-ml-20 { margin-left: 5rem !important; }
.aav-gap-24 { gap: 6rem !important; }
.aav-p-24 { padding: 6rem !important; }
.aav-px-24 { padding-inline: 6rem !important; }
.aav-py-24 { padding-block: 6rem !important; }
.aav-pt-24 { padding-top: 6rem !important; }
.aav-pr-24 { padding-right: 6rem !important; }
.aav-pb-24 { padding-bottom: 6rem !important; }
.aav-pl-24 { padding-left: 6rem !important; }
.aav-m-24 { margin: 6rem !important; }
.aav-mx-24 { margin-inline: 6rem !important; }
.aav-my-24 { margin-block: 6rem !important; }
.aav-mt-24 { margin-top: 6rem !important; }
.aav-mr-24 { margin-right: 6rem !important; }
.aav-mb-24 { margin-bottom: 6rem !important; }
.aav-ml-24 { margin-left: 6rem !important; }
.aav-mx-auto { margin-inline: auto !important; }


/* ================================================================
   16. RESPONSIVE BEHAVIOR AND RESPONSIVE UTILITIES
   Breakpoints: sm 480px, md 768px, lg 1024px, xl 1200px
   ================================================================ */
@media (min-width: 48rem) {
  .aav-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aav-sidebar-layout { grid-template-columns: minmax(14rem, 0.34fr) minmax(0, 1fr); }
  .aav-promo-band,
  .aav-cta-panel { grid-template-columns: minmax(0, 1fr) auto; }
  .aav-card--horizontal { display: grid; grid-template-columns: minmax(14rem, 0.9fr) minmax(0, 1.1fr); }
  .aav-card--horizontal .aav-card__media { height: 100%; aspect-ratio: auto; }
  .aav-carousel__slide { --aav-slide-width: calc((100% - var(--aav-carousel-gap)) / 2); }

  .aav-md-hidden { display: none !important; }
  .aav-md-block { display: block !important; }
  .aav-md-flex { display: flex !important; }
  .aav-md-grid { display: grid !important; }
  .aav-md-flex-row { flex-direction: row !important; }
  .aav-md-flex-col { flex-direction: column !important; }
  .aav-md-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .aav-md-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .aav-md-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .aav-md-text-left { text-align: left !important; }
  .aav-md-text-center { text-align: center !important; }
  .aav-md-items-center { align-items: center !important; }
  .aav-md-justify-between { justify-content: space-between !important; }
}

@media (min-width: 64rem) {
  .aav-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .aav-hero--media-left .aav-hero__media { order: -1; }
  .aav-hero__content {
    padding-inline-start: max(var(--aav-page-gutter), calc((100vw - var(--aav-container-xl)) / 2));
    padding-inline-end: clamp(2rem, 5vw, 4rem);
  }
  .aav-hero--media-left .aav-hero__content {
    padding-inline-start: clamp(2rem, 5vw, 4rem);
    padding-inline-end: max(var(--aav-page-gutter), calc((100vw - var(--aav-container-xl)) / 2));
  }
  .aav-hero--contained .aav-hero__inner {
    width: min(100% - (var(--aav-page-gutter) * 2), var(--aav-container-xl));
    min-height: auto;
    margin-inline: auto;
    padding-block: clamp(2.5rem, 5vw, 4.5rem);
  }
  .aav-hero--contained .aav-hero__content { padding-inline: 0; padding-right: clamp(2rem, 5vw, 5rem); }
  .aav-hero--contained.aav-hero--media-left .aav-hero__content { padding-right: 0; padding-left: clamp(2rem, 5vw, 5rem); }
  .aav-carousel__slide { --aav-slide-width: calc((100% - (var(--aav-carousel-gap) * 2)) / 3); }

  .aav-lg-hidden { display: none !important; }
  .aav-lg-block { display: block !important; }
  .aav-lg-flex { display: flex !important; }
  .aav-lg-grid { display: grid !important; }
  .aav-lg-flex-row { flex-direction: row !important; }
  .aav-lg-flex-col { flex-direction: column !important; }
  .aav-lg-grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .aav-lg-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .aav-lg-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .aav-lg-text-left { text-align: left !important; }
  .aav-lg-text-center { text-align: center !important; }
}

@media (min-width: 75rem) {
  .aav-xl-hidden { display: none !important; }
  .aav-xl-block { display: block !important; }
  .aav-xl-grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .aav-xl-grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}

@media (max-width: 47.99rem) {
  .aav-sm-only-hidden { display: none !important; }
  .aav-btn--mobile-full { width: 100%; }

  .aav-table--responsive {
    min-width: 0;
    table-layout: auto;
  }
  .aav-table--responsive thead { display: none; }
  .aav-table--responsive,
  .aav-table--responsive tbody,
  .aav-table--responsive tr,
  .aav-table--responsive td { display: block; width: 100%; }
  .aav-table--responsive tr { padding: 0.5rem 1rem; border-bottom: 1px solid var(--aav-color-border); }
  .aav-table--responsive tr:last-child { border-bottom: 0; }
  .aav-table--responsive td {
    display: grid;
    grid-template-columns: minmax(7rem, 0.45fr) minmax(0, 1fr);
    gap: var(--aav-space-3);
    padding: 0.65rem 0;
    border: 0;
  }
  .aav-table--responsive td::before {
    content: attr(data-label);
    color: var(--aav-color-navy-900);
    font-weight: 700;
  }
}

/* ================================================================
   17. MOTION AND PRINT SAFETY
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
  .aav-scope *,
  .aav-scope *::before,
  .aav-scope *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media print {
  .aav-scope { color: #000; background: #fff; }
  .aav-btn,
  .aav-carousel__controls,
  .aav-tabs__list { display: none !important; }
  .aav-card,
  .aav-table-wrap,
  .aav-accordion__item { break-inside: avoid; box-shadow: none; }
}
