/* Dedicated pages, using the approved V2 and suite glass tokens. */
.dedicated-page main { min-height: 70vh; }
.dedicated-page h1 { font-size: clamp(40px,4.6vw,64px); line-height: 1.1; letter-spacing: -.035em; margin: 20px 0 26px; }
.dedicated-page .editorial-hero { padding-top: 118px; padding-bottom: 36px; }
.case-back { font-size: 16px; margin-bottom: 34px; }
.case-hero-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,.85fr); gap: 62px; align-items: center; }
.case-hero-layout .lead { font-size: 20px; line-height: 1.65; color: #a9bcd6; margin-bottom: 26px; }
.case-profile { padding: 30px; }
.case-profile img { display: block; width: 100%; height: 60px; max-width: 220px; object-fit: contain; object-position: left; margin-bottom: 32px; }
.case-profile h2 { font-size: 28px; margin: 10px 0 14px; }
.case-profile p { color: #a9bcd6; font-size: 17px; line-height: 1.6; }
.case-profile dl { margin: 24px 0; padding-top: 20px; border-top: 1px solid var(--suite-glass-border); }
.case-profile dt { font-size: 16px; color: #7f95b0; font-weight: 600; margin-bottom: 4px; }
.case-profile dd { margin: 0 0 14px; font-size: 16px; color: #d4e1f3; }
.case-section-head { max-width: 790px; margin-bottom: 32px; }
.case-section-head h2 { margin: 0 0 20px; }
.case-section-head p { color: #a9bcd6; font-size: 19px; line-height: 1.7; margin: 0; }
.case-context { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 65px; }
.case-insight { padding: 32px; }
.case-insight h3 { font-size: 28px; margin: 14px 0; }
.case-insight p { color: #a9bcd6; font-size: 18px; margin: 0; }
.case-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
.case-step { padding-top: 24px; border-top: 1px solid rgba(127,176,255,.2); }
.case-step-index { display: block; font-size: 16px; color: #7fb0ff; margin-bottom: 22px; }
.case-step h3 { font-size: 25px; margin-bottom: 16px; }
.case-step p { color: #a9bcd6; font-size: 17px; line-height: 1.7; margin: 0; }
.case-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.case-metric { padding: 26px; }
.case-metric > span { display: block; font-size: 16px; color: #9db4d1; font-weight: 600; }
.case-metric > strong { display: block; font-size: clamp(36px,3.5vw,49px); font-weight: 700; color: #7fb0ff; letter-spacing: -.035em; margin: 12px 0; line-height: 1.1; }
.case-metric > p { font-size: 16px; color: #a9bcd6; line-height: 1.6; margin: 0; }
.case-charts { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; margin-top: 24px; }
.case-evidence { padding: 30px; margin: 0; }
.case-evidence h3 { font-size: 26px; margin: 0 0 12px; }
.case-evidence > p { font-size: 17px; color: #a9bcd6; margin: 0; }
.evidence-bars { display: grid; gap: 20px; margin: 30px 0; }
.evidence-row { display: grid; grid-template-columns: minmax(150px,.8fr) minmax(0,2fr) minmax(65px,.35fr); gap: 22px; align-items: center; }
.evidence-row > span { color: #a9bcd6; font-size: 16px; }
.evidence-row > strong { color: #e8eef7; font-size: 20px; text-align: right; font-variant-numeric: tabular-nums; }
.evidence-track { height: 22px; background: rgba(127,176,255,.04); border-radius: 6px; overflow: hidden; }
.evidence-track i { display: block; height: 100%; background: linear-gradient(90deg,rgba(37,99,235,.35),#60a5fa); border: 1px solid rgba(127,176,255,.3); border-radius: 6px; }
.case-evidence figcaption { border-top: 1px solid rgba(255,255,255,.07); padding-top: 18px; color: #819bb9; font-size: 16px; line-height: 1.6; }
.case-table-scroll { overflow-x: auto; margin: 26px 0; border: 1px solid rgba(127,176,255,.15); border-radius: 12px; }
.case-table-scroll table { width: 100%; min-width: 570px; border-collapse: collapse; font-size: 16px; font-variant-numeric: tabular-nums; }
.case-table-scroll th, .case-table-scroll td { padding: 14px 18px; text-align: right; border-bottom: 1px solid rgba(127,176,255,.1); color: #a9bcd6; }
.case-table-scroll th:first-child { text-align: left; }
.case-table-scroll thead th { background: #14243b; color: #7f95b0; font-size: 16px; text-transform: uppercase; font-weight: 600; }
.case-table-scroll tbody th { font-weight: 500; color: #e8eef7; }
.case-table-scroll tbody tr:hover { background: rgba(127,176,255,.05); }
.case-table-scroll tbody tr:last-child > * { border-bottom: 0; }
.dedicated-page .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.case-reading { padding: 22px 0 0 22px; border-left: 2px solid #427ccd; margin-top: 28px; }
.case-reading h3 { font-size: 21px; margin: 0 0 10px; }
.case-reading p { color: #9db4d1; font-size: 17px; margin: 0; line-height: 1.7; max-width: 1000px; }
.case-timeline-layout { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 65px; }
.case-timeline { list-style: none; margin: 0; padding: 0 0 0 26px; border-left: 1px solid rgba(127,176,255,.2); }
.case-timeline li { position: relative; padding: 0 0 32px; }
.case-timeline li:last-child { padding-bottom: 0; }
.case-timeline li::before { content: ''; position: absolute; left: -31px; top: 9px; width: 9px; height: 9px; border-radius: 50%; background: #7fb0ff; box-shadow: 0 0 0 5px #061a30; }
.case-timeline li > span { display: block; color: #7fb0ff; font-size: 16px; margin-bottom: 9px; }
.case-timeline h3 { font-size: 23px; margin: 0 0 10px; }
.case-timeline p { color: #a9bcd6; font-size: 17px; line-height: 1.6; margin: 0; }
.case-takeaway { padding: 42px; background: radial-gradient(ellipse at 100% 0,rgba(37,99,235,.13),transparent 75%),var(--suite-glass-background); }
.case-takeaway h2 { margin: 16px 0 22px; max-width: 850px; }
.case-takeaway p { color: #a9bcd6; font-size: 19px; max-width: 950px; line-height: 1.7; margin: 0; }
.case-sources { padding-top: 35px; max-width: 900px; }
.case-sources h3 { font-size: 20px; }
.case-sources p, .case-sources li { color: #849fbe; font-size: 16px; line-height: 1.65; }
.case-sources ul { padding-left: 20px; margin-bottom: 0; }
.case-final { padding: 36px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.case-final h2 { font-size: 36px; margin: 12px 0 16px; }
.case-final p { color: #a9bcd6; font-size: 17px; margin: 0; max-width: 620px; }
.case-final .btn { flex: none; }
.dedicated-page .booking-intro { padding-top: 138px; text-align: center; max-width: 830px; }
.booking-intro .kicker::before { display: none; }
.booking-meta { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 14px; margin: 22px 0; }
.booking-meta span { padding: 5px 12px; border: 1px solid rgba(127,176,255,.2); background: rgba(127,176,255,.04); color: #bcd2f0; border-radius: 8px; font-size: 16px; }
.booking-intro > p { color: #a9bcd6; font-size: 19px; line-height: 1.65; max-width: 640px; margin: 0 auto; }
.dedicated-page .booking-calendar { max-width: 1100px; padding-top: 46px; padding-bottom: 60px; }
.calendar-frame { overflow: hidden; }
.calendar-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 19px 24px; }
.calendar-heading > div { display: flex; align-items: center; gap: 10px; }
.calendar-heading strong { font-size: 18px; font-weight: 600; }
.calendar-heading > span { font-size: 16px; color: #8ca6c6; }
.calendar-dot { width: 7px; height: 7px; background: #7fb0ff; border-radius: 50%; }
.calendar-frame iframe { display: block; border: 0; width: 100%; height: 850px; background: #fff; color-scheme: light; }
.calendar-help { display: flex; flex-wrap: wrap; gap: 16px 36px; justify-content: space-between; padding-top: 22px; }
.calendar-help p { max-width: 550px; color: #8da6c4; font-size: 16px; margin: 0; }
.calendar-help a { font-size: 16px; }
@media (max-width: 1000px) {
  .case-hero-layout { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: 32px; }
  .case-context, .case-timeline-layout { gap: 36px; }
  .case-metrics { gap: 14px; }
  .case-metric { padding: 22px; }
  .case-final { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .dedicated-page .editorial-hero { padding-top: 105px; }
  .case-hero-layout, .case-context, .case-timeline-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .case-hero-layout .lead { font-size: 18px; }
  .case-profile { padding: 26px; }
  .case-profile img { height: 45px; margin-bottom: 20px; }
  .case-steps, .case-metrics { grid-template-columns: minmax(0,1fr); }
  .case-step { display: flex; align-items: flex-start; gap: 18px; }
  .case-step-index { flex: none; }
  .case-section-head p, .case-takeaway p { font-size: 18px; }
  .case-insight, .case-takeaway, .case-final { padding: 26px; }
  .case-evidence { padding: 24px 20px; }
  .evidence-row { grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
  .evidence-row > span { grid-column: 1/-1; }
  .evidence-row > strong { font-size: 18px; min-width: 60px; }
  .case-final h2 { font-size: 32px; }
  .case-final .btn { width: 100%; white-space: normal; }
  .dedicated-page .booking-intro { padding-top: 110px; }
  .booking-intro > p { font-size: 18px; }
  .dedicated-page .booking-calendar { padding-top: 30px; }
  .calendar-frame iframe { height: 1250px; }
  .calendar-heading { padding: 16px; }
  .calendar-heading strong { font-size: 16px; }
  .calendar-heading > span { display: none; }
}
