/* Homepage compositions. Shared navigation, type, buttons and footer live in theme.css. */
.nature-hero { position: relative; isolation: isolate; max-width: 1920px; margin: 0 auto; min-height: 705px; padding-bottom: 116px; background: #e8ede7; }
.hero-landscape { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; z-index: -3; }
.hero-mist { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #fdfefa 0%, #fdfefaf0 17%, #fdfefac9 33%, #fdfefa46 53%, transparent 72%), linear-gradient(180deg, #fdfefa91 0%, transparent 27%, transparent 85%, #fdfefa18 100%); }
.hero-wave { position: absolute; bottom: -1px; left: 0; width: 100%; height: 83px; color: var(--paper); z-index: -1; pointer-events: none; }
.hero-botanical { position: absolute; top: 17px; left: -31px; width: 115px; height: 192px; background: url('/assets/botanical.svg') center / contain no-repeat; opacity: .3; transform: rotate(-22deg); pointer-events: none; }
.hero-content { padding-top: 83px; position: relative; }
.hero-kicker, .home-kicker { display: flex; align-items: center; gap: 10px; color: var(--forest); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.hero-content h1 { margin-top: 22px; max-width: 820px; color: #10271e; font-size: clamp(2.8rem, 4.5vw, 4.75rem); line-height: 1.06; font-weight: 750; letter-spacing: -.055em; }
.hero-content h1 span { color: var(--forest); position: relative; }
.hero-content h1 span:after { content: ''; position: absolute; height: 7px; background: var(--orange); width: 43%; right: 0; bottom: -10px; clip-path: ellipse(50% 20% at 50% 50%); transform: rotate(-3deg); }
.hero-description { max-width: 435px; color: #35493e; margin-top: 29px; font-size: 1rem; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 25px; align-items: center; margin-top: 28px; }
.hero-actions .text-link { font-size: .85rem; }
.hero-location { position: absolute; right: max(56px, calc((100% - 1260px) / 2)); bottom: 108px; display: inline-flex; align-items: center; gap: 11px; color: #fff; font-size: .82rem; text-shadow: 0 1px 5px #132820; }
.hero-location > svg { width: 18px; height: 18px; }
.hero-location > svg:last-child { width: 16px; }
.hero-location small { display: block; font-size: .75rem; opacity: .9; }
.planner-wrap { position: relative; margin-top: 67px; z-index: 2; }
.trip-planner { display: grid; grid-template-columns: 1.25fr 1fr .82fr auto; gap: 0; align-items: center; background: #fffffff5; border: 1px solid #fff; border-radius: 18px; box-shadow: 0 15px 50px #18372920; padding: 18px; max-width: 1090px; }
.planner-field { min-width: 0; display: flex; align-items: center; gap: 15px; padding: 0 24px; border-right: 1px solid #e8ebe5; cursor: pointer; }
.planner-field > svg { width: 22px; height: 22px; color: #426150; }
.field-content { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; font-size: .75rem; font-weight: 700; line-height: 1.4; }
.field-content select, .field-content input { min-width: 0; max-width: 100%; width: 100%; font-size: .85rem; color: #606d64; font-weight: 400; border: 0; background: transparent; padding: 4px 2px 4px 0; line-height: 1.5; min-height: 30px; border-radius: 2px; cursor: pointer; }
.field-content input { color-scheme: light; }
.field-optional { display: block; font-size: .75rem; font-weight: 400; color: var(--muted); }
.planner-submit { border: 0; display: inline-flex; justify-content: center; align-items: center; gap: 12px; color: white; background: var(--forest); min-height: 54px; border-radius: 12px; font-size: .85rem; font-weight: 600; padding: 15px 23px; margin-left: 22px; transition: background .2s; }
.planner-submit:hover { background: #295c45; }
.planner-submit svg { width: 18px; height: 18px; }
.planner-note { display: table; color: #304c40; background: #fdfefae8; border-radius: 5px; font-size: .75rem; line-height: 1.45; margin: 10px 0 0 10px; padding: 5px 10px; }

.trust-strip { position: relative; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 27px; background: var(--paper); padding: 33px 37px; margin-top: -43px; border-radius: 24px; box-shadow: 0 12px 30px #25382b04; }
.trust-item { display: flex; gap: 15px; align-items: flex-start; }
.trust-icon { flex-shrink: 0; color: #456247; }
.trust-icon svg { width: 33px; height: 33px; margin-top: 2px; stroke-width: 1.35; }
.trust-item h2 { font-size: .88rem; line-height: 1.4; letter-spacing: -.015em; font-weight: 650; color: var(--forest); }
.trust-item p { font-size: .78rem; margin-top: 6px; line-height: 1.65; max-width: 175px; }
.home-destinations { padding-top: 62px; }
.home-section-heading { display: flex; gap: 35px; align-items: flex-end; justify-content: space-between; margin-bottom: 28px; }
.home-section-heading h2 { font-size: clamp(1.8rem,2.3vw,2.45rem); font-weight: 650; color: var(--forest); margin-top: 12px; line-height: 1.18; }
.home-section-heading .text-link { flex-shrink: 0; font-size: .85rem; min-height: 40px; }
.home-section-heading .text-link svg { border: 1px solid #dfe5d8; border-radius: 50%; width: 28px; height: 28px; padding: 5px; }
.featured-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.experience-card { isolation: isolate; position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 375px; border-radius: 15px; color: #fff; background: var(--forest-deep); transition: transform .25s,box-shadow .25s; }
.experience-card:after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,#0d282c0d 0%, transparent 30%, #081d1740 53%, #071a14ed 100%); }
.experience-card:hover { transform: translateY(-5px); box-shadow: 0 15px 26px #142c3222; }
.card-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.experience-card:hover .card-photo { transform: scale(1.055); }
.experience-card:nth-child(2) .card-photo { object-position: 61% center; }
.card-tag { position: absolute; top: 17px; left: 17px; background: #173f32ec; color: #fff8e7; padding: 6px 11px; font-size: .75rem; letter-spacing: .01em; border-radius: 6px; font-weight: 550; }
.experience-copy { position: relative; width: 100%; padding: 24px 21px; }
.experience-copy small { font-size: .75rem; letter-spacing: .01em; color: #e8ede4; }
.experience-copy h3 { font-size: 1.38rem; font-weight: 650; line-height: 1.14; margin-top: 7px; padding-right: 12px; letter-spacing: -.035em; }
.experience-copy p { color: #e3e9df; font-size: .78rem; margin-top: 10px; padding-right: 24px; line-height: 1.5; }
.card-arrow { position: absolute; bottom: 24px; right: 18px; color: #f9b35b; }
.card-arrow svg { width: 20px; height: 20px; }
.experience-types { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; padding: 32px 30px 35px; }
.experience-types a { display: flex; gap: 14px; justify-content: center; align-items: center; min-height: 54px; font-size: .85rem; font-weight: 550; color: var(--forest); }
.experience-types .type-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 51px; height: 51px; border-radius: 50%; background: #edf1e3; transition: background .2s,transform .2s; }
.experience-types a:hover .type-icon { background: #fce1b8; transform: rotate(-7deg); }
.experience-types svg { width: 28px; height: 28px; stroke-width: 1.3; }

.journey-journal { display: grid; grid-template-columns: 1.1fr 1fr 1fr; align-items: stretch; gap: 24px; background: #f0f2e9; border: 1px solid #e9ede0; border-radius: 24px; margin-top: 12px; padding: 29px; position: relative; isolation: isolate; overflow: hidden; }
.journey-journal:after { content: ''; position: absolute; bottom: -24px; right: -30px; width: 143px; height: 190px; background: url('/assets/botanical.svg') center / contain no-repeat; opacity: .25; transform: rotate(24deg); z-index: -1; pointer-events: none; }
.journal-intro { padding: 15px 18px 12px 7px; }
.journal-intro h2 { font-size: clamp(1.6rem,2.1vw,2.15rem); color: var(--forest-deep); margin-top: 15px; line-height: 1.15; font-weight: 650; }
.journal-intro p { font-size: .9rem; line-height: 1.7; margin-top: 17px; max-width: 310px; }
.nature-home .journal-button { margin-top: 22px; background: var(--forest); color: #fff; min-height: 43px; padding: 12px 16px; font-size: .8rem; gap: 12px; }
.nature-home .journal-button:hover { background: #295c45; }
.journal-button svg { width: 18px; height: 18px; }
.journal-card { background: var(--paper); border-radius: 13px; overflow: hidden; box-shadow: 0 5px 18px #1e3a1d04; transition: transform .25s; }
.journal-card:hover { transform: translateY(-4px); }
.journal-card > img { width: 100%; height: 184px; object-fit: cover; }
.journal-card:first-of-type > img { object-position: 40% center; }
.journal-card-copy { position: relative; padding: 18px 21px 21px; }
.journal-card-copy .home-kicker { font-size: .75rem; letter-spacing: .055em; color: #64715e; }
.journal-card-copy h3 { font-size: 1.13rem; line-height: 1.32; letter-spacing: -.025em; color: var(--forest-deep); margin-top: 8px; }
.journal-card-link { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 15px; font-size: .78rem; color: #58674f; }
.journal-card-link svg { width: 18px; height: 18px; color: var(--forest); }
.escape-banner { display: grid; grid-template-columns: 1.07fr 1fr; position: relative; overflow: hidden; margin-top: 28px; background: #214b3b; color: #fff; min-height: 340px; border-radius: 24px; }
.escape-photo { position: relative; min-height: 340px; overflow: hidden; border-radius: 0 47% 47% 0 / 0 90% 90% 0; }
.escape-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center 56%; }
.escape-photo:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,transparent 68%,#214b3b33); }
.escape-copy { padding: 44px 58px 42px 36px; position: relative; z-index: 1; }
.escape-copy .home-kicker { color: #d2dcbf; font-size: .75rem; letter-spacing: .1em; }
.escape-copy h2 { font-size: clamp(1.9rem,2.5vw,2.7rem); line-height: 1.1; max-width: 425px; font-weight: 650; margin-top: 16px; }
.escape-copy p { color: #e1e8dc; font-size: .9rem; margin-top: 18px; max-width: 370px; line-height: 1.7; }
.escape-copy .button { margin-top: 24px; font-size: .85rem; }
.escape-mark { position: absolute; right: -45px; bottom: -52px; width: 205px; height: 235px; background: url('/assets/botanical.svg') center / contain no-repeat; opacity: .32; transform: rotate(-32deg); pointer-events: none; }
.home-signoff { display: grid; grid-template-columns: repeat(3,1fr); padding-block: 36px; gap: 30px; border-bottom: 1px solid #e2e7dc; }
.home-signoff > div { display: flex; justify-content: center; align-items: center; gap: 16px; }
.home-signoff > div + div { border-left: 1px solid #e7eade; }
.home-signoff svg { color: #52735e; width: 31px; height: 31px; stroke-width: 1.3; }
.home-signoff strong { display: block; font-size: 1.3rem; line-height: 1.3; font-weight: 650; color: var(--forest-deep); }
.home-signoff span { font-size: .78rem; color: var(--muted); }

@media (min-width: 1921px) {
  .nature-hero { border-radius: 24px 24px 0 0; overflow: clip; }
  .hero-mist { background: linear-gradient(90deg,#fdfefaf7 0%,#fdfefae6 25%,#fdfefa73 48%,transparent 75%); }
}
@media (max-width: 1100px) {
  .hero-content { padding-top: 68px; }
  .hero-content h1 { font-size: 3.5rem; }
  .nature-hero { min-height: 660px; }
  .hero-location { bottom: 91px; right: 38px; }
  .planner-field { padding-inline: 13px; gap: 10px; }
  .planner-submit { margin-left: 14px; padding-inline: 17px; }
  .trip-planner { grid-template-columns: 1.2fr 1fr .8fr auto; padding: 15px; }
  .trust-strip { padding: 28px 21px; gap: 20px; }
  .trust-item { gap: 11px; }
  .trust-icon svg { width: 27px; height: 27px; }
  .trust-item h2 { font-size: .81rem; }
  .trust-item p { font-size: .75rem; }
  .featured-grid { gap: 16px; }
  .experience-card { min-height: 338px; }
  .experience-copy { padding: 21px 17px; }
  .experience-copy h3 { font-size: 1.22rem; }
  .experience-copy p { font-size: .75rem; padding-right: 10px; }
  .card-arrow { display: none; }
  .experience-types { padding-inline: 0; gap: 15px; }
  .journey-journal { gap: 20px; padding: 24px; }
  .journal-intro { padding-inline: 0; }
  .journal-card > img { height: 165px; }
  .journal-card-copy { padding-inline: 16px; }
  .escape-copy { padding: 37px 33px 37px 25px; }
}
@media (max-width: 900px) {
  .hero-content h1 { font-size: 3.2rem; }
  .hero-mist { background: linear-gradient(90deg,#fdfefaf5,#fdfefacc 36%,#fdfefa42 65%,#fdfefa10 100%); }
  .trip-planner { grid-template-columns: 1.2fr 1fr 1fr; row-gap: 16px; }
  .planner-field:nth-of-type(3) { border-right: 0; }
  .planner-submit { grid-column: 1 / -1; margin: 0; min-height: 46px; }
  .nature-hero { padding-bottom: 88px; }
  .hero-location { display: none; }
  .trust-strip { grid-template-columns: repeat(2,1fr); row-gap: 27px; }
  .trust-item p { max-width: none; }
  .trust-item h2 { font-size: .86rem; }
  .home-destinations { padding-top: 45px; }
  .featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
  .experience-card { min-height: 345px; }
  .experience-copy { padding: 23px; }
  .experience-copy h3 { font-size: 1.45rem; }
  .experience-copy p { font-size: .85rem; max-width: 280px; }
  .experience-types { gap: 10px; }
  .experience-types a { flex-direction: column; gap: 10px; font-size: .8rem; }
  .journey-journal { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .journal-intro { grid-column: 1 / -1; padding: 6px 0 12px; }
  .journal-intro h2 { font-size: 2rem; }
  .journal-intro h2 br { display: none; }
  .journal-intro p { max-width: 570px; }
  .nature-home .journal-button { margin-top: 18px; }
  .journal-card > img { height: 190px; }
  .escape-copy h2 { font-size: 2rem; }
  .escape-copy { padding: 33px 27px; }
  .escape-copy .home-kicker { font-size: .75rem; letter-spacing: .045em; }
  .escape-photo { border-radius: 0 28% 28% 0 / 0 80% 80% 0; }
}
@media (max-width: 760px) {
  .nature-hero { min-height: 0; padding-bottom: 64px; }
  .hero-content { padding-top: 43px; }
  .hero-content h1 { font-size: clamp(2.2rem,6.7vw,3rem); margin-top: 18px; max-width: 580px; }
  .hero-kicker { font-size: .75rem; letter-spacing: .09em; }
  .hero-description { font-size: .95rem; max-width: 345px; margin-top: 26px; }
  .hero-description br { display: none; }
  .hero-actions { gap: 17px; margin-top: 24px; }
  .nature-home .hero-actions .button { padding: 14px 18px; font-size: .85rem; }
  .hero-actions .text-link { font-size: .8rem; }
  .hero-landscape { object-position: 66% center; }
  .hero-mist { background: linear-gradient(180deg,#fdfefaf5 0%,#fdfefae0 20%,#fdfefa91 39%,#fdfefa08 57%,#fdfefa08 90%),linear-gradient(90deg,#fdfefa70,transparent 85%); }
  .hero-botanical { width: 75px; height: 130px; top: 5px; left: -35px; opacity: .2; }
  .planner-wrap { margin-top: 165px; }
  .trip-planner { grid-template-columns: 1fr 1fr; padding: 18px 15px 15px; gap: 15px 0; border-radius: 17px; }
  .planner-field { padding: 0 10px; }
  .planner-field:first-of-type { grid-column: 1 / -1; border-right: 0; padding-bottom: 14px; border-bottom: 1px solid #e8ebe5; }
  .planner-field:nth-of-type(3) { border-right: 0; padding-left: 17px; }
  .planner-field > svg { width: 20px; height: 20px; }
  .field-content { font-size: .75rem; }
  .field-content select, .field-content input { font-size: 1rem; }
  .planner-submit { min-height: 49px; border-radius: 10px; font-size: .88rem; }
  .planner-note { text-align: center; margin: 10px auto 0; padding: 5px 9px; color: var(--forest-deep); font-size: .75rem; max-width: 340px; }
  .hero-wave { height: 39px; }
  .trust-strip { margin-top: 0; padding: 26px 0; border-radius: 0; background: transparent; box-shadow: none; gap: 27px 22px; }
  .trust-icon svg { width: 27px; height: 27px; }
  .trust-item { gap: 11px; }
  .trust-item h2 { font-size: .81rem; }
  .trust-item p { font-size: .75rem; margin-top: 5px; }
  .home-destinations { padding-top: 33px; }
  .home-section-heading { gap: 17px; margin-bottom: 22px; align-items: start; flex-direction: column; }
  .home-section-heading h2 { font-size: 2rem; max-width: 400px; }
  .home-kicker { font-size: .75rem; letter-spacing: .09em; }
  .home-section-heading .text-link { min-height: 36px; }
  .featured-grid { gap: 14px; }
  .experience-card { min-height: 315px; border-radius: 13px; }
  .card-tag { top: 12px; left: 12px; font-size: .75rem; padding: 5px 9px; }
  .experience-copy { padding: 20px 15px; }
  .experience-copy small { font-size: .75rem; line-height: 1.5; display: block; }
  .experience-copy h3 { font-size: 1.3rem; padding-right: 0; }
  .experience-copy p { font-size: .78rem; padding-right: 0; margin-top: 10px; }
  .experience-types { padding-block: 27px; gap: 8px; }
  .experience-types a { font-size: .75rem; text-align: center; }
  .experience-types .type-icon { width: 46px; height: 46px; }
  .experience-types svg { width: 26px; height: 26px; }
  .journey-journal { margin-top: 8px; padding: 23px; gap: 17px; border-radius: 20px; }
  .journal-intro h2 { font-size: 2rem; }
  .journal-intro p { font-size: .9rem; }
  .journal-card > img { height: 175px; }
  .journal-card-copy { padding: 17px 16px 20px; }
  .journal-card-copy h3 { font-size: 1.05rem; }
  .journal-card-copy .home-kicker { font-size: .75rem; letter-spacing: .035em; }
  .escape-banner { grid-template-columns: 1fr; margin-top: 24px; border-radius: 20px; }
  .escape-photo { min-height: 265px; border-radius: 0; }
  .escape-photo:after { background: linear-gradient(180deg,transparent 68%,#214b3b); }
  .escape-copy { padding: 10px 28px 36px; }
  .escape-copy h2 { font-size: 2.15rem; max-width: 380px; }
  .escape-copy p { font-size: .92rem; }
  .home-signoff { gap: 12px; padding-block: 31px; }
  .home-signoff > div { flex-direction: column; gap: 9px; text-align: center; }
  .home-signoff svg { width: 28px; height: 28px; }
  .home-signoff strong { font-size: 1.1rem; }
  .home-signoff span { display: block; font-size: .75rem; line-height: 1.5; margin-top: 4px; }
}
@media (max-width: 540px) {
  .trip-planner { grid-template-columns: 1fr; padding-inline: 15px; gap: 12px; }
  .planner-field { grid-column: auto; border-right: 0; border-bottom: 1px solid #e8ebe5; padding: 0 5px 10px; gap: 12px; }
  .planner-field:first-of-type { grid-column: auto; padding-bottom: 10px; }
  .planner-field:nth-of-type(3) { padding: 0 5px; border-bottom: 0; }
  .field-optional { display: inline; }
  .planner-submit { grid-column: auto; }
  .experience-card { min-height: 294px; }
  .experience-copy p { display: none; }
  .experience-copy { padding: 19px 14px; }
  .experience-copy h3 { font-size: 1.2rem; margin-top: 7px; }
  .experience-copy small { color: #f0f2ea; }
  .experience-types a { gap: 9px; font-size: .75rem; }
  .journey-journal { grid-template-columns: 1fr; }
  .journal-intro { grid-column: auto; padding-bottom: 8px; }
  .journal-intro h2 br { display: initial; }
  .journal-card { display: grid; grid-template-columns: 38% 1fr; }
  .journal-card > img { height: 100%; min-height: 185px; }
  .journal-card-copy { padding: 19px 16px; }
  .journal-card-copy h3 { font-size: 1.06rem; }
  .journal-card-copy h3 br { display: none; }
  .journal-card-copy .home-kicker { letter-spacing: .025em; font-size: .75rem; }
  .journal-card-link { font-size: .75rem; gap: 5px; }
}
@media (max-width: 380px) {
  .hero-content h1 { font-size: 2rem; }
  .hero-description { max-width: 285px; }
  .hero-actions { gap: 11px; }
  .hero-actions .text-link { font-size: .8rem; }
  .nature-home .hero-actions .button { padding-inline: 14px; }
  .planner-wrap { margin-top: 137px; }
  .trust-strip { column-gap: 16px; }
  .trust-item { flex-direction: column; gap: 7px; }
  .trust-item h2 { font-size: .81rem; }
  .experience-card { min-height: 268px; }
  .experience-copy { padding-inline: 12px; }
  .experience-copy h3 { font-size: 1.09rem; }
  .card-tag { padding-inline: 7px; left: 10px; }
  .journey-journal { padding: 20px; }
  .journal-card { display: block; }
  .journal-card > img { height: 180px; min-height: 0; }
  .journal-card-copy h3 { font-size: 1.2rem; }
  .escape-copy { padding-inline: 24px; }
}
