/* November 2 alignment: screen-only so the existing one-page print layout is untouched. */
@media screen {
  body[data-route="/analysis"] .analysis-page {
    --analysis-number: 96px;
  }

  body[data-route="/analysis"] .analysis-page .container {
    width: min(1200px, calc(100% - 64px));
  }

  body[data-route="/analysis"] .analysis-page :is(.hero, .section) {
    padding-block: 96px;
  }

  body[data-route="/analysis"] :is(.analysis-hero-copy, .analysis-example-heading, .analysis-request-heading) {
    container-type: inline-size;
    min-width: 0;
  }

  body[data-route="/analysis"] .analysis-hero-copy {
    width: 100%;
    max-width: 1104px;
  }

  body[data-route="/analysis"] .analysis-hero h1 {
    max-width: none;
    text-wrap: balance;
  }

  body[data-route="/analysis"] .analysis-headline-phrase {
    display: inline-block;
  }

  body[data-route="/analysis"] .analysis-page p:not(.analysis-amount):not(.analysis-value-amount) {
    max-width: 68ch;
    line-height: 1.5;
    text-wrap: pretty;
  }

  body[data-route="/analysis"] .analysis-hero .subhead {
    margin-top: 24px;
  }

  body[data-route="/analysis"] .analysis-page .actions {
    margin-top: 32px;
    gap: 24px;
  }

  body[data-route="/analysis"] .analysis-example-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 32px;
  }

  body[data-route="/analysis"] .analysis-example-heading {
    max-width: none;
    margin-bottom: 0;
  }

  body[data-route="/analysis"] .analysis-example-tag {
    border-radius: 24px;
    padding: 8px 16px;
    margin-top: 0;
  }

  body[data-route="/analysis"] .analysis-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 24px;
    margin-top: 32px;
    align-items: stretch;
  }

  body[data-route="/analysis"] .analysis-fact {
    display: grid;
    grid-template-rows: 1fr auto;
    gap: 8px;
    padding: 24px;
    border-radius: 24px;
    min-width: 0;
  }

  body[data-route="/analysis"] .analysis-fact strong {
    font-size: 40px;
    line-height: 1.2;
  }

  body[data-route="/analysis"] .analysis-fact span {
    font-size: var(--analysis-body);
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-benefit {
    margin-block: 48px;
  }

  body[data-route="/analysis"] .analysis-amount {
    font-size: var(--analysis-number);
    line-height: 1.05;
    max-width: none;
    white-space: nowrap;
    text-wrap: nowrap;
  }

  body[data-route="/analysis"] .analysis-digits {
    font-size: var(--analysis-number);
  }

  body[data-route="/analysis"] .analysis-benefit-label {
    margin-top: 24px;
  }

  body[data-route="/analysis"] .analysis-per-unit {
    margin-top: 16px;
  }

  body[data-route="/analysis"] :is(.analysis-bar, .analysis-value-tile) {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    border-radius: 24px;
  }

  body[data-route="/analysis"] .analysis-bar {
    display: grid;
    grid-template-columns: minmax(0, 36.8fr) minmax(0, 63.2fr);
    min-height: 128px;
    align-items: stretch;
  }

  body[data-route="/analysis"] .analysis-bar > div {
    display: grid;
    grid-template-rows: auto auto;
    align-content: center;
    gap: 8px;
    width: auto;
    min-width: 0;
    padding: 24px 32px;
  }

  body[data-route="/analysis"] .analysis-bar span {
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-drivers {
    grid-template-columns: minmax(0, 36.8fr) minmax(0, 63.2fr);
    margin-top: 16px;
  }

  body[data-route="/analysis"] .analysis-drivers p {
    padding-right: 32px;
  }

  body[data-route="/analysis"] .analysis-drivers p + p {
    padding-left: 32px;
  }

  body[data-route="/analysis"] .analysis-value-tile {
    padding: 32px;
    margin-top: 32px;
  }

  body[data-route="/analysis"] .analysis-value-amount {
    font-size: clamp(72px, 6.5vw, 96px);
    line-height: 1.1;
    max-width: none;
    gap: 0 16px;
  }

  body[data-route="/analysis"] .analysis-value-description {
    margin-top: 16px;
  }

  body[data-route="/analysis"] .analysis-value-label {
    margin-top: 24px;
  }

  body[data-route="/analysis"] .analysis-cost-note {
    margin-top: 32px;
  }

  body[data-route="/analysis"] .analysis-disclaimer {
    margin-top: 16px;
  }

  body[data-route="/analysis"] .analysis-share {
    margin-top: 32px;
  }

  body[data-route="/analysis"] .analysis-request-heading {
    max-width: 960px;
    margin-bottom: 32px;
  }

  body[data-route="/analysis"] .analysis-request-heading p {
    margin-top: 24px;
  }

  body[data-route="/analysis"] .analysis-request-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 64px;
    align-items: center;
  }

  body[data-route="/analysis"] :is(.analysis-deliverables, .analysis-request-form) {
    min-width: 0;
    align-self: stretch;
  }

  body[data-route="/analysis"] .analysis-deliverables {
    display: grid;
    grid-template-rows: auto 1fr;
    gap: 24px;
    padding-top: 0;
  }

  body[data-route="/analysis"] .analysis-deliverables > h3 {
    margin-bottom: 0;
  }

  body[data-route="/analysis"] .analysis-deliverable-cards {
    display: grid;
    grid-auto-rows: 1fr;
    gap: 24px;
  }

  body[data-route="/analysis"] .analysis-deliverable {
    display: grid;
    grid-template-rows: auto 1fr;
    align-content: start;
    gap: 24px;
    min-width: 0;
    margin: 0;
    padding: 24px;
    border-radius: 24px;
  }

  body[data-route="/analysis"] .analysis-deliverable h4 {
    font-size: 24px;
    line-height: 1.3;
    min-height: 2.6em;
    margin-bottom: 0;
  }

  body[data-route="/analysis"] .analysis-deliverable p {
    min-height: 4.5em;
    margin: 0;
  }

  body[data-route="/analysis"] .analysis-request-form {
    display: flex;
    flex-direction: column;
  }

  body[data-route="/analysis"] .analysis-progress {
    gap: 24px;
    margin-bottom: 24px;
  }

  body[data-route="/analysis"] .analysis-progress li {
    gap: 8px;
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-progress li > span {
    width: 32px;
    height: 32px;
    min-width: 32px;
  }

  body[data-route="/analysis"] .analysis-request-form .form-panel {
    flex: 1;
    min-width: 0;
    padding: 32px;
    border-radius: 24px;
  }

  body[data-route="/analysis"] :is(.analysis-form, .analysis-confirmation) h3 {
    margin-bottom: 24px;
  }

  body[data-route="/analysis"] .analysis-fields {
    margin-top: 32px;
  }

  body[data-route="/analysis"] .analysis-fields legend {
    margin-bottom: 16px;
  }

  body[data-route="/analysis"] .analysis-form .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 0;
    align-items: stretch;
  }

  body[data-route="/analysis"] .analysis-form .field {
    display: grid;
    grid-template-rows: minmax(48px, auto) 52px;
    align-content: end;
    align-items: end;
    gap: 8px;
    min-width: 0;
  }

  body[data-route="/analysis"] .analysis-form .field > span {
    align-self: start;
    font-size: var(--analysis-note);
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-form .field :is(input, select) {
    box-sizing: border-box;
    height: 52px;
    min-height: 52px;
    width: 100%;
    padding: 8px 16px;
    font-size: 16px;
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-form .consent {
    gap: 8px;
    margin-block: 32px 0;
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-form .consent input {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin-top: 4px;
  }

  body[data-route="/analysis"] .analysis-form button {
    margin-top: 32px;
    min-height: 52px;
    padding: 8px 16px;
    font-size: 16px;
  }

  body[data-route="/analysis"] .analysis-demo-link {
    margin-top: 32px;
  }

  body[data-route="/analysis"] .analysis-legacy-link {
    margin-top: 16px;
    gap: 8px;
    line-height: 1.5;
  }

  body[data-route="/analysis"] .analysis-confirmation .booking-frame {
    margin-block: 32px;
    border-radius: 24px;
  }
}

@media screen and (max-width: 800px) {
  body[data-route="/analysis"] .analysis-page :is(.hero, .section) {
    padding-block: 64px;
  }

  body[data-route="/analysis"] .analysis-hero .hero {
    display: block;
  }

  body[data-route="/analysis"] .analysis-headline-phrase {
    display: inline;
  }

  body[data-route="/analysis"] :is(.analysis-example-top, .analysis-facts, .analysis-request-grid, .analysis-drivers) {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-route="/analysis"] .analysis-example-top {
    gap: 24px;
  }

  body[data-route="/analysis"] .analysis-example-tag {
    justify-self: start;
  }

  body[data-route="/analysis"] .analysis-facts {
    gap: 24px;
  }

  body[data-route="/analysis"] .analysis-benefit {
    margin-block: 32px;
  }

  body[data-route="/analysis"] .analysis-bar {
    min-height: 192px;
  }

  body[data-route="/analysis"] .analysis-bar > div {
    grid-template-rows: minmax(48px, auto) auto;
    padding: 24px 8px;
  }

  body[data-route="/analysis"] .analysis-bar span {
    font-size: var(--analysis-note);
  }

  body[data-route="/analysis"] .analysis-bar strong {
    font-size: 20px;
  }

  body[data-route="/analysis"] .analysis-drivers {
    gap: 24px;
    margin-top: 24px;
  }

  body[data-route="/analysis"] .analysis-drivers p,
  body[data-route="/analysis"] .analysis-drivers p + p {
    padding: 0;
  }

  body[data-route="/analysis"] .analysis-value-tile {
    padding: 24px;
  }

  body[data-route="/analysis"] .analysis-value-unit {
    font-size: 32px;
    letter-spacing: normal;
  }

  body[data-route="/analysis"] .analysis-request-grid {
    gap: 32px;
  }

  body[data-route="/analysis"] .analysis-request-form .form-panel {
    padding: 24px;
  }

  body[data-route="/analysis"] .analysis-form .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-route="/analysis"] .analysis-form .field {
    grid-template-rows: auto 52px;
  }

  body[data-route="/analysis"] .analysis-progress {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}

@media screen and (max-width: 480px) {
  /* Keep the 96px digits with the site's 32px gutters; only currency/spacing adapts. */
  body[data-route="/analysis"] .analysis-currency {
    font-size: 32px;
    margin-right: 0;
  }

  body[data-route="/analysis"] .analysis-digits {
    letter-spacing: -.075em;
  }
}

@media screen and (max-width: 374px) {
  body[data-route="/analysis"] .analysis-digits {
    letter-spacing: -.115em;
  }
}

@media screen and (max-width: 350px) {
  body[data-route="/analysis"] .analysis-digits {
    letter-spacing: -.13em;
  }
}

@media screen and (max-width: 335px) {
  body[data-route="/analysis"] .analysis-currency {
    font-size: 24px;
  }

  body[data-route="/analysis"] .analysis-digits {
    letter-spacing: -.15em;
  }
}

@media screen and (prefers-reduced-motion: reduce) {
  body[data-route="/analysis"] :is(.analysis-fact, .analysis-deliverable) {
    transition: none;
  }
}
