:root {
  --ink: #191310;
  --paper: #f4efe4;
  --paper-deep: #e9dfcf;
  --red: #8e1f1b;
  --red-dark: #54100e;
  --saffron: #ca7b35;
  --green: #465f4a;
  --line: rgba(25, 19, 16, 0.2);
  --serif: "Bodoni MT", Didot, "Times New Roman", serif;
  --sans: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--saffron); outline-offset: 3px; }

.skip-link { position: fixed; z-index: 100; left: 1rem; top: -4rem; background: white; color: var(--ink); padding: .8rem 1rem; }
.skip-link:focus { top: 1rem; }

.notice-bar { height: 32px; padding: 0 clamp(20px, 4vw, 72px); display: flex; justify-content: space-between; align-items: center; color: #fff; background: var(--red-dark); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.notice-bar p { margin: 0; }
.notice-bar a { border-bottom: 1px solid rgba(255,255,255,.6); }

.site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 20; color: #fff; }
.main-nav { height: 88px; margin: 0 clamp(20px, 4vw, 72px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.32); }
.brand img { width: 144px; max-height: 64px; object-fit: contain; }
.nav-links { display: flex; align-items: center; gap: clamp(16px, 2.4vw, 38px); font-size: 12px; letter-spacing: .04em; }
.nav-links a { position: relative; padding: 36px 0; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 27px; height: 1px; background: #fff; transition: right .25s ease; }
.nav-links a:hover::after { right: 0; }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.nav-book, .menu-toggle { border: 1px solid rgba(255,255,255,.65); border-radius: 999px; padding: 10px 17px; font-size: 11px; background: transparent; color: #fff; }
.menu-toggle { display: none; }

.hero { position: relative; min-height: min(850px, 100vh); color: #fff; overflow: visible; }
.hero-media { position: absolute; inset: 0; overflow: hidden; background: var(--ink); }
.hero-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; transform: scale(1.16); }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(24,8,4,.78) 0%, rgba(34,13,6,.28) 47%, rgba(10,7,5,.4) 100%), linear-gradient(0deg, rgba(9,6,4,.55) 0%, transparent 38%); }
.hero-copy { position: relative; z-index: 2; width: min(1050px, 88%); padding: clamp(220px, 31vh, 320px) 0 180px clamp(20px, 8vw, 140px); }
.eyebrow { margin: 0 0 20px; font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow.light { color: #f7d6a9; }
.hero h1 { max-width: 900px; margin: 0; font-family: var(--serif); font-size: clamp(64px, 7.8vw, 122px); font-weight: 400; letter-spacing: -.055em; line-height: .84; }
.hero h1 span { font-style: italic; color: #ffd7ad; }
.hero-copy > p:not(.eyebrow) { max-width: 470px; margin: 26px 0 30px; font-size: 15px; line-height: 1.65; color: rgba(255,255,255,.84); }
.hero-cta { padding: 13px 20px; color: var(--ink); background: var(--paper); border: 0; border-radius: 2px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.hero-caption { position: absolute; right: clamp(20px, 4vw, 72px); bottom: 106px; z-index: 2; margin: 0; writing-mode: vertical-rl; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }

.quick-planner { position: absolute; z-index: 4; left: clamp(20px, 4vw, 72px); right: clamp(20px, 4vw, 72px); bottom: -52px; min-height: 104px; display: grid; grid-template-columns: repeat(3, 1fr) .7fr; align-items: stretch; background: rgba(244,239,228,.97); color: var(--ink); box-shadow: 0 22px 55px rgba(35,18,8,.25); }
.quick-planner label { display: flex; flex-direction: column; justify-content: center; padding: 20px 28px; border-right: 1px solid var(--line); }
.quick-planner span, .filter-bar span { margin-bottom: 9px; color: #776e64; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.quick-planner select, .filter-bar select { width: 100%; padding: 0 20px 0 0; border: 0; color: var(--ink); background: transparent; font-size: 13px; appearance: auto; }
.quick-planner button { border: 0; color: #fff; background: var(--red); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: background .25s ease; }
.quick-planner button:hover { background: var(--red-dark); }

.section-shell { padding: 130px clamp(20px, 6vw, 104px); }
.section-marker { display: inline-block; padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.intro { padding-top: 190px; background: var(--paper); }
.intro-heading { max-width: 1120px; margin: 30px auto 70px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 70px; align-items: end; }
.intro-heading h2, .section-title-row h2, .plan-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(54px, 7.2vw, 112px); font-weight: 400; letter-spacing: -.055em; line-height: .86; }
.intro-heading h2 em, .section-title-row h2 em, .plan-heading h2 em { color: var(--red); font-weight: 400; }
.intro-heading p, .section-title-row > p { margin: 0; max-width: 400px; font-size: 13px; line-height: 1.75; color: #5c554e; }

.editorial-collage { min-height: 570px; display: grid; grid-template-columns: .75fr 1.15fr .75fr 1fr; gap: 10px; align-items: center; }
.collage-note { align-self: center; padding: 30px 30px 40px; background: #fffaf0; border: 1px solid var(--line); box-shadow: 8px 10px 0 var(--red); transform: rotate(-1.5deg); }
.hand-note { margin: 0 0 26px; color: var(--red); font-family: var(--serif); font-size: 24px; }
.collage-note h3 { margin: 0; font-family: var(--serif); font-size: 34px; font-weight: 400; line-height: 1; }
.collage-note > p:not(.hand-note) { margin: 22px 0; color: #5c554e; font-size: 12px; line-height: 1.65; }
.collage-note a { display: inline-block; border-bottom: 1px solid var(--ink); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.collage-photo { position: relative; margin: 0; overflow: hidden; background: #d8cebf; }
.collage-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.collage-photo:hover img { transform: scale(1.035); }
.collage-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 38px 18px 16px; display: flex; justify-content: space-between; align-items: end; color: #fff; background: linear-gradient(transparent, rgba(18,9,5,.8)); }
.collage-photo figcaption strong { font-family: var(--serif); font-size: 20px; font-weight: 400; }
.collage-photo figcaption span { font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.photo-tall { height: 500px; transform: translateY(-20px); }
.photo-small { height: 340px; transform: translateY(38px); }
.photo-wide { height: 420px; }

.destinations { background: #ece4d8; }
.section-title-row { margin: 28px 0 58px; display: flex; justify-content: space-between; gap: 40px; align-items: end; }
.filter-bar { display: grid; grid-template-columns: repeat(3, 1fr) .65fr; margin-bottom: 22px; background: #fbf7ef; border: 1px solid var(--line); }
.filter-bar label { display: flex; flex-direction: column; justify-content: center; padding: 18px 22px; border-right: 1px solid var(--line); }
.filter-bar button { border: 0; color: #fff; background: var(--ink); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.destination-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.destination-card { min-width: 0; padding: 8px; background: #fbf7ef; border: 1px solid rgba(25,19,16,.12); transition: transform .3s ease, opacity .25s ease; }
.destination-card[hidden] { display: none; }
.destination-card:hover { transform: translateY(-5px); }
.card-image { position: relative; height: 330px; overflow: hidden; }
.card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.destination-card:hover .card-image img { transform: scale(1.04); }
.card-number { position: absolute; top: 12px; right: 12px; padding: 8px; background: rgba(244,239,228,.9); font-size: 9px; font-weight: 700; }
.card-copy { min-height: 92px; padding: 16px 10px 8px; display: flex; justify-content: space-between; gap: 10px; align-items: end; }
.card-copy p { margin: 0 0 5px; color: #756b61; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.card-copy h3 { margin: 0; font-family: var(--serif); font-size: 26px; font-weight: 400; }
.plan-stop { padding: 8px 10px; border: 1px solid var(--line); background: transparent; font-size: 9px; white-space: nowrap; text-transform: uppercase; letter-spacing: .08em; }
.plan-stop.added { color: #fff; background: var(--green); border-color: var(--green); }
.empty-state { padding: 50px; text-align: center; border: 1px dashed var(--line); }

.heritage-band { position: relative; min-height: 600px; display: grid; grid-template-columns: 1.1fr .9fr; color: #fff; background: var(--red-dark); overflow: hidden; }
.heritage-texture { position: absolute; inset: 0; opacity: .18; background-image: url("indian-touch.jpg"); background-size: 240% auto; background-position: 26% 45%; mix-blend-mode: screen; filter: sepia(.25) contrast(1.1); }
.heritage-copy { position: relative; z-index: 2; padding: clamp(70px, 10vw, 150px); align-self: center; }
.heritage-copy > p { margin: 0 0 30px; color: #eabf8f; font-size: 10px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.heritage-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(58px, 7vw, 110px); font-weight: 400; letter-spacing: -.05em; line-height: .85; }
.heritage-copy span { display: block; margin-top: 32px; font-family: var(--serif); font-size: 18px; font-style: italic; }
.heritage-band > img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; filter: sepia(.25) saturate(.8) contrast(1.05); }

.experiences { overflow: hidden; background: var(--paper); }
.experience-controls { display: flex; gap: 8px; }
.experience-controls button { padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; background: transparent; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.experience-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 32vw); gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.experience-track::-webkit-scrollbar { display: none; }
.experience-card { position: relative; height: 490px; overflow: hidden; scroll-snap-align: start; color: #fff; background: #544a42; }
.experience-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.experience-card:hover img { transform: scale(1.05); }
.experience-card > div { position: absolute; inset: auto 0 0; padding: 90px 24px 24px; background: linear-gradient(transparent, rgba(18,9,5,.86)); }
.experience-card span { font-size: 9px; letter-spacing: .14em; }
.experience-card h3 { margin: 7px 0 5px; font-family: var(--serif); font-size: 34px; font-weight: 400; }
.experience-card p { margin: 0; color: rgba(255,255,255,.75); font-size: 11px; }

.plan-section { padding: 110px clamp(20px, 6vw, 104px); display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(50px, 8vw, 130px); background: #d9c7b1; }
.plan-heading .section-marker { margin-bottom: 26px; }
.plan-heading h2 { font-size: clamp(52px, 6vw, 92px); }
.plan-tools { border-top: 1px solid var(--line); }
.plan-tools a { display: grid; grid-template-columns: 42px 1fr auto; gap: 14px; align-items: center; min-height: 94px; padding: 12px 0; border-bottom: 1px solid var(--line); transition: padding .25s ease; }
.plan-tools a:hover { padding-left: 12px; }
.plan-tools span { color: var(--red); font-size: 10px; font-weight: 700; }
.plan-tools strong { font-family: var(--serif); font-size: 23px; font-weight: 400; }
.plan-tools small { color: #685d54; font-size: 10px; }
.trail-box { grid-column: 1 / -1; min-height: 90px; padding: 24px 28px; display: grid; grid-template-columns: .4fr 1fr auto; gap: 20px; align-items: center; background: rgba(244,239,228,.68); border: 1px solid var(--line); }
.trail-box p { margin: 0 0 5px; color: var(--red); font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.trail-box h3 { margin: 0; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.trail-box ul { margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.trail-box li { padding: 7px 10px; background: var(--paper); font-size: 10px; }
.trail-box button { padding: 9px 12px; border: 1px solid var(--line); background: transparent; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }

.site-footer { color: #e8ded2; background: #1d1714; }
.footer-main { padding: 80px clamp(20px, 6vw, 104px); display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; }
.footer-brand img { width: 180px; }
.footer-brand p { max-width: 280px; margin-top: 25px; color: #9e9186; font-family: var(--serif); font-size: 18px; line-height: 1.5; }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px; }
.footer-links h2 { margin: 0 0 22px; color: #c9854c; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.footer-links a, .footer-links p { display: block; margin: 0 0 12px; color: #b9aca2; font-size: 11px; line-height: 1.6; }
.footer-links a:hover { color: #fff; }
.footer-bottom { min-height: 68px; padding: 0 clamp(20px, 6vw, 104px); display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.12); }
.footer-bottom p { margin: 0; color: #877b72; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.footer-bottom button { border: 0; color: #e8ded2; background: transparent; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }

.toast { position: fixed; z-index: 60; left: 50%; bottom: 28px; padding: 13px 18px; color: #fff; background: var(--ink); box-shadow: 0 10px 30px rgba(0,0,0,.25); font-size: 11px; transform: translate(-50%, 100px); opacity: 0; pointer-events: none; transition: transform .3s ease, opacity .3s ease; }
.toast.show { transform: translate(-50%, 0); opacity: 1; }

@media (max-width: 980px) {
  .notice-bar, .main-nav .brand, .nav-actions { position: relative; z-index: 21; }
  .nav-links { position: fixed; inset: 0; z-index: 20; padding: 130px 28px 40px; display: flex; flex-direction: column; align-items: flex-start; gap: 0; color: var(--paper); background: var(--red-dark); transform: translateY(-105%); transition: transform .35s ease; }
  .nav-links.open { transform: translateY(0); }
  .nav-links a { width: 100%; padding: 16px 0; font-family: var(--serif); font-size: 34px; border-bottom: 1px solid rgba(255,255,255,.15); }
  .nav-links a::after { display: none; }
  .menu-toggle { display: block; }
  .quick-planner { grid-template-columns: repeat(3, 1fr); }
  .quick-planner button { grid-column: 1 / -1; min-height: 52px; }
  .intro-heading { grid-template-columns: 1fr; gap: 28px; }
  .editorial-collage { grid-template-columns: 1fr 1fr; }
  .collage-note { grid-row: span 1; }
  .photo-tall, .photo-small, .photo-wide { height: 410px; transform: none; }
  .destination-grid { grid-template-columns: repeat(2, 1fr); }
  .filter-bar { grid-template-columns: repeat(3, 1fr); }
  .filter-bar button { grid-column: 1 / -1; min-height: 50px; }
  .heritage-band { grid-template-columns: 1fr; }
  .heritage-band > img { max-height: 500px; }
  .experience-track { grid-auto-columns: minmax(300px, 48vw); }
  .plan-section { grid-template-columns: 1fr; }
  .trail-box { grid-column: auto; }
  .footer-main { grid-template-columns: 1fr; gap: 55px; }
}

@media (max-width: 640px) {
  .notice-bar { padding: 0 15px; font-size: 8px; letter-spacing: .08em; }
  .notice-bar p { min-width: 0; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .notice-bar a { flex: 0 0 auto; margin-left: 12px; }
  .main-nav { height: 72px; margin: 0 15px; }
  .brand img { width: 110px; }
  .nav-book { display: none; }
  .menu-toggle { display: inline-flex; position: relative; z-index: 2; align-items: center; justify-content: center; min-width: 58px; background: rgba(25,19,16,.18); }
  .hero { min-height: 760px; }
  .hero-copy { width: 100%; padding: 210px 22px 230px; }
  .hero h1 { max-width: 100%; font-size: 64px; line-height: .92; overflow-wrap: normal; }
  .hero h1 span { display: block; }
  .hero-caption { display: none; }
  .quick-planner { left: 15px; right: 15px; bottom: -145px; grid-template-columns: 1fr; }
  .quick-planner label { padding: 13px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .quick-planner button { grid-column: auto; min-height: 50px; }
  .section-shell { padding: 90px 18px; }
  .intro { padding-top: 240px; }
  .intro-heading { margin-bottom: 48px; }
  .intro-heading h2, .section-title-row h2, .plan-heading h2 { font-size: 55px; }
  .editorial-collage { display: flex; min-height: 0; overflow-x: auto; scroll-snap-type: x mandatory; }
  .collage-note, .collage-photo { flex: 0 0 83vw; min-height: 430px; scroll-snap-align: center; }
  .collage-photo figcaption { flex-direction: column; align-items: flex-start; gap: 5px; }
  .section-title-row { align-items: flex-start; flex-direction: column; }
  .filter-bar { grid-template-columns: 1fr; }
  .filter-bar label { border-right: 0; border-bottom: 1px solid var(--line); }
  .filter-bar button { grid-column: auto; }
  .destination-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .destination-card { flex: 0 0 86vw; scroll-snap-align: center; }
  .card-image { height: 360px; }
  .heritage-band { min-height: 740px; }
  .heritage-copy { padding: 80px 22px; }
  .heritage-copy h2 { font-size: 58px; }
  .heritage-band > img { height: 360px; }
  .experience-track { grid-auto-columns: 82vw; }
  .experience-card { height: 440px; }
  .plan-section { padding: 90px 20px; }
  .plan-tools a { grid-template-columns: 30px 1fr; }
  .plan-tools small { display: none; }
  .trail-box { grid-template-columns: 1fr; }
  .footer-main { padding: 70px 20px; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-links div:last-child { grid-column: 1 / -1; }
  .footer-bottom { padding: 0 20px; }
}

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