@media(min-width:1600px) {
  .hero-content {
    padding-left:0
  }
  .hero {
    min-height:780px
  }
  .section {
    padding-block:118px
  }
}
@media(max-width:1000px) {
  .container {
    width:calc(100% - 64px)
  }
  .section {
    padding-block:76px
  }
  .intro {
    gap:40px
  }
  .choice-body {
    padding:25px
  }
  .choice-grid {
    gap:22px
  }
  .card-title h3 {
    font-size:21px
  }
  .recommend-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px
  }
  .recommend-card>img {
    aspect-ratio:1.3
  }
  .recommend-body {
    padding:25px
  }
  .recommend-body h3 {
    font-size:21px
  }
  .recommend-body>p:last-of-type,.recommend-body .text-button {
    font-size:12px
  }
  .diagnosis-layout {
    gap:40px;
    grid-template-columns:1fr 1.4fr
  }
  .free-day {
    gap:40px
  }
  .curation-content {
    gap:45px
  }
  .features-grid {
    gap:25px
  }
  .comparison-grid article {
    padding:29px
  }
  .plan-summary-item {
    padding-inline:12px
  }
  .plan-summary-value {
    font-size:14px
  }
}
@media(max-width:767px) {
  body {
    font-size:14px
  }
  .container {
    width:calc(100% - 40px)
  }
  .section {
    padding-block:62px
  }
  .site-header {
    height:77px;
    padding:12px 20px;
    gap:14px
  }
  .brand img {
    width:117px;
    height:42px
  }
  .header-title {
    font-size:14px;
    padding-left:14px;
    letter-spacing:.015em
  }
  .official-link {
    font-size:0;
    gap:0
  }
  .official-link span {
    font-size:19px
  }
  .hero {
    height:calc(100svh - 77px);
    min-height:610px;
    max-height:850px
  }
  .hero-image {
    object-position:59% 50%
  }
  .hero-shade {
    background:linear-gradient(90deg,#153e3c70,#153e3c25),linear-gradient(0deg,#153e3c65,transparent 80%)
  }
  .hero-content {
    padding-bottom:15px;
    justify-content:center
  }
  .hero .eyebrow {
    font-size:12px;
    letter-spacing:.19em;
    margin-bottom:22px
  }
  .hero h1 {
    font-size:clamp(37px,9.6vw,68px);
    white-space:nowrap;
    letter-spacing:0
  }
  .hero-copy {
    font-size:24px;
    line-height:1.85;
    letter-spacing:.06em;
    margin-top:27px
  }
  .hero-description {
    font-size:12px;
    line-height:2.2;
    margin-top:21px
  }
  .hero .button {
    min-width:246px;
    margin-top:32px;
    font-size:13px
  }
  .hero-bottom {
    bottom:20px;
    left:20px;
    right:20px;
    font-size:12px;
    letter-spacing:.14em
  }
  .intro {
    grid-template-columns:1fr;
    gap:26px
  }
  .intro h2 {
    font-size:27px
  }
  .intro-text {
    font-size:13px;
    padding-top:0
  }
  .desktop-only {
    display:none
  }
  .how-section {
    padding:46px 0
  }
  .how-section h2 {
    font-size:23px
  }
  .section-heading {
    margin-bottom:33px
  }
  .eyebrow {
    font-size:12px;
    margin-bottom:14px
  }
  .how-grid {
    grid-template-columns:repeat(2,1fr);
    row-gap:28px
  }
  .how-grid li:nth-child(2) {
    border:0
  }
  .how-grid h3 {
    font-size:16px;
    margin-top:13px
  }
  .how-grid p {
    font-size:12px
  }
  .how-grid li>span {
    font-size:21px
  }
  .progress-nav {
    padding:11px 12px 8px
  }
  .progress-nav ol {
    max-width:450px
  }
  .progress-nav a {
    font-size:12px;
    gap:4px;
    letter-spacing:.04em
  }
  .progress-dot {
    width:28px;
    height:28px;
    font-size:12px
  }
  .progress-nav li:not(:last-child)::after {
    top:14px
  }
  #selection-status {
    font-size:12px;
    margin-top:6px;
    line-height:1.5
  }
  .step-section {
    scroll-margin-top:109px
  }
  .step-heading {
    gap:17px;
    margin-bottom:26px;
    align-items:flex-start
  }
  .step-number {
    font-size:55px;
    padding-right:17px;
    padding-top:3px
  }
  .step-heading h2 {
    font-size:23px
  }
  .step-heading .eyebrow {
    font-size:12px;
    margin-bottom:6px
  }
  .step-heading p:last-child {
    font-size:12px;
    line-height:1.8;
    margin-top:9px
  }
  .choice-grid {
    grid-template-columns:1fr;
    gap:26px
  }
  .choice-image {
    aspect-ratio:1.43
  }
  .flight-image {
    aspect-ratio:1.55
  }
  .choice-body {
    padding:23px 23px 25px
  }
  .flight-title {
    font-size:29px
  }
  .card-title h3 {
    font-size:22px
  }
  .card-copy {
    font-size:13px;
    min-height:0
  }
  .feature-tags {
    min-height:0;
    margin-top:17px
  }
  .feature-tags li {
    font-size:12px
  }
  .feature-list li {
    font-size:12px
  }
  .choice-button {
    margin-top:13px;
    min-height:54px
  }
  .option-code {
    font-size:30px;
    width:37px
  }
  .accordion-trigger {
    font-size:12px;
    min-height:53px
  }
  .timeline {
    font-size:12px
  }
  .timeline li {
    gap:9px;
    grid-template-columns:46px 1fr
  }
  .timeline p {
    padding-left:13px
  }
  .benefit-list li {
    padding:12px;
    font-size:12px
  }
  .result-section {
    padding:62px 0
  }
  .result-section h2 {
    font-size:26px
  }
  .result-type {
    font-size:19px
  }
  .plan-summary {
    grid-template-columns:1fr;
    padding:5px 21px;
    margin-block:26px
  }
  .plan-summary-item {
    display:grid;
    grid-template-columns:1fr auto;
    gap:7px;
    padding:19px 0;
    border-right:0;
    border-bottom:1px solid var(--line);
    text-align:left
  }
  .plan-summary-label {
    grid-column:1/-1;
    font-size:12px
  }
  .plan-summary-value {
    font-size:15px
  }
  .plan-edit {
    font-size:12px
  }
  .result-section .button {
    width:100%;
    font-size:12px;
    gap:12px;
    padding:15px
  }
  .result-section .result-content>p:not(.eyebrow):not(.result-type) {
    font-size:12px
  }
  .result-actions {
    gap:28px;
    margin-top:18px
  }
  .recommend-grid {
    grid-template-columns:1fr;
    gap:26px
  }
  .recommend-card>img {
    aspect-ratio:1.45
  }
  .recommend-body {
    padding:23px
  }
  .recommend-body h3 {
    font-size:22px;
    margin-bottom:12px
  }
  .recommend-body>p:last-of-type {
    font-size:12px;
    margin-bottom:17px
  }
  .recommend-body .text-button {
    min-height:48px
  }
  .diagnosis-section {
    padding:57px 0
  }
  .diagnosis-layout {
    grid-template-columns:1fr;
    gap:33px
  }
  .diagnosis-layout h2 {
    font-size:28px
  }
  .diagnosis-layout>div>p:last-child {
    font-size:13px;
    margin-top:18px
  }
  .diagnosis-options {
    grid-template-columns:1fr;
    gap:9px
  }
  .diagnosis-options label {
    font-size:13px;
    padding:13px 16px;
    min-height:51px
  }
  .diagnosis-question {
    margin-bottom:23px
  }
  .diagnosis-layout .button {
    font-size:13px;
    gap:15px
  }
  .free-day {
    grid-template-columns:1fr;
    gap:32px
  }
  .free-day-visual img {
    aspect-ratio:1.12
  }
  .free-day-visual>span {
    font-size:24px;
    left:22px;
    bottom:22px
  }
  .free-day-copy h2 {
    font-size:29px
  }
  .free-day-copy p:not(.eyebrow) {
    font-size:13px;
    margin-top:20px
  }
  .small-note {
    font-size:12px
  }
  .curation-section {
    padding:59px 0
  }
  .curation-section h2 {
    font-size:25px
  }
  .curation-content {
    grid-template-columns:1fr;
    gap:24px;
    margin-top:23px
  }
  .curation-content>p {
    font-size:13px
  }
  .curation-content li {
    font-size:12px;
    padding:6px 12px
  }
  .curation-content ul {
    gap:9px
  }
  .features-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .features-grid article {
    border-bottom:1px solid var(--line);
    padding-bottom:26px
  }
  .features-grid article:last-child {
    border:0;
    padding-bottom:0
  }
  .features-grid article>span {
    font-size:28px
  }
  .features-grid h3 {
    font-size:20px;
    margin:11px 0
  }
  .features-grid p {
    font-size:13px
  }
  .comparison-section {
    padding:58px 0
  }
  .comparison-section h2 {
    font-size:24px
  }
  .comparison-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .comparison-grid article {
    padding:27px 23px
  }
  .comparison-grid .text-button {
    line-height:1.8;
    min-height:48px
  }
  .faq-item .accordion-trigger {
    font-size:13px;
    min-height:76px;
    gap:13px
  }
  .faq-q {
    margin-right:11px;
    font-size:18px
  }
  .faq-item .accordion-panel {
    padding:0 0 24px 28px;
    font-size:12px
  }
  .closing-cta {
    padding:59px 0 40px
  }
  .closing-cta h2 {
    font-size:28px
  }
  .closing-cta p:not(.eyebrow) {
    font-size:12px
  }
  .closing-cta .button {
    font-size:12px;
    gap:12px;
    width:100%;
    padding-inline:14px
  }
  .closing-back {
    font-size:12px
  }
  .site-footer {
    padding-top:37px
  }
  .footer-brand-row {
    display:block;
    padding-bottom:25px
  }
  .footer-brand-row .brand {
    padding:6px 10px
  }
  .footer-brand-row p {
    font-size:22px;
    margin-top:20px
  }
  .footer-brand-row p span {
    font-size:12px
  }
  .site-footer nav {
    gap:9px 20px;
    padding-block:20px
  }
  .site-footer nav a {
    font-size:12px;
    min-height:34px
  }
  .copyright {
    font-size:12px
  }
  .form-grid {
    grid-template-columns:1fr;
    gap:20px
  }
  .form-panel {
    padding:25px 20px
  }
  .form-panel h2 {
    font-size:21px
  }
  .form-actions .button {
    width:100%;
    min-width:0;
    font-size:13px
  }
  .page-hero {
    padding:45px 20px 22px
  }
  .page-hero h1 {
    font-size:26px
  }
  .page-hero p {
    font-size:12px
  }
  .form-note,.field-help {
    font-size:12px
  }
  .complete-section h1 {
    font-size:36px
  }
  .complete-section .button {
    width:100%;
    font-size:12px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
  .choice-card.is-selected {
    transform:none
  }
}
@media(max-width:767px) {
  .site-header .brand>span {
    font-size:14px;
    padding-left:14px;
    margin-left:14px;
    letter-spacing:0
  }
  [data-page] .official-link {
    display:none
  }
  .page-heading {
    padding:47px 0 20px
  }
  .page-heading h1 {
    font-size:27px
  }
  .page-heading>p:last-child {
    font-size:12px
  }
  .form-intro {
    font-size:12px;
    margin-bottom:23px
  }
  .people-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px
  }
  .people-grid .field label {
    font-size:12px
  }
  .people-grid .field-note {
    display:block;
    margin-left:0
  }
  .people-fields>p {
    font-size:12px
  }
  .privacy-field label {
    font-size:12px
  }
  .form-panel>#submit-inquiry {
    min-width:0;
    width:100%;
    font-size:12px;
    padding-inline:12px
  }
  .field-note {
    font-size:12px
  }
  .completion-actions .button {
    width:100%;
    font-size:13px
  }
  .complete-main {
    padding-bottom:45px
  }
  [data-page] .plan-summary {
    grid-template-columns:1fr;
    padding:5px 15px
  }
  [data-page] .plan-summary-item {
    padding:17px 0
  }
  [data-page] .plan-summary-item:nth-last-child(-n+2) {
    border-bottom:1px solid var(--line)
  }
  [data-page] .plan-summary-item:last-child {
    border-bottom:0
  }
}
/* Readable typography across desktop and mobile. */
body  {
  font-size:16px;
}
.intro-text,.hero-description,.card-copy,.feature-list li,.feature-tags li,
.accordion-panel,.timeline,.benefit-list li,.recommend-body>p:last-of-type,
.diagnosis-layout>div>p:last-child,.free-day-copy p:not(.eyebrow),
.curation-content>p,.features-grid p,.comparison-grid article>p:not(.eyebrow),
.faq-item .accordion-panel,.closing-cta p:not(.eyebrow),.page-hero p,
.page-heading>p:last-child,.form-intro,.result-section .result-content>p:not(.eyebrow):not(.result-type),
.step-heading p:last-child,.section-heading>p:last-child:not(.eyebrow)  {
  font-size:16px;
}
.button,.hero .button,.choice-button,.text-button,.recommend-body .text-button,
.accordion-trigger,.faq-item .accordion-trigger,.diagnosis-layout .button,
.result-section .button,.closing-cta .button,.comparison-grid .text-button,
.form-actions .button,.complete-section .button,.completion-actions .button,
.form-panel>#submit-inquiry,.diagnosis-question legend,.diagnosis-options label,
.field label,.field legend,.people-grid .field label,.people-fields legend,
.privacy-field label,.privacy-consent,.text-link,.closing-back,
.result-actions a,.result-actions button,.plan-edit,.how-grid p,
.curation-content li,.site-footer nav a  {
  font-size:14px;
}
.eyebrow,.hero .eyebrow,.step-heading .eyebrow,.choice-body>.eyebrow,
.recommend-body .eyebrow,.progress-nav a,.hero-bottom,.plan-summary-label,
.field-note,.form-note,.field-help,.help-text,.small-note,.copyright,
.footer-brand-row p span,.flight-caption,#selection-status,.result-note,
.people-fields>p,.required  {
  font-size:12px;
}
.hero-description  {
  max-width:40em;
  line-height:2;
}
.feature-tags  {
  min-height:0;
}
@media(max-width:767px)  {
  .hero  {
    min-height:690px;
    max-height:none;
  }
  .hero-description  {
    font-size:16px;
    line-height:1.9;
    letter-spacing:0;
  }
  .hero-description br  {
    display:none;
  }
  .hero .eyebrow  {
    letter-spacing:.12em;
  }
  .hero-bottom  {
    letter-spacing:.04em;
  }
  .progress-nav a  {
    font-size:12px;
    letter-spacing:0;
  }
  .progress-nav ol  {
    gap:2px;
  }
  .progress-nav li  {
    min-width:0;
  }
  .progress-nav a>span:last-child  {
    font-size:12px;
  }
  .plan-summary-value  {
    font-size:16px;
  }
  .people-grid  {
    gap:10px;
  }
  .feature-tags li  {
    padding:5px 9px;
  }
  .recommend-body .text-button,.comparison-grid .text-button  {
    line-height:1.8;
  }
}

/* Final polish: clear progress, deliberate navigation, comfortable touch targets. */
.progress-nav .is-complete .progress-dot {
  background:#e3ece5;
  color:var(--ink);
  border-color:#9bae9f;
}
.progress-nav .is-current .progress-dot {
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
  box-shadow:0 0 0 3px #dbe4db;
}
.progress-nav .is-current>span:last-child { font-weight:700; }
.selection-next {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  margin-top:10px;
  color:var(--ink);
  font-size:14px;
  text-decoration:underline;
  text-underline-offset:5px;
}
.selection-next[hidden] { display:none; }
.plan-edit {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  min-width:44px;
}
.site-footer nav a,.official-link { min-height:44px; min-width:44px; }
.result-section .result-content>.eyebrow {
  font:clamp(21px,2.4vw,28px)/1.5 var(--serif);
  letter-spacing:.12em;
  color:#f4e7ca;
}
.result-section .button-light { box-shadow:0 6px 24px #0b282c33; }
@media(max-width:767px) {
  .progress-nav { padding-top:12px; padding-bottom:8px; }
  #selection-status { line-height:1.6; }
  .timeline li { grid-template-columns:1fr; gap:3px; }
  .timeline time { padding-top:0; font-size:14px; }
  .timeline p { padding-left:14px; }
  .plan-summary-label { letter-spacing:.06em; }
}

.complete-title-phrase { display:inline-block; }

/* Consistent four-sided details buttons, including mobile layouts. */
.choice-card .accordion-trigger {
  border:1px solid var(--line);
  padding:13px 14px;
}
