/* Final homepage balance: quiet, deliberate spacing and one TLS palette. */
body.th-page .th-places,
body.th-page .th-faq {
  background: var(--th-ivory);
}

body.th-page .th-intro__content p:not(.th-kicker),
body.th-page .th-heading > p,
body.th-page .th-route p,
body.th-page .th-planning p:not(.th-kicker),
body.th-page .th-faq header > p:not(.th-kicker),
body.th-page .th-faq details p {
  color: var(--th-slate);
}

body.th-page .th-principles p {
  color: var(--th-navy);
}

/* Planning and FAQ share an ivory surface; this fine divider keeps the
   transition intentional instead of reading as an empty gap. */
body.th-page .th-faq {
  border-top: 1px solid var(--th-sand);
}

@media (min-width: 621px) {
  /* Reduce empty runway between visual chapters without making the page dense. */
  body.th-page .th-intro,
  body.th-page .th-places,
  body.th-page .th-routes,
  body.th-page .th-planning,
  body.th-page .th-faq {
    padding-block: 82px;
  }

  body.th-page .th-principles {
    padding-block: 76px;
  }

  body.th-page .th-final {
    padding-block: 96px;
  }

  body.th-page .th-planning {
    padding-bottom: 54px;
  }

  body.th-page .th-faq {
    padding-top: 58px;
  }

  body.th-page .th-intro__image img {
    height: 548px;
  }

  body.th-page .th-heading {
    margin-bottom: 30px;
  }
}

@media (max-width: 620px) {
  body.th-page .th-planning {
    padding-bottom: 54px;
  }

  body.th-page .th-faq {
    padding-top: 56px;
  }

  body.th-page .th-intro__content p:not(.th-kicker),
  body.th-page .th-heading > p,
  body.th-page .th-route p,
  body.th-page .th-planning p:not(.th-kicker),
  body.th-page .th-faq header > p:not(.th-kicker),
  body.th-page .th-faq details p {
    font-size: 15px;
    line-height: 1.72;
  }
}

/* Decision-led homepage additions: useful orientation without invented review scores or claims. */
body.th-page .th-assurance {
  background: var(--th-navy);
  color: var(--th-ivory);
}

body.th-page .th-assurance__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

body.th-page .th-assurance__grid > div {
  min-height: 148px;
  padding: 29px 26px 26px;
  border-right: 1px solid rgba(251,247,241,.18);
}

body.th-page .th-assurance__grid > div:first-child { border-left: 1px solid rgba(251,247,241,.18); }
body.th-page .th-assurance i { display: block; margin-bottom: 18px; color: var(--th-sand); font-size: 17px; }
body.th-page .th-assurance span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
body.th-page .th-assurance p { margin: 8px 0 0; color: rgba(251,247,241,.72); font-size: 12px; line-height: 1.55; }

body.th-page .th-start { padding: 94px 0; background: #fff; }
body.th-page .th-start__heading { display: grid; grid-template-columns: minmax(0, .98fr) minmax(260px, .56fr); column-gap: 10%; margin-bottom: 39px; }
body.th-page .th-start__heading .th-kicker { grid-column: 1; }
body.th-page .th-start__heading h2 { grid-column: 1; margin: 20px 0 0; color: var(--th-navy); }
body.th-page .th-start__heading h2 em { color: var(--th-coffee); }
body.th-page .th-start__heading > p { grid-column: 2; grid-row: 1 / span 2; align-self: end; margin: 0; color: var(--th-slate); font-size: 15px; line-height: 1.8; }
body.th-page .th-start__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--th-sand); border-left: 1px solid var(--th-sand); }
body.th-page .th-start__card { display: flex; min-height: 290px; flex-direction: column; padding: 27px 23px 23px; border-right: 1px solid var(--th-sand); border-bottom: 1px solid var(--th-sand); background: var(--th-ivory); color: var(--th-navy); text-decoration: none; transition: background .22s ease, color .22s ease; }
body.th-page .th-start__card:hover { background: var(--th-navy); color: var(--th-ivory); }
body.th-page .th-start__card > span { color: var(--th-coffee); font: 500 25px/1 var(--th-display); }
body.th-page .th-start__card h3 { margin: 32px 0 10px; font-size: 27px; line-height: 1; }
body.th-page .th-start__card p { margin: 0; color: var(--th-slate); font-size: 13px; line-height: 1.68; }
body.th-page .th-start__card b { display: flex; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--th-sand); color: var(--th-coffee); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
body.th-page .th-start__card:hover > span, body.th-page .th-start__card:hover b { color: var(--th-sand); }
body.th-page .th-start__card:hover p { color: rgba(251,247,241,.76); }

body.th-page .th-compare { padding: 94px 0; background: var(--th-ivory); }
body.th-page .th-compare__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .62fr); column-gap: 10%; margin-bottom: 37px; }
body.th-page .th-compare__heading .th-kicker, body.th-page .th-compare__heading h2 { grid-column: 1; }
body.th-page .th-compare__heading h2 { margin-top: 20px; color: var(--th-navy); }
body.th-page .th-compare__heading h2 em { color: var(--th-coffee); }
body.th-page .th-compare__heading > p { grid-column: 2; grid-row: 1 / span 2; align-self: end; margin: 0; color: var(--th-slate); font-size: 15px; line-height: 1.8; }
body.th-page .th-compare__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
body.th-page .th-compare article { display: flex; min-height: 346px; flex-direction: column; padding: 28px 24px 25px; border-top: 3px solid var(--th-sand); background: #fff; }
body.th-page .th-compare article > span { color: var(--th-coffee); font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
body.th-page .th-compare h3 { margin: 16px 0 22px; color: var(--th-navy); font-size: 29px; line-height: .96; }
body.th-page .th-compare dl { display: grid; gap: 11px; margin: 0; }
body.th-page .th-compare dl > div { padding-bottom: 11px; border-bottom: 1px solid rgba(189,175,154,.75); }
body.th-page .th-compare dt { margin-bottom: 4px; color: var(--th-coffee); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
body.th-page .th-compare dd { margin: 0; color: var(--th-slate); font-size: 12px; line-height: 1.48; }
body.th-page .th-compare .th-arrow { margin-top: auto; font-size: 9px; }

@media (max-width: 900px) {
  body.th-page .th-assurance__grid, body.th-page .th-start__grid, body.th-page .th-compare__grid { grid-template-columns: repeat(2, 1fr); }
  body.th-page .th-assurance__grid > div:nth-child(3) { border-left: 1px solid rgba(251,247,241,.18); }
  body.th-page .th-start__heading, body.th-page .th-compare__heading { grid-template-columns: 1fr; }
  body.th-page .th-start__heading > p, body.th-page .th-compare__heading > p { grid-column: 1; grid-row: auto; margin-top: 24px; }
}

@media (max-width: 620px) {
  body.th-page .th-hero { touch-action: pan-y; }
  body.th-page .th-assurance__grid { width: 100%; }
  body.th-page .th-assurance__grid > div { min-height: 141px; padding: 23px 17px 20px; }
  body.th-page .th-assurance__grid > div:first-child, body.th-page .th-assurance__grid > div:nth-child(3) { border-left: 0; }
  body.th-page .th-assurance__grid > div:nth-child(odd) { border-left: 1px solid rgba(251,247,241,.18); }
  body.th-page .th-assurance i { margin-bottom: 13px; font-size: 15px; }
  body.th-page .th-assurance span { font-size: 9px; line-height: 1.35; }
  body.th-page .th-assurance p { font-size: 11px; line-height: 1.45; }
  body.th-page .th-start, body.th-page .th-compare { padding: 68px 0; }
  body.th-page .th-start__heading, body.th-page .th-compare__heading { margin-bottom: 28px; }
  body.th-page .th-start__heading > p, body.th-page .th-compare__heading > p { font-size: 14px; line-height: 1.7; }
  body.th-page .th-start__card { min-height: 246px; padding: 20px 16px 17px; }
  body.th-page .th-start__card h3 { margin-top: 25px; font-size: 23px; }
  body.th-page .th-start__card p { font-size: 12px; }
  body.th-page .th-start__card b { font-size: 8px; line-height: 1.35; }
  body.th-page .th-compare__grid { gap: 10px; }
  body.th-page .th-compare article { min-height: 0; padding: 22px 17px 19px; }
  body.th-page .th-compare h3 { margin: 13px 0 18px; font-size: 24px; }
  body.th-page .th-compare dd { font-size: 11px; }
}
