/* Homepage-only refinements. Shared site styles and interior pages are unchanged. */
.home-page .hero { min-height: 660px; }
.home-page .hero-media { background-image: url("assets/images/destinations/portugal-lagos.webp"); transform: scale(1.04); }
.home-photo-credit { position: absolute; z-index: 3; right: 20px; bottom: 16px; padding: 5px 8px; background: rgba(251,247,239,.92); border-radius: 4px; font-size: .65rem; color: var(--ink); }
.home-page .hero-grid { min-height: 660px; padding-top: 135px; padding-bottom: 55px; grid-template-columns: minmax(0, 700px) 1fr; }
.home-page .hero-copy { padding-bottom: 0; }
.home-page .hero-copy h1 { max-width: 690px; font-size: clamp(2.9rem, 4.7vw, 4.5rem); line-height: 1.06; }
.home-page .hero-lede { max-width: 620px; font-size: clamp(1.1rem, 1.7vw, 1.3rem); }
.home-page .hero-support { max-width: 620px; font-size: 1rem; }
.home-page .hero-support strong { font-weight: 600; }
.home-page .hero-actions { gap: 20px; }
.home-page .hero-copy .microcopy { max-width: 580px; margin-top: 18px; }
.home-page .section { padding: 76px 0; }
.home-section-heading { max-width: 780px; margin-bottom: 32px; }
.home-section-heading h2 { font-size: clamp(2rem, 3.5vw, 3rem); }
.home-section-heading > p:last-child { max-width: 640px; }
.home-tool-grid, .home-question-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.home-tool-card { display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--cream); }
.home-card-number { color: var(--forest); font-size: .72rem; font-weight: 700; letter-spacing: .1em; margin-bottom: 24px; }
.home-tool-card h3 { font-size: 2rem; line-height: 1.12; margin-bottom: 16px; }
.home-tool-card > p:first-of-type { flex: 1; }
.home-tool-card .home-tool-facts { color: var(--forest-dark); font-weight: 600; font-size: .8rem; margin: 20px 0 14px; }
.home-tool-card .button { width: 100%; padding-inline: 12px; font-size: .82rem; letter-spacing: .01em; }
.home-tool-card .home-tool-detail { min-height: 5.8em; margin: 16px 0 0; font-size: .78rem; line-height: 1.6; }
.home-supporting-link { margin: 26px 0 0; text-align: center; font-size: .9rem; }
.home-questions { background: var(--sage-light); }
.home-question-grid article { padding-right: 20px; }
.home-question-grid h3 { font-size: 1.7rem; line-height: 1.15; }
.home-question-grid p { font-size: .95rem; }
.home-question-grid .text-link { font-size: .82rem; }
.home-all-questions { display: inline-block; margin-top: 28px; }
.home-book { background: var(--cream); }
.home-book-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(32px, 5vw, 70px); align-items: start; }
.home-book-copy > h2 { font-size: clamp(2.4rem, 3.5vw, 3.4rem); }
.home-book-intro { display: grid; grid-template-columns: minmax(110px, 165px) minmax(0, 1fr); gap: 26px; margin-top: 30px; align-items: start; }
.home-book-cover { margin: 0; }
.home-book-cover img { display: block; width: 100%; height: auto; box-shadow: 0 12px 28px rgba(20, 40, 25, .13); border-radius: 2px; }
.home-book-cover figcaption { font-size: .65rem; margin-top: 12px; color: var(--ink-soft); }
.home-book-intro h3 { font-size: 1.8rem; line-height: 1.15; }
.home-book-intro p { font-size: .93rem; }
.home-book-intro .text-link { font-size: .85rem; }
.home-signup { margin: 0; border: 1px solid var(--line); }
.home-signup h3 { font-size: 2rem; line-height: 1.15; }
.home-signup > p:not(.eyebrow):not(.book-update-fine-print) { font-size: .95rem; }
.home-signup .button { width: 100%; letter-spacing: .01em; }
.home-signup .consent-field { font-size: .8rem; }
.home-credibility { padding: 38px 0; border-top: 1px solid var(--line); }
.home-credibility-inner { display: flex; align-items: center; gap: 36px; }
.home-credibility p { max-width: 850px; font-size: .86rem; margin: 0; }
.home-credibility .text-link { flex-shrink: 0; font-size: .85rem; }
.home-page :is(a, button):focus-visible { outline: 3px solid var(--forest); outline-offset: 4px; }
@media (max-width: 1100px) {
  .home-page .hero-grid { padding-top: 60px; }
  .home-tool-card { padding: 22px; }
}
@media (max-width: 800px) {
  .home-page .hero { min-height: auto; }
  .home-page .hero-grid { grid-template-columns: 1fr; min-height: auto; padding-top: 54px; padding-bottom: 76px; }
  .home-page .hero-media { inset: 0; opacity: .13; }
  .home-page .hero-overlay { background: linear-gradient(90deg, rgba(251,247,239,.96), rgba(251,247,239,.65)); }
  .home-tool-grid, .home-question-grid, .home-book-grid { grid-template-columns: 1fr; }
  .home-tool-card { padding: 26px; }
  .home-tool-card .home-tool-detail { min-height: 0; }
  .home-card-number { margin-bottom: 16px; }
  .home-question-grid { gap: 28px; }
  .home-book-grid { gap: 36px; }
  .home-credibility-inner { display: block; }
  .home-credibility .text-link { display: inline-block; margin-top: 16px; }
}
@media (max-width: 620px) {
  .home-page .section { padding: 52px 0; }
  .home-page .hero-copy h1 { font-size: clamp(2.55rem, 10.5vw, 3.5rem); }
  .home-page .hero-actions { align-items: flex-start; }
  .home-page .hero-actions .text-link { width: auto; }
  .home-book-intro { grid-template-columns: 110px minmax(0, 1fr); gap: 18px; }
  .home-book-intro h3 { font-size: 1.5rem; }
  .home-signup { padding: 24px; }
}
@media (max-width: 360px) {
  .home-book-intro { grid-template-columns: 1fr; }
  .home-book-cover { max-width: 140px; }
}

/* Stage 1: give the invitation and the image their own space. */
.home-page .hero { min-height: 0; }
.home-page .hero-grid {
  min-height: 0; padding-top: 48px; padding-bottom: 48px;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  gap: clamp(28px, 4vw, 64px); align-items: center;
}
.home-page .hero-copy h1 { font-size: clamp(2.65rem, 4.5vw, 4rem); max-width: 630px; margin-bottom: 20px; }
.home-page .hero-lede { font-size: 1.18rem; font-weight: 500; margin-bottom: 14px; }
.home-page .hero-support { font-size: 1rem; max-width: 55ch; margin-bottom: 22px; }
.home-page .hero-actions { gap: 16px; flex-wrap: wrap; }
.home-page .hero-actions .button { font-size: .85rem; letter-spacing: 0; }
.home-page .hero-copy .microcopy { margin-top: 16px; margin-bottom: 0; }
.home-hero-photo { margin: 0; min-width: 0; }
.home-hero-photo img { width: 100%; height: clamp(330px, 34vw, 440px); object-fit: cover; border-radius: 140px 14px 14px 14px; }
.home-hero-photo figcaption { margin-top: 10px; color: var(--ink-soft); font-size: .68rem; line-height: 1.5; }
.home-hero-photo figcaption a { text-underline-offset: 2px; }
.home-credibility { background: var(--white); padding: 30px 0; border-block: 1px solid var(--line); }
.home-credibility p { font-size: .93rem; }
.home-credibility strong { display: block; margin-bottom: 6px; color: var(--forest-dark); }
.home-page .home-book-intro .text-link { display: inline-block; }
@media (max-width: 800px) {
  .home-page .hero-grid { grid-template-columns: 1fr; padding-top: 32px; padding-bottom: 30px; gap: 26px; }
  .home-page .hero-copy h1 { max-width: 640px; }
  .home-hero-photo img { height: clamp(200px, 44vw, 330px); border-radius: 65px 12px 12px 12px; }
}
@media (max-width: 620px) {
  .home-page .hero-copy h1 { font-size: clamp(2.45rem, 10vw, 3.5rem); }
  .home-page .hero .eyebrow { font-size: .68rem; margin-bottom: 14px; }
  .home-page .hero-lede { font-size: 1.06rem; }
  .home-page .hero-support { font-size: .94rem; line-height: 1.65; }
  .home-page .hero-actions { align-items: stretch; gap: 14px; }
  .home-page .hero-actions .button { width: 100%; min-height: 52px; padding-inline: 12px; }
  .home-page .hero-actions .text-link { width: 100%; font-size: .86rem; }
  .home-tool-card h3 { font-size: 2rem; }
}
