 :root{--forest:#173d38;--deep:#102f2b;--sage:#dce7dc;--sage-soft:#edf1e8;--paper:#f6f4ed;--white:#fffefa;--ink:#1e302c;--muted:#6c7770;--line:#d7ddd4;--ochre:#c38b4e;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}.container{width:min(1160px,calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;left:-999px;top:8px;z-index:10;background:var(--white);padding:10px 16px}.skip-link:focus{left:12px}
.site-header{position:relative;z-index:5;background:var(--paper);border-bottom:1px solid rgba(23,61,56,.1)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;min-height:88px}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--forest);border-radius:50%;color:var(--forest);font-family:var(--serif);font-size:17px;font-weight:700;letter-spacing:-2px}.brand-mark span{color:var(--ochre);padding-inline:2px}.brand-copy{display:grid;line-height:1.2}.brand-copy strong{font-size:14px;letter-spacing:.03em}.brand-copy small{margin-top:5px;color:var(--muted);font-size:14px;letter-spacing:.1em;text-transform:uppercase}.site-nav{display:flex;align-items:center;gap:34px;color:#344740;font-size:14px;font-weight:600}.site-nav a:not(.nav-cta):hover,.footer-links a:hover{color:var(--ochre)}.nav-cta{border:1px solid var(--forest);border-radius:2px;padding:12px 17px;color:var(--forest)}.nav-cta span{margin-left:12px;color:var(--ochre)}.nav-toggle{display:none;border:0;background:none;padding:10px}.nav-toggle span{display:block;width:22px;height:1px;margin:5px;background:var(--forest)}
.hero{padding:60px 0 78px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:58px;align-items:center}.hero-copy{padding:22px 0 12px}.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 19px;color:#77877c;font-size:14px;font-weight:700;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}.eyebrow-line{display:inline-block;width:27px;height:1px;background:var(--ochre)}.hero h1,.page-hero h1{max-width:590px;margin:0;color:var(--deep);font-family:var(--serif);font-size:clamp(48px,5.3vw,74px);font-weight:500;letter-spacing:-.04em;line-height:1.05}.hero-lead{max-width:490px;margin:26px 0 0;color:#65736a;font-size:16px;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:50px;border:1px solid transparent;border-radius:2px;padding:0 21px;font-size:14px;font-weight:700;transition:transform .2s ease,background .2s ease}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--forest);color:white}.button-dark:hover{background:var(--deep)}.button-light{background:var(--paper);color:var(--forest)}.button-light:hover{background:white}.text-link{display:inline-flex;gap:12px;align-items:center;color:var(--forest);font-size:14px;font-weight:700}.text-link span,.card-link span{color:var(--ochre)}.hero-caption{display:flex;align-items:center;gap:9px;margin-top:52px;color:#808a82;font-size:14px;letter-spacing:.04em}.caption-dot{width:6px;height:6px;background:var(--ochre);border-radius:50%}.hero-art{position:relative;min-width:0}.hero-art>img{width:100%;height:458px;object-fit:cover;border-radius:2px}.hero-note{position:absolute;left:-34px;bottom:30px;display:flex;gap:14px;align-items:center;padding:17px 22px;background:var(--white);box-shadow:0 12px 35px rgba(20,48,43,.14)}.note-number{color:var(--ochre);font-family:var(--serif);font-size:30px}.hero-note strong,.hero-note small{display:block}.hero-note strong{color:var(--forest);font-size:14px}.hero-note small{margin-top:2px;color:var(--muted);font-size:14px}.art-label{position:absolute;right:16px;top:16px;padding:8px 12px;background:rgba(255,254,250,.88);color:var(--forest);font-family:var(--serif);font-size:14px;font-style:italic}
.intro-strip{display:grid;grid-template-columns:190px 1fr 28px;gap:32px;align-items:center;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.intro-kicker{color:var(--ochre);font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.intro-strip p{max-width:750px;margin:0;color:#526159;font-family:var(--serif);font-size:17px;line-height:1.55}.intro-arrow{color:var(--ochre);font-size:21px;text-align:right}
.section{padding:100px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px}.section-heading h2,.stays-intro h2,.values-layout h2,.closing-grid h2,.about-grid h2,.contact-aside h2{margin:0;color:var(--deep);font-family:var(--serif);font-size:clamp(34px,4vw,52px);font-weight:500;letter-spacing:-.03em;line-height:1.12}.section-heading .eyebrow{margin-bottom:12px}.section-intro{max-width:620px;margin:18px 0 38px;color:var(--muted);font-size:14px}.day-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.day-card{display:flex;flex-direction:column;min-height:378px;padding:29px 31px 25px;background:var(--white);border:1px solid #e8e8df}.day-card-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.day-index{color:var(--ochre);font-family:var(--serif);font-size:28px}.day-region{color:#78857a;font-size:14px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.day-card h3{max-width:420px;margin:22px 0 20px;color:var(--forest);font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.2}.day-stops{display:grid;gap:14px}.day-stop{display:grid;grid-template-columns:58px 1fr;gap:12px}.stop-time{color:var(--ochre);font-size:14px;font-weight:700;letter-spacing:.04em;padding-top:3px}.day-stop strong,.day-stop small{display:block}.day-stop strong{color:#344740;font-size:14px}.day-stop small{color:#929a92;font-size:14px}.card-link{margin-top:auto;padding-top:22px;color:var(--forest);font-size:14px;font-weight:700}.fine-print{margin:18px 0 0;color:#858d85;font-size:14px}
.stays-section{background:var(--sage-soft)}.stays-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.stays-intro h2{font-size:42px}.stays-intro>p:not(.eyebrow){max-width:390px;margin:23px 0;color:#69776e;font-size:14px;line-height:1.8}.stay-list{display:grid}.stay-item{display:grid;grid-template-columns:34px 1fr;gap:20px;padding:17px 0;border-bottom:1px solid #cdd8ce}.stay-item:first-child{padding-top:0}.stay-pin{color:var(--ochre);font-size:18px;line-height:1.5}.stay-item h3{margin:0;color:var(--forest);font-family:var(--serif);font-size:20px;font-weight:500}.stay-item p{margin:4px 0 6px;color:#627068;font-size:14px;font-weight:700;letter-spacing:.05em}.stay-item p span{color:var(--ochre);padding-inline:4px}.stay-item small{display:block;color:#7b877f;font-size:14px;line-height:1.55}
.values-section{padding:90px 0;background:var(--forest);color:white}.values-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px}.eyebrow-light{color:#c2d1c5}.values-layout h2{color:white;font-size:47px}.value-list{display:grid}.value-list article{display:grid;grid-template-columns:47px 1fr;gap:15px;padding:0 0 17px;margin-bottom:17px;border-bottom:1px solid rgba(255,255,255,.18)}.value-list article:last-child{margin-bottom:0}.value-list article>span{color:#d6ab78;font-family:var(--serif);font-size:20px}.value-list h3{margin:0;color:white;font-family:var(--serif);font-size:20px;font-weight:500}.value-list p{margin:5px 0 0;color:#bdc9c0;font-size:14px}
.partners-section{background:var(--paper)}.partners-section .section-heading>p{max-width:270px;margin:0;color:var(--muted);font-size:14px}.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:35px}.partner-card{padding:22px;border:1px solid var(--line);background:var(--white)}.partner-category{color:var(--ochre);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.partner-card h3{margin:10px 0;color:var(--forest);font-family:var(--serif);font-size:21px;font-weight:500}.partner-card p{min-height:55px;margin:0;color:#77827a;font-size:14px}.partner-card a{display:inline-block;margin-top:14px;color:var(--forest);font-size:14px;font-weight:700}
.closing-cta{padding:83px 0;background:#244c45;color:white}.closing-grid{display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:45px}.closing-grid .eyebrow{grid-column:1/-1}.closing-grid h2{max-width:700px;color:white;font-size:clamp(36px,4vw,52px)}.closing-grid>p:not(.eyebrow){grid-column:1;max-width:570px;margin:17px 0 0;color:#c7d4cb;font-size:14px}.closing-grid .button{grid-column:2;grid-row:2/span 2}.closing-cta-compact .closing-grid{grid-template-columns:1fr auto}.closing-cta-compact .closing-grid .button{grid-row:1/span 3}
.page-hero{padding:78px 0 69px;background:var(--sage-soft)}.page-hero-inner{max-width:800px}.page-hero h1{max-width:780px;font-size:clamp(42px,5vw,66px)}.page-hero-inner>p:not(.eyebrow){max-width:650px;margin:22px 0 26px;color:#68766c;font-size:15px;line-height:1.8}.page-hero-short{padding-block:70px}.route-detail{padding-top:62px}.route-day{padding:36px 0 56px;border-bottom:1px solid var(--line)}.route-day-header{display:grid;grid-template-columns:70px 1fr;gap:22px;align-items:start}.route-day-header .day-index{font-size:38px}.route-day-header .eyebrow{margin:0 0 8px}.route-day-header h2{margin:0;color:var(--forest);font-family:var(--serif);font-size:34px;font-weight:500}.route-stops{max-width:810px;margin:34px 0 0 92px}.route-stop{display:grid;grid-template-columns:115px 18px 1fr;gap:18px;padding:0 0 30px}.route-stop time{color:var(--ochre);font-size:14px;font-weight:700}.timeline-marker{position:relative;width:9px;height:9px;margin-top:6px;border:2px solid var(--ochre);border-radius:50%}.timeline-marker:after{position:absolute;top:8px;left:2px;width:1px;height:calc(100% + 50px);background:var(--line);content:""}.route-stop:last-child .timeline-marker:after{display:none}.route-stop-content{padding-bottom:5px}.stop-category{color:#7f8a80;font-size:14px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.route-stop h3{margin:6px 0 2px;color:var(--forest);font-family:var(--serif);font-size:21px;font-weight:500}.route-stop p{margin:7px 0 0;color:#6b7770;font-size:14px}.route-stop .stop-location{margin:0;color:var(--ochre);font-size:14px;font-weight:700}.confirm-label{display:inline-block;margin-top:10px;color:#777b61;font-size:14px;font-style:italic}.route-stays{background:var(--sage-soft)}.route-stays .section-heading>p{max-width:360px;margin:0;color:var(--muted);font-size:14px}.stay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:34px}.stay-card{position:relative;min-height:180px;padding:24px 26px;background:var(--white)}.stay-card .stay-pin{position:absolute;right:22px;top:18px}.stay-card .eyebrow{margin:0 0 8px}.stay-card h3{margin:0;color:var(--forest);font-family:var(--serif);font-size:23px;font-weight:500}.stay-card>p:not(.eyebrow){max-width:450px;margin:11px 0;color:#758078;font-size:14px}.stay-highlight{color:var(--ochre);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.contact-section{padding-top:65px}.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:88px;align-items:start}.contact-aside{padding-top:13px}.contact-aside h2{font-size:40px}.contact-aside>p:not(.eyebrow){margin:20px 0 29px;color:#6e7a72;font-size:14px;line-height:1.8}.contact-note{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.contact-note>span{color:var(--ochre);font-family:var(--serif);font-size:18px}.contact-note p{margin:0;color:#748077;font-size:14px}.contact-note strong{color:var(--forest);font-size:14px}.contact-form-card{padding:34px;background:var(--white);border:1px solid #e8e8df}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-field{display:grid;gap:7px;margin-bottom:16px}.form-field label{color:#42534a;font-size:14px;font-weight:700}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:45px;border:1px solid #dbe0d9;border-radius:1px;padding:11px 12px;outline:none;background:white;color:var(--ink);font-size:14px}.form-field textarea{min-height:auto;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#729083;box-shadow:0 0 0 3px rgba(55,104,88,.1)}.form-field span,.field-validation-error{color:#a53e34;font-size:14px}.validation-summary ul{margin:0 0 16px;padding:12px 14px 12px 31px;color:#9a342c;background:#fff1ed;font-size:14px}.validation-summary:empty{display:none}.consent-field{display:flex;gap:9px;align-items:flex-start;margin:8px 0 5px;color:#69766e;font-size:14px}.consent-field input{accent-color:var(--forest);margin-top:4px}.privacy-note{margin:13px 0 22px;color:#8a948b;font-size:14px;line-height:1.6}.success-message{display:flex;gap:12px;align-items:center;margin-bottom:22px;padding:13px;background:#edf5ed;color:#2c6a47;font-size:14px}.success-message span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#d6ead8}.success-message p{margin:0}
.about-section{padding-top:65px}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.about-grid h2{font-size:39px}.about-copy p{margin:0 0 17px;color:#68766d;font-size:14px;line-height:1.9}.about-values{padding-top:0}.values-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:24px}.values-card-grid article{min-height:210px;padding:21px;background:var(--white);border:1px solid #e8e8df}.values-card-grid article>span{color:var(--ochre);font-family:var(--serif);font-size:22px}.values-card-grid h3{margin:15px 0 7px;color:var(--forest);font-family:var(--serif);font-size:19px;font-weight:500}.values-card-grid p{margin:0;color:#77827a;font-size:14px;line-height:1.7}
.site-footer{padding:48px 0 18px;background:var(--deep);color:white}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:34px;align-items:start;padding-bottom:35px}.brand-light .brand-mark{border-color:rgba(255,255,255,.65);color:white}.brand-light .brand-copy small{color:#aabdb0}.footer-grid>p{max-width:240px;margin:3px 0;color:#bac8be;font-family:var(--serif);font-size:16px}.footer-links{display:grid;gap:8px;justify-self:end;color:#cfdbd2;font-size:14px}.footer-bottom{display:flex;justify-content:space-between;padding-top:14px;border-top:1px solid rgba(255,255,255,.16);color:#9eb2a5;font-size:14px;letter-spacing:.05em}
@media(max-width:900px){.hero-grid{gap:33px}.hero-art>img{height:390px}.stays-layout,.values-layout,.contact-grid,.about-grid{gap:48px}.values-card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.container{width:min(100% - 36px,560px)}.nav-wrap{min-height:72px}.nav-toggle{display:block}.site-nav{position:absolute;top:71px;left:0;right:0;display:none;align-items:stretch;gap:0;padding:8px 18px 18px;background:var(--paper);border-bottom:1px solid var(--line)}.site-nav.is-open{display:grid}.site-nav a{padding:13px 6px}.nav-cta{margin-top:8px;text-align:center}.hero{padding:38px 0 47px}.hero-grid{grid-template-columns:1fr;gap:30px}.hero h1{font-size:clamp(44px,12vw,62px)}.hero-lead{font-size:14px}.hero-caption{margin-top:30px}.hero-art>img{height:300px}.hero-note{left:12px;bottom:16px;padding:12px 15px}.intro-strip{grid-template-columns:1fr 24px;gap:6px 12px;padding-block:21px}.intro-kicker,.intro-strip p{grid-column:1}.intro-strip p{font-size:15px}.intro-arrow{grid-column:2;grid-row:1/span 2}.section{padding:70px 0}.section-heading{display:block}.section-heading>.text-link{margin-top:17px}.section-heading h2,.stays-intro h2,.closing-grid h2{font-size:37px}.day-grid,.stays-layout,.values-layout,.contact-grid,.about-grid{grid-template-columns:1fr;gap:28px}.day-card{min-height:0}.day-card h3{font-size:23px}.stays-intro h2{max-width:500px}.values-layout h2{font-size:40px}.partner-grid,.values-card-grid{grid-template-columns:1fr}.partner-card p{min-height:0}.closing-cta{padding:65px 0}.closing-grid,.closing-cta-compact .closing-grid{grid-template-columns:1fr}.closing-grid .button,.closing-cta-compact .closing-grid .button{grid-column:1;grid-row:auto;justify-self:start;margin-top:22px}.page-hero{padding:55px 0}.page-hero h1{font-size:43px}.route-day-header{grid-template-columns:48px 1fr;gap:10px}.route-day-header h2{font-size:27px}.route-stops{margin-left:0}.route-stop{grid-template-columns:74px 12px 1fr;gap:10px}.route-stop time{font-size:14px}.stay-grid{grid-template-columns:1fr}.contact-form-card{padding:22px 18px}.form-row{grid-template-columns:1fr;gap:0}.contact-aside h2,.about-grid h2{font-size:35px}.footer-grid{grid-template-columns:1fr 1fr;gap:22px}.footer-links{justify-self:start}.footer-bottom{gap:10px;flex-wrap:wrap}}
@media(max-width:420px){.values-card-grid{grid-template-columns:1fr}.hero-actions{align-items:flex-start;flex-direction:column;gap:17px}.footer-grid{grid-template-columns:1fr}}

/* Identidade visual: símbolo do segundo logótipo e identificação do Ribatejo. */
.site-header .brand {
    display: flex;
    width: auto;
    flex-direction: row;
    align-items: center;
    gap: 12px;
}

.brand-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    object-fit: contain;
}

.site-header .brand-copy strong {
    font-size: 17px;
}

.site-header .brand-copy small {
    margin-top: 3px;
    color: var(--ochre);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.brand-light .brand-copy small {
    color: #cfdbd2;
    font-size: 14px;
    letter-spacing: .12em;
}

.brand-light .brand-icon {
    padding: 4px;
    border-radius: 50%;
    background: var(--paper);
}

/* Página inicial: composição em blocos inspirada em viagens editoriais. */
:root {
    --home-cream: #f3f0e7;
    --home-paper: #fbfaf6;
    --home-ink: #26322d;
    --home-muted: #4e5a52;
    --home-line: #c9cec5;
    --home-sage: #e8ece5;
    --home-gold: #76511f;
}

.home-hero {
    position: relative;
    display: flex;
    min-height: clamp(560px, calc(100svh - 88px), 760px);
    overflow: hidden;
    isolation: isolate;
    background: #263a33;
    color: #fff;
}

.home-hero-media {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
}

.home-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 55%;
}

.home-hero-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(14, 34, 29, .84) 0%, rgba(14, 34, 29, .67) 37%, rgba(14, 34, 29, .24) 72%, rgba(14, 34, 29, .08) 100%), linear-gradient(0deg, rgba(14, 34, 29, .35), transparent 34%);
    content: "";
}

.home-hero-grid {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    padding-block: 76px 112px;
}

.home-hero-copy { max-width: 760px; }
.home-hero .eyebrow,
.home-feature .eyebrow,
.home-values .eyebrow,
.home-contact .eyebrow { color: #f0ddc1; }

.home-hero h1 {
    max-width: 820px;
    margin: 0;
    color: #fff;
    font-family: var(--serif);
    font-size: clamp(54px, 6.2vw, 82px);
    font-weight: 500;
    letter-spacing: -.04em;
    line-height: 1.02;
}

.home-hero-lead {
    max-width: 650px;
    margin: 25px 0 0;
    color: #f6f4ed;
    font-size: 18px;
    line-height: 1.7;
}

.home-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 32px; }
.home-hero .button { min-height: 54px; font-size: 16px; }
.home-text-link,
.home-card-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 10px;
    color: var(--forest);
    font-size: 16px;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: .22em;
}
.home-text-link:hover,
.home-card-link:hover { text-decoration-color: currentColor; }
.home-text-link span,
.home-card-link span { color: var(--home-gold); }
.home-hero .home-text-link { color: #fff; }
.home-hero .home-text-link span { color: #f0ce9d; }
.home-hero-note { display: flex; align-items: center; gap: 11px; margin: 35px 0 0; color: #f5eee2; font-size: 16px; }
.home-note-mark { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #f0ce9d; }
.home-scroll-cue {
    position: absolute;
    z-index: 2;
    right: max(24px, calc((100vw - 1160px) / 2));
    bottom: 24px;
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 14px;
    font-weight: 650;
    text-decoration: underline;
    text-underline-offset: .2em;
}
.home-scroll-cue span { color: #f0ce9d; font-size: 20px; }

.home-intro { padding: 82px 0 0; background: var(--home-paper); }
.home-intro-grid {
    display: grid;
    grid-template-columns: minmax(150px, .48fr) minmax(320px, 1.25fr) minmax(245px, .82fr);
    gap: 36px;
    align-items: start;
}
.home-intro-grid > .eyebrow { margin-top: 10px; color: #40594e; }
.home-intro h2,
.home-section-heading h2,
.home-stays-intro h2,
.home-contact h2 {
    margin: 0;
    color: var(--deep);
    font-family: var(--serif);
    font-size: clamp(34px, 3.5vw, 48px);
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: 1.12;
}
.home-intro-copy p { margin: 2px 0 15px; color: var(--home-muted); font-size: 17px; line-height: 1.75; }
.home-topic-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 14px 24px;
    margin: 52px auto 0;
    padding: 20px 0 22px;
    border-top: 1px solid var(--home-line);
    list-style: none;
}
.home-topic-list li { color: #364b40; font-size: 16px; font-weight: 650; }

.home-ways,
.home-destinations,
.home-stays,
.home-partners { padding: 88px 0 94px; }
.home-ways { background: var(--home-sage); }
.home-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.home-section-heading h2 { max-width: 720px; }
.home-section-heading > p { max-width: 380px; margin: 0 0 4px; color: var(--home-muted); font-size: 16px; line-height: 1.7; }
.home-section-heading .eyebrow,
.home-stays-intro .eyebrow { margin-bottom: 12px; color: #40594e; }
.home-way-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 37px; }
.home-way-card {
    display: flex;
    min-height: 340px;
    flex-direction: column;
    padding: clamp(25px, 3vw, 38px);
    border: 1px solid #cdd5cb;
    background: var(--home-paper);
}
.home-way-card-featured { border-color: var(--forest); background: var(--forest); color: #fff; }
.home-way-top { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 17px; border-bottom: 1px solid #c9d0c8; color: #425a4e; font-size: 14px; font-weight: 700; letter-spacing: .06em; }
.home-way-top > span:first-child { color: var(--home-gold); font-family: var(--serif); font-size: 24px; }
.home-way-card-featured .home-way-top { border-color: rgba(255,255,255,.32); color: #e2e9e1; }
.home-way-card-featured .home-way-top > span:first-child { color: #e6c28d; }
.home-way-card h3 { max-width: 540px; margin: 24px 0 12px; color: var(--forest); font-family: var(--serif); font-size: clamp(25px, 2.5vw, 32px); font-weight: 500; line-height: 1.2; }
.home-way-card-featured h3 { color: #fff; }
.home-way-card > p { max-width: 600px; margin: 0 0 22px; color: #46564d; font-size: 16px; line-height: 1.7; }
.home-way-card-featured > p { color: #e3ebe4; }
.home-way-card .home-card-link { margin-top: auto; color: var(--forest); }
.home-way-card-featured .home-card-link { color: #fff; }
.home-way-card-featured .home-card-link span { color: #e6c28d; }

.home-feature {
    position: relative;
    display: flex;
    min-height: 570px;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    background: #263a33;
    color: #fff;
}
.home-feature::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, rgba(15, 39, 33, .84) 0%, rgba(15, 39, 33, .68) 45%, rgba(15, 39, 33, .28) 100%);
    content: "";
}
.home-feature-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 56%; }
.home-feature-inner { position: relative; z-index: 1; }
.home-feature-copy { max-width: 680px; padding-block: 76px; }
.home-feature h2 { margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(40px, 4.5vw, 60px); font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.home-feature-copy > p:not(.eyebrow) { max-width: 600px; margin: 20px 0 18px; color: #f2f2ec; font-size: 17px; line-height: 1.7; }
.home-feature .home-text-link { color: #fff; }
.home-feature .home-text-link span { color: #f0ce9d; }

.home-destinations { background: var(--home-paper); }
.home-destination-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 38px; }
.home-destination-card { display: flex; min-height: 430px; flex-direction: column; padding: 29px 31px 25px; border: 1px solid #d7dbd2; background: #fff; }
.home-destination-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 17px; border-bottom: 1px solid var(--home-line); }
.home-destination-number { color: var(--home-gold); font-family: var(--serif); font-size: 30px; line-height: 1; }
.home-destination-heading p { max-width: 75%; margin: 0; color: #43564b; font-size: 14px; font-weight: 700; letter-spacing: .05em; text-align: right; text-transform: uppercase; }
.home-destination-card h3 { max-width: 470px; margin: 21px 0 18px; color: var(--forest); font-family: var(--serif); font-size: 27px; font-weight: 500; line-height: 1.22; }
.home-destination-stops { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.home-destination-stops li { display: grid; gap: 3px; padding: 12px 0; border-top: 1px solid #e1e4dc; }
.home-destination-stops strong { color: #30483d; font-size: 16px; line-height: 1.4; }
.home-destination-stops span { color: #4e5c53; font-size: 15px; line-height: 1.45; }
.home-destination-card .home-card-link { margin-top: auto; padding-top: 14px; }
.home-disclaimer { margin: 19px 0 0; color: #49584f; font-size: 14px; line-height: 1.6; }

.home-values { padding: 88px 0; background: var(--forest); color: white; }
.home-values-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(48px, 9vw, 120px); }
.home-values-intro h2 { margin: 0; color: white; font-family: var(--serif); font-size: clamp(42px, 4.4vw, 58px); font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.home-values-intro > p:last-child { max-width: 390px; margin: 17px 0 0; color: #e0e8e0; font-size: 16px; line-height: 1.7; }
.home-value-list { display: grid; }
.home-value-list article { display: grid; grid-template-columns: 48px 1fr; gap: 14px; padding: 0 0 19px; margin-bottom: 19px; border-bottom: 1px solid rgba(255,255,255,.24); }
.home-value-list article:last-child { margin-bottom: 0; }
.home-value-list article > span { color: #e6c28d; font-family: var(--serif); font-size: 23px; }
.home-value-list h3 { margin: 0; color: white; font-family: var(--serif); font-size: 22px; font-weight: 500; }
.home-value-list p { margin: 6px 0 0; color: #e0e8e0; font-size: 16px; line-height: 1.65; }

.home-stays { background: #e8ede7; }
.home-stays-grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(45px, 8vw, 108px); }
.home-stays-intro h2 { font-size: clamp(36px, 3.6vw, 48px); }
.home-stays-intro > p:not(.eyebrow) { max-width: 460px; margin: 21px 0 19px; color: #42534a; font-size: 16px; line-height: 1.75; }
.home-stay-list { display: grid; }
.home-stay-item { display: grid; grid-template-columns: 30px 1fr; gap: 18px; padding: 17px 0; border-bottom: 1px solid #c5d0c5; }
.home-stay-item:first-child { padding-top: 2px; }
.home-stay-symbol { color: var(--home-gold); font-size: 20px; }
.home-stay-item h3 { margin: 0; color: var(--forest); font-family: var(--serif); font-size: 22px; font-weight: 500; }
.home-stay-item p { margin: 4px 0 7px; color: #3f5548; font-size: 15px; font-weight: 700; }
.home-stay-item p span { padding-inline: 4px; color: var(--home-gold); }
.home-stay-item small { display: block; color: #4e5c53; font-size: 15px; line-height: 1.6; }

.home-partners { background: var(--home-paper); }
.home-partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; margin-top: 36px; }
.home-partner-card { padding: 23px; border: 1px solid #d5d9d0; background: #fff; }
.home-partner-card > span { color: var(--home-gold); font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.home-partner-card h3 { margin: 11px 0 8px; color: var(--forest); font-family: var(--serif); font-size: 22px; font-weight: 500; }
.home-partner-card p { margin: 0; color: #45544a; font-size: 16px; line-height: 1.65; }
.home-partner-card a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; margin-top: 13px; color: var(--forest); font-size: 16px; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }

.home-contact { padding: 76px 0 83px; background: #244c45; color: white; }
.home-contact-content { display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.home-contact h2 { max-width: 760px; color: white; font-size: clamp(39px, 4.5vw, 58px); }
.home-contact-content p { max-width: 650px; margin: 18px 0 0; color: #e3ebe4; font-size: 17px; line-height: 1.7; }
.home-contact .button { min-height: 54px; flex: 0 0 auto; font-size: 16px; }
.home-hero a:focus-visible,
.home-feature a:focus-visible,
.home-values a:focus-visible,
.home-contact a:focus-visible { outline: 3px solid #f0cd95; outline-offset: 4px; box-shadow: 0 0 0 2px var(--forest); }
.home-intro a:focus-visible,
.home-ways a:focus-visible,
.home-destinations a:focus-visible,
.home-stays a:focus-visible,
.home-partners a:focus-visible { outline: 3px solid var(--forest); outline-offset: 4px; }

@media (max-width: 900px) {
    .home-intro-grid { grid-template-columns: minmax(125px, .42fr) minmax(275px, 1.1fr) minmax(220px, .8fr); gap: 24px; }
    .home-section-heading { align-items: start; }
    .home-destination-card { padding-inline: 24px; }
    .home-stays-grid { gap: 48px; }
    .home-partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .home-hero { min-height: 650px; }
    .home-hero-media img { object-position: 59% center; }
    .home-hero-media::after { background: linear-gradient(90deg, rgba(14, 34, 29, .82), rgba(14, 34, 29, .56) 78%, rgba(14, 34, 29, .35)), linear-gradient(0deg, rgba(14, 34, 29, .45), transparent 46%); }
    .home-hero-grid { align-items: flex-start; padding-block: 70px 115px; }
    .home-hero h1 { max-width: 590px; font-size: clamp(47px, 12vw, 66px); }
    .home-hero-lead { margin-top: 20px; font-size: 17px; }
    .home-hero-actions { align-items: flex-start; gap: 12px 22px; }
    .home-hero-note { margin-top: 25px; }
    .home-scroll-cue { right: 18px; bottom: 16px; }
    .home-intro { padding-top: 60px; }
    .home-intro-grid { grid-template-columns: 1fr; gap: 13px; }
    .home-intro-grid > .eyebrow { margin: 0 0 3px; }
    .home-intro h2,
    .home-section-heading h2,
    .home-stays-intro h2 { font-size: clamp(35px, 9vw, 45px); }
    .home-intro-copy p { margin-top: 6px; }
    .home-topic-list { justify-content: flex-start; gap: 10px 21px; margin-top: 33px; }
    .home-topic-list li { font-size: 15px; }
    .home-ways,
    .home-destinations,
    .home-stays,
    .home-values,
    .home-partners { padding: 65px 0 70px; }
    .home-section-heading,
    .home-contact-content { display: grid; grid-template-columns: 1fr; gap: 18px; }
    .home-section-heading > p { max-width: 550px; }
    .home-way-grid,
    .home-destination-grid,
    .home-stays-grid,
    .home-values-grid { grid-template-columns: 1fr; gap: 16px; }
    .home-way-grid,
    .home-destination-grid { margin-top: 27px; }
    .home-way-card { min-height: 0; padding: 25px 22px; }
    .home-way-card h3 { font-size: 27px; }
    .home-feature { min-height: 580px; }
    .home-feature-image { object-position: 53% center; }
    .home-feature::after { background: linear-gradient(90deg, rgba(15, 39, 33, .86), rgba(15, 39, 33, .58)); }
    .home-feature-copy { padding-block: 62px; }
    .home-feature h2 { font-size: clamp(39px, 10vw, 50px); }
    .home-feature-copy > p:not(.eyebrow) { font-size: 16px; }
    .home-destination-card { min-height: 0; padding: 24px 21px; }
    .home-destination-card h3 { font-size: 25px; }
    .home-disclaimer { font-size: 14px; }
    .home-stays-grid { gap: 32px; }
    .home-stay-item { gap: 11px; }
    .home-value-list { margin-top: 14px; }
    .home-partner-grid { grid-template-columns: 1fr; margin-top: 25px; }
    .home-contact { padding: 61px 0 68px; }
    .home-contact h2 { font-size: clamp(37px, 9vw, 48px); }
    .home-contact-content p { margin-top: 12px; font-size: 16px; }
    .home-contact .button { justify-self: start; margin-top: 4px; }
}

/* Marketplace pages: imagery, clear availability and legible form controls. */
.language-switch { display: inline-flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 700; }
.language-switch a { min-width: 34px; min-height: 44px; display: inline-grid; place-items: center; text-decoration: underline; text-underline-offset: .2em; }
.language-switch a[aria-current="true"] { text-decoration-thickness: 2px; }
.marketplace-page-hero { padding: 78px 0 68px; background: var(--home-sage); }
.marketplace-page-hero .page-hero-inner { max-width: 900px; }
.marketplace-page-hero h1 { max-width: 850px; margin: 0; color: var(--deep); font-family: var(--serif); font-size: clamp(42px, 5vw, 66px); font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.marketplace-page-hero .page-hero-inner > p:not(.eyebrow) { max-width: 720px; color: #46564d; font-size: 18px; line-height: 1.7; }
.marketplace-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 38px; }
.marketplace-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #d7dbd2; background: var(--white); }
.marketplace-card-image { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; background: #dfe5df; }
.marketplace-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.marketplace-card-image:hover img { transform: scale(1.025); }
.marketplace-card-image > span { position: absolute; left: 16px; bottom: 15px; padding: 6px 10px; background: #fffefa; color: #263f34; font-size: 14px; font-weight: 700; }
.marketplace-card-content { display: flex; flex: 1; flex-direction: column; padding: 21px 22px 17px; }
.marketplace-meta { margin: 0; color: #495950; font-size: 15px; font-weight: 650; }
.marketplace-meta span { padding-inline: 3px; color: var(--ochre); }
.marketplace-card h3 { margin: 12px 0 8px; color: var(--forest); font-family: var(--serif); font-size: 27px; font-weight: 500; line-height: 1.18; }
.marketplace-card-content > p:not(.marketplace-meta) { margin: 0 0 17px; color: #4e5a52; font-size: 16px; line-height: 1.65; }
.marketplace-card-footer { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: auto; padding-top: 11px; border-top: 1px solid #e1e4dc; }
.marketplace-card-price { color: var(--forest); font-size: 16px; font-weight: 700; }
.availability-label { color: #594316; font-size: 15px; font-weight: 700; }
.marketplace-empty { padding: 28px; background: var(--home-sage); color: var(--home-ink); font-size: 18px; }
.marketplace-hero .home-hero-copy { max-width: 800px; }
.marketplace-hero .home-hero h1 { max-width: 780px; }
.marketplace-hero .home-hero-grid { padding-top: 142px; }
.marketplace-intro { padding-bottom: 12px; }
.marketplace-intro .home-topic-list { margin-top: 34px; }
.marketplace-team .home-feature-copy { max-width: 760px; }
.marketplace-team .home-feature-copy > p:not(.eyebrow) { max-width: 690px; color: #f3f2eb; font-size: 18px; line-height: 1.75; }
.marketplace-routes { background: var(--home-sage); }
.route-theme-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 34px 0 0; padding: 0; list-style: none; }
.route-theme-list li { display: flex; min-height: 70px; align-items: center; padding: 15px 19px; border: 1px solid #cbd4ca; background: var(--home-paper); color: #334c40; font-family: var(--serif); font-size: 21px; }
.idea-section-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(35px, 7vw, 95px); align-items: start; }
.idea-section-copy h2 { margin: 0; color: var(--deep); font-family: var(--serif); font-size: clamp(36px, 4vw, 52px); font-weight: 500; letter-spacing: -.035em; line-height: 1.12; }
.idea-section-copy > p:not(.eyebrow) { max-width: 460px; color: #4e5a52; font-size: 18px; line-height: 1.7; }
.idea-form-card { padding: 30px; border: 1px solid #d7dbd2; background: var(--white); }
.idea-form-card .form-field label, .contact-form-card .form-field label { font-size: 16px; }
.idea-form-card .form-field input, .idea-form-card .form-field textarea, .idea-form-card .form-field select,
.contact-form-card .form-field input, .contact-form-card .form-field textarea, .contact-form-card .form-field select { min-height: 48px; font-size: 16px; }
.idea-form-card .form-field textarea, .contact-form-card .form-field textarea { min-height: 130px; }
.idea-form-card .consent-field, .contact-form-card .consent-field { font-size: 16px; line-height: 1.5; }
.idea-form-card .consent-field input, .contact-form-card .consent-field input { width: 20px; height: 20px; flex: 0 0 auto; }
.idea-form-card .privacy-note, .contact-form-card .privacy-note { color: #4f5d54; font-size: 15px; }
.experience-hero { padding: 78px 0 62px; background: var(--home-sage); }
.experience-hero-grid { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: clamp(35px, 7vw, 90px); align-items: center; }
.experience-copy h1 { margin: 0; color: var(--deep); font-family: var(--serif); font-size: clamp(43px, 5vw, 64px); font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.experience-lead { max-width: 650px; color: #46564d; font-size: 19px; line-height: 1.7; }
.experience-facts { display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 22px 0 26px; color: #3e554a; font-size: 16px; font-weight: 700; }
.experience-hero-image { margin: 0; }
.experience-hero-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.experience-hero-image figcaption { margin-top: 8px; color: #505d54; font-size: 14px; }
.availability-notice { padding: 13px 16px; border-left: 4px solid #83622d; background: #fffefa; color: #3e4d43; font-size: 16px; line-height: 1.55; }
.experience-story-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(35px, 7vw, 95px); }
.experience-story h2 { max-width: 520px; margin: 0; color: var(--deep); font-family: var(--serif); font-size: clamp(34px, 4vw, 50px); font-weight: 500; line-height: 1.15; }
.experience-story-copy > p { margin-top: 0; color: #43534a; font-size: 18px; line-height: 1.8; }
.experience-practical { margin-top: 30px !important; padding: 19px 22px; background: var(--home-sage); font-size: 16px !important; }
.verified-fact-section { padding: 68px 0; background: #183e37; color: #fff; }
.verified-fact-card { max-width: 930px; }
.verified-fact-card .eyebrow { color: #f0ddc1; }
.verified-fact-card h2 { margin: 0; color: #fff; font-family: var(--serif); font-size: clamp(30px, 4vw, 46px); font-weight: 500; line-height: 1.2; }
.fact-source { margin: 25px 0 0; color: #f0eee4; font-size: 16px; }
.fact-source a { color: #fff; text-decoration: underline; text-underline-offset: .18em; }
.fact-source span { color: #f0ce9d; }
.historian-note { color: #e1e8df; font-size: 15px; }
.available-dates { background: var(--home-paper); }
.available-date-list { max-width: 760px; margin: 24px 0; padding: 0; list-style: none; }
.available-date-list li { display: flex; justify-content: space-between; gap: 16px; padding: 17px 0; border-bottom: 1px solid var(--home-line); color: #33473d; font-size: 16px; }
.available-date-list span { white-space: nowrap; font-weight: 700; }
.marketplace-catalog { padding-top: 58px; }
.booking-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 60px; align-items: start; }
.booking-summary { padding: 20px; background: var(--home-sage); }
.booking-summary img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.booking-summary h2 { margin: 18px 0 4px; color: var(--forest); font-family: var(--serif); font-size: 28px; font-weight: 500; }
.booking-summary > p { margin: 0; color: #46564d; font-size: 16px; }
.booking-price { margin-top: 18px !important; color: var(--forest) !important; font-size: 25px !important; font-weight: 700; }
.booking-price span { display: block; color: #4f5d54; font-size: 15px; font-weight: 500; }
.single-form-layout { display: grid; grid-template-columns: minmax(0, 760px); justify-content: center; }
.partner-application-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 60px; align-items: start; }
.partner-application-aside { padding: 24px; background: var(--home-sage); }
.partner-application-aside h2 { margin: 0; color: var(--forest); font-family: var(--serif); font-size: 29px; font-weight: 500; }
.partner-application-aside ul { display: grid; gap: 13px; padding-left: 22px; color: #3e5046; font-size: 16px; line-height: 1.55; }
.partner-application-aside > p { color: #46564d; font-size: 15px; line-height: 1.65; }
.confirmation-section { background: var(--home-sage); }
.confirmation-card { max-width: 840px; padding: clamp(25px, 5vw, 52px); background: var(--white); }
.confirmation-card h1 { margin: 0; color: var(--deep); font-family: var(--serif); font-size: clamp(38px, 5vw, 58px); font-weight: 500; }
.confirmation-card > p:not(.eyebrow) { color: #43534a; font-size: 18px; line-height: 1.7; }
.booking-receipt { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin: 30px 0; }
.booking-receipt div { padding: 16px; background: var(--home-sage); }
.booking-receipt dt { color: #45574c; font-size: 14px; }
.booking-receipt dd { margin: 4px 0 0; color: var(--forest); font-size: 18px; font-weight: 700; }
.review-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; margin-top: 28px; }
.review-card { padding: 23px; background: var(--white); border: 1px solid #d7dbd2; }
.review-rating { margin: 0; color: #76511f; font-size: 18px; }
.review-card h3 { margin: 7px 0; color: var(--forest); font-family: var(--serif); font-size: 22px; font-weight: 500; }
.review-card > p:not(.review-rating) { color: #4f5d54; font-size: 16px; line-height: 1.6; }
.review-card small { color: #4f5d54; font-size: 14px; }
.review-form { max-width: 640px; margin: 34px 0; padding-top: 23px; border-top: 1px solid var(--home-line); }
.review-form h2 { color: var(--forest); font-family: var(--serif); font-size: 30px; font-weight: 500; }
.marketplace-admin-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.marketplace-admin-links a { display: grid; gap: 8px; min-height: 150px; padding: 23px; border: 1px solid #d7dbd2; background: var(--white); color: var(--forest); }
.marketplace-admin-links strong { font-family: var(--serif); font-size: 24px; font-weight: 500; }
.marketplace-admin-links span { color: #536158; font-size: 15px; }
.admin-marketplace-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.admin-marketplace-form .full-width { grid-column: 1 / -1; }
.marketplace-status-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.marketplace-status-actions select { min-height: 42px; font-size: 15px; }
.admin-notice { margin: 0 0 18px; padding: 13px 16px; background: #edf5ed; color: #294e38; font-size: 16px; }

@media (max-width: 900px) {
    .marketplace-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .experience-hero-grid, .experience-story-grid, .booking-layout, .partner-application-layout, .idea-section-grid { grid-template-columns: 1fr; gap: 30px; }
    .experience-hero-image { grid-row: 1; }
    .review-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .language-switch { justify-content: flex-start; padding-top: 10px; }
    .marketplace-page-hero { padding: 54px 0 45px; }
    .marketplace-page-hero h1 { font-size: 42px; }
    .marketplace-page-hero .page-hero-inner > p:not(.eyebrow) { font-size: 17px; }
    .marketplace-card-grid, .route-theme-list, .review-card-grid, .marketplace-admin-links { grid-template-columns: 1fr; }
    .marketplace-card-grid { gap: 17px; margin-top: 25px; }
    .marketplace-hero .home-hero-grid { padding-top: 132px; }
    .marketplace-hero .home-hero h1 { font-size: clamp(44px, 12vw, 62px); }
    .marketplace-hero .home-hero-lead { font-size: 17px; }
    .marketplace-hero .home-hero-note { max-width: 360px; font-size: 15px; }
    .route-theme-list li { min-height: 60px; }
    .idea-form-card { padding: 23px 18px; }
    .experience-hero { padding: 46px 0 48px; }
    .experience-copy h1 { font-size: 43px; }
    .experience-lead { font-size: 17px; }
    .experience-hero-image { grid-row: auto; }
    .verified-fact-section { padding: 54px 0; }
    .available-date-list li { flex-direction: column; gap: 5px; }
    .booking-summary { padding: 15px; }
    .booking-receipt { grid-template-columns: 1fr; }
    .admin-marketplace-form { grid-template-columns: 1fr; }
    .admin-marketplace-form .full-width { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Acessibilidade e refinamento visual do site público (WCAG 2.2 AA como referência). */
:root {
    --muted: #4f5d54;
    --ochre: #704516;
    --paper: #f6f4ed;
    --white: #fffefa;
    --ink: #23352f;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 1rem;
}

body {
    color: var(--ink);
    line-height: 1.7;
}

section[id] {
    scroll-margin-top: 1rem;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--ochre);
    outline-offset: 3px;
    box-shadow: 0 0 0 2px var(--white);
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 1000;
    transform: translateY(calc(-100% - 20px));
    border-radius: 4px;
    padding: 12px 18px;
    background: var(--deep);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 4px 18px rgba(16, 47, 43, .22);
}

.skip-link:focus {
    left: 12px;
    transform: translateY(0);
}

.nav-wrap {
    min-height: 92px;
}

.brand-copy strong {
    font-size: 15px;
}

.brand-copy small {
    color: #4f5d54;
    font-size: 14px;
    letter-spacing: .06em;
}

.site-nav {
    gap: clamp(16px, 2.2vw, 30px);
    color: #344740;
    font-size: 15px;
}

.site-nav a:not(.nav-cta) {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
}

.site-nav a:not(.nav-cta):hover,
.footer-links a:hover {
    color: var(--ochre);
    text-decoration: underline;
    text-underline-offset: .22em;
}

.nav-cta {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    padding: 0 17px;
}

.nav-cta span {
    color: var(--ochre);
}

.nav-toggle {
    width: 48px;
    height: 48px;
    border: 1px solid var(--forest);
    border-radius: 4px;
    cursor: pointer;
}

.nav-toggle span {
    width: 22px;
    height: 2px;
    transition: transform .18s ease;
}

.nav-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(6px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-6px) rotate(-45deg);
}

.hero {
    overflow: visible;
    padding: clamp(56px, 7vw, 94px) 0 clamp(64px, 8vw, 108px);
    background: linear-gradient(180deg, var(--paper) 0%, #fbfaf6 100%);
}

.hero-grid {
    grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
    gap: clamp(36px, 5vw, 70px);
}

.hero-copy {
    padding-block: 12px;
}

.eyebrow {
    color: #3f5b4f;
    font-size: 14px;
    letter-spacing: .12em;
}

.hero h1,
.page-hero h1 {
    max-width: 640px;
    font-size: clamp(48px, 5.6vw, 78px);
    letter-spacing: -.035em;
    line-height: 1.08;
}

.hero-lead {
    max-width: 520px;
    margin-top: 24px;
    color: #43554c;
    font-size: 18px;
    line-height: 1.75;
}

.hero-actions {
    gap: 20px;
    margin-top: 30px;
}

.button {
    min-height: 52px;
    border-radius: 4px;
    padding-inline: 22px;
    font-size: 14px;
}

.button-dark {
    background: var(--forest);
    color: #fff;
}

.button-dark:hover {
    background: var(--deep);
}

.text-link,
.card-link {
    min-height: 44px;
    gap: 10px;
    padding-block: 8px;
    color: var(--forest);
    font-size: 14px;
    text-decoration-thickness: .08em;
    text-underline-offset: .2em;
}

.text-link:hover,
.card-link:hover,
.partner-card a:hover {
    text-decoration: underline;
}

.text-link span,
.card-link span {
    color: var(--ochre);
}

.hero-caption {
    gap: 10px;
    margin-top: 38px;
    color: #4f5d54;
    font-size: 14px;
}

.caption-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    background: var(--ochre);
}

.hero-art > img {
    height: clamp(380px, 42vw, 530px);
    border-radius: 12px;
    box-shadow: 0 22px 60px rgba(20, 48, 43, .14);
}

.hero-note {
    left: clamp(12px, 2vw, 28px);
    bottom: 24px;
    gap: 16px;
    border: 1px solid rgba(23, 61, 56, .12);
    border-radius: 8px;
    padding: 17px 20px;
    box-shadow: 0 12px 35px rgba(20, 48, 43, .18);
}

.note-number {
    color: var(--ochre);
}

.hero-note strong {
    font-size: 14px;
}

.hero-note small {
    color: #4f5d54;
    font-size: 14px;
}

.art-label {
    border-radius: 4px;
    background: #fffefa;
    font-size: 14px;
}

.intro-strip {
    grid-template-columns: minmax(170px, .34fr) minmax(0, 1fr) 28px;
    gap: clamp(18px, 3vw, 34px);
    padding-block: 32px;
}

.intro-kicker {
    color: var(--ochre);
    font-size: 14px;
    line-height: 1.5;
}

.intro-strip p {
    color: #3c4e45;
    font-size: 19px;
}

.intro-arrow {
    color: var(--ochre);
}

.section {
    padding-block: clamp(70px, 8vw, 104px);
}

.itinerary-section {
    background: #fffefa;
}

.section-heading h2,
.stays-intro h2,
.values-layout h2,
.closing-grid h2,
.about-grid h2,
.contact-aside h2 {
    letter-spacing: -.025em;
}

.section-intro {
    max-width: 680px;
    color: #4f5d54;
    font-size: 16px;
    line-height: 1.75;
}

.day-grid {
    gap: 20px;
}

.day-card {
    min-height: 390px;
    border-color: #d1d9d1;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(23, 61, 56, .045);
    padding: 30px;
}

.day-card-top {
    border-color: #d1d9d1;
}

.day-region {
    color: #43554c;
    font-size: 14px;
    letter-spacing: .07em;
}

.day-index,
.stop-time {
    color: var(--ochre);
}

.day-card h3 {
    font-size: 27px;
}

.day-stops {
    margin: 0;
    padding: 0;
    list-style: none;
}

.day-stop {
    grid-template-columns: minmax(68px, auto) minmax(0, 1fr);
    gap: 14px;
}

.stop-time {
    padding-top: 2px;
    font-size: 14px;
    line-height: 1.5;
}

.day-stop strong {
    color: #344740;
    font-size: 14px;
}

.day-stop small {
    margin-top: 2px;
    color: #4f5d54;
    font-size: 14px;
    line-height: 1.55;
}

.card-link {
    display: inline-flex;
    align-items: center;
    padding-top: 12px;
    font-size: 14px;
}

.fine-print {
    color: #4f5d54;
    font-size: 14px;
}

.stays-section {
    background: #eaf0e7;
}

.stays-intro > p:not(.eyebrow) {
    color: #43554c;
    font-size: 15px;
    line-height: 1.8;
}

.stays-intro .text-link {
    margin-top: 5px;
}

.stay-item {
    border-color: #c6d2c7;
}

.stay-pin,
.stay-item p span {
    color: var(--ochre);
}

.stay-item h3 {
    font-size: 22px;
}

.stay-item p {
    color: #43554c;
    font-size: 14px;
}

.stay-item small {
    color: #4f5d54;
    font-size: 14px;
    line-height: 1.6;
}

.values-section {
    background: #123a34;
}

.eyebrow-light {
    color: #e6eee8;
}

.value-list article {
    border-color: rgba(255, 255, 255, .28);
}

.value-list article > span {
    color: #f0cf9f;
}

.value-list h3 {
    font-size: 22px;
}

.value-list p {
    color: #edf3ee;
    font-size: 15px;
    line-height: 1.65;
}

.partner-grid {
    gap: 20px;
}

.partner-card {
    border-color: #d1d9d1;
    border-radius: 8px;
    padding: 24px;
}

.partner-category {
    color: var(--ochre);
    font-size: 14px;
    letter-spacing: .07em;
    line-height: 1.55;
}

.partner-card h3 {
    font-size: 23px;
}

.partner-card p {
    min-height: 0;
    color: #4f5d54;
    font-size: 14px;
    line-height: 1.65;
}

.partner-card a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    color: var(--forest);
    font-size: 14px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .2em;
}

.partners-section .section-heading > p {
    color: #4f5d54;
    font-size: 14px;
    line-height: 1.65;
}

.closing-cta {
    background: var(--forest);
}

.closing-grid > p:not(.eyebrow) {
    color: #f0f5f1;
    font-size: 15px;
    line-height: 1.7;
}

.button-light {
    background: #fffefa;
    color: var(--deep);
}

.button-light:hover {
    background: #fff;
}

.site-footer {
    background: #102f2b;
}

.brand-light .brand-copy small {
    color: #e0e9e2;
}

.footer-grid > p {
    color: #e0e9e2;
    font-size: 17px;
    line-height: 1.6;
}

.footer-links {
    gap: 2px;
    color: #f0f5f1;
    font-size: 14px;
}

.footer-links a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
}

.footer-bottom {
    color: #d3e0d7;
    font-size: 14px;
    letter-spacing: .02em;
}

/* Texto e controlos das páginas públicas secundárias partilham o mesmo padrão legível. */
.page-hero-inner > p:not(.eyebrow),
.route-stop p,
.stay-card > p:not(.eyebrow),
.contact-aside > p:not(.eyebrow),
.about-copy p {
    color: #43554c;
    font-size: 15px;
}

.route-stop time,
.route-stop .stop-location,
.stay-highlight,
.contact-note > span {
    color: var(--ochre);
    font-size: 14px;
}

.stop-category,
.confirm-label,
.stay-item p,
.contact-note p,
.contact-note strong,
.form-field label,
.consent-field,
.privacy-note,
.form-field span,
.field-validation-error,
.validation-summary ul,
.values-card-grid p {
    font-size: 14px;
}

.stop-category,
.confirm-label,
.contact-note p,
.consent-field,
.privacy-note,
.values-card-grid p,
.route-stays .section-heading > p {
    color: #4f5d54;
}

.form-field label {
    color: #344740;
}

.form-field input,
.form-field select,
.form-field textarea {
    min-height: 48px;
    border-color: #68766d;
    font-size: 15px;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    border-color: var(--forest);
}

.consent-field {
    align-items: center;
}

.consent-field input {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
}

.privacy-note {
    color: #4f5d54;
}

.footer-links a,
.partner-card a,
.text-link,
.card-link {
    text-decoration-skip-ink: auto;
}

@media (max-width: 900px) {
    .hero-grid {
        gap: 36px;
    }

    .hero-art > img {
        height: 400px;
    }

    .stays-layout,
    .values-layout,
    .contact-grid,
    .about-grid {
        gap: 42px;
    }
}

@media (max-width: 700px) {
    .container {
        width: min(100% - 36px, 560px);
    }

    .nav-wrap {
        min-height: 74px;
        flex-wrap: wrap;
    }

    .nav-toggle {
        display: none;
    }

    .site-nav {
        position: static;
        display: grid;
        flex-basis: 100%;
        gap: 0;
        padding: 0;
        border: 0;
        box-shadow: none;
    }

    .js-enabled .nav-toggle {
        display: block;
    }

    .js-enabled .site-nav {
        position: absolute;
        top: 73px;
        left: 0;
        right: 0;
        display: none;
        align-items: stretch;
        padding: 8px 18px 18px;
        background: var(--paper);
        border-bottom: 1px solid var(--line);
        box-shadow: 0 16px 24px rgba(16, 47, 43, .12);
    }

    .js-enabled .site-nav.is-open {
        display: grid;
    }

    .site-nav a:not(.nav-cta) {
        min-height: 48px;
        padding: 8px 6px;
    }

    .nav-cta {
        justify-content: center;
        margin-top: 8px;
    }

    .hero {
        padding-block: 44px 56px;
    }

    .hero-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }

    .hero h1 {
        font-size: clamp(44px, 11vw, 62px);
    }

    .hero-lead {
        font-size: 17px;
    }

    .hero-art > img {
        height: min(72vw, 360px);
    }

    .hero-note {
        left: 12px;
        bottom: 14px;
        padding: 12px 15px;
    }

    .intro-strip {
        grid-template-columns: minmax(0, 1fr) 28px;
        gap: 8px 14px;
        padding-block: 24px;
    }

    .intro-kicker,
    .intro-strip p {
        grid-column: 1;
    }

    .intro-strip p {
        font-size: 17px;
    }

    .intro-arrow {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .section-heading {
        display: block;
    }

    .section-heading > .text-link {
        margin-top: 12px;
    }

    .day-grid,
    .stays-layout,
    .values-layout,
    .contact-grid,
    .about-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .day-card {
        min-height: 0;
        padding: 24px 20px;
    }

    .day-card h3 {
        font-size: 24px;
    }

    .day-stop {
        grid-template-columns: minmax(62px, auto) minmax(0, 1fr);
        gap: 10px;
    }

    .partner-grid,
    .values-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .partner-card p {
        min-height: 0;
    }

    .footer-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

@media (max-width: 420px) {
    .hero-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .hero-actions .text-link {
        padding-block: 10px;
    }

    .footer-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    .button:hover {
        transform: none;
    }

    .nav-toggle span {
        transition: none;
    }
}

@media (forced-colors: active) {
    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
        outline: 3px solid Highlight;
        box-shadow: none;
    }
}

/* Na homepage, a navegação assenta sobre a imagem de abertura. */
.home-page .site-header {
    position: absolute;
    z-index: 30;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
    border-bottom: 0;
    background: transparent;
    color: #fff;
}

.home-page .site-header .brand-icon {
    padding: 6px;
    border-radius: 50%;
    background: var(--white);
}

.home-page .site-header .brand-copy strong {
    color: #fff;
}

.home-page .site-header .brand-copy small {
    color: #f0ddc1;
}

.home-page .site-nav {
    color: #fff;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .4);
}

.home-page .site-nav a:not(.nav-cta):hover {
    color: #f0ce9d;
}

.home-page .nav-cta {
    border-color: rgba(255, 255, 255, .82);
    background: rgba(16, 47, 43, .22);
    color: #fff;
}

.home-page .nav-cta:hover {
    background: rgba(16, 47, 43, .56);
}

.home-page .nav-cta span {
    color: #f0ce9d;
}

.home-page .nav-toggle {
    border-color: rgba(255, 255, 255, .82);
    background: rgba(16, 47, 43, .28);
}

.home-page .nav-toggle span {
    background: #fff;
}

.home-page .home-hero-media::after {
    background-image:
        linear-gradient(180deg, rgba(14, 34, 29, .74) 0%, rgba(14, 34, 29, .72) 65%, transparent 100%),
        linear-gradient(90deg, rgba(14, 34, 29, .84) 0%, rgba(14, 34, 29, .67) 37%, rgba(14, 34, 29, .24) 72%, rgba(14, 34, 29, .08) 100%),
        linear-gradient(0deg, rgba(14, 34, 29, .35), transparent 34%);
    background-size: 100% 170px, 100% 100%, 100% 100%;
    background-repeat: no-repeat;
}

.home-page .site-header a:focus-visible,
.home-page .site-header button:focus-visible {
    outline-color: #f0cd95;
    box-shadow: 0 0 0 2px var(--forest);
}

@media (max-width: 700px) {
    .home-page .site-nav {
        color: var(--ink);
        text-shadow: none;
    }

    .home-page .site-nav a:not(.nav-cta):hover {
        color: var(--ochre);
    }

    .home-page .nav-cta {
        border-color: var(--forest);
        background: transparent;
        color: var(--forest);
    }

    .home-page .nav-cta:hover {
        background: var(--white);
    }

    .home-page .nav-cta span {
        color: var(--ochre);
    }

    .home-page .home-hero-media::after {
        background-image:
            linear-gradient(180deg, rgba(14, 34, 29, .74) 0%, rgba(14, 34, 29, .72) 65%, transparent 100%),
            linear-gradient(90deg, rgba(14, 34, 29, .82), rgba(14, 34, 29, .56) 78%, rgba(14, 34, 29, .35)),
            linear-gradient(0deg, rgba(14, 34, 29, .45), transparent 46%);
        background-size: 100% 170px, 100% 100%, 100% 100%;
    }
}
