/* Editorial service-page composition using the existing AES paper, glass, and district palette. */
.page-reviews { --lane-accent: var(--slate); --lane-tint: #e6eef1; --lane-glow: #d3e1e6; }
.page-reviews .skip-link { position: fixed; z-index: 100; top: 12px; left: 20px; transform: translateY(-200%); padding: 12px 18px; border-radius: 12px; background: var(--paper); color: var(--slate); }
.page-reviews .skip-link:focus { transform: none; }
.page-reviews .page-hero { padding-bottom: clamp(64px, 7vw, 112px); }
.page-reviews .page-hero-inner { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(48px, 6vw, 112px); align-items: center; justify-items: stretch; text-align: left; }
.review-hero-copy { display: grid; justify-items: start; gap: 24px; }
.review-back { color: var(--muted); font-size: 14px; }
.review-back svg { rotate: 180deg; order: -1; }
.page-reviews .page-hero h1 { max-width: 11.5em; font-size: clamp(44px, 4.8vw, 76px); line-height: 1; letter-spacing: -.04em; }
.page-reviews .page-lede { max-width: 34em; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.7; color: #3f3739; }
.review-promise { display: block; margin-top: .6em; color: var(--ink); }
.review-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 8px; }
.review-section { margin-bottom: var(--section-space); scroll-margin-top: 16px; }
.review-section > h2 { max-width: 17em; margin-bottom: 24px; font: 400 clamp(36px, 3.6vw, 56px)/1.05 var(--serif); letter-spacing: -.035em; }
.review-section .overview-body { color: #4f4647; }
.review-overview, .review-why { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 24px clamp(40px, 6vw, 96px); }
.review-overview > .overview-body { max-width: 30em; font: 400 clamp(24px, 2vw, 28px)/1.34 var(--serif); letter-spacing: -.015em; color: var(--ink); }
.review-pair { grid-column: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); margin-top: 18px; }
.review-pair h3 { margin: 0 0 20px; font: 400 clamp(24px, 2.2vw, 30px)/1.15 var(--serif); letter-spacing: -.02em; }
.review-pair > div:first-child .check-list { gap: 0; }
.review-pair > div:first-child .check-list li { padding: 14px 0; border-top: 1px solid var(--line); font: 400 19px/1.4 var(--serif); }
.review-pair > div:first-child .check-list li::before, .review-pair > div:first-child .check-list li::after { content: none; }
.review-pair > div:last-child .check-list { gap: 16px; }
.review-pair > div:last-child .check-list li { font-size: 15.5px; }
/* A single district-tinted movement gives the method a clear sequence and a change of pace. */
.approach-band { padding: clamp(32px, 4.5vw, 72px); border-radius: var(--radius-lg); background: radial-gradient(ellipse at 0 0, var(--lane-glow), transparent 70%), linear-gradient(130deg, var(--lane-tint), rgba(255,255,255,.72)); border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow); }
.approach-head { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px clamp(40px, 7vw, 112px); align-items: start; }
.approach-head h2 { font: 400 clamp(36px, 3.6vw, 56px)/1.05 var(--serif); letter-spacing: -.035em; }
.phase-line { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px; margin-top: 48px; }
.phase-line::before { content: ''; position: absolute; top: 20px; left: 20px; right: 20px; height: 1px; background: rgba(55,87,99,.3); }
.phase-line li { position: relative; display: grid; align-content: start; justify-items: start; gap: 16px; }
.phase-line .focus-index { position: relative; z-index: 1; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 8px 24px -14px rgba(55,87,99,.5); color: var(--slate); font: 600 12px/1 var(--sans); }
.phase-line h3 { margin: 4px 0 0; font: 400 23px/1.15 var(--serif); letter-spacing: -.02em; }
.phase-line p { font-size: 15px; line-height: 1.65; color: #4f4647; }
.approach-band > h3 { margin: 40px 0 12px; padding-top: 28px; border-top: 1px solid rgba(55,87,99,.18); font: 400 27px/1.2 var(--serif); letter-spacing: -.02em; }
.page-reviews .is-runin { display: block; }
.page-reviews .is-runin > div { display: block; padding: 16px 0 18px; border-top: 1px solid var(--line); border-radius: 0; background: none; font-size: 15.5px; line-height: 1.65; }
.page-reviews .is-runin dt, .page-reviews .is-runin dd { display: inline; }
.page-reviews .is-runin dt { margin-right: .35em; font: 500 18px/1.4 var(--serif); color: var(--ink); }
.page-reviews .is-runin dd { margin: 0; font-size: inherit; line-height: inherit; color: #4f4647; }
.page-reviews .approach-band > .is-runin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
/* The six scopes share one reading area instead of repeating down the page. */
.review-browser { scroll-margin-top: 20px; }
.review-browser-head { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: end; gap: 24px 64px; margin-bottom: 32px; }
.review-browser-head h2 { font: 400 clamp(36px, 3.6vw, 56px)/1.05 var(--serif); letter-spacing: -.035em; }
.review-browser-head p { max-width: 36em; color: var(--muted); font-size: 16px; }
.review-browser-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(36px, 5vw, 80px); padding-block: 36px; border-block: 1px solid var(--line); align-items: start; }
.review-selector { position: sticky; top: calc(var(--header-offset) + 16px); }
.review-selector a { display: grid; grid-template-columns: minmax(0, 1fr) 16px; align-items: center; gap: 14px; min-height: 62px; padding: 12px 12px 12px 18px; border-left: 2px solid transparent; font: 400 22px/1.22 var(--serif); letter-spacing: -.015em; color: var(--muted); transition: color .2s, border-color .2s; }
.review-selector a svg { width: 16px; height: 16px; opacity: 0; }
.review-selector a[aria-current='true'] { border-left-color: var(--slate); color: var(--ink); }
.review-selector a[aria-current='true'] svg { opacity: 1; color: var(--slate); }
@media (hover: hover) { .review-selector a:hover { color: var(--slate); } }
.review-mobile-picker { display: none; }
.review-panels { min-width: 0; }
.review-panel { scroll-margin-top: 20px; }
.review-panel[hidden]:not([hidden='until-found']) { display: none; }
.review-browser:not(.is-enhanced) .review-panel + .review-panel { margin-top: 64px; padding-top: 36px; border-top: 1px solid var(--line); }
.review-panel-heading > h3 { font: 400 clamp(32px, 3.1vw, 46px)/1.08 var(--serif); letter-spacing: -.035em; }
.review-panel > .overview-body { max-width: 32em; margin-top: 22px; font: 400 clamp(21px, 1.8vw, 25px)/1.45 var(--serif); color: var(--ink); letter-spacing: -.01em; }
.review-panel-body { display: flex; flex-direction: column; gap: 30px; margin-top: 32px; }
.review-outcomes h4 { margin: 0; font: 400 22px/1.2 var(--serif); letter-spacing: -.02em; color: var(--ink); }
.review-outcomes .check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 36px; margin-top: 18px; }
.review-outcomes .check-list li { padding: 14px 0; border-top: 1px solid var(--line); font-size: 15.5px; color: #4f4647; }
.review-outcomes .check-list li::before, .review-outcomes .check-list li::after { content: none; }
.review-scope { min-width: 0; border-top: 1px solid var(--line); }
.review-scope summary { display: flex; gap: 20px; align-items: center; justify-content: space-between; min-height: 64px; padding-block: 16px; cursor: pointer; list-style: none; }
.review-scope h4 { margin: 0; font: 400 22px/1.2 var(--serif); letter-spacing: -.02em; }
.review-scope summary::-webkit-details-marker { display: none; }
.review-scope-toggle { flex: none; width: 18px; height: 18px; background: var(--slate); -webkit-mask: url('/assets/chevron-down.svg') center / contain no-repeat; mask: url('/assets/chevron-down.svg') center / contain no-repeat; transition: rotate .2s; }
.review-scope[open] .review-scope-toggle { rotate: 180deg; }
.review-scope .is-runin { max-width: 68ch; padding-bottom: 16px; }
.review-scope .is-runin > div:first-child { border-top: 0; }
.review-engagement > .overview-body { max-width: 52em; }
.review-table-wrap { margin-top: 36px; overflow: hidden; border-radius: 24px; background: var(--glass-bg); border: 1px solid var(--glass-border); box-shadow: var(--glass-shadow); }
.review-table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.55; table-layout: fixed; }
.review-table th, .review-table td { padding: 22px 24px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.review-table thead th { font: 600 11.5px/1.5 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--slate); white-space: nowrap; }
.review-table th:first-child { width: 30%; }
.review-table th:last-child { width: 23%; }
.review-table tbody th { font: 400 21px/1.3 var(--serif); }
.review-table td { color: var(--muted); }
.review-table td:last-child { font-weight: 500; color: var(--ink); }
.review-table tbody tr:last-child th, .review-table tbody tr:last-child td { border-bottom: 0; border-top: 1px dashed rgba(55,87,99,.3); }
.review-cell-label { display: none; }
.review-core { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 28px 64px; margin-top: 48px; }
.review-core h3 { font: 400 30px/1.15 var(--serif); letter-spacing: -.02em; }
.review-why > .is-runin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
@media (min-width: 1101px) and (max-width: 1240px) { .phase-line { gap: 20px; } .phase-line h3 { font-size: 21px; } }
@media (max-width: 1100px) {
  .page-reviews .page-hero-inner { grid-template-columns: 1fr; gap: 36px; }
  .review-hero-copy { max-width: 52em; }
  .phase-line { grid-template-columns: 1fr; gap: 26px; }
  .phase-line::before { left: 20px; right: auto; top: 20px; bottom: 20px; width: 1px; height: auto; }
  .phase-line li { grid-template-columns: 40px minmax(0, 1fr); gap: 10px 24px; }
  .phase-line .focus-index { grid-row: 1 / 3; }
  .phase-line h3, .phase-line p { grid-column: 2; }
  .page-reviews .approach-band > .is-runin { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .review-overview, .review-why, .review-core { grid-template-columns: 1fr; }
  .review-pair { grid-column: 1; }
  .review-overview > h2, .review-why > h2 { margin-bottom: 0; }
  .approach-head { grid-template-columns: 1fr; gap: 22px; }
  .review-table th, .review-table td { padding-inline: 18px; }
}
@media (max-width: 680px) {
  .page-reviews .page-hero { padding-bottom: 48px; }
  .page-reviews .page-hero-inner { gap: 28px; }
  .review-hero-copy { gap: 22px; }
  .page-reviews .page-hero h1 { font-size: clamp(38px, 10vw, 54px); line-height: 1.03; }
  .page-reviews .page-lede { font-size: 16px; line-height: 1.65; }
  .review-hero-actions { width: 100%; gap: 24px; }
  .review-hero-actions .button { width: 100%; }
  .review-section { margin-bottom: 64px; }
  .review-section > h2, .approach-head h2 { font-size: 36px; }
  .review-overview > .overview-body { font-size: 23px; line-height: 1.4; }
  .review-pair { grid-template-columns: 1fr; gap: 32px; margin-top: 8px; }
  .review-pair h3 { font-size: 27px; margin-bottom: 16px; }
  .approach-band { padding: 30px 22px; }
  .phase-line { margin-top: 32px; }
  .phase-line li { column-gap: 18px; }
  .phase-line h3 { font-size: 23px; }
  .page-reviews .approach-band > .is-runin { grid-template-columns: 1fr; gap: 6px; }
  .review-scope summary { min-height: 56px; padding-block: 16px; border-block: 1px solid var(--line); }
  .review-scope[open] summary { border-bottom: 0; }
  .review-table { table-layout: auto; }
  .review-table thead { display: none; }
  .review-table, .review-table tbody, .review-table tr, .review-table th, .review-table td { display: block; width: auto; }
  .review-table tr { padding: 22px; border-top: 1px solid var(--line); }
  .review-table tr:first-child { border-top: 0; }
  .review-table tbody th, .review-table td { padding: 0; border: 0; }
  .review-table tbody th { width: auto; font-size: 23px; margin-bottom: 16px; }
  .review-table tbody tr:last-child th, .review-table tbody tr:last-child td { border: 0; }
  .review-table tr:last-child { border-top: 1px dashed rgba(55,87,99,.3); }
  .review-table td + td { margin-top: 14px; }
  .review-cell-label { display: block; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--slate); margin-bottom: 4px; }
  .review-core { margin-top: 32px; gap: 24px; }
  .review-why > .is-runin { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .review-scope-toggle, .review-selector a { transition: none; } }
@media (max-width: 1100px) {
  .review-browser-layout { grid-template-columns: 1fr; gap: 32px; }
  .review-selector { position: static; }
  .review-selector ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 24px; }
  .review-selector a { min-height: 68px; padding-left: 12px; font-size: 21px; }
}
@media (max-width: 680px) {
  .review-browser-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 24px; }
  .review-browser-head h2 { font-size: 36px; }
  .review-browser-layout { gap: 28px; padding-block: 24px; }
  .review-selector ul { grid-template-columns: 1fr; }
  .review-selector a { min-height: 52px; }
  .review-browser.is-enhanced .review-selector { display: none; }
  .review-browser.is-enhanced .review-mobile-picker { display: grid; gap: 8px; }
  .review-mobile-picker label { font-size: 14px; color: var(--muted); }
  .review-mobile-picker select { width: 100%; min-height: 54px; appearance: none; border: 1px solid var(--line); border-radius: 12px; padding: 12px 42px 12px 16px; background: rgba(255,255,255,.72) url('/assets/chevron-down.svg') right 16px center / 18px no-repeat; color: var(--ink); font: 400 16px/1.4 var(--sans); }
  .review-panel-heading > h3 { font-size: 33px; }
  .review-panel > .overview-body { font-size: 22px; }
  .review-outcomes .check-list { grid-template-columns: 1fr; }
  .review-panel-body { gap: 24px; margin-top: 28px; }
  .review-scope summary { border: 0; }
}
@media print {
  .review-browser-layout { display: block; }
  .review-panel[hidden] { display: block !important; }
  .review-panel + .review-panel { margin-top: 36px; }
  .review-scope::details-content { content-visibility: visible; }
}

.review-hero-photo { position: relative; align-self: stretch; min-height: 500px; overflow: hidden; margin: 0; border-radius: var(--radius-lg); }
.review-hero-photo img, .review-field-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.review-hero-photo img { object-position: 60% center; }
.review-overview > h2 { grid-column: 1; grid-row: 1; }
.review-overview > .overview-body { grid-column: 2; grid-row: 1; }
.review-overview-photo { grid-column: 1; grid-row: 2; margin: 18px 0 0; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 5; }
.review-overview-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.review-pair { grid-row: 2; }
.review-field-note { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); overflow: hidden; margin-block: 0 var(--section-space); border-radius: var(--radius-lg); background: var(--burgundy); }
.review-field-photo { position: relative; min-height: 360px; }
.review-field-photo img { object-position: center; }
.review-field-note figcaption { display: grid; align-content: center; padding: clamp(32px, 4vw, 60px); color: #fff9f4; }
.review-field-note p { font: 400 clamp(28px, 2.8vw, 42px)/1.2 var(--serif); letter-spacing: -.025em; text-wrap: balance; }
@media (min-width: 681px) and (max-width: 1100px) { .review-selector a svg { visibility: hidden; } }
@media (max-width: 1100px) { .page-reviews .page-hero-inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px; } .review-hero-photo { min-height: 460px; } }
@media (max-width: 860px) {
  .page-reviews .page-hero-inner { grid-template-columns: 1fr; }
  .review-hero-photo { min-height: 0; height: 320px; }
  .review-overview > .overview-body { grid-column: 1; grid-row: 2; }
  .review-overview-photo { grid-column: 1; grid-row: 3; aspect-ratio: 16 / 8; margin-top: 8px; }
  .review-pair { grid-column: 1; grid-row: 4; }
  .review-field-note { grid-template-columns: 1fr 1fr; }
  .review-field-photo { min-height: 300px; }
}
@media (max-width: 680px) {
  .review-hero-photo { height: 250px; border-radius: 24px; }
  .review-hero-photo img { object-position: center 58%; }
  .review-overview-photo { aspect-ratio: 16 / 10; margin: 4px 0 8px; }
  .review-field-note { grid-template-columns: 1fr; margin-bottom: 64px; }
  .review-field-photo { min-height: 0; height: 220px; }
  .review-field-note figcaption { padding: 32px 28px; }
  .review-field-note p { font-size: 30px; }
}
@media print { .page-reviews .site-header, .page-reviews .finale, .review-back, .review-selector, .review-mobile-picker { display: none !important; } .review-panel[hidden] { content-visibility: visible !important; } }

/* Match the site's entrance rhythm without blurring photographs or moving a selected scope. */
@keyframes review-photo-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (min-width: 681px) and (prefers-reduced-motion: no-preference) {
  .review-hero-photo.entrance { animation: review-photo-in 1s var(--ease) .18s both; }
  .review-hero-actions.entrance { animation-duration: .8s; animation-delay: .3s; }
}
@media print { .page-reviews .entrance, .page-reviews .will-reveal { animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; } }
