@font-face { font-family:'Literata'; src:url('../fonts/literata/Literata-Regular.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Literata'; src:url('../fonts/literata/Literata-Medium.woff2') format('woff2'); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:'Onest'; src:url('../fonts/onest/Onest-Regular.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Onest'; src:url('../fonts/onest/Onest-Medium.woff2') format('woff2'); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:'Onest'; src:url('../fonts/onest/Onest-SemiBold.woff2') format('woff2'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:'Onest'; src:url('../fonts/onest/Onest-Bold.woff2') format('woff2'); font-style:normal; font-weight:700; font-display:swap; }
:root { --paper:#f8f4ee; --surface:#f2ece5; --ink:#1d1e1a; --green:#174a36; --red:#b52d1b; --muted:#5c5a55; --line:#e5ddd3; --container:1440px; --gutter:40px; --section:78px; --header-offset:90px; --serif:'Literata', Georgia, 'Times New Roman', serif; --sans:'Onest', Inter, Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { min-width:320px; margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.5; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
img { display:block; width:100%; height:100%; object-fit:cover; }
a { color:inherit; text-decoration:none; }
button, input, select { font:inherit; }
button { cursor:pointer; }
h1,h2,h3,p,blockquote { margin:0; }
h1,h2,h3 { font-weight:400; line-height:1.06; font-family:var(--serif); }
h1 { color:var(--green); font-size:clamp(42px,5vw,76px); letter-spacing:-.055em; }
h2 { font-size:clamp(30px,3.1vw,43px); letter-spacing:-.045em; }
h3 { font-size:19px; }
.container { width:min(var(--container), calc(100% - 2 * var(--gutter))); margin-inline:auto; }
.section { padding-block:var(--section); }
.section--tight { padding-block:22px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:20; top:0; left:50%; padding:10px 14px; color:#fff; background:var(--green); transform:translate(-50%,-120%); }
.skip-link:focus { transform:translate(-50%,0); }
.site-header { position:sticky; z-index:10; top:0; padding:23px 0; background:var(--paper); }
[id] { scroll-margin-top:var(--header-offset); }
#tours { scroll-margin-top:128px; }
.header-inner,.header-actions,.desktop-nav,.brand,.hero-actions,.section-heading,.benefits-grid article { display:flex; align-items:center; }
.header-inner { gap:clamp(20px,3vw,52px); justify-content:space-between; }
.brand { flex-shrink:0; }
.desktop-nav { gap:clamp(16px,1.6vw,29px); font-size:14px; font-weight:600; }
.desktop-nav a.is-active,.section-heading a { color:var(--red); }
.header-actions { gap:22px; font-size:14px; font-weight:600; white-space:nowrap; }
.button { display:inline-flex; gap:18px; justify-content:center; align-items:center; min-height:58px; padding:14px 22px; border:1px solid var(--red); border-radius:4px; color:#fff; background:var(--red); font-size:15px; font-weight:700; text-align:center; }
.button--compact { min-height:44px; padding:9px 17px; }
.button--outline { color:var(--muted); background:transparent; border-color:#cf8b81; }
.button--outline svg,.video-play svg { width:23px; height:23px; fill:none; stroke:var(--red); stroke-width:1.5; }
.menu-toggle { display:none; width:44px; height:44px; padding:11px; border:1px solid var(--line); background:transparent; }
.menu-toggle span:not(.sr-only) { display:block; height:2px; margin:4px 0; background:var(--green); }
.mobile-nav { width:min(var(--container), calc(100% - 2 * var(--gutter))); margin:14px auto 0; border-top:1px solid var(--line); }
.mobile-nav a { display:block; padding:13px 0; border-bottom:1px solid var(--line); font-weight:600; }
.hero { padding-top:84px; padding-bottom:39px; }
.hero-grid { display:grid; grid-template-columns:minmax(360px,.88fr) minmax(480px,1.12fr); align-items:center; gap:32px; }
.hero-copy { padding-left:1px; }
.hero-text { text-align:left; }
.eyebrow { margin-bottom:17px; color:var(--red); font:16px var(--serif); text-transform:uppercase; }
.hero-description { margin-top:22px; color:#45433f; font-size:16px; line-height:1.65; }
.hero-actions { gap:22px; margin-top:31px; }
.media-slot { position:relative; display:block; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:var(--surface); }
.media-slot img { position:absolute; inset:0; opacity:0; }
.media-slot--hero video { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; filter:contrast(1.035) saturate(1.04); }
.media-slot__label { position:absolute; top:50%; left:50%; width:max-content; max-width:90%; color:#777168; font-size:12px; text-align:center; transform:translate(-50%,-50%); }
[data-media-ready="true"] img { opacity:1; }
[data-media-ready="true"] .media-slot__label { opacity:0; pointer-events:none; }
.media-slot--hero { aspect-ratio:16/9; border:0; background:#eee8e0; }
.benefits-grid { display:grid; grid-template-columns:repeat(3,1fr); padding:24px 49px; border-radius:5px; background:var(--surface); }
.benefits-grid article { justify-content:center; min-width:0; text-align:center; }
.benefits-grid article span { color:var(--muted); font-size:13px; }
.section-heading { justify-content:space-between; gap:20px; margin-bottom:23px; }.section-heading h2 { text-align:center; }.section-heading a { flex-shrink:0; font-size:13px; font-weight:700; }.section-heading a span { margin-left:7px; font-size:19px; }
.section.section.tours { padding-top:32px; }
.tour-grid,.gallery-grid,.team-grid { display:grid; gap:20px; }.tour-grid { grid-template-columns:repeat(4,1fr); }.tour-card { overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#faf7f2; }.media-slot--tour { aspect-ratio:3/2; border:0; border-radius:0; }.tour-card__body { padding:14px 15px 15px; }.tour-card h3 { font-size:18px; }.tour-meta { display:flex; justify-content:space-between; gap:8px; margin-top:15px; color:var(--muted); font-size:11px; }.tour-date { margin:17px 0 15px; font:17px var(--serif); }.button--card { width:100%; min-height:43px; padding:8px 13px; font-size:13px; }
/* Shared wide container for the tours catalog and content sections beneath it. */
:root { --container-wide:1584px; }
.container--wide { width:min(var(--container-wide), calc(100% - 2 * var(--gutter))); }
.tours .tour-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.tours .tour-card { display:flex; flex-direction:column; min-width:0; }
.tours .media-slot--tour { aspect-ratio:16/10; }
.tours .media-slot--tour img { object-position:center; }
.tours .tour-card:nth-child(2) .media-slot--tour img { object-position:center 54%; }
.tours .tour-card:nth-child(3) .media-slot--tour img { object-position:center 56%; }
.tours .tour-card__body { display:flex; flex:1; flex-direction:column; padding:20px; }
.tours .tour-card h3 { font-size:clamp(20px,1.5vw,24px); }
.tours .tour-meta { margin-top:14px; font-size:12px; }
.tours .tour-date { margin:18px 0 20px; font-size:19px; }
.tours .button--card { min-height:48px; margin-top:auto; font-size:14px; }
.tours .section-heading { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; }
.tours .section-heading h2 { grid-column:2; text-align:center; }
.tours .section-heading a { grid-column:3; justify-self:end; }
.section.reasons { padding-top:52px; padding-bottom:48px; }
.reasons .section-heading { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; margin-bottom:28px; }
.reasons .section-heading h2 { grid-column:2; text-align:center; }
.reasons .section-heading a { grid-column:3; justify-self:end; }
.reasons .reasons-grid { gap:clamp(16px,2.4vw,38px); }
.reasons .reasons-grid article { display:flex; flex-direction:column; align-items:center; }
.reason-icon { width:42px; height:42px; color:var(--red); fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.reasons .reasons-grid h3 { margin-top:9px; }
.reasons { padding-top:22px; padding-bottom:33px; }.reasons-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; text-align:center; }.reasons-grid article { min-width:0; }.reasons-grid span { color:var(--red); font-size:38px; }.reasons-grid h3 { margin-top:5px; font-family:var(--sans); font-size:13px; font-weight:600; line-height:1.35; }.reasons-grid p { margin-top:7px; color:var(--muted); font-size:12px; }
.gallery { padding-top:50px; }.gallery-grid { grid-template-columns:repeat(4,1fr); }.media-slot--gallery { aspect-ratio:16/10; }.video-play { position:absolute; top:50%; left:50%; display:grid; width:56px; height:56px; place-items:center; padding:0; border:0; background:transparent; box-shadow:none; transform:translate(-50%,-50%); }.video-play svg { width:30px; height:30px; fill:#f8f4ee; stroke:none; filter:drop-shadow(0 2px 2px rgb(15 43 35 / .9)) drop-shadow(0 0 5px rgb(15 43 35 / .72)); transform:translateX(1px); }
.reviews { padding-top:46px; }.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; }.review { display:grid; grid-template-columns:95px 1fr; column-gap:18px; align-items:start; }.media-slot--review { aspect-ratio:1; width:95px; border-radius:50%; }.review blockquote { color:#47433f; font-size:13px; line-height:1.65; }.review cite { grid-column:1/-1; margin-top:8px; font-size:13px; font-style:normal; font-weight:700; }
.team { padding-top:24px; padding-bottom:36px; }.team > .container > h2 { margin-bottom:14px; }.team-grid { grid-template-columns:repeat(6,1fr); gap:19px; }.team-card,.team-invite { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#faf7f2; }.media-slot--team { aspect-ratio:4/5; border:0; border-radius:0; }.team .media-slot--team img { object-position:center 12%; }.team-card h3,.team-card p,.team-card small { display:block; padding-inline:14px; }.team-card h3 { margin-top:7px; font-size:17px; }.team-card p { min-height:36px; margin-top:6px; color:#4f4c48; font-size:13px; }.team-card small { min-height:26px; padding-bottom:10px; color:#67625c; font-size:12px; }.team-invite { display:grid; place-items:center; padding:22px; border-top:3px solid var(--red); background:linear-gradient(145deg,#faf7f2 0%,#f5eee5 100%); }.team-invite p { max-width:20ch; margin:0; color:var(--green); font-family:var(--serif); font-size:clamp(21px,1.55vw,25px); font-weight:500; line-height:1.18; text-align:center; }
.faq { padding-top:24px; padding-bottom:34px; }.faq-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }.accordion-item { border:1px solid var(--line); border-bottom:0; background:#faf7f2; }.accordion-item:last-child { border-bottom:1px solid var(--line); }.accordion-item button { display:flex; width:100%; justify-content:space-between; gap:16px; padding:10px 18px; border:0; color:var(--ink); background:transparent; text-align:left; font:16px var(--serif); }.accordion-item button span { color:var(--red); }.accordion-item div p { padding:0 18px 14px; color:var(--muted); font-size:14px; }
.booking { padding-top:14px; padding-bottom:0; }.booking-shell { display:grid; grid-template-columns:.82fr 1.18fr; gap:42px; padding:24px 43px; border-radius:5px 5px 0 0; background:var(--surface); }.booking-copy h2 { font-size:39px; }.booking-copy p { max-width:360px; margin-top:15px; color:var(--muted); font-size:13px; }.booking-copy ul { display:flex; flex-wrap:wrap; gap:14px; padding:0; margin:20px 0 0; color:var(--muted); list-style:none; font-size:12px; }.booking-copy li::first-letter { color:var(--red); font-size:22px; }.booking-form { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; padding:14px; border-radius:5px; background:#fff; }.booking-form label { display:grid; gap:6px; color:#5d5953; font-size:11px; }.booking-form input,.booking-form select { width:100%; min-width:0; height:42px; padding:8px 11px; border:1px solid #ddd9d4; border-radius:4px; color:#4b4742; background:#fff; font-size:13px; }.booking-form .button { grid-column:1/-1; min-height:45px; }.counter { display:grid; grid-template-columns:52px minmax(0,1fr) 52px; align-self:start; height:52px; }.counter button { height:52px; border:1px solid #ddd9d4; background:#fff; }.counter button:first-child { border-radius:7px 0 0 7px; }.counter button:last-child { border-radius:0 7px 7px 0; }.counter input { height:52px; border-inline:0; border-radius:0; text-align:center; }
.site-footer { padding:42px 0 17px; color:#fff; background:var(--green); }.footer-grid { display:grid; grid-template-columns:1.15fr repeat(3,1fr) .75fr; gap:36px; }.brand--footer { color:#fff; }.brand--footer svg { stroke:#fff; }.footer-grid p,.footer-grid small,.footer-grid a { display:block; margin-top:9px; color:#e0e8e2; font-size:12px; line-height:1.5; }.footer-grid h2 { margin-bottom:10px; font-family:var(--sans); font-size:13px; font-weight:700; }.footer-bottom { display:flex; flex-wrap:wrap; gap:22px; margin-top:35px; padding-top:13px; border-top:1px solid rgba(255,255,255,.25); }.footer-bottom a { color:#e0e8e2; font-size:10px; }
@media (max-width:1050px) { :root { --section:62px; --gutter:24px; }.desktop-nav,.phone-link { display:none; }.menu-toggle { display:block; }.hero { padding-top:57px; }.hero-grid { grid-template-columns:.85fr 1.15fr; }.tour-grid { grid-template-columns:repeat(2,1fr); }.reasons-grid { grid-template-columns:repeat(3,1fr); row-gap:28px; }.team-grid { grid-template-columns:repeat(3,1fr); }.team-invite { min-height:260px; }.footer-grid { grid-template-columns:repeat(3,1fr); }.footer-grid > :first-child { grid-column:span 3; }.reviews-grid { gap:25px; }.review { grid-template-columns:75px 1fr; }.media-slot--review { width:75px; } }
@media (max-width:700px) { :root { --gutter:18px; --section:48px; --header-offset:63px; }.site-header { padding:16px 0; }.header-actions { display:none; }.brand { font-size:18px; }.brand svg { width:23px; height:31px; }.hero { padding-top:34px; padding-bottom:29px; }.hero-grid { grid-template-columns:1fr; gap:29px; }.hero-copy { order:1; }.media-slot--hero { aspect-ratio:4/5; }.eyebrow { margin-bottom:12px; font-size:13px; }.hero-description { font-size:14px; }.hero-description br,.hero-copy h1 br { display:none; }.hero-actions { align-items:stretch; flex-direction:column; gap:11px; margin-top:23px; }.button { min-height:52px; }.benefits-grid { grid-template-columns:1fr; gap:18px; padding:24px; }.benefits-grid article { justify-content:flex-start; }.section-heading { align-items:flex-start; flex-direction:column; margin-bottom:19px; }.section-heading h2 { text-align:left; }.tour-grid,.gallery-grid { grid-template-columns:1fr; gap:17px; }.tour-card h3 { font-size:21px; }.tour-meta { font-size:12px; }.reasons { padding-top:30px; padding-bottom:38px; }.reasons-grid { grid-template-columns:repeat(2,1fr); gap:24px 12px; }.reasons-grid h3 { font-size:12px; }.gallery { padding-top:43px; }.reviews-grid { grid-template-columns:1fr; gap:28px; }.review { grid-template-columns:82px 1fr; }.team { padding-top:30px; padding-bottom:38px; }.team-grid { grid-template-columns:repeat(2,1fr); gap:12px; }.team-invite { min-height:210px; }.team-card h3 { font-size:16px; }.team-card p { min-height:40px; font-size:12px; }.team-card small { min-height:38px; font-size:11px; }.faq { padding-top:30px; padding-bottom:38px; }.faq-grid,.booking-shell,.booking-form { grid-template-columns:1fr; }.faq-grid { gap:0; }.booking { padding-top:18px; }.booking-shell { gap:24px; padding:24px 18px; }.booking-copy h2 { font-size:34px; }.booking-copy ul { display:grid; gap:8px; }.booking-form { padding:16px; gap:14px; }.footer-grid { grid-template-columns:repeat(2,1fr); gap:28px 18px; }.footer-grid > :first-child { grid-column:span 2; }.footer-bottom { gap:12px; }.footer-bottom a { font-size:9px; } }
@media (max-width:390px) { h1 { font-size:41px; }.team-grid { grid-template-columns:1fr; }.team-invite { min-height:195px; }.footer-grid { grid-template-columns:1fr; }.footer-grid > :first-child { grid-column:auto; } }
@media (max-width:700px) { :root { --header-offset:76px; } }

/* Routes gallery: two stable pages, moved as one calm horizontal track. */
.gallery-toggle { grid-column:3; justify-self:end; display:inline-flex; align-items:center; padding:0; border:0; color:var(--red); background:transparent; font:700 13px/1.5 var(--sans); white-space:nowrap; }
.gallery-carousel { min-width:0; }
.gallery-carousel__viewport { min-width:0; overflow:hidden; touch-action:pan-y; }
.gallery-carousel__track { display:flex; width:100%; transition:transform 450ms ease; will-change:transform; }
.gallery-page { flex:0 0 100%; min-width:0; }
.gallery-video video { display:block; width:100%; height:100%; object-fit:cover; }
.gallery-video .video-play { z-index:1; transition:opacity .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.gallery-video .video-play:hover,.gallery-video .video-play:focus-visible { background:transparent; box-shadow:none; transform:translate(-50%,-50%) scale(1.08); }
.gallery-video .video-play:focus-visible { outline:3px solid rgb(248 244 238 / .9); outline-offset:3px; }
.gallery-video .video-play[hidden] { display:none; }
.gallery .media-slot--gallery:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.gallery-carousel__controls { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
.gallery-carousel__arrow { display:grid; width:44px; height:44px; place-items:center; padding:0; border:1px solid var(--line); border-radius:4px; color:var(--green); background:#faf7f2; }
.gallery-carousel__arrow:disabled { opacity:.38; cursor:not-allowed; }
.gallery-carousel__indicator { min-width:58px; color:var(--muted); font-size:13px; font-weight:700; text-align:center; }

@media (max-width:700px) {
  .gallery .section-heading > .gallery-toggle { grid-column:1; justify-self:center; text-align:center; }
  .gallery-carousel__track { gap:17px; }
  .gallery-page { display:contents; }
  .gallery .media-slot--gallery { flex:0 0 100%; min-width:0; }
  .gallery-carousel__controls { margin-top:17px; }
}

@media (prefers-reduced-motion:reduce) {
  .gallery-carousel__track,.gallery-video .video-play { transition:none; }
}

.gallery-preview { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:24px; border:0; background:rgb(15 43 35 / .96); }
.gallery-preview::backdrop { background:rgb(15 43 35 / .72); }
.gallery-preview__content { display:grid; width:100%; height:100%; place-items:center; }
.gallery-preview__content :is(img,video) { display:block; width:100%; max-width:100%; height:100%; max-height:100%; object-fit:contain; }
.gallery-preview__content video { width:min(100%, 1440px); background:#000; }
.gallery-preview__close { position:fixed; z-index:1; top:20px; right:24px; display:grid; width:42px; height:42px; place-items:center; padding:0; border:1px solid rgb(255 255 255 / .55); border-radius:50%; color:#fff; background:rgb(15 43 35 / .7); font:400 29px/1 var(--sans); }

@media (max-width:700px) {
  .gallery-preview { padding:16px; }
  .gallery-preview__close { top:12px; right:12px; }
}

@media (max-width:1050px) {
  .tours .tour-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .tours .tour-grid { grid-template-columns:1fr; gap:17px; }
  .tours .tour-card__body { padding:18px; }
  .tours .tour-card h3 { font-size:22px; }
  .tours .tour-meta { font-size:12px; }
  .tours .tour-date { font-size:19px; }
  .tours .section-heading { grid-template-columns:1fr; justify-items:center; gap:8px; margin-bottom:19px; }
  .tours .section-heading h2,.tours .section-heading a { grid-column:1; justify-self:center; text-align:center; }
  .section.reasons { padding-top:38px; padding-bottom:38px; }
  .reasons .section-heading { grid-template-columns:1fr; justify-items:center; gap:8px; margin-bottom:24px; }
  .reasons .section-heading h2,.reasons .section-heading a { grid-column:1; justify-self:center; text-align:center; }
  .reasons .reasons-grid { gap:26px 12px; }
}

/* Hero: one immersive photograph on desktop, with the copy living inside it. */
@media (min-width:1051px) {
  .section:not(.hero) { padding:88px 0 0; }
  .section-heading { margin-bottom:34px; }
  .hero { padding:38px 0 0; }
  .hero > .container { width:100%; max-width:none; }
  .hero-grid { position:relative; display:grid; min-height:720px; overflow:hidden; }
  .media-slot--hero { position:absolute; inset:0; width:100%; height:100%; margin:0; aspect-ratio:auto; border:0; border-radius:0; }
  .media-slot--hero video { object-position:center; }
  .media-slot--hero::after { position:absolute; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg, #f8f4ee 0%, rgba(248,244,238,.97) 16%, rgba(248,244,238,.88) 28%, rgba(248,244,238,.7) 39%, rgba(248,244,238,.46) 49%, rgba(248,244,238,.24) 58%, rgba(248,244,238,.08) 66%, transparent 73%); }
  .hero-copy { position:relative; z-index:1; align-self:center; width:min(760px, 54vw); margin-left:max(var(--gutter), calc((100% - var(--container)) / 2)); padding:72px 0; }
  .hero-copy .eyebrow { margin-bottom:26px; }
  .hero-copy h1 { display:table; color:var(--green); font-size:clamp(54px, 4.8vw, 78px); letter-spacing:-.045em; }
  .hero-copy h1 span { display:block; }
  .hero-copy h1 span + span { text-align:center; }
  .hero-copy .eyebrow { color:#a92d20; }
  .hero-description { margin-top:34px; color:#3f3d39; }
  .hero-actions { margin-top:42px; }
  .hero-actions .button--outline { color:var(--green); border-color:#c86859; background:rgba(255,252,247,.94); box-shadow:0 8px 22px rgba(57,42,31,.1); }
  .hero-actions .button--outline svg { stroke:var(--red); }
  .benefits-strip { padding:32px 0 0 !important; }
  .benefits-grid { min-height:110px; padding:24px 48px; }
  .tour-grid,.gallery-grid { gap:22px; }
  .tour-card { display:flex; flex-direction:column; }
  .media-slot--tour { height:220px; aspect-ratio:auto; }
  .tour-card__body { display:flex; flex:1; flex-direction:column; padding:22px; }
  .tour-card .button--card { margin-top:auto; }
  .reasons-grid { gap:28px; }
  .gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .media-slot--gallery { height:260px; aspect-ratio:auto; }
  .reviews-grid { gap:42px; }
  .review blockquote { font-size:15px; }
  .team { padding-bottom:0; }
  .team > .container > h2 { margin-bottom:34px; }
  .team-grid { grid-auto-rows:430px; gap:22px; }
  .team-card { display:flex; flex-direction:column; }
  .team-card,.team-invite { height:430px; }
  .media-slot--team { height:250px; aspect-ratio:auto; flex:0 0 auto; }
  .team-card h3 { margin-top:14px; }
  .team-card p { flex:none; }
  .team-invite { padding:22px; }
  .faq-grid { gap:24px; }
  .accordion-item button { padding:18px 22px; font-size:17px; }
  .booking { padding:88px 0 88px; }
  .booking-shell { padding:32px 43px; }
  .site-footer { margin-top:0; }
  .footer-bottom a { font-size:12px; }

  .tours .media-slot--tour { height:auto; aspect-ratio:16/10; }
}
@media (min-width:701px) and (max-width:1050px) {
  .hero { padding:32px 0 42px; }
  .hero > .container { width:100%; max-width:none; }
  .hero-grid { position:relative; display:grid; min-height:620px; overflow:hidden; }
  .media-slot--hero { position:absolute; inset:0; width:100%; height:100%; margin:0; aspect-ratio:auto; border:0; border-radius:0; }
  .media-slot--hero video { object-position:center; }
  .media-slot--hero::after { position:absolute; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg, rgba(17,45,34,.86) 0%, rgba(20,54,39,.66) 48%, rgba(20,54,39,.2) 72%, transparent 86%); }
  .hero-copy { position:relative; z-index:1; align-self:center; width:min(650px, 66vw); padding:58px clamp(34px, 7vw, 88px); }
  .hero-copy h1 { color:#fff; font-size:clamp(48px, 6.5vw, 68px); letter-spacing:-.045em; text-shadow:0 2px 20px rgba(0,0,0,.3); }
  .hero-copy .eyebrow { color:#ffe0d6; }
  .hero-description { color:#fff; text-shadow:0 1px 12px rgba(0,0,0,.32); }
  .hero-actions .button--outline { color:#fff; border-color:rgba(255,255,255,.72); background:rgba(255,255,255,.08); }
  .hero-actions .button--outline svg { stroke:#ffe0d6; }
}
@media (max-width:700px) {
  #tours { scroll-margin-top:86px; }
  .media-slot--hero { width:100%; margin-left:0; aspect-ratio:16/9; -webkit-mask-image:none; mask-image:none; }
}

/* Shared source logo: keep the source artwork intact in both site chrome areas. */
.site-header { padding-block:10px; }
.brand-logo { display:block; width:auto; height:auto; max-width:100%; object-fit:contain; }
.site-header .brand-logo { width:300px; }
.brand--footer { display:inline-flex; align-items:center; width:fit-content; margin-left:-10px; padding:0; border-radius:4px; background:transparent; }
.brand--footer .brand-logo { width:260px; filter:brightness(0) saturate(100%) invert(93%) sepia(9%) saturate(469%) hue-rotate(82deg) brightness(96%) contrast(93%); }

@media (min-width:701px) and (max-width:1050px) {
  .site-header .brand-logo { width:245px; }
  .brand--footer .brand-logo { width:225px; }
}

@media (max-width:700px) {
  .site-header { padding-block:8px; }
  .site-header .brand-logo { width:200px; }
  .brand--footer { margin-left:-8px; padding:0; }
  .brand--footer .brand-logo { width:195px; }
}

/* Featured tours carousel: the viewport hides additional approved tours until expanded. */
.tours-toggle { grid-column:3; justify-self:end; flex-shrink:0; padding:0; border:0; color:var(--red); background:transparent; font:700 13px/1.5 var(--sans); }
.tours-toggle span { margin-left:7px; font-size:19px; }
.tour-carousel { min-width:0; }
.tour-carousel__viewport { min-width:0; overflow:hidden; touch-action:pan-y; }
.tours .tour-grid { display:flex; gap:22px; transition:transform .36s ease; will-change:transform; }
.tours .tour-card { flex:0 0 calc((100% - 66px) / 4); min-width:0; }
.tour-carousel__controls { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
.tour-carousel__controls[hidden] { display:none; }
.tour-carousel__arrow { display:grid; width:42px; height:42px; place-items:center; padding:0; border:1px solid var(--line); border-radius:4px; color:var(--green); background:#faf7f2; font-size:21px; line-height:1; }
.tour-carousel__arrow:disabled { opacity:.38; cursor:not-allowed; }
.tour-carousel__indicator { min-width:86px; color:var(--muted); font-size:13px; font-weight:700; text-align:center; }
.tours .tour-card__image { height:auto; aspect-ratio:16/10; }
.tours .tour-card__content { display:flex; flex:1; flex-direction:column; min-height:0; padding:20px; }
.tours .tour-card__title { min-height:58px; margin:0; font-size:clamp(20px,1.5vw,24px); line-height:1.15; }
.tour-card__date,.tour-card__meta-item { display:flex; align-items:flex-start; gap:8px; margin:0; }
.tour-card__date { min-height:25px; margin-top:14px; color:var(--ink); font:18px/1.35 var(--serif); white-space:nowrap; }
.tour-card__icon { flex:0 0 19px; width:19px; height:19px; margin-top:1px; color:var(--red); fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.5; }
.tour-card__meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; min-height:47px; margin-top:12px; color:var(--muted); font-size:15px; line-height:1.4; }
.tour-card__meta-item { min-width:0; }
.tour-card__meta-item span { min-width:0; }
.tour-card__bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; min-height:58px; margin-top:18px; }
.tour-card__price { display:grid; gap:2px; margin:0; }
.tour-card__price strong { color:var(--green); font:600 25px/1 var(--serif); white-space:nowrap; }
.tour-card__price span { color:var(--muted); font-size:12px; }
.tour-card__availability { display:flex; align-items:center; gap:6px; margin:0; padding:6px 8px; border-radius:999px; color:#356553; background:#e4efe8; font-size:12px; font-weight:700; line-height:1.25; }
.tour-card__availability .tour-card__icon { flex-basis:16px; width:16px; height:16px; margin:0; color:currentColor; }
.tour-card__availability--sold-out { color:#a63d2e; background:#f7e3df; }
.tours .tour-card__action { margin-top:auto; }
.booking-selection { grid-column:1/-1; min-height:18px; margin:0; color:var(--muted); font-size:12px; }
.booking-availability,.booking-total,.booking-status { grid-column:1/-1; margin:0; color:var(--muted); font-size:12px; }
.booking-total { color:var(--green); font-size:14px; font-weight:700; }
.booking-status { min-height:18px; color:var(--red); }
.counter button:disabled,.counter input:disabled { cursor:not-allowed; opacity:.5; }
.media-slot--tour[data-tour-preview-trigger] { cursor:zoom-in; }
.tour-preview { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:24px; border:0; background:rgb(15 43 35 / .96); }
.tour-preview::backdrop { background:rgb(15 43 35 / .72); }
.tour-preview img { display:block; width:100%; height:100%; object-fit:contain; }
.tour-preview__close { position:fixed; top:20px; right:24px; display:grid; width:42px; height:42px; place-items:center; border:1px solid rgb(255 255 255 / .55); border-radius:50%; color:#fff; background:rgb(15 43 35 / .7); font-size:30px; line-height:1; }

body.has-open-modal { overflow:hidden; }
.tour-details-modal { --tour-modal-font:var(--sans); --tour-modal-body-size:16px; --tour-modal-body-leading:1.65; width:min(760px, calc(100% - 32px)); max-width:none; max-height:min(820px, calc(100dvh - 40px)); margin:auto; padding:0; border:0; border-radius:5px; color:var(--ink); background:#faf7f2; box-shadow:0 24px 70px rgb(20 35 27 / .3); font-family:var(--tour-modal-font); opacity:0; transform:translateY(14px) scale(.985); transition:opacity .2s ease, transform .2s ease, overlay .2s allow-discrete, display .2s allow-discrete; overflow:hidden; }
.tour-details-modal[open] { opacity:1; transform:translateY(0) scale(1); }
.tour-details-modal::backdrop { background:rgb(15 43 35 / 0); transition:background .2s ease, overlay .2s allow-discrete, display .2s allow-discrete; }
.tour-details-modal[open]::backdrop { background:rgb(15 43 35 / .68); }
@starting-style { .tour-details-modal[open] { opacity:0; transform:translateY(14px) scale(.985); } .tour-details-modal[open]::backdrop { background:rgb(15 43 35 / 0); } }
.tour-details-modal__panel { position:relative; max-height:inherit; overflow-y:auto; overscroll-behavior:contain; padding:clamp(30px, 5vw, 48px); }
.tour-details-modal__close { position:sticky; z-index:1; top:0; float:right; display:grid; width:36px; height:36px; place-items:center; margin:-13px -13px 0 18px; padding:0; border:1px solid var(--line); border-radius:50%; color:var(--green); background:#faf7f2; font:400 29px/1 var(--tour-modal-font); }
.tour-details-modal__content { clear:both; color:var(--ink); font-family:var(--tour-modal-font); font-size:var(--tour-modal-body-size); font-weight:400; line-height:var(--tour-modal-body-leading); letter-spacing:0; }
.tour-details-modal__content :is(p,dt,dd,li,h3,h4) { font-family:var(--tour-modal-font); letter-spacing:0; }
.tour-details-modal__title { max-width:620px; margin:0; color:var(--green); font-family:var(--serif); font-size:clamp(34px, 4vw, 46px); font-weight:500; line-height:1.02; letter-spacing:-.04em; }
.tour-details-modal__subtitle { max-width:610px; margin:14px 0 0; color:var(--muted); font-family:var(--tour-modal-font); font-size:clamp(18px, 2.1vw, 21px); font-weight:500; line-height:1.45; letter-spacing:-.01em; }
.tour-details-modal__facts { display:grid; gap:0; margin:28px 0 0; border-top:1px solid var(--line); }
.tour-details-modal__fact-row { display:grid; grid-template-columns:minmax(148px, 170px) minmax(0, 1fr); gap:24px; align-items:start; padding:14px 0; border-bottom:1px solid var(--line); }
.tour-details-modal__fact-label { color:var(--red); font-family:var(--tour-modal-font); font-size:14px; font-weight:600; line-height:1.55; letter-spacing:0; }
.tour-details-modal__fact-value { margin:0; color:var(--ink); font-family:var(--tour-modal-font); font-size:15px; font-weight:500; line-height:1.55; letter-spacing:0; }
.tour-details-modal__age-note { margin:12px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }
.tour-details-modal__paragraph { margin:0; color:var(--ink); font-family:var(--tour-modal-font); font-size:var(--tour-modal-body-size); font-weight:400; line-height:var(--tour-modal-body-leading); letter-spacing:0; }
.tour-details-modal__contact { margin:28px 0 0; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-family:var(--tour-modal-font); font-size:15px; font-weight:400; line-height:1.6; letter-spacing:0; }
.tour-details-modal__contact a { color:var(--red); font-weight:600; white-space:nowrap; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.tour-details-modal__section { margin:30px 0 0; }
.tour-details-modal__section-title,.tour-details-modal__takeaway-title { margin:0 0 12px; color:var(--green); font-family:var(--tour-modal-font); font-size:18px; font-weight:700; line-height:1.4; letter-spacing:-.01em; }
.tour-details-modal__program { margin:0; padding:0; list-style:none; }
.tour-details-modal__program-step { position:relative; display:grid; grid-template-columns:38px minmax(0, 1fr); gap:14px; padding:0 0 23px; }
.tour-details-modal__program-step:last-child { padding-bottom:0; }
.tour-details-modal__program-step:not(:last-child)::after { position:absolute; top:38px; bottom:0; left:18px; width:1px; content:""; background:var(--line); }
.tour-details-modal__program-number { position:relative; z-index:1; display:grid; width:38px; height:38px; place-items:center; border:1px solid #cf8b81; border-radius:50%; color:var(--red); background:#faf7f2; font-size:14px; font-weight:700; line-height:1; }
.tour-details-modal__program-title { margin:4px 0 5px; color:var(--ink); font-family:var(--tour-modal-font); font-size:17px; font-weight:700; line-height:1.45; }
.tour-details-modal__program-text { margin:0; color:var(--muted); font-size:15px; line-height:1.6; }
.tour-details-modal__takeaway { margin:30px 0 0; padding:20px 22px; border-left:3px solid var(--red); border-radius:0 4px 4px 0; background:#f2ece5; }
.tour-details-modal__takeaway-title { margin-bottom:7px; font-size:17px; }
.tour-details-modal__takeaway-text { margin:0; color:var(--ink); font-size:15px; line-height:1.6; }
.tour-details-modal__booking { display:grid; gap:8px; margin:24px 0 0; }
.tour-details-modal__booking .button { width:100%; }
.tour-details-modal__booking-note { color:var(--muted); font-size:12px; line-height:1.5; text-align:center; }

@media (min-width:701px) and (max-width:1050px) {
  .tours .tour-card { flex-basis:calc((100% - 22px) / 2); }
}

@media (max-width:700px) {
  .tours .section-heading .tours-toggle { grid-column:1; justify-self:center; text-align:center; }
  .tours .tour-grid { gap:17px; }
  .tours .tour-card { flex-basis:100%; }
  .tour-carousel__controls { margin-top:17px; }
  .tour-details-modal__fact-row { grid-template-columns:1fr; gap:1px; padding:11px 0; }
}

@media (max-width:430px) {
  .tour-card__meta { grid-template-columns:1fr; min-height:0; }
  .tour-card__bottom { align-items:flex-start; flex-direction:column; }
  .tour-details-modal { width:calc(100% - 20px); max-height:calc(100dvh - 20px); }
  .tour-details-modal__panel { padding:27px 22px; }
}

@media (prefers-reduced-motion:reduce) {
  .tours .tour-grid { transition:none; }
  .tour-details-modal,.tour-details-modal::backdrop { transition:none; }
}

/* Reviews use the same progressive carousel pattern as the featured tours. */
.reviews-toggle { grid-column:3; justify-self:end; flex-shrink:0; padding:0; border:0; color:var(--red); background:transparent; font:700 13px/1.5 var(--sans); }
.reviews-toggle span { margin-left:7px; font-size:19px; }
.reviews-carousel { min-width:0; }
.reviews-carousel__viewport { min-width:0; overflow:hidden; touch-action:pan-y; }
.reviews .reviews-grid { display:flex; gap:42px; transition:transform .36s ease; will-change:transform; }
.reviews .review { flex:0 0 calc((100% - 84px) / 3); min-width:0; }
.reviews-carousel__controls { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
.reviews-carousel__controls[hidden] { display:none; }
.reviews-carousel__arrow { display:grid; width:42px; height:42px; place-items:center; padding:0; border:1px solid var(--line); border-radius:4px; color:var(--green); background:#faf7f2; font-size:21px; line-height:1; }
.reviews-carousel__arrow:disabled { opacity:.38; cursor:not-allowed; }
.reviews-carousel__indicator { min-width:86px; color:var(--muted); font-size:13px; font-weight:700; text-align:center; }

@media (min-width:701px) and (max-width:1050px) {
  .reviews .reviews-grid { gap:25px; }
  .reviews .review { flex-basis:calc((100% - 25px) / 2); }
}

@media (max-width:700px) {
  .reviews .section-heading .reviews-toggle { grid-column:1; justify-self:center; text-align:center; }
  .reviews .reviews-grid { gap:28px; }
  .reviews .review { flex-basis:100%; }
  .reviews-carousel__controls { margin-top:17px; }
}

@media (prefers-reduced-motion:reduce) {
  .reviews .reviews-grid { transition:none; }
}

/* Approved icon set from assets/media/icons. */
.inline-arrow,.carousel-arrow,.accordion-icon,.booking-copy li > img,.reason-icon,.tour-card__icon { display:block; width:var(--icon-size, 20px); height:var(--icon-size, 20px); flex:0 0 auto; object-fit:contain; }
.inline-arrow { --icon-size:27px; margin-left:7px; transform:scaleX(1.18); transform-origin:left center; }
.inline-arrow--back { transform:rotate(180deg) scaleX(1.18); transform-origin:center; }
.carousel-arrow--back { transform:rotate(180deg); }
.section-heading a,.tours-toggle,.reviews-toggle { display:inline-flex; align-items:center; }
.carousel-arrow { --icon-size:20px; }
.tour-card__icon { margin-top:1px; }
.tour-card__availability .tour-card__icon { margin:0; }
.reasons .reason-icon { --icon-size:clamp(74px, 5.8vw, 96px); }
.tours .tour-card__icon { --icon-size:22px; flex-basis:22px; }
.tours .tour-card__availability .tour-card__icon { --icon-size:27px; flex-basis:27px; width:27px; height:27px; }
.accordion-icon { --icon-size:20px; margin-left:auto; transition:transform .2s ease; }
.accordion-item button[aria-expanded="true"] .accordion-icon { transform:rotate(180deg); }
.faq-toggle { display:inline-flex; align-items:center; gap:8px; padding:0; border:0; color:var(--red); background:transparent; font:700 13px/1.5 var(--sans); white-space:nowrap; }.faq .section-heading > .faq-toggle { grid-column:3; justify-self:end; }.faq-toggle .inline-arrow { margin-left:0; }.faq-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; }.faq .accordion-item { border-bottom:1px solid var(--line); transition:border-color .28s ease,background .28s ease; }.faq .accordion-item button,.faq .accordion-item button span { align-items:center; min-height:54px; padding:14px 18px; color:var(--ink); font-weight:700; cursor:pointer; transition:background .28s ease,color .28s ease; }.faq .accordion-item button span { min-height:0; padding:0; }.faq .accordion-item button:hover,.faq .accordion-item button:focus-visible { color:var(--ink); background:#f2ece5; outline:2px solid transparent; }.faq .accordion-item button:focus-visible { outline-color:var(--red); outline-offset:-2px; }.faq .accordion-item:has(button[aria-expanded="true"]) { border-color:#cf8b81; background:#faf7f2; }.faq .accordion-panel { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .28s ease,opacity .28s ease; }.faq .accordion-panel > p { min-height:0; overflow:hidden; padding:0 18px; }.faq .accordion-panel[aria-hidden="false"] { grid-template-rows:1fr; opacity:1; }.faq .accordion-panel[aria-hidden="false"] > p { padding-bottom:16px; }.faq-toggle[aria-expanded="true"] .inline-arrow { transform:rotate(180deg) scaleX(1.18); }
.booking-copy li { display:flex; align-items:center; gap:9px; }
.booking-copy li > img { --icon-size:30px; }
.booking-copy li::first-letter { color:inherit; font-size:inherit; }
.booking-form select { appearance:none; padding-right:36px; background-image:url('../media/icons/icon-chevron-down.png'); background-repeat:no-repeat; background-position:calc(100% - 10px) center; background-size:17px; }
.booking-form > label:nth-of-type(2) select { padding-left:44px; background-image:url('../media/icons/icon-calendar.png'), url('../media/icons/icon-chevron-down.png'); background-position:7px center, calc(100% - 10px) center; background-size:29px, 17px; }

@media (max-width:700px) {
  .reasons .reason-icon { --icon-size:70px; }
  .tours .tour-card__icon { --icon-size:22px; flex-basis:22px; }
  .tours .tour-card__availability .tour-card__icon { --icon-size:25px; flex-basis:25px; width:25px; height:25px; }
  .booking-copy li > img { --icon-size:28px; }
  .booking-form > label:nth-of-type(2) select { background-size:27px, 17px; }
}
@media (max-width:767px) { .faq .section-heading > .faq-toggle { grid-column:1; justify-self:center; } .faq-grid { grid-template-columns:1fr; gap:0; } .faq .accordion-item button { min-height:44px; } }
@media (prefers-reduced-motion:reduce) { .faq .accordion-item,.faq .accordion-item button,.faq .accordion-panel,.accordion-icon { transition:none; } }

/* The FAQ action arrow must rotate in place, never into its label. */
.faq-toggle .inline-arrow,.faq-toggle[aria-expanded="true"] .inline-arrow { transform-origin:center; }

@media (prefers-reduced-motion:reduce) {
  .accordion-icon { transition:none; }
}

/* Keep requested section titles centered independently from their action links. */
.gallery .section-heading,.reviews .section-heading,.faq .section-heading { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; }
.gallery .section-heading h2,.reviews .section-heading h2,.faq .section-heading h2 { grid-column:2; text-align:center; }
.gallery .section-heading > a,.reviews .section-heading > .reviews-toggle,.faq .section-heading > a { grid-column:3; justify-self:end; }
.team > .container > h2 { text-align:center; }

@media (max-width:700px) {
  .gallery .section-heading,.reviews .section-heading,.faq .section-heading { grid-template-columns:1fr; justify-items:center; gap:8px; }
  .gallery .section-heading h2,.reviews .section-heading h2,.faq .section-heading h2,.gallery .section-heading > a,.reviews .section-heading > .reviews-toggle,.faq .section-heading > a { grid-column:1; justify-self:center; text-align:center; }
}

/* A slightly larger portrait keeps participant reviews more personal and legible. */
.reviews .review { grid-template-columns:124px minmax(0, 1fr); column-gap:22px; }
.reviews .media-slot--review { width:124px; }

@media (min-width:701px) and (max-width:1050px) {
  .reviews .review { grid-template-columns:102px minmax(0, 1fr); }
  .reviews .media-slot--review { width:102px; }
}

@media (max-width:700px) {
  .reviews .review { grid-template-columns:106px minmax(0, 1fr); }
  .reviews .media-slot--review { width:106px; }
}

/* The second set of reasons uses the same responsive grid as the first six cards. */
.reasons .section-heading > .reasons-toggle { grid-column:3; justify-self:end; }
.reasons-toggle { display:inline-flex; align-items:center; justify-content:flex-end; flex-shrink:0; gap:8px; padding:0; border:0; color:var(--red); background:transparent; font:700 13px/1.5 var(--sans); line-height:1.5; text-align:right; white-space:nowrap; }
.reasons-toggle .inline-arrow { margin-left:0; }
.reasons-toggle[aria-expanded="true"] .inline-arrow { transform:rotate(180deg) scaleX(1.18); transform-origin:center; }
.reasons-extra { margin-top:clamp(26px, 3vw, 38px); opacity:1; transform:translateY(0); transition:opacity .26s ease,transform .26s ease; }
.reasons-extra[hidden] { display:none; }
.reasons-extra.is-entering,.reasons-extra.is-leaving { opacity:0; transform:translateY(-8px); }
.reasons .reason-icon { object-fit:contain; }
.reasons-mobile-carousel[hidden] { display:none; }

@media (prefers-reduced-motion:reduce) {
  .reasons-toggle .inline-arrow,.reasons-extra,.reasons-mobile-carousel__track { transition:none; }
}

@media (max-width:700px) {
  .reasons .section-heading > .reasons-toggle { grid-column:1; justify-self:end; }
}

/* Compact multi-mode booking form. */
#booking { scroll-margin-top:110px; }
.booking-shell { align-items:stretch; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); padding:clamp(28px,3vw,46px); }
.booking-copy .booking-copy__eyebrow { margin:0 0 12px; color:var(--red); font-size:13px; font-weight:700; text-transform:uppercase; }
.booking-copy h2 { max-width:600px; font-size:clamp(42px,4vw,62px); line-height:.98; }
.booking-copy ul { display:grid; gap:18px; margin-top:36px; counter-reset:booking-benefit; }
.booking-copy li { display:grid; grid-template-columns:46px minmax(0,1fr); column-gap:14px; align-items:center; counter-increment:booking-benefit; }
.booking-copy li::before { display:grid; grid-row:span 2; width:44px; height:44px; place-items:center; border:1px solid #cf8b81; border-radius:50%; color:#a82d1e; background:#f7e7e2; font-size:12px; font-weight:700; content:counter(booking-benefit); }
.booking-copy li strong,.booking-copy li span { grid-column:2; }
.booking-copy li strong { color:var(--green); font-size:14px; }
.booking-copy li span { font-size:13px; line-height:1.5; }
.booking-copy__phone { display:grid; gap:7px; max-width:430px; padding-top:26px; border-top:1px solid var(--line); margin-top:36px !important; }
.booking-copy__phone a { color:var(--green); font-size:18px; font-weight:700; }
.booking-form--new { width:100%; max-width:720px; justify-self:end; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto auto auto auto auto; align-content:start; gap:14px; padding:36px; border:1px solid #e5ddd4; border-radius:14px; box-shadow:0 16px 34px rgba(36,74,58,.08); }
.booking-types,.booking-mode-fields,.booking-contact-fields,.booking-consent,.booking-form--new .button,.booking-note,.booking-form--new .booking-status { grid-column:1/-1; }
.booking-types { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:0 0 24px; margin:0; border:0; border-bottom:1px solid var(--line); }
.booking-types legend { width:100%; margin-bottom:13px; color:var(--green); font-family:var(--serif); font-size:25px; font-weight:500; }
.booking-types label { position:relative; display:block; padding:14px 8px; border:1px solid #ded5cb; border-radius:7px; color:#625d57; font-size:13px; font-weight:700; text-align:center; cursor:pointer; transition:background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.booking-types input { position:absolute; width:auto !important; height:auto !important; opacity:0; pointer-events:none; }
.booking-types label:has(input:checked) { border-color:var(--green); color:#fff; background:var(--green); }
.booking-types label:has(input:checked) { box-shadow:0 10px 18px rgba(36,74,58,.13); }
.booking-types label:has(input:focus-visible) { outline:3px solid rgba(193,51,34,.28); outline-offset:2px; }
.booking-mode-fields,.booking-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; min-height:132px; }
.booking-mode-fields { min-height:210px; height:auto; padding:8px 0 22px; border-bottom:1px solid var(--line); }
.booking-contact-fields { padding-top:8px; }
.booking-form--new label { display:grid; gap:6px; color:var(--muted); font-size:13px; }
.booking-form--new input,.booking-form--new select { height:52px; border-color:#ded5cb; font-size:14px; }
.booking-date-range { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:6px; }
.booking-date-range input { min-width:0; }
.booking-date-wrap { position:relative; display:flex; gap:8px; align-items:center; min-height:50px; }
.booking-date-wrap select,.booking-date-wrap input { width:100%; }
.booking-date-wrap select { padding-left:42px; background-image:url('../media/icons/icon-chevron-down.png'); background-repeat:no-repeat; background-position:calc(100% - 10px) center; background-size:17px; }
.booking-link { padding:0; border:0; color:var(--red); background:transparent; font-size:12px; white-space:nowrap; text-decoration:underline; }
.booking-mode-fields .booking-availability { display:grid; grid-column:auto; align-self:stretch; padding:16px; border:1px solid #d9e6de; border-radius:8px; background:#f6f9f7; color:#477763; font-size:12px; line-height:1.45; box-shadow:0 6px 14px rgba(36,74,58,.04); }
.booking-availability__date { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#356553; font-size:15px; font-weight:600; }
.booking-availability__date > span { min-width:0; }
.booking-availability__seats { flex:0 0 auto; padding:5px 9px; border-radius:999px; color:#356553; background:#e4efe8; font-size:15px; line-height:1.15; white-space:nowrap; }
.booking-availability__summary { display:flex; align-items:end; justify-content:space-between; gap:12px; padding-top:12px; margin-top:12px; border-top:1px solid #d9e4dc; }
.booking-availability__summary small { color:#356553; font-size:15px; font-weight:600; white-space:nowrap; }
.booking-availability__summary strong { color:var(--green); font-family:var(--serif); font-size:18px; white-space:nowrap; }
.booking-contact-fields { min-height:0; }
.booking-consent { grid-template-columns:auto 1fr !important; align-items:start; font-size:12px !important; }
.booking-consent input { width:17px; height:17px; margin-top:2px; }
.booking-consent span { display:block; line-height:1.45; }
.booking-consent a { color:var(--red); text-decoration:underline; }
.booking-form--new .button { min-height:52px; margin-top:3px; }
.booking-note { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.booking-form--new .booking-status { min-height:18px; }
.booking-form--new .booking-status.is-pending { color:var(--green); }
.booking-form--new .booking-status.is-error { color:var(--red); }
.booking-form--new .booking-status.is-success { position:relative; min-height:52px; padding:15px 16px 15px 50px; border:1px solid #bfd9cc; border-radius:8px; color:var(--green); background:#edf6f1; font-size:14px !important; font-weight:600; line-height:1.5; animation:booking-success-pop .45s ease both; }
.booking-form--new .booking-status.is-success::before { position:absolute; top:50%; left:15px; display:grid; width:24px; height:24px; border-radius:50%; color:#fff; background:var(--green); content:'✓'; place-items:center; transform:translateY(-50%); }
.booking-form--new.is-submitted { animation:booking-form-confirm .7s ease; }
@keyframes booking-success-pop { from { opacity:0; transform:translateY(7px) scale(.985); } to { opacity:1; transform:none; } }
@keyframes booking-form-confirm { 0%,100% { box-shadow:0 16px 34px rgba(36,74,58,.08); } 45% { box-shadow:0 16px 42px rgba(15,79,60,.2); } }
@media (prefers-reduced-motion:reduce) { .booking-form--new .booking-status.is-success,.booking-form--new.is-submitted { animation:none; } }
.booking-form--new.is-tour-selected { animation:booking-selection-highlight .9s ease; }
@keyframes booking-selection-highlight { 0%,100% { box-shadow:0 16px 34px rgba(36,74,58,.08); } 45% { box-shadow:0 0 0 4px rgba(181,45,27,.18),0 16px 34px rgba(36,74,58,.12); } }
.booking-amount { position:relative; display:block; }
.booking-amount input { padding-right:36px; }
.booking-amount { color:var(--green); font-weight:700; }
.booking-amount::after { position:absolute; top:14px; right:13px; content:'₽'; }
@media (min-width:701px) { .booking-mode-fields { min-height:242px; } }
@media (max-width:1050px) { .booking-shell { grid-template-columns:1fr; } .booking-form--new { justify-self:stretch; max-width:none; } }
@media (max-width:700px) { #booking { scroll-margin-top:86px; } .booking-copy h2 { font-size:42px; } .booking-types { grid-template-columns:repeat(2,1fr); } .booking-mode-fields,.booking-contact-fields { grid-template-columns:1fr; min-height:0; } .booking-form--new { grid-template-rows:auto auto auto auto auto auto; padding:24px 18px; } .booking-mode-fields { height:auto; } .booking-types legend { font-size:23px; } .booking-date-range { grid-template-columns:1fr; } .booking-date-range > span { display:none; } }

/* Premium footer: calmer rhythm, retained original brand mark and prominent social links. */
.site-footer { padding:56px 0 24px; }
.footer-grid { grid-template-columns:1.55fr repeat(3,1fr) .72fr; gap:48px; }
.footer-grid > div:first-child p { max-width:235px; margin-top:16px; }
.footer-grid h2 { margin-bottom:16px; font-size:12px; letter-spacing:.03em; text-transform:uppercase; }
.footer-grid a,.footer-grid p { margin-top:0; margin-bottom:10px; }
.footer-contacts > a:first-of-type { color:#f2dccf; font-size:15px; font-weight:700; }
.footer-contacts a[href^="mailto:"] { color:#f2dccf !important; font-weight:700; text-decoration:underline; text-decoration-color:rgb(242 220 207 / .55); text-underline-offset:3px; }
.footer-contacts p { max-width:210px; }
.footer-social { display:flex; align-items:center; gap:20px; }
.footer-social a { display:grid; width:52px; height:52px; place-items:center; margin:0; color:#f8f4ee; transition:color .2s ease,transform .2s ease; }
.footer-social a:hover { color:#f2dccf; transform:translateY(-2px); }
.footer-social a[aria-disabled="true"] { opacity:.52; cursor:not-allowed; }
.media-picture { display:contents; }
.footer-social svg { display:block; width:44px; height:44px; fill:#2787f5; }
.footer-social a:nth-child(2) svg { fill:#2aabee; }
.footer-bottom { align-items:center; justify-content:space-between; margin-top:32px; padding-top:20px; }
.footer-bottom small { color:#a6c1b2; font-size:11px; }
.footer-bottom > div { display:flex; flex-wrap:wrap; gap:20px; }
.footer-bottom a { margin:0; font-size:11px; }
@media (max-width:1050px) { .footer-grid { grid-template-columns:repeat(3,1fr); gap:32px; } .footer-grid > div:first-child { grid-column:span 3; } }
@media (max-width:700px) { .site-footer { padding-top:40px; } .footer-grid { grid-template-columns:repeat(2,1fr); gap:28px 18px; } .footer-grid > div:first-child { grid-column:span 2; } .footer-bottom { align-items:flex-start; flex-direction:column; gap:14px; } }
@media (max-width:390px) { .footer-grid { grid-template-columns:1fr; } .footer-grid > div:first-child { grid-column:auto; } }

/* Readability pass: retain the layout while lifting small customer-facing copy. */
@media (min-width:701px) {
  .desktop-nav { font-size:16px; }
  .header-actions { font-size:15px; }
  .booking-mode-fields { align-content:start; grid-auto-rows:max-content; }
  .booking-mode-fields > label { align-content:start; align-self:start; }
  .booking-mode-fields .booking-availability { width:100%; align-self:start; }
}
.benefits-grid article span,.reasons-grid p { font-size:13px; }
.section-heading a,.tours-toggle,.reviews-toggle,.gallery-toggle,.faq-toggle,.reasons-toggle { font-size:14px; }
.tour-card__price span { font-size:13px; }
.tour-card__availability { gap:7px; padding:7px 10px; border:1px solid #d9e6de; border-radius:999px; background:#e4efe8; font-size:13px; }
.tour-card__availability::before { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:#4f8b6a; content:""; }
.tour-card__availability--sold-out::before { background:#a63d2e; }
.booking-copy .booking-copy__eyebrow { font-size:14px; }
.booking-copy p { font-size:16px; line-height:1.6; }
.booking-copy li::before { font-size:13px; }
.booking-copy li strong { font-size:17px; }
.booking-copy li span { font-size:16px; line-height:1.55; }
.booking-form--new label,.booking-consent,.booking-note,.booking-form--new .booking-status { font-size:13px !important; }
.booking-link { font-size:13px; }
.booking-mode-fields .booking-availability { padding:15px 16px; border:1px solid #d9e6de; background:#f6f9f7; box-shadow:0 6px 14px rgba(36,74,58,.04); font-size:13px; }
.booking-availability__summary small { color:#356553; font-size:15px; font-weight:600; }
.booking-availability__summary strong { font-size:19px; }
.team-card h3 { margin-top:14px; font-family:var(--serif); font-size:18px; font-weight:500; line-height:1.25; }
.team-card p { min-height:0; margin-top:5px; color:#4f4c48; font-size:14px; line-height:1.4; }
.team-card small { min-height:0; margin:13px 14px 0; padding:12px 0 14px; border-top:1px solid var(--line); color:#67625c; font-size:13px; line-height:1.4; }
.team-invite { padding:18px; }
.team-invite p { max-width:100%; font-size:clamp(16px,1.25vw,20px); line-height:1.25; overflow-wrap:anywhere; }
.footer-grid h2 { font-size:13px; }
.footer-grid p,.footer-grid small,.footer-grid a { font-size:13px; }
.footer-bottom a { margin:0; font-size:12px; }
.footer-bottom small { font-size:12px; }
.footer-social a[aria-disabled="true"] { opacity:1; cursor:not-allowed; }

@media (min-width:1051px) {
  .team-grid { grid-auto-rows:auto; }
  .team-card,.team-invite { height:auto; }
}

@media (max-width:700px) {
  .hero-description,.review blockquote { font-size:15px; }
  .reasons-grid h3,.reasons-grid p,.team-card p,.team-card small,.footer-grid p,.footer-grid a,.footer-bottom a { font-size:13px; }
  .booking-copy li strong { font-size:17px; }
  .booking-copy li span { font-size:16px; }
}

/* Final readability and visual-consistency pass. */
@media (min-width:1051px) {
  .hero-copy .eyebrow { color:#a82d1e; font-weight:600; }
}
.hero-description { font-size:18px; }
.tour-card__price span,.tour-card__availability { font-size:14px; }
.reasons-grid h3 { font-size:16px; }
.reasons-grid p { font-size:15px; }
.review blockquote { font-size:16px; }
.review cite { font-size:15px; }
.team-card h3 { min-height:50px; font-size:20px; }
.team-card p { min-height:68px; margin-top:6px; font-size:16px; line-height:1.42; }
.team-card small { color:#5c5852; font-size:15px; line-height:1.42; }
.team-invite { display:flex; align-items:stretch; flex-direction:column; justify-content:center; padding:30px 24px; background:linear-gradient(145deg,#faf7f2 0%,#f5eee5 100%); }
.team-invite h3 { max-width:none; margin:0 0 20px; color:var(--green); font:500 24px/1.14 var(--serif); overflow-wrap:anywhere; }
.team-invite p { max-width:none; margin:0; color:#365b4e; font:400 16px/1.52 var(--sans); text-align:left; overflow-wrap:normal; }
.booking-types label { font-size:15px !important; }
.booking-form--new label { font-size:15px !important; }
.booking-form--new input,.booking-form--new select,.counter button { font-size:16px; }
.booking-mode-fields .booking-availability { font-size:14px; }
.booking-availability__summary small { font-size:15px; }
.hero-actions .button--outline svg { width:28px; height:28px; stroke-width:1.8; }
.gallery-video .video-play svg { width:38px; height:38px; }
.tour-details-modal__age-note { font-size:14px; }
.tour-details-modal__booking-note { font-size:13px; }
.faq .accordion-panel > p { font-size:16px; line-height:1.65; }
.booking-date-wrap > .tour-card__icon { position:absolute; z-index:1; left:11px; width:20px; height:20px; margin:0; color:var(--red); pointer-events:none; }
.footer-grid h2 { font-size:14px; }
.footer-grid p,.footer-grid small,.footer-grid a { font-size:14px; }
#faq-title { scroll-margin-top:156px; }

@media (max-width:1050px) {
  #faq-title { scroll-margin-top:134px; }
}

@media (max-width:700px) {
  .hero-copy .eyebrow { font-size:14px; }
  .hero-description { font-size:16px; }
  .reasons-grid h3 { font-size:15px; }
  .reasons-grid p { font-size:14px; }
  .team-card h3 { min-height:45px; font-size:18px; }
  .team-card p { min-height:68px; font-size:16px; }
  .team-card small { font-size:15px; }
  .team-invite { padding:26px 22px; }
  .team-invite h3 { font-size:22px; }
  .team-invite p { font-size:15px; }
  .booking-copy,.booking-form--new,.booking-types { min-width:0; }
  .booking-copy h2 { font-size:clamp(34px,10.7vw,42px); }
  .booking-types label,.booking-form--new label { font-size:15px !important; }
  .footer-grid p,.footer-grid a { font-size:14px; }
  #faq-title { scroll-margin-top:112px; }
}

@media (max-width:430px) {
  .team-grid { grid-template-columns:1fr; }
  .booking-types { grid-template-columns:1fr; }
  .booking-shell { padding-inline:8px; }
  .booking-form--new { padding-inline:12px; }
}

@media (min-width:431px) and (max-width:820px) {
  .team-grid { grid-template-columns:repeat(2,1fr); }
}

/* Mobile-light booking entry: four clear choices open one shared form. */
.booking { padding-top:30px; }
.booking-choice { display:none; padding:clamp(30px,4vw,52px); border-radius:12px 12px 0 0; background:var(--surface); text-align:center; }
[data-booking-desktop-form] { min-width:0; }
[data-booking-desktop-form] .booking-form--new { max-width:none; }
.booking-choice__eyebrow,.booking-dialog__eyebrow { margin:0 0 10px; color:var(--red); font-size:14px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.booking-choice h2 { color:var(--green); }
.booking-choice__intro { max-width:620px; margin:14px auto 0; color:var(--muted); font-size:16px; line-height:1.6; }
.booking-choice__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:30px; }
.booking-choice__card { position:relative; display:grid; min-width:0; min-height:148px; align-content:end; gap:8px; padding:24px 46px 22px 22px; border:1px solid #ded5cb; border-radius:9px; color:var(--green); background:#faf7f2; text-align:left; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.booking-choice__card:hover { border-color:#caa79f; box-shadow:0 12px 24px rgba(36,74,58,.09); transform:translateY(-2px); }
.booking-choice__card:focus-visible { outline:3px solid rgba(181,45,27,.28); outline-offset:3px; }
.booking-choice__card > span:first-child { font:500 22px/1.2 var(--serif); overflow-wrap:anywhere; }
.booking-choice__card small { color:var(--muted); font-size:14px; line-height:1.45; overflow-wrap:anywhere; }
.booking-choice__arrow { position:absolute; right:19px; bottom:20px; color:var(--red); font-size:23px; line-height:1; }
.team-carousel__controls { display:none; }

.booking-dialog { width:min(920px,calc(100% - 36px)); max-height:calc(100dvh - 36px); padding:0; border:0; border-radius:14px; color:var(--ink); background:#fff; box-shadow:0 28px 70px rgba(17,42,33,.26); }
.booking-dialog::backdrop { background:rgba(15,43,35,.68); backdrop-filter:blur(2px); }
.booking-dialog__panel { position:relative; padding:34px; }
.booking-dialog__close { position:absolute; z-index:2; top:15px; right:15px; display:grid; width:44px; height:44px; place-items:center; padding:0 0 3px; border:1px solid var(--line); border-radius:50%; color:var(--green); background:#faf7f2; font-size:29px; line-height:1; }
.booking-dialog__panel > h2 { padding-right:54px; color:var(--green); font-size:clamp(30px,4vw,42px); }
.booking-dialog .booking-form--new { max-width:none; margin-top:24px; padding:28px; box-shadow:none; }
.booking-dialog .booking-types legend { font-size:20px; }
body.has-open-booking { overflow:hidden; }

@media (max-width:900px) {
  .booking-choice__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:700px) {
  .reasons-primary,.reasons-extra { display:none; }
  .reasons .section-heading > .reasons-toggle { justify-self:center; }
  .reasons-toggle { min-height:44px; padding:8px 4px; }
  .reasons-mobile-carousel { display:block; min-width:0; }
  .reasons-mobile-carousel__viewport { min-width:0; overflow:hidden; touch-action:pan-y; }
  .reasons-mobile-carousel__track { display:flex; width:100%; transition:transform .38s ease; will-change:transform; }
  .reasons-mobile-carousel__page { display:grid; flex:0 0 100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 12px; align-content:start; text-align:center; }
  .reasons-mobile-carousel__page article { display:flex; min-width:0; min-height:150px; align-items:center; flex-direction:column; }
  .reasons-mobile-carousel__page h3 { margin-top:9px; font-family:var(--sans); font-size:15px; font-weight:600; line-height:1.35; }
  .reasons-mobile-carousel__page p { margin-top:7px; color:var(--muted); font-size:14px; line-height:1.45; }
  .reasons-mobile-carousel__indicator { margin:18px 0 0; color:var(--muted); font-size:14px; font-weight:700; text-align:center; }

  .team > .container > h2 { margin-bottom:20px; text-align:left; }
  .team-grid { display:flex; width:auto; gap:14px; margin-inline:calc(var(--gutter) * -1); padding:0 var(--gutter) 12px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-padding-inline:var(--gutter); scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .team-grid::-webkit-scrollbar { display:none; }
  .team-card,.team-invite { flex:0 0 min(74vw,268px); scroll-snap-align:start; scroll-snap-stop:always; }
  .team .media-slot--team { aspect-ratio:4/4.25; }
  .team-card h3 { min-height:0; margin-top:13px; font-size:18px; }
  .team-card p { min-height:0; margin-top:6px; font-size:16px; line-height:1.4; }
  .team-card small { min-height:0; margin-top:12px; font-size:15px; line-height:1.4; }
  .team-invite { min-height:0; padding:24px 21px; }
  .team-invite h3 { font-size:21px; }
  .team-invite p { font-size:15px; line-height:1.5; }
  .team-carousel__controls { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:8px; }
  .team-carousel__controls button { display:grid; width:44px; height:44px; place-items:center; padding:0; border:1px solid var(--line); border-radius:4px; color:var(--green); background:#faf7f2; font-size:20px; }
  .team-carousel__controls button:disabled { opacity:.38; cursor:not-allowed; }
  .team-carousel__controls p { min-width:58px; color:var(--muted); font-size:14px; font-weight:700; text-align:center; }

  .booking { padding-top:16px; }
  .booking-desktop { display:none; }
  .booking-choice { display:block; width:calc(100% - 2 * var(--gutter)); padding:28px 18px 32px; }
  .booking-choice__eyebrow { font-size:13px; }
  .booking-choice h2 { font-size:clamp(32px,10vw,40px); line-height:1.05; }
  .booking-choice__intro { font-size:16px; }
  .booking-choice__grid { grid-template-columns:1fr; gap:10px; margin-top:24px; }
  .booking-choice__card { min-height:104px; padding:19px 48px 18px 18px; }
  .booking-choice__card > span:first-child { font-size:20px; }
  .booking-choice__card small { font-size:14px; }

  .booking-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); }
  .booking-dialog__panel { padding:26px 12px 18px; }
  .booking-dialog__eyebrow,.booking-dialog__panel > h2 { margin-inline:8px; }
  .booking-dialog__panel > h2 { padding-right:46px; font-size:32px; line-height:1.08; }
  .booking-dialog__close { top:11px; right:11px; }
  .booking-dialog .booking-form--new { margin-top:20px; padding:20px 12px; }
  .booking-dialog .booking-types { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-dialog .booking-types legend { font-size:19px; }
}

@media (max-width:380px) {
  .booking-dialog .booking-types { grid-template-columns:1fr; }
}

@media (max-width:340px) {
  .booking-dialog__panel { padding-inline:6px; }
  .booking-dialog .booking-form--new { padding-inline:8px; }
}

@media (prefers-reduced-motion:reduce) {
  .booking-choice__card { transition:none; }
}
