:root {
  --ink: #2d2a24;
  --olive: #6f6947;
  --olive-dark: #4e4a32;
  --sand: #c8b892;
  --cream: #f7f3ea;
  --paper: #fffdf8;
  --muted: #7f7a6f;
  --line: rgba(45, 42, 36, 0.16);
  --max: 1240px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); line-height:1.5; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
img { display:block; width:100%; }
.container { width:min(calc(100% - 48px), var(--max)); margin:0 auto; }
.skip-link { position:absolute; left:-9999px; top:10px; z-index:999; background:#fff; padding:10px 14px; }
.skip-link:focus { left:10px; }

.site-header { position:fixed; top:0; inset-inline:0; z-index:50; color:#fff; transition:.35s ease; }
.site-header.scrolled { background:rgba(247,243,234,.96); color:var(--ink); box-shadow:0 1px 0 var(--line); backdrop-filter:blur(12px); }
.nav-wrap { height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { width:clamp(180px, 19vw, 230px); flex:0 0 auto; display:block; }
.brand img { width:100%; max-width:100%; max-height:58px; object-fit:contain; object-position:left center; filter:brightness(0) invert(1); transition:.35s ease; }
.site-header.scrolled .brand img { filter:none; }
.main-nav { display:flex; align-items:center; gap:22px; font-size:12px; letter-spacing:.02em; flex:0 1 auto; }
.main-nav a { text-decoration:none; opacity:.92; }
.main-nav a:hover { opacity:1; }
.nav-cta { border:1px solid currentColor; padding:10px 15px; }
.menu-toggle { display:none; border:0; background:transparent; width:42px; height:42px; padding:10px; }
.menu-toggle span { display:block; height:1px; background:currentColor; margin:7px 0; }

.hero { min-height:max(100svh, 820px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:#171611; padding-top:88px; }
.hero-media { position:absolute; inset:0; background-image:url('assets/facade-night.png'); background-size:cover; background-position:center 46%; transform:scale(1.02); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,17,14,.22) 8%, rgba(18,17,14,.18) 42%, rgba(18,17,14,.78) 100%); }
.hero-content { position:relative; z-index:2; color:#fff; padding-top:72px; padding-bottom:88px; }
.eyebrow { margin:0 0 18px; font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--olive); }
.eyebrow.light { color:#e8ddbf; }
.hero h1 { font-family:var(--serif); font-weight:400; font-size:clamp(58px, 7.5vw, 112px); line-height:.88; letter-spacing:-.045em; max-width:980px; margin:0; }
.hero-lead { max-width:690px; font-size:clamp(18px,2vw,25px); line-height:1.4; margin:30px 0 0; color:rgba(255,255,255,.9); }
.hero-actions { display:flex; gap:12px; margin-top:34px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 22px; border:1px solid transparent; text-decoration:none; font-size:13px; font-weight:700; letter-spacing:.04em; transition:.2s ease; cursor:pointer; font-family:var(--sans); }
.btn-light { background:#fff; color:var(--ink); }
.btn-light:hover { background:var(--cream); }
.btn-outline-light { border-color:rgba(255,255,255,.7); color:#fff; background:rgba(0,0,0,.12); }
.btn-outline-light:hover { background:#fff; color:var(--ink); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-dark:hover { background:var(--olive-dark); }
.hero-proof { display:flex; gap:8px 22px; flex-wrap:wrap; margin-top:46px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.78); }
.hero-proof span:not(:last-child)::after { content:'·'; margin-left:22px; }
.scroll-cue { position:absolute; right:32px; bottom:34px; z-index:3; text-decoration:none; color:#fff; display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; transform:rotate(90deg); transform-origin:right bottom; }
.scroll-cue i { display:block; width:50px; height:1px; background:#fff; }

.snapshot { background:var(--cream); border-bottom:1px solid var(--line); }
.snapshot-grid { display:grid; grid-template-columns:1.5fr repeat(4,1fr); align-items:stretch; }
.snapshot-grid > * { min-height:210px; padding:42px 30px; border-right:1px solid var(--line); }
.snapshot-grid > *:first-child { padding-left:0; }
.snapshot-grid > *:last-child { border-right:0; padding-right:0; }
.snapshot-intro h2 { font-family:var(--serif); font-weight:400; font-size:38px; line-height:1.08; margin:0; }
.stat { display:flex; flex-direction:column; justify-content:flex-end; gap:8px; }
.stat strong { font-family:var(--serif); font-weight:400; font-size:38px; line-height:1; }
.stat span { color:var(--muted); font-size:13px; max-width:150px; }

.section { padding:120px 0; }
.split-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:82px; align-items:center; }
.copy-block h2, .section-head h2, .destination-copy h2, .resource-intro h2, .contact-copy h2 { font-family:var(--serif); font-weight:400; font-size:clamp(46px,5vw,72px); line-height:.98; letter-spacing:-.03em; margin:0; }
.lead { font-family:var(--serif); font-size:25px; line-height:1.35; color:#4b473d; }
.copy-block > p:not(.eyebrow):not(.lead) { color:var(--muted); font-size:16px; max-width:580px; }
.micro-list { display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:34px; border-top:1px solid var(--line); }
.micro-list span { padding:15px 12px 15px 0; border-bottom:1px solid var(--line); font-size:13px; }
.media-stack { position:relative; min-height:690px; }
.image-card { margin:0; overflow:hidden; background:#ddd; }
.image-card img { height:100%; object-fit:cover; }
.image-card-main { position:absolute; inset:0 13% 9% 0; }
.image-card-small { position:absolute; width:38%; height:43%; right:0; bottom:0; border:12px solid var(--paper); }

.accommodation { background:#29271f; color:#fff; }
.accommodation .eyebrow { color:#cabc90; }
.section-head { display:grid; grid-template-columns:1fr .7fr; gap:70px; align-items:end; margin-bottom:58px; }
.section-head > p { margin:0 0 6px; color:rgba(255,255,255,.64); font-size:17px; max-width:520px; }
.gallery-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; grid-template-rows:330px 330px; gap:12px; }
.gallery-item { position:relative; margin:0; overflow:hidden; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.gallery-item:hover img { transform:scale(1.025); }
.gallery-item figcaption { position:absolute; left:16px; bottom:14px; background:rgba(20,19,15,.68); backdrop-filter:blur(6px); padding:8px 10px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.g1 { grid-row:1 / span 2; }
.g2 { grid-column:2 / span 2; }
.accommodation-note { margin-top:54px; padding-top:38px; border-top:1px solid rgba(255,255,255,.22); display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }
.accommodation-note h3 { font-family:var(--serif); font-size:38px; line-height:1.08; font-weight:400; margin:0; }
.accommodation-note p, .accommodation-note li { color:rgba(255,255,255,.7); font-size:15px; line-height:1.7; }
.accommodation-note ul { margin:16px 0; padding-left:20px; }
.accommodation-note strong { color:#fff; font-weight:600; }
.accommodation-note-small { font-size:12px !important; color:rgba(255,255,255,.52) !important; }

.destination { background:var(--cream); }
.destination-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:100px; align-items:start; }
.destination-copy .lead { margin-top:28px; }
.destination-copy > p:last-child { color:var(--muted); max-width:550px; }
.route-panel { border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:34px 0 22px; }
.route-origin { display:flex; justify-content:space-between; align-items:end; gap:30px; }
.route-origin span { font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted); }
.route-origin strong { font-family:var(--serif); font-size:28px; font-weight:400; text-align:right; }
.route-line { height:1px; background:var(--line); margin:28px 0 0; }
.route-stops > div { display:grid; grid-template-columns:50px 1fr; align-items:center; border-bottom:1px solid var(--line); padding:20px 0; }
.route-stops > div:last-child { border-bottom:0; }
.route-stops b { font-size:10px; letter-spacing:.12em; color:var(--olive); }
.route-stops span { font-family:var(--serif); font-size:24px; }


.experiences { background:#e8dfce; }
.experience-intro-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:82px; align-items:center; }
.experience-image { min-height:620px; overflow:hidden; background:#d5c6aa; }
.experience-image img { width:100%; height:100%; min-height:620px; object-fit:cover; object-position:center; }
.experience-copy h2 { font-family:var(--serif); font-weight:400; font-size:clamp(46px,5vw,72px); line-height:.98; letter-spacing:-.03em; margin:0; }
.experience-copy .lead { margin:26px 0 18px; }
.experience-copy > p:not(.eyebrow):not(.lead) { color:#625d52; max-width:590px; }
.experience-copy .btn { margin-top:24px; }
.experience-grid { margin-top:72px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(45,42,36,.2); border-left:1px solid rgba(45,42,36,.2); }
.experience-card { min-height:285px; padding:32px; border-right:1px solid rgba(45,42,36,.2); border-bottom:1px solid rgba(45,42,36,.2); background:rgba(255,253,248,.24); }
.experience-card span { font-size:10px; letter-spacing:.14em; color:var(--olive); }
.experience-card h3 { font-family:var(--serif); font-size:29px; font-weight:400; line-height:1.06; margin:36px 0 14px; }
.experience-card p { margin:0; color:#625d52; font-size:14px; }
.experience-note { margin-top:28px; }
.experience-note p { margin:0; color:#625d52; font-size:12px; max-width:980px; }
.experience-note strong { color:var(--ink); }

.partners .section-head > p { color:var(--muted); }
.partner-grid { display:grid; grid-template-columns:repeat(3, 1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.partner-card { min-height:270px; padding:34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.partner-card span { font-size:10px; letter-spacing:.14em; color:var(--olive); }
.partner-card h3 { font-family:var(--serif); font-size:30px; font-weight:400; line-height:1.05; margin:42px 0 14px; }
.partner-card p { margin:0; color:var(--muted); font-size:14px; }

.resources { background:#eee8da; }
.resources-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.resource-intro p:last-child { color:var(--muted); max-width:450px; }
.resource-links { border-top:1px solid var(--ink); }
.resource-link { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 4px; text-decoration:none; border-bottom:1px solid var(--line); transition:.2s ease; }
.resource-link:hover { padding-left:10px; }
.resource-link span { display:grid; grid-template-columns:90px 1fr; column-gap:12px; align-items:baseline; width:100%; }
.resource-link small { text-transform:uppercase; letter-spacing:.14em; font-size:9px; color:var(--olive); grid-row:1 / span 2; }
.resource-link strong { font-family:var(--serif); font-size:25px; font-weight:400; }
.resource-link em { font-style:normal; color:var(--muted); font-size:12px; margin-top:2px; }
.resource-link i { font-style:normal; font-size:24px; }

.contact { background:#1e1d18; color:#fff; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.contact-copy p:not(.eyebrow) { color:rgba(255,255,255,.68); max-width:470px; }
.contact-direct { display:flex; flex-direction:column; gap:6px; margin-top:40px; }
.contact-direct a { text-decoration:none; font-family:var(--serif); font-size:24px; }
.contact-direct span { color:rgba(255,255,255,.55); font-size:12px; }
.trade-form { background:#f7f3ea; color:var(--ink); padding:38px; }
.trade-form label { display:block; margin-bottom:20px; }
.trade-form label > span { display:block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--olive); margin-bottom:8px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
input, select, textarea { width:100%; border:0; border-bottom:1px solid #aaa28c; border-radius:0; padding:11px 0; background:transparent; color:var(--ink); font:inherit; outline:none; }
select { cursor:pointer; }
textarea { resize:vertical; }
input:focus, select:focus, textarea:focus { border-color:var(--ink); }
.form-footer { display:flex; gap:30px; align-items:end; justify-content:space-between; margin-top:26px; }
.form-footer p { font-size:10px; color:var(--muted); max-width:360px; margin:0; }
.hidden-field { display:none !important; }

.site-footer { background:#14130f; color:#fff; padding:48px 0 22px; border-top:1px solid rgba(255,255,255,.08); }
.footer-grid { display:grid; grid-template-columns:260px 1fr auto; gap:40px; align-items:center; }
.footer-grid img { width:220px; filter:brightness(0) invert(1); }
.footer-grid > div:not(.footer-links) { display:flex; flex-direction:column; gap:4px; }
.footer-grid span { color:rgba(255,255,255,.55); font-size:12px; }
.footer-links { display:flex; gap:18px; font-size:12px; }
.footer-links a { text-decoration:none; color:rgba(255,255,255,.76); }
.footer-bottom { display:flex; justify-content:space-between; color:rgba(255,255,255,.38); font-size:10px; padding-top:34px; margin-top:34px; border-top:1px solid rgba(255,255,255,.08); }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity:1; transform:none; }


.trade-contact-card { background:#f7f3ea; color:var(--ink); padding:42px; align-self:start; }
.trade-contact-card h3 { margin:8px 0 16px; font-family:var(--serif); font-size:clamp(30px,3vw,44px); line-height:1.02; font-weight:400; letter-spacing:-.02em; }
.trade-contact-card > p:not(.eyebrow) { color:var(--muted); max-width:620px; }
.trade-contact-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:30px; }
.trade-contact-actions .text-link { color:var(--ink); text-decoration:none; font-size:13px; font-weight:700; }
.trade-contact-actions .text-link:hover { text-decoration:underline; }
.trade-contact-notes { display:flex; flex-wrap:wrap; gap:8px; margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.trade-contact-notes span { border:1px solid var(--line); padding:8px 10px; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--olive-dark); background:#fff; }


@media (min-width: 1181px) and (max-height: 760px) {
  .hero { min-height:820px; }
  .hero-content { padding-top:120px; padding-bottom:100px; }
  .hero h1 { font-size:clamp(58px, 6.2vw, 94px); max-width:920px; }
  .hero-lead { font-size:22px; max-width:720px; }
}

@media (max-width: 1180px) {
  .main-nav { display:none; position:absolute; top:78px; left:24px; right:24px; background:var(--cream); color:var(--ink); padding:22px; flex-direction:column; align-items:flex-start; box-shadow:0 14px 30px rgba(0,0,0,.15); }
  .main-nav.open { display:flex; }
  .menu-toggle { display:block; color:inherit; }
  .snapshot-grid { grid-template-columns:1fr 1fr; }
  .snapshot-intro { grid-column:1 / span 2; }
  .snapshot-grid > * { min-height:160px; border-bottom:1px solid var(--line); }
  .split-grid, .destination-grid, .resources-grid, .contact-grid, .experience-intro-grid, .accommodation-note { grid-template-columns:1fr; gap:58px; }
  .experience-image, .experience-image img { min-height:520px; }
  .experience-grid { grid-template-columns:1fr 1fr; }
  .media-stack { min-height:600px; }
  .partner-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-links { flex-wrap:wrap; }
}

@media (max-width: 720px) {
  .container { width:min(calc(100% - 30px), var(--max)); }
  .nav-wrap { height:72px; }
  .brand { width:190px; }
  .brand img { max-height:46px; }
  .hero { min-height:820px; }
  .hero-content { padding-bottom:70px; }
  .hero h1 { font-size:clamp(50px, 15vw, 76px); }
  .hero-lead { font-size:18px; }
  .hero-proof { gap:10px; }
  .hero-proof span:not(:last-child)::after { display:none; }
  .scroll-cue { display:none; }
  .snapshot-grid { grid-template-columns:1fr 1fr; }
  .snapshot-grid > * { padding:28px 18px; min-height:145px; }
  .snapshot-grid > *:first-child { padding-left:0; }
  .snapshot-grid > *:nth-child(odd) { border-right:0; }
  .snapshot-intro h2 { font-size:32px; }
  .stat strong { font-size:29px; }
  .section { padding:82px 0; }
  .copy-block h2, .section-head h2, .destination-copy h2, .resource-intro h2, .contact-copy h2 { font-size:46px; }
  .section-head { grid-template-columns:1fr; gap:20px; }
  .micro-list { grid-template-columns:1fr; }
  .media-stack { min-height:500px; }
  .image-card-main { inset:0 8% 8% 0; }
  .image-card-small { width:46%; height:38%; border-width:8px; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:360px 250px 250px; }
  .g1 { grid-row:1; grid-column:1 / span 2; }
  .g2 { grid-column:1 / span 2; }
  .g3, .g4, .g5 { min-height:250px; }
  .g5 { display:none; }
  .partner-grid, .experience-grid { grid-template-columns:1fr; }
  .experience-card { min-height:230px; }
  .partner-card { min-height:230px; }
  .route-origin { display:block; }
  .route-origin strong { display:block; text-align:left; margin-top:10px; }
  .resource-link span { grid-template-columns:64px 1fr; }
  .resource-link strong { font-size:21px; }
  .field-row { grid-template-columns:1fr; gap:0; }
  .trade-form { padding:26px 20px; }
  .form-footer { display:block; }
  .form-footer .btn { margin-top:22px; width:100%; }
  .footer-bottom { gap:20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
  .reveal { opacity:1; transform:none; }
}
