/* Shared progressive content; palette and typography remain owned by base.css. */
.v2-content-details { margin-top: 1rem; min-width: 0; }
.v2-content-details > summary { cursor: pointer; color: var(--av-berry); font-weight: var(--av-text-emphasis-weight); padding-block: .65rem; overflow-wrap: anywhere; }
.v2-content-details__body { padding-top: .35rem; }
.v2-content-details__body > :last-child { margin-bottom: 0; }
.v2-faq__group { padding-top: 1.5rem; margin-bottom: .75rem; }
.v2-section-navigation { padding-block: .75rem; }
.v2-section-navigation__label { display: none; }
.v2-section-navigation__links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .25rem; list-style: none; margin: 0; padding: .25rem; border: 1px solid var(--av-border); border-radius: var(--av-radius-sm); background: var(--av-surface-warm); }
.v2-section-navigation__links li { min-width: 0; }
.v2-section-navigation__links a { display: flex; align-items: center; justify-content: center; min-height: 44px; height: 100%; padding: .5rem; border-radius: var(--av-radius-xs); color: var(--av-navy); font-size: .9rem; font-weight: var(--av-text-emphasis-weight); line-height: 1.35; text-align: center; text-decoration: none; overflow-wrap: anywhere; }
.v2-section-navigation__links a:hover { color: var(--av-berry); background: var(--av-page-soft); }
.v2-section-navigation__links a:focus-visible { outline: 3px solid var(--av-focus); outline-offset: 2px; }
@media (min-width: 40rem) {
  .v2-section-navigation__links { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .v2-section-navigation__links a { font-size: .94rem; }
}
[id^="section-"] { scroll-margin-top: calc(var(--av-header-height) + 1rem); }
.v2-hero-flow { min-width: 0; }
.v2-hero-flow .v2-hero-copy { margin-top: 1.5rem; font-size: var(--av-text-body-size); line-height: var(--av-text-body-line); }
.v2-hero-copy p { margin-bottom: .75rem; }
.v2-hero-flow .v2-hero-action { margin-top: 1.5rem; }
.v2-hero-costs { margin-top: 1rem; color: var(--av-text); font-size: var(--av-text-body-size); line-height: var(--av-text-body-line); }
.v2-hero-costs > p:first-of-type { display: inline; }
.v2-hero-note { color: var(--av-text); font-size: var(--av-text-note-size); line-height: var(--av-text-note-line); margin-top: .75rem; }
/* Rating is a trust signal; only its source/date use the quiet caption size. */
.v2-hero-evidence { margin-top: 1.5rem; color: var(--av-muted); font-size: var(--av-text-meta-size); line-height: var(--av-text-meta-line); }
.v2-hero-evidence > p:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .65rem; margin-bottom: .25rem; color: var(--av-navy); font-size: var(--av-rating-stars-size); font-weight: var(--av-text-emphasis-weight); line-height: var(--av-text-rating-line); }
.v2-hero-evidence > p:first-child strong { min-width: 0; font-size: var(--av-text-rating-size); font-weight: var(--av-text-emphasis-weight); }
.v2-home--progressive .v2-home__area:has(details) .v2-home__link::after { content: none; }
.v2-home--progressive .v2-home__details { width: 100%; }
.v2-home--progressive .v2-home__details > summary { color: var(--av-berry); }
.v2-home--progressive .v2-home__area-heading { display: flex; align-items: center; gap: .8rem; margin-bottom: .75rem; }
.v2-home--progressive .v2-home__area-heading .v2-home__icon { width: 2.75rem; height: 2.75rem; margin: 0; }
.v2-home--progressive .v2-home__area-heading h3 { margin: 0; font-size: 1.4rem; }
.v2-home--progressive .v2-home__section > h2,
.v2-home--progressive .v2-home__work h2 { font-size: 1.75rem; line-height: 1.2; }
/* Native card links and independent disclosure controls work at every width. */
.v2-home--progressive .v2-home__area .v2-home__card-action:has(.v2-home__link) { display: contents; }
.v2-home--progressive .v2-home__area .v2-home__link { position: absolute; inset: 0; z-index: 1; padding: 1.5rem; align-items: flex-start; justify-content: flex-end; border-radius: var(--av-radius-md); }
.v2-home--progressive .v2-home__area .v2-home__link::after { content: none; }
.v2-home--progressive .v2-home__area .v2-home__link:focus-visible { outline: 3px solid var(--av-focus); outline-offset: 3px; }
.v2-home--progressive .v2-home__area .v2-home__link-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.v2-home--progressive .v2-home__area .v2-home__link > [aria-hidden] { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2.75rem; font-size: 1.15rem; line-height: 1.2; }
.v2-home--progressive .v2-home__area:has(.v2-home__link) .v2-home__area-heading { padding-inline-end: 2.25rem; }
.v2-home--progressive .v2-home__area .v2-home__details > summary { position: relative; z-index: 2; }
@media (min-width: 56rem) {
  .v2-section-navigation { border-bottom: 1px solid var(--av-border); }
  .v2-home--progressive .v2-home__work { padding-block-end: 3rem; margin-bottom: 3rem; }
  .v2-content-page--progressive .v2-page-hero { padding-block: 52px; }
  .v2-home__details[data-responsive-details][open] > summary { display: none; }
  .v2-home--progressive .v2-home__hero { padding-top: 2.1rem; }
  .v2-home--progressive .v2-home__hero h1 { font-size: 4.25rem; line-height: 1.1; max-width: 22ch; margin-bottom: 1rem; }
  .v2-home--progressive .v2-home__section > h2,
  .v2-home--progressive .v2-home__work h2,
  .v2-home--progressive .v2-home__costs h2 { font-size: 3rem; line-height: 1.08; }
  .v2-home--progressive .v2-home__areas > h2 { font-size: 2.5rem; }
  .v2-home--progressive .v2-home__introduction { padding-bottom: 1.5rem; }
  .v2-home--progressive .v2-home__section > h2 { margin-bottom: 1.25rem; }
  .v2-home--progressive .v2-home__card { padding: 1.5rem; min-height: 0; }
}
@media (max-width: 55.999rem) {
  /* Preserve the mobile composition for its separate review. */
  .v2-content-page--progressive .v2-page-hero { padding-block: 2rem; }
  .v2-home--progressive .v2-home__hero h1 { font-size: clamp(2.45rem,9vw,2.625rem); line-height: 1.1; }
  .v2-home--progressive .v2-home__introduction { order: 0; padding-bottom: .5em; }
  .v2-home--progressive #work-heading,
  .v2-home--progressive #about-heading,
  .v2-home--progressive #costs-heading { font-size: 2em; line-height: 1.2; }
  .v2-home--progressive .v2-home__step { grid-template-columns: 2.75rem minmax(0,1fr); gap: .75rem; align-items: start; }
  .v2-home--progressive .v2-home__step .v2-home__icon { width: 2.75rem; height: 2.75rem; margin: 0; }
  .v2-home--progressive .v2-home__entity { display: grid; grid-template-columns: 2.75rem minmax(0,1fr); gap: .5rem .75rem; align-items: start; }
  .v2-home--progressive .v2-home__entity .v2-home__icon { grid-column: 1; grid-row: 1; width: 2.75rem; height: 2.75rem; margin: 0; }
  .v2-home--progressive .v2-home__entity h3 { grid-column: 2; grid-row: 1; margin: 0; font-size: 1.4rem; line-height: 1.3; hyphens: auto; }
  .v2-home--progressive .v2-home__entity .v2-home__copy { grid-column: 1 / -1; grid-row: 2; }
  .v2-home--progressive .v2-home__areas { order: 0; }
  .v2-home--progressive .v2-home__area { grid-template-columns: 2.75rem minmax(0,1fr); gap: .65rem .75rem; padding: 1.25rem 1.25rem .75rem; }
  .v2-home--progressive .v2-home__area .v2-home__icon { grid-row: 1; }
  .v2-home--progressive .v2-home__area-heading { grid-column: 1 / -1; margin-bottom: 0; }
  .v2-home--progressive .v2-home__area .v2-home__copy,
  .v2-home--progressive .v2-home__area .v2-home__details,
  .v2-home--progressive .v2-home__area .v2-home__card-action { grid-column: 1 / -1; grid-row: auto; }
  .v2-home--progressive .v2-home__area .v2-home__card-action { margin-top: .25rem; }
  .v2-home--progressive .v2-home__area .v2-home__link { padding: 1.25rem; text-decoration: none; }
  .v2-home--progressive .v2-home__details { margin-top: 0; }
  .v2-home--progressive .v2-home__area .v2-home__details > summary { padding-block-start: .5rem; min-height: 44px; }
  .v2-home--progressive .v2-home__area .v2-home__card-action:not(:has(*)) { display: none; }
  .v2-hero-flow h1 { font-size: clamp(1.9rem,7.8vw,2.5rem); line-height: 1.12; }
}
@media (prefers-reduced-motion: reduce) {
  [id^="section-"] { scroll-behavior: auto; }
}

/* Shared rating facts; the same trust/meta roles serve every native CMS placement. */
.v2-rating__headline { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .65rem; }
.v2-rating__stars { display: inline-flex; white-space: nowrap; }
.v2-rating__star { position: relative; display: inline-block; color: var(--av-border-strong); line-height: 1.4; }
.v2-rating__star::after { content: "★"; position: absolute; inset: 0; overflow: hidden; color: var(--av-navy); width: 100%; }
.v2-rating__star[data-fill="0"]::after { width: 0; }
.v2-rating__star[data-fill="1"]::after { width: 10%; }
.v2-rating__star[data-fill="2"]::after { width: 20%; }
.v2-rating__star[data-fill="3"]::after { width: 30%; }
.v2-rating__star[data-fill="4"]::after { width: 40%; }
.v2-rating__star[data-fill="5"]::after { width: 50%; }
.v2-rating__star[data-fill="6"]::after { width: 60%; }
.v2-rating__star[data-fill="7"]::after { width: 70%; }
.v2-rating__star[data-fill="8"]::after { width: 80%; }
.v2-rating__star[data-fill="9"]::after { width: 90%; }
.v2-rating__source { margin-bottom: 0; font-size: var(--av-text-meta-size); line-height: var(--av-text-meta-line); color: var(--av-muted); }
