/* ===========================================================
   ITUGID — Premium redesign
   Design system: tokens, type, components
   =========================================================== */

@font-face{
  font-family:'Manrope'; font-style:normal; font-weight:300 700; font-display:swap;
  src:url('/assets/fonts/manrope-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'Manrope'; font-style:normal; font-weight:300 700; font-display:swap;
  src:url('/assets/fonts/manrope-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Playfair Display'; font-style:normal; font-weight:400 600; font-display:swap;
  src:url('/assets/fonts/playfair-display-normal-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'Playfair Display'; font-style:normal; font-weight:400 600; font-display:swap;
  src:url('/assets/fonts/playfair-display-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Playfair Display'; font-style:italic; font-weight:400; font-display:swap;
  src:url('/assets/fonts/playfair-display-italic-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'Playfair Display'; font-style:italic; font-weight:400; font-display:swap;
  src:url('/assets/fonts/playfair-display-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face{
  font-family:'Aeroport'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/assets/fonts/aeroport-regular.ttf') format('truetype');
}
@font-face{
  font-family:'Aeroport'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/assets/fonts/aeroport-medium.ttf') format('truetype');
}
@font-face{
  font-family:'Aeroport'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/assets/fonts/aeroport-bold.ttf') format('truetype');
}
@font-face{
  font-family:'Piazzolla'; font-style:normal; font-weight:300; font-display:swap;
  src:url('/assets/fonts/piazzolla-light.ttf') format('truetype');
}
@font-face{
  font-family:'Piazzolla'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/assets/fonts/piazzolla-medium.ttf') format('truetype');
}

:root{
  /* ---- ITUGID brand palette ---- */
  --ink:        #242E37;   /* Чёрный песок */
  --forest:     #242E37;
  --forest-2:   #303A43;
  --forest-3:   rgba(234,231,228,.16);
  --paper:      #EAE7E4;   /* Белые скалы */
  --paper-2:    #FFFFFF;
  --paper-3:    rgba(36,46,55,.16);
  --ember:      #E04300;   /* Огненные закаты */
  --ember-2:    #8BBDAF;   /* Речка кипящая */
  --ocean:      #8BBDAF;
  --moss:       #A7A7A7;

  /* text */
  --on-dark:        #FFFFFF;
  --on-dark-soft:   rgba(255,255,255,.72);
  --on-dark-faint:  rgba(255,255,255,.46);
  --on-light:       #242E37;
  --on-light-soft:  rgba(36,46,55,.68);
  --on-light-faint: rgba(36,46,55,.46);

  /* type families (overridable by Tweaks) */
  --font-display: 'Piazzolla', Georgia, serif;
  --font-ui: 'Aeroport', system-ui, sans-serif;

  --maxw: 1280px;
  --gutter: clamp(20px, 5vw, 88px);
  --radius: 4px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  margin:0;
  background:var(--forest);
  color:var(--on-dark);
  font-family:var(--font-ui);
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  /* clip (не hidden): гасит горизонтальный скролл, но НЕ создаёт скролл-контейнер,
     иначе ломается position:sticky у pinned-секции экскурсий */
  overflow-x:clip;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

/* ---------- Type scale ---------- */
.display{
  font-family:var(--font-display);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-.01em;
}
.eyebrow{
  font-family:var(--font-ui);
  font-weight:700;
  font-size:14px;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.h-section{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(34px, 4.6vw, 64px);
  line-height:1.06;
  letter-spacing:-.012em;
  margin:0;
}
.lead{
  font-size:clamp(17px,1.45vw,21px);
  line-height:1.62;
  color:var(--on-dark-soft);
  font-weight:400;
}

/* ---------- Layout ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(72px,10vw,150px); position:relative; }
.section.light{ background:var(--paper); color:var(--on-light); }
.section.light .lead{ color:var(--on-light-soft); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-ui); font-weight:600; font-size:15px;
  letter-spacing:.01em;
  padding:16px 30px; border-radius:100px;
  border:1px solid transparent;
  transition:all .4s var(--ease);
  white-space:nowrap;
}
.btn-ember{ background:var(--ember); color:#fff; }
.btn-ember:hover{ background:var(--ember-2); transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(199,107,60,.7); }
.btn-ghost{ border-color:rgba(244,239,228,.32); color:var(--on-dark); }
.btn-ghost:hover{ border-color:var(--on-dark); background:rgba(244,239,228,.06); }
.btn-ghost.dark{ border-color:rgba(26,46,41,.28); color:var(--on-light); }
.btn-ghost.dark:hover{ border-color:var(--on-light); background:rgba(26,46,41,.05); }
.btn .arr{ transition:transform .4s var(--ease); }
.btn:hover .arr{ transform:translateX(4px); }

.link-more{
  display:inline-flex; align-items:center; gap:.5em;
  font-weight:600; font-size:14px; letter-spacing:.02em;
  color:var(--ember); padding-bottom:3px;
  border-bottom:1px solid transparent; transition:.35s var(--ease);
}
.link-more:hover{ border-color:var(--ember); gap:.85em; }

/* ---------- Header / nav ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .5s var(--ease), padding .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(11,22,20,.82);
  backdrop-filter:blur(16px) saturate(1.2);
  border-color:var(--forest-3);
  padding-block:13px;
}
.nav-logo{ font-family:var(--font-display); font-size:23px; letter-spacing:.02em; display:flex; align-items:center; gap:11px; }
.nav-logo .dot{ width:8px; height:8px; border-radius:50%; background:var(--ember); }
.nav-links{ display:flex; gap:30px; align-items:center; }
.nav-links a{ font-size:14.5px; font-weight:500; color:var(--on-dark-soft); transition:color .3s; position:relative; }
.nav-links a:hover{ color:var(--on-dark); }
.nav-cta{ display:flex; align-items:center; gap:20px; }
.nav-phone{ font-weight:600; font-size:15px; letter-spacing:.01em; }
.language-switcher{ position:relative; flex:0 0 auto; }
.language-trigger{
  min-width:58px; min-height:44px; padding:0 12px;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:1px solid rgba(244,239,228,.22); border-radius:999px;
  background:rgba(11,22,20,.26); color:var(--on-dark);
  font-size:12px; line-height:1; font-weight:700; letter-spacing:.08em;
  transition:background .25s var(--ease), border-color .25s var(--ease);
}
.language-trigger:hover,
.language-switcher.open .language-trigger{
  background:rgba(244,239,228,.09); border-color:rgba(244,239,228,.5);
}
.language-trigger svg{
  width:10px; height:6px; fill:none; stroke:currentColor; stroke-width:1.5;
  transition:transform .25s var(--ease);
}
.language-switcher.open .language-trigger svg{ transform:rotate(180deg); }
.language-menu{
  position:absolute; top:calc(100% + 10px); right:0;
  min-width:168px; padding:7px;
  border:1px solid rgba(244,239,228,.16); border-radius:14px;
  background:rgba(11,22,20,.98);
  box-shadow:0 18px 46px rgba(0,0,0,.28);
  opacity:0; transform:translateY(-5px); visibility:hidden; pointer-events:none;
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.language-switcher.open .language-menu{
  opacity:1; transform:none; visibility:visible; pointer-events:auto;
}
.language-menu a{
  min-height:40px; padding:10px 12px; border-radius:9px;
  display:flex; align-items:center; color:var(--on-dark-soft);
  font-size:13px; font-weight:600; transition:background .2s, color .2s;
}
.language-menu a:hover,
.language-menu a:focus-visible{ background:rgba(244,239,228,.08); color:var(--on-dark); }
.language-menu a[aria-current="true"]{ color:var(--ember-2); }
.language-menu a[aria-current="true"]::after{
  content:""; width:6px; height:6px; margin-left:auto; border-radius:50%;
  background:currentColor;
}
.nav-burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; }
.nav-burger span{ width:24px; height:2px; background:var(--on-dark); display:block; }
@media(max-width:1360px){
  .nav-links{ gap:20px; }
  .nav-phone{ display:none; }
  .nav-cta{ gap:14px; }
}
@media(max-width:1180px){
  .nav-links{ display:none; }
  .nav-phone{ display:none; }
  .nav-burger{ display:flex; }
}

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:heroZoom 18s var(--ease) forwards; }
@keyframes heroZoom{ to{ transform:scale(1); } }
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(8,17,15,var(--hero-shade,.92)) 0%, rgba(8,17,15,calc(var(--hero-shade,.92) * .46)) 42%, rgba(8,17,15,calc(var(--hero-shade,.92) * .3)) 70%, rgba(8,17,15,calc(var(--hero-shade,.92) * .6)) 100%),
    linear-gradient(to right, rgba(8,17,15,calc(var(--hero-shade,.92) * .65)), transparent 60%);
}
.hero-inner{
  position:relative; z-index:2; width:100%;
  max-width:var(--maxw); margin:0 auto;
  padding:0 var(--gutter) clamp(48px,7vw,96px);
  display:grid; grid-template-columns:1.25fr .9fr; gap:56px; align-items:end;
}
.hero-loc{ display:flex; align-items:center; gap:10px; color:var(--on-dark-soft); margin-bottom:22px; }
.hero-loc .line{ width:46px; height:1px; background:var(--ember); }
.hero h1{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(38px,5.4vw,80px); line-height:1.02; letter-spacing:-.015em;
  margin:0 0 30px; max-width:14ch;
}
.hero h1 em{ font-style:italic; color:var(--ember-2); }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

/* inquiry form (glass) */
.inquiry{
  background:rgba(16,34,32,.62);
  backdrop-filter:blur(22px) saturate(1.3);
  border:1px solid rgba(244,239,228,.14);
  border-radius:14px;
  padding:30px 30px 28px;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.7);
}
.inquiry h3{ font-family:var(--font-display); font-size:24px; margin:0 0 6px; font-weight:400; }
.inquiry p{ font-size:14px; color:var(--on-dark-soft); margin:0 0 20px; line-height:1.5; }
.field{ margin-bottom:13px; }
.field input{
  width:100%; padding:14px 16px; border-radius:8px;
  background:rgba(11,22,20,.45); border:1px solid rgba(244,239,228,.16);
  color:var(--on-dark); font-family:inherit; font-size:15px; transition:.3s;
}
.field input::placeholder{ color:var(--on-dark-faint); }
.field input:focus{ outline:none; border-color:var(--ember); background:rgba(11,22,20,.7); }
.inquiry .btn-ember{ width:100%; justify-content:center; margin-top:6px; }
.inquiry .consent{ font-size:11px; color:var(--on-dark-faint); margin-top:14px; line-height:1.45; }
@media(max-width:900px){
  .hero-inner{ grid-template-columns:1fr; gap:36px; }
  .inquiry{ max-width:440px; }
}

/* ---------- Stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--forest-3); border-radius:14px; overflow:hidden; }
.stat{ background:var(--forest); padding:clamp(28px,4vw,48px); }
.stat .num{ font-family:var(--font-display); font-size:clamp(44px,6vw,84px); line-height:1; color:var(--ember-2); margin-bottom:14px; }
.stat .lab{ font-weight:600; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-soft); margin-bottom:14px; }
.stat .txt{ font-size:15px; color:var(--on-dark-soft); line-height:1.55; }
@media(max-width:820px){ .stats{ grid-template-columns:1fr; } }

/* ---------- Premium figures (stats redesign) ---------- */
.stats-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:clamp(38px,5vw,62px); }
.stats-head .eyebrow{ color:var(--ember-2); display:block; margin-bottom:18px; }
.stats-head .h-section{ max-width:16ch; }
.stats-head .note{ max-width:34ch; color:var(--on-dark-soft); font-size:15px; line-height:1.6; }
@media(max-width:760px){ .stats-head{ flex-direction:column; align-items:flex-start; gap:20px; } }

.figures{ display:grid; grid-template-columns:repeat(3,1fr); }
.figure{ position:relative; padding:34px clamp(26px,3vw,52px) 6px; transition:background .5s var(--ease); }
.figure + .figure{ border-left:1px solid var(--forest-3); }
.figure:hover{ background:var(--forest-2); }
.figure .fig-idx{ font-family:var(--font-ui); font-weight:600; font-size:12px; letter-spacing:.22em; color:var(--on-dark-faint); }
.figure .fig-num{
  min-height:clamp(72px,7.5vw,112px);
  font-family:var(--font-ui); font-weight:400;
  font-size:clamp(58px,7vw,104px); line-height:.9; letter-spacing:-.045em;
  color:var(--on-dark); margin:16px 0 0; display:flex; align-items:center;
  font-variant-numeric:lining-nums tabular-nums;
}
.figure .fig-num .pre,
.figure .fig-num .unit{
  flex:0 0 auto;
  font-family:var(--font-display);
  font-weight:300;
  line-height:1;
  color:var(--ember-2);
  letter-spacing:0;
}
.figure .fig-num .pre{ font-size:.38em; margin-right:.15em; transform:translateY(.04em); }
.figure .fig-num .unit{ font-size:.27em; margin-left:.22em; transform:translateY(.17em); }
html[lang="en"] .figure .fig-num .pre{ font-size:.26em; margin-right:.1em; }
html[lang="en"] .figure .fig-num .unit{ font-size:.18em; margin-left:.14em; }
.figure .fig-rule{ position:relative; height:2px; background:var(--forest-3); margin:24px 0 20px; overflow:hidden; }
.figure .fig-rule > i{ position:absolute; inset:0; background:linear-gradient(90deg,var(--ember),var(--ember-2)); transform:scaleX(0); transform-origin:0 50%; transition:transform 1.05s var(--ease); }
.figures.in .figure .fig-rule > i{ transform:scaleX(1); }
.figures.in .figure:nth-child(2) .fig-rule > i{ transition-delay:.12s; }
.figures.in .figure:nth-child(3) .fig-rule > i{ transition-delay:.24s; }
.figure .fig-lab{ font-weight:600; font-size:13px; letter-spacing:.15em; text-transform:uppercase; color:var(--on-dark); margin-bottom:13px; }
.figure .fig-txt{ font-size:15px; color:var(--on-dark-soft); line-height:1.6; margin:0; max-width:36ch; }
@media(max-width:820px){
  .figures{ grid-template-columns:1fr; }
  .figure{ padding:30px 0; }
  .figure + .figure{ border-left:none; border-top:1px solid var(--forest-3); }
  .figure:hover{ background:transparent; }
}

/* ---------- Section header ---------- */
.sec-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:clamp(40px,5vw,72px); }
.sec-head .eyebrow{ color:var(--ember-2); margin-bottom:20px; display:block; }
.sec-head .h-section{ max-width:18ch; }
.sec-head .txt{ max-width:42ch; }
@media(max-width:760px){ .sec-head{ flex-direction:column; align-items:flex-start; gap:24px; } }

/* ---------- Tour cards ---------- */
.tours-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.tour-card{
  position:relative; border-radius:14px; overflow:hidden; min-height:420px;
  display:flex; flex-direction:column; justify-content:flex-end;
  color:#fff; isolation:isolate;
}
.tour-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1s var(--ease); }
.tour-card::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to top, rgba(8,17,15,.92), rgba(8,17,15,.25) 55%, rgba(8,17,15,.15)); }
.tour-card:hover img{ transform:scale(1.07); }
.tour-card .body{ padding:28px; }
.tour-card .tag{ font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ember-2); }
.tour-card h3{ font-family:var(--font-display); font-size:26px; font-weight:400; margin:10px 0 12px; line-height:1.1; }
.tour-card p{ font-size:14px; color:rgba(255,255,255,.78); line-height:1.5; margin:0 0 18px; }
.tour-card .meta{ display:flex; gap:18px; font-size:13px; color:rgba(255,255,255,.7); border-top:1px solid rgba(255,255,255,.18); padding-top:16px; }
.tour-card .meta b{ color:#fff; font-weight:600; }
.tour-card.feature{ grid-row:span 2; min-height:0; }
@media(max-width:900px){ .tours-grid{ grid-template-columns:1fr 1fr; } .tour-card.feature{ grid-row:auto; } }
@media(max-width:600px){ .tours-grid{ grid-template-columns:1fr; } }

/* ---------- Accommodation ---------- */
.stay-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.stay-card{ background:var(--forest-2); color:var(--on-dark); border:1px solid var(--forest-3); border-radius:14px; overflow:hidden; transition:.45s var(--ease); }
.stay-card:hover{ transform:translateY(-6px); border-color:var(--ember); }
.stay-card .ph{ aspect-ratio:4/3; overflow:hidden; }
.stay-card .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.stay-card:hover .ph img{ transform:scale(1.06); }
.stay-card .body{ padding:22px; }
.stay-card .tag{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ember-2); }
.stay-card h3{ font-family:var(--font-display); font-size:20px; font-weight:400; margin:9px 0 0; line-height:1.2; }
@media(max-width:980px){ .stay-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .stay-grid{ grid-template-columns:1fr; } }

/* ---------- Excursions (editorial) ---------- */
.exc-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.exc{ position:relative; border-radius:14px; overflow:hidden; min-height:340px; display:flex; align-items:flex-end; color:#fff; isolation:isolate; }
.exc img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.1s var(--ease); }
.exc::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(8,17,15,.9), transparent 62%); }
.exc:hover img{ transform:scale(1.06); }
.exc .body{ padding:26px; }
.exc .tag{ font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ember-2); }
.exc h3{ font-family:var(--font-display); font-size:24px; font-weight:400; margin:8px 0 8px; line-height:1.12; }
.exc p{
  display:-webkit-box;
  max-width:38ch;
  margin:0;
  overflow:hidden;
  color:rgba(255,255,255,.8);
  font-size:14px;
  line-height:1.5;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}
.exc.c7{ grid-column:span 7; } .exc.c5{ grid-column:span 5; }
.exc.c4{ grid-column:span 4; } .exc.c8{ grid-column:span 8; }
.exc.c6{ grid-column:span 6; }
.exc.tall{ min-height:440px; }
@media(max-width:860px){ .exc{ grid-column:span 12 !important; min-height:300px; } }

/* Excursions catalog: taller editorial cards with details on demand */
.excursions-catalog .exc-grid{ gap:20px; }
.excursions-catalog .exc{
  aspect-ratio:3 / 4;
  min-height:0;
}
.excursions-catalog .exc::after{
  background:linear-gradient(to top, rgba(8,17,15,.96) 0%, rgba(8,17,15,.62) 35%, rgba(8,17,15,.08) 72%);
  transition:background .55s var(--ease);
}
.excursions-catalog .exc .body{
  width:100%;
  padding:clamp(24px,2.3vw,32px);
}
.excursions-catalog .exc .tag{
  display:block;
  margin-bottom:10px;
}
.excursions-catalog .exc h3{
  margin:0;
  font-size:clamp(29px,2.4vw,36px);
  line-height:1.04;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.excursions-catalog .exc p{
  max-height:0;
  margin:0;
  opacity:0;
  transform:translateY(12px);
  transition:max-height .55s var(--ease), margin-top .55s var(--ease), opacity .35s ease, transform .55s var(--ease);
}
.excursions-catalog .exc:focus-visible{
  outline:2px solid var(--ember-2);
  outline-offset:4px;
}
.excursions-catalog .exc:focus-visible p{
  max-height:4.5em;
  margin-top:14px;
  opacity:1;
  transform:none;
}
@media(hover:hover){
  .excursions-catalog .exc:hover::after{
    background:linear-gradient(to top, rgba(8,17,15,.98) 0%, rgba(8,17,15,.76) 48%, rgba(8,17,15,.12) 78%);
  }
  .excursions-catalog .exc:hover p{
    max-height:4.5em;
    margin-top:14px;
    opacity:1;
    transform:none;
  }
}
@media(max-width:860px){
  .excursions-catalog .exc-grid{ gap:16px; }
  .excursions-catalog .exc h3{ font-size:clamp(28px,8vw,34px); }
}

/* ---------- Thermal (split feature) ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; min-height:min(86vh,720px); }
.split .media{ position:relative; overflow:hidden; }
.split .media img{ width:100%; height:100%; object-fit:cover; }
.split .content{ display:flex; flex-direction:column; justify-content:center; padding:clamp(40px,7vw,110px) var(--gutter); }
@media(max-width:880px){ .split{ grid-template-columns:1fr; } .split .media{ min-height:340px; } }

/* ---------- Add-ons chips ---------- */
.chips{ display:flex; flex-wrap:wrap; gap:14px; }
.chip{ display:inline-flex; align-items:center; gap:10px; padding:14px 24px; border-radius:100px;
  border:1px solid var(--paper-3); background:transparent; color:var(--on-light); font-weight:500; font-size:15px; transition:.35s var(--ease); }
.chip:hover{ background:var(--on-light); color:var(--paper); border-color:var(--on-light); transform:translateY(-3px); }
.chip .d{ width:6px; height:6px; border-radius:50%; background:var(--ember); }

/* ---------- Add-ons: messenger bubble + rich cards ---------- */
.addons-head{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(36px,5vw,72px); align-items:center; margin-bottom:clamp(44px,5vw,68px); }
.addons-head .eyebrow{ color:var(--ember); display:block; margin-bottom:18px; }
@media(max-width:860px){ .addons-head{ grid-template-columns:1fr; gap:34px; } }

/* chat / incoming message */
.chat{ display:flex; flex-direction:column; gap:11px; max-width:460px; }
.chat-row{ display:flex; gap:13px; align-items:flex-end; }
.chat-av{ flex:0 0 auto; width:44px; height:44px; border-radius:50%; background:var(--ember); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; letter-spacing:.02em; box-shadow:0 8px 20px -8px rgba(62,126,120,.75); }
.chat-bubble{ position:relative; background:#fff; border:1px solid var(--paper-3); border-radius:20px 20px 20px 5px; padding:15px 19px 11px; box-shadow:0 22px 48px -30px rgba(26,46,41,.55); opacity:0; transform:translateY(10px); }
.chat.in .chat-bubble{ opacity:1; transform:none; transition:opacity .6s var(--ease), transform .6s var(--ease); }
.chat-name{ display:flex; align-items:center; gap:9px; font-weight:700; font-size:13px; color:var(--on-light); margin-bottom:7px; }
.chat-on{ display:inline-flex; align-items:center; gap:5px; font-weight:500; font-size:11px; color:var(--ember); }
.chat-on::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--ember); }
.chat-bubble p{ margin:0; font-size:16px; line-height:1.5; color:var(--on-light); }
.chat-bubble p.ty .ch{ opacity:0; position:relative; }
.chat-bubble p.ty .ch.on{ opacity:1; transition:opacity .09s linear; }
.chat-bubble p.ty .ch.cursor::after{ content:""; position:absolute; right:-2px; top:.14em; bottom:.02em; width:2px; background:var(--ember); animation:chatCaret .85s step-end infinite; }
@keyframes chatCaret{ 50%{ opacity:0; } }
.chat-time{ text-align:right; font-size:11px; color:var(--on-light-faint); margin-top:8px; }
.chat-time .rr{ color:var(--ember); letter-spacing:-3px; margin-left:4px; font-weight:700; }
.chat-typing{ align-self:flex-start; margin-left:57px; background:#fff; border:1px solid var(--paper-3); border-radius:16px 16px 16px 5px; padding:12px 16px; display:inline-flex; gap:5px; opacity:0; transform:translateY(8px); }
.chat.in .chat-typing{ opacity:1; transform:none; transition:opacity .5s var(--ease) .35s, transform .5s var(--ease) .35s; }
.chat-typing i{ width:7px; height:7px; border-radius:50%; background:var(--moss); animation:typing 1.3s infinite; }
.chat-typing i:nth-child(2){ animation-delay:.18s; }
.chat-typing i:nth-child(3){ animation-delay:.36s; }
@keyframes typing{ 0%,60%,100%{ transform:translateY(0); opacity:.45; } 30%{ transform:translateY(-5px); opacity:1; } }
.chat-reply{ align-self:flex-end; display:inline-flex; align-items:center; gap:9px; background:var(--ember); color:#fff; border-radius:18px 18px 5px 18px; padding:13px 20px; font-weight:600; font-size:14.5px; box-shadow:0 14px 30px -16px rgba(62,126,120,.8); transition:.35s var(--ease); opacity:0; transform:translateY(8px); }
.chat.in .chat-reply{ opacity:1; transform:none; transition:opacity .5s var(--ease) .6s, transform .5s var(--ease) .6s, background .35s var(--ease); }
.chat-reply:hover{ background:var(--ember-2); transform:translateY(-2px); }
.chat-reply .arr{ transition:transform .35s var(--ease); }
.chat-reply:hover .arr{ transform:translateX(4px); }
@media(prefers-reduced-motion:reduce){
  .chat-typing i{ animation:none; }
  .chat .chat-bubble, .chat .chat-typing, .chat .chat-reply{ opacity:1; transform:none; }
}

/* rich add-on cards */
.addon-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:20px; }
.addon-card{
  position:relative; grid-column:span 4; min-height:300px; border-radius:16px; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end; color:#fff; isolation:isolate;
}
.addon-card.w6{ grid-column:span 6; min-height:360px; }
.addon-card.w3{ grid-column:span 3; }
.addon-card.w4{ grid-column:span 4; }
.addon-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1s var(--ease); }
.addon-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(8,17,15,.94), rgba(8,17,15,.12) 62%); }
.addon-card:hover img{ transform:scale(1.07); }
.addon-card .body{ padding:24px; transform:translateY(10px); transition:transform .5s var(--ease); }
.addon-card:hover .body{ transform:none; }
.addon-card .tag{ font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ember-2); }
.addon-card h4{ font-family:var(--font-display); font-weight:400; font-size:23px; margin:9px 0 0; line-height:1.12; }
.addon-card .desc{ font-size:14px; color:rgba(255,255,255,.82); margin:0; line-height:1.5; max-height:0; opacity:0; overflow:hidden; transition:max-height .5s var(--ease), opacity .5s var(--ease), margin-top .5s var(--ease); }
.addon-card:hover .desc{ max-height:90px; opacity:1; margin-top:10px; }
.addon-card .go{ display:inline-flex; align-items:center; gap:8px; margin-top:16px; font-weight:600; font-size:13px; letter-spacing:.02em; color:#fff; }
.addon-card .go .arr{ color:var(--ember-2); transition:transform .4s var(--ease); }
.addon-card:hover .go .arr{ transform:translateX(5px); }
@media(hover:none){
  .addon-card .body{ transform:none; }
  .addon-card .desc{ max-height:90px; opacity:1; margin-top:10px; }
}
@media(max-width:900px){ .addon-card, .addon-card.w6, .addon-card.w3, .addon-card.w4{ grid-column:span 6; } }
@media(max-width:560px){ .addon-card, .addon-card.w6, .addon-card.w3, .addon-card.w4{ grid-column:span 12; min-height:260px; } }

/* ---------- Why us ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--forest-3); border-radius:14px; overflow:hidden; }
.why{ background:var(--forest); padding:34px 30px; transition:background .4s; }
.why:hover{ background:var(--forest-2); }
.why .n{ font-family:var(--font-display); font-size:15px; color:var(--ember); margin-bottom:22px; }
.why h4{ font-size:18px; font-weight:600; margin:0 0 8px; line-height:1.25; }
.why .sub{ font-size:13px; color:var(--ember-2); font-weight:500; margin-bottom:14px; }
.why p{ font-size:14px; color:var(--on-dark-soft); margin:0; line-height:1.55; }
@media(max-width:980px){ .why-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .why-grid{ grid-template-columns:1fr; } }

/* ---------- Getting there ---------- */
.route-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,80px); }

/* ---------- Service detail blocks ---------- */
.service{ display:grid; grid-template-columns:1.04fr 1fr; gap:clamp(34px,5vw,72px); align-items:center; }
.service + .service{ margin-top:clamp(56px,7vw,104px); }
.service.flip .svc-media{ order:2; }
@media(max-width:900px){ .service{ grid-template-columns:1fr; gap:30px; } .service.flip .svc-media{ order:0; } }

.svc-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.svc-gallery .main{ grid-column:1 / -1; aspect-ratio:16/10; border-radius:14px; overflow:hidden; }
.svc-gallery img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--ease); }
.svc-gallery .thumb{ aspect-ratio:1; border-radius:10px; overflow:hidden; cursor:pointer; position:relative; }
.svc-gallery .thumb::after{ content:""; position:absolute; inset:0; background:rgba(8,17,15,.2); opacity:0; transition:opacity .3s; }
.svc-gallery .thumb:hover::after{ opacity:1; }
.svc-gallery .main:hover img, .svc-gallery .thumb:hover img{ transform:scale(1.05); }

.svc-content .eyebrow{ color:var(--ember); display:block; margin-bottom:16px; }
.svc-content h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(26px,3vw,40px); line-height:1.12; letter-spacing:-.01em; margin:0 0 18px; }
.svc-content .svc-lead{ font-size:16.5px; line-height:1.62; color:var(--on-dark-soft); margin:0 0 14px; }
.svc-content .svc-lead:last-of-type{ margin-bottom:0; }
.section.light .svc-content .svc-lead{ color:var(--on-light-soft); }
.svc-specs{ display:grid; grid-template-columns:1fr 1fr; gap:20px 36px; margin:26px 0 28px; }
.svc-spec h5{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ember); margin:0 0 10px; font-weight:600; }
.svc-spec ul{ margin:0; padding:0; list-style:none; }
.svc-spec li{ font-size:14.5px; line-height:1.5; padding:5px 0 5px 18px; position:relative; color:var(--on-dark-soft); }
.section.light .svc-spec li{ color:var(--on-light-soft); }
.svc-spec li::before{ content:""; position:absolute; left:0; top:12px; width:6px; height:6px; border-radius:50%; background:var(--ember); }
.svc-spec li b{ color:var(--on-dark); font-weight:600; }
.section.light .svc-spec li b{ color:var(--on-light); }
.svc-price{ display:flex; flex-wrap:wrap; gap:14px; margin:0 0 26px; }
.svc-price .pr{ border:1px solid var(--forest-3); border-radius:12px; padding:15px 22px; }
.section.light .svc-price .pr{ border-color:var(--paper-3); }
.svc-price .pr .v{ font-family:var(--font-display); font-size:25px; color:var(--ember-2); line-height:1; }
.svc-price .pr .n{ font-size:12.5px; color:var(--on-dark-soft); margin-top:8px; line-height:1.4; max-width:24ch; }
.section.light .svc-price .pr .n{ color:var(--on-light-soft); }
/* button + price on one line (button first, then price) */
.svc-cta-row{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:4px; }
.svc-cta-row .svc-price{ margin:0; }
.svc-cta-row .btn{ flex:0 0 auto; }

/* headline metrics — soft translucent infographic, sits under the photos */
.svc-metrics{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(26,46,41,.13); border-radius:14px; overflow:hidden; background:rgba(26,46,41,.035); margin:14px 0 0; }
.svc-metric{ padding:14px 16px; border-right:1px solid rgba(26,46,41,.1); border-bottom:1px solid rgba(26,46,41,.1); transition:background .4s var(--ease); }
.svc-metric:nth-child(3n){ border-right:none; }
.svc-metric:nth-child(n+4){ border-bottom:none; }
.svc-metric:hover{ background:rgba(26,46,41,.05); }
.svc-metric .mv{ font-family:var(--font-display); font-weight:400; font-size:22px; line-height:1; color:var(--on-light); letter-spacing:-.01em; }
.svc-metric .mv .u{ font-size:.48em; color:var(--ember); margin-left:.2em; letter-spacing:0; }
.svc-metric .ml{ font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--on-light-soft); margin-top:8px; }
@media(max-width:520px){
  .svc-metrics{ grid-template-columns:1fr 1fr; }
  .svc-metric:nth-child(3n){ border-right:1px solid rgba(26,46,41,.1); }
  .svc-metric:nth-child(2n){ border-right:none; }
  .svc-metric:nth-child(n+4){ border-bottom:1px solid rgba(26,46,41,.1); }
  .svc-metric:nth-child(n+5){ border-bottom:none; }
}

/* compact 3-col spec layout to keep service blocks short */
.svc-specs.cols3{ grid-template-columns:repeat(3,1fr); gap:18px 28px; }
@media(max-width:900px){ .svc-specs.cols3{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .svc-specs.cols3{ grid-template-columns:1fr; } }

/* ============================================================
   YACHT FLAGSHIP FEATURE — premium dark feature block
   ============================================================ */
.yacht-feature{ position:relative; overflow:hidden; background:linear-gradient(180deg,#0A1311 0%, var(--forest) 60%, #0A1311 100%); color:var(--on-dark); }
.yacht-feature::before{ content:""; position:absolute; top:-20%; right:-10%; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle, rgba(62,126,120,.16), transparent 68%); pointer-events:none; }
.yacht-feature .wrap{ position:relative; z-index:1; }
.yf-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; max-width:none; margin-bottom:clamp(28px,3.4vw,44px); }
.yf-head .eyebrow{ color:var(--ember-2); display:block; margin-bottom:16px; }
.yf-head h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(34px,4.6vw,64px); line-height:1.03; letter-spacing:-.015em; margin:0; max-width:14ch; }
.yf-head .lead{ color:var(--on-dark-soft); font-size:clamp(15.5px,1.3vw,18px); line-height:1.62; max-width:42ch; margin:0; }
@media(max-width:820px){ .yf-head{ flex-direction:column; align-items:flex-start; gap:20px; } }

/* photo strip above hero */
.yf-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:12px; }
.yf-strip .m{ border-radius:12px; overflow:hidden; aspect-ratio:4/3; }
.yf-strip img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.yf-strip .m:hover img{ transform:scale(1.07); }
@media(max-width:560px){ .yf-strip{ grid-template-columns:1fr 1fr; } }

/* cinematic hero */
.yf-hero{ position:relative; border-radius:20px; overflow:hidden; aspect-ratio:21/9; margin-bottom:clamp(18px,2.4vw,28px); box-shadow:0 40px 90px -50px rgba(0,0,0,.9); }
.yf-hero img{ width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform 6s var(--ease); }
.yf-hero:hover img{ transform:scale(1); }
.yf-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(8,17,15,.78), transparent 46%), linear-gradient(to right, rgba(8,17,15,.5), transparent 40%); }
.yf-badge{ position:absolute; top:20px; left:20px; z-index:2; display:inline-flex; gap:10px; align-items:center; background:rgba(11,22,20,.5); backdrop-filter:blur(12px) saturate(1.2); border:1px solid rgba(244,239,228,.2); border-radius:100px; padding:9px 17px; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:600; }
.yf-badge .star{ color:var(--ember-2); letter-spacing:2px; }
.yf-cap{ position:absolute; left:24px; bottom:20px; z-index:2; }
.yf-cap .nm{ font-family:var(--font-display); font-size:clamp(22px,2.4vw,34px); line-height:1; }
.yf-cap .sub{ font-size:13px; color:rgba(244,239,228,.7); margin-top:7px; letter-spacing:.02em; }

/* spec strip */
.yf-metrics{ display:grid; grid-template-columns:repeat(6,1fr); border:1px solid var(--forest-3); border-radius:16px; overflow:hidden; background:rgba(244,239,228,.015); margin-bottom:clamp(34px,4.4vw,56px); }
.yf-metric{ padding:clamp(18px,2vw,26px) clamp(14px,1.4vw,20px); border-right:1px solid var(--forest-3); transition:background .4s var(--ease); }
.yf-metric:last-child{ border-right:none; }
.yf-metric:hover{ background:rgba(62,126,120,.08); }
.yf-metric .mv{ font-family:var(--font-display); font-weight:400; font-size:clamp(28px,3.2vw,44px); line-height:1; letter-spacing:-.01em; }
.yf-metric .mv .u{ font-size:.36em; color:var(--ember-2); margin-left:.16em; letter-spacing:0; }
.yf-metric .ml{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-faint); margin-top:12px; }
@media(max-width:860px){ .yf-metrics{ grid-template-columns:repeat(3,1fr); } .yf-metric{ border-bottom:1px solid var(--forest-3); } .yf-metric:nth-child(3n){ border-right:none; } .yf-metric:nth-child(n+4){ border-bottom:none; } }
@media(max-width:520px){ .yf-metrics{ grid-template-columns:1fr 1fr; } .yf-metric:nth-child(3n){ border-right:1px solid var(--forest-3); } .yf-metric:nth-child(2n){ border-right:none; } .yf-metric:nth-child(n+4){ border-bottom:1px solid var(--forest-3); } .yf-metric:nth-child(n+5){ border-bottom:none; } }

/* body: details (left) + aside (right) */
.yf-body{ display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(32px,4vw,60px); align-items:start; }
@media(max-width:900px){ .yf-body{ grid-template-columns:1fr; gap:36px; } }

.yf-section-label{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ember-2); font-weight:600; margin:0 0 18px; }
.yf-cabins{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:32px; }
.yf-cabin{ border:1px solid var(--forest-3); border-radius:13px; padding:20px 18px; transition:.4s var(--ease); }
.yf-cabin:hover{ border-color:var(--ember); background:var(--forest-2); transform:translateY(-3px); }
.yf-cabin .ct{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ember-2); }
.yf-cabin h4{ font-family:var(--font-display); font-weight:400; font-size:21px; margin:8px 0 9px; }
.yf-cabin p{ font-size:13px; color:var(--on-dark-soft); line-height:1.5; margin:0; }
@media(max-width:560px){ .yf-cabins{ grid-template-columns:1fr; } }

.yf-lists{ display:grid; grid-template-columns:1fr 1fr; gap:26px 36px; }
.yf-list h5{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ember-2); margin:0 0 12px; font-weight:600; }
.yf-list ul{ margin:0; padding:0; list-style:none; }
.yf-list li{ font-size:14.5px; line-height:1.5; padding:6px 0 6px 20px; position:relative; color:var(--on-dark-soft); }
.yf-list li::before{ content:""; position:absolute; left:0; top:13px; width:7px; height:7px; border:1px solid var(--ember); border-radius:50%; }
.yf-list li b{ color:var(--on-dark); font-weight:600; }
@media(max-width:560px){ .yf-lists{ grid-template-columns:1fr; } }

/* aside: mini gallery + price card */
.yf-aside{ display:flex; flex-direction:column; gap:18px; }
.yf-mini{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.yf-mini .m{ border-radius:12px; overflow:hidden; aspect-ratio:4/3; }
.yf-mini img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.yf-mini .m:hover img{ transform:scale(1.07); }
.yf-pricecard{ border:1px solid var(--forest-3); border-radius:16px; padding:26px; background:rgba(244,239,228,.02); }
.yf-pricecard .pl{ font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-faint); }
.yf-pricecard .pv{ font-family:var(--font-display); font-size:30px; line-height:1; margin:10px 0 8px; color:var(--ember-2); }
.yf-pricecard .pn{ font-size:13.5px; color:var(--on-dark-soft); line-height:1.5; margin:0 0 20px; }
.yf-pricecard .btn{ width:100%; justify-content:center; }
.yf-pricecard .phone{ display:block; text-align:center; margin-top:14px; font-size:13.5px; color:var(--on-dark-soft); }
.yf-pricecard .phone:hover{ color:var(--ember-2); }
.yf-incl{ list-style:none; margin:0 0 20px; padding:18px 0 0; border-top:1px solid var(--forest-3); display:flex; flex-direction:column; gap:9px; }
.yf-incl li{ font-size:13.5px; color:var(--on-dark-soft); padding-left:22px; position:relative; }
.yf-incl li::before{ content:"✦"; position:absolute; left:0; color:var(--ember-2); font-size:11px; top:2px; }

/* stacked service layout: header left on top, gallery + details in a row below (shorter) */
.service-stack .svc-head{ max-width:64ch; margin-bottom:clamp(26px,3.4vw,42px); }
.service-stack .svc-head .eyebrow{ color:var(--ember); display:block; margin-bottom:14px; }
.service-stack .svc-head h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(26px,3vw,40px); line-height:1.12; letter-spacing:-.01em; margin:0 0 16px; }
.service-stack .svc-head .svc-lead{ font-size:16.5px; line-height:1.62; color:var(--on-light-soft); margin:0; }
.service-stack .svc-row{ display:grid; grid-template-columns:1.04fr 1fr; gap:clamp(32px,4.5vw,64px); align-items:start; }
.service-stack .svc-row .svc-details{ display:flex; flex-direction:column; }
@media(max-width:900px){ .service-stack .svc-row{ grid-template-columns:1fr; gap:28px; } }

/* booking modal */
.modal{ position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; pointer-events:none; transition:opacity .35s var(--ease); }
.modal.open{ opacity:1; pointer-events:auto; }
.modal-scrim{ position:absolute; inset:0; background:rgba(8,17,15,.72); backdrop-filter:blur(7px); }
.modal-card{ position:relative; z-index:1; width:min(460px,100%); max-height:90vh; overflow:auto; transform:translateY(18px) scale(.98); transition:transform .42s var(--ease); }
.modal.open .modal-card{ transform:none; }
.modal-card .inquiry{ max-width:none; }
.modal-close{ position:absolute; top:16px; right:16px; z-index:2; width:40px; height:40px; border-radius:50%; border:1px solid var(--forest-3); background:rgba(11,22,20,.55); color:var(--on-dark); display:flex; align-items:center; justify-content:center; font-size:16px; transition:.3s var(--ease); }
.modal-close:hover{ border-color:var(--ember); color:var(--ember-2); transform:rotate(90deg); }
body.modal-open{ overflow:hidden; }

/* premium trust row */
.trust-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--forest-3); border:1px solid var(--forest-3); border-radius:16px; overflow:hidden; }
.trust{ background:var(--forest); padding:clamp(26px,3vw,38px) clamp(22px,2.4vw,30px); transition:background .45s var(--ease); }
.trust:hover{ background:var(--forest-2); }
.trust .ic{ width:42px; height:42px; border:1px solid var(--ember); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--ember); margin-bottom:20px; transition:.45s var(--ease); }
.trust:hover .ic{ background:var(--ember); color:#fff; }
.trust h4{ font-family:var(--font-display); font-weight:400; font-size:clamp(19px,1.7vw,23px); margin:0 0 8px; line-height:1.14; }
.trust p{ margin:0; font-size:14px; color:var(--on-dark-soft); line-height:1.5; }
@media(max-width:820px){ .trust-row{ grid-template-columns:1fr 1fr; } }
@media(max-width:460px){ .trust-row{ grid-template-columns:1fr; } }

/* service inquiry form with selector */
.svc-form-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,72px); align-items:center; }
@media(max-width:860px){ .svc-form-wrap{ grid-template-columns:1fr; gap:30px; } }
.field select{
  width:100%; padding:14px 16px; border-radius:8px; appearance:none;
  background:rgba(11,22,20,.45); border:1px solid rgba(244,239,228,.16);
  color:var(--on-dark); font-family:inherit; font-size:15px; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ember) 50%),linear-gradient(135deg,var(--ember) 50%,transparent 50%);
  background-position:calc(100% - 19px) center, calc(100% - 13px) center; background-size:6px 6px, 6px 6px; background-repeat:no-repeat;
}
.field select:focus{ outline:none; border-color:var(--ember); }
.field select option{ background:var(--forest-2); color:var(--on-dark); }

/* animated route map (plane / ship travelling a path) */
.route-map{ width:100%; margin:4px 0 26px; }
.route-map svg{ width:100%; height:auto; display:block; overflow:visible; }
.route-map .track{ fill:none; stroke:var(--paper-3); stroke-width:2.5; stroke-linecap:round; }
.route-map .trail{ fill:none; stroke:var(--ember); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; }
.route-cols.in .route-map .trail{ animation:routeDraw 3.2s var(--ease) .25s forwards; }
@keyframes routeDraw{ to{ stroke-dashoffset:0; } }
.route-map .node{ fill:var(--paper); stroke:var(--ember); stroke-width:2.5; }
.route-map .node.solid{ fill:var(--ember); }
.route-map .cap{ font-family:var(--font-ui); font-size:13px; font-weight:600; letter-spacing:.04em; fill:var(--on-light-soft); }
.route-map .mover{ offset-rotate:auto; offset-distance:0%; will-change:offset-distance; filter:drop-shadow(0 3px 7px rgba(8,17,15,.28)); }
.route-cols.in .route-map.air .mover{ animation:moveAir 3s var(--ease) .25s forwards; }
.route-cols.in .route-map.sea .mover{ animation:moveSea 6s var(--ease) .25s forwards; }
/* конец на 94%, иначе нос самолёта/кораблика вылетает за точку-город */
@keyframes moveAir{ from{ offset-distance:0%; } to{ offset-distance:94%; } }
@keyframes moveSea{ from{ offset-distance:0%; } to{ offset-distance:94%; } }
.route-map .mover .glyph{ fill:var(--ember); }
.route-map.sea .mover{ animation-timing-function:linear; }
body.dark-sections .route-map .cap{ fill:var(--on-dark-soft); }
body.dark-sections .route-map .track{ stroke:var(--forest-3); }
body.dark-sections .route-map .node{ fill:var(--forest); }
@media(prefers-reduced-motion:reduce){
  .route-map .trail{ stroke-dashoffset:0; }
  .route-map.air .mover{ offset-distance:94%; }
  .route-map.sea .mover{ offset-distance:94%; }
}
.route h3{ font-family:var(--font-display); font-weight:400; font-size:26px; margin:0 0 8px; display:flex; align-items:center; gap:14px; }
.route .step{ display:grid; grid-template-columns:auto 1fr; gap:22px; padding:26px 0; border-top:1px solid var(--paper-3); }
.route .step .idx{ font-family:var(--font-display); font-size:30px; color:var(--ember); line-height:1; }
.route .step .from-to{ font-weight:600; font-size:17px; margin-bottom:6px; }
.route .step p{ margin:0; font-size:14.5px; color:var(--on-light-soft); line-height:1.55; }
.route .step b{ color:var(--on-light); font-weight:600; }
@media(max-width:760px){ .route-cols{ grid-template-columns:1fr; } }

/* ---------- Reviews ---------- */
.rev-track{ display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:14px; margin-inline:calc(var(--gutter)*-1); padding-inline:var(--gutter); scrollbar-width:none; }
.rev-track::-webkit-scrollbar{ display:none; }
.rev{ scroll-snap-align:start; flex:0 0 clamp(300px,30vw,400px); background:var(--forest-2); border:1px solid var(--forest-3); border-radius:14px; padding:30px; display:flex; flex-direction:column; }
.rev .top{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.rev .av{ width:46px; height:46px; border-radius:50%; background:var(--ember); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; }
.rev .who{ font-weight:600; font-size:16px; }
.rev .date{ font-size:12.5px; color:var(--on-dark-faint); }
.rev .stars{ color:var(--ember-2); font-size:13px; letter-spacing:2px; margin-bottom:14px; }
.rev p{ font-size:14.5px; color:var(--on-dark-soft); line-height:1.62; margin:0; }
.rev .pics{ display:flex; gap:8px; margin-top:18px; }
.rev .pics img{ width:54px; height:54px; border-radius:8px; object-fit:cover; }

/* ---------- Footer ---------- */
.footer{ background:var(--ink); padding-top:clamp(64px,8vw,110px); }
.foot-top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid var(--forest-3); }
.footer h5{ font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--on-dark-faint); margin:0 0 20px; font-weight:600; }
.footer .fcol a{ display:block; color:var(--on-dark-soft); font-size:15px; padding:7px 0; transition:color .3s; }
.footer .fcol a:hover{ color:var(--ember-2); }
.footer .brand-blurb{ color:var(--on-dark-soft); font-size:15px; max-width:34ch; line-height:1.6; margin:18px 0 24px; }
.footer .soc{ display:flex; gap:10px; }
.footer .soc a{ width:42px; height:42px; border:1px solid var(--forest-3); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:600; color:var(--on-dark-soft); transition:.35s var(--ease); }
.footer .soc a:hover{ background:var(--ember); color:#fff; border-color:var(--ember); }
.foot-bottom{ display:flex; justify-content:space-between; gap:20px; padding:28px 0 50px; color:var(--on-dark-faint); font-size:13px; flex-wrap:wrap; }
@media(max-width:880px){ .foot-top{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .foot-top{ grid-template-columns:1fr; } }

/* ===========================================================
   INNER PAGES
   =========================================================== */
.page-hero{ position:relative; min-height:min(80vh,640px); display:flex; align-items:flex-end; overflow:hidden; }
.page-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(8,17,15,.94) 0%, rgba(8,17,15,.35) 55%, rgba(8,17,15,.5) 100%); }
.page-hero .inner{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; width:100%; padding:0 var(--gutter) clamp(44px,6vw,80px); }
.crumb{ display:flex; gap:10px; align-items:center; font-size:13px; color:var(--on-dark-soft); margin-bottom:24px; }
.crumb a:hover{ color:var(--on-dark); }
.crumb .sep{ color:var(--on-dark-faint); }
.page-hero h1{ font-family:var(--font-display); font-weight:400; font-size:clamp(40px,6vw,82px); line-height:1.02; letter-spacing:-.015em; margin:0; max-width:16ch; }
.page-hero .sub{ font-size:clamp(17px,1.6vw,21px); color:var(--on-dark-soft); max-width:54ch; margin:22px 0 0; line-height:1.55; }

/* fact row */
.facts{ display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--forest-3); border-radius:14px; overflow:hidden; background:var(--forest-2); }
.fact{ flex:1 1 0; min-width:160px; padding:26px 30px; border-right:1px solid var(--forest-3); }
.fact:last-child{ border-right:none; }
.fact .k{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-faint); margin-bottom:10px; }
.fact .v{ font-family:var(--font-display); font-size:26px; color:var(--on-dark); }
.fact .v.ember{ color:var(--ember-2); }
@media(max-width:680px){ .fact{ flex:1 1 45%; border-bottom:1px solid var(--forest-3); } }

/* editorial two-col */
.editorial{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(36px,6vw,90px); align-items:start; }
.editorial .big{ font-family:var(--font-display); font-weight:400; font-size:clamp(26px,3vw,40px); line-height:1.18; letter-spacing:-.01em; margin:0; }
.editorial p{ margin:0 0 18px; }
.editorial p:last-child{ margin-bottom:0; }
@media(max-width:780px){ .editorial{ grid-template-columns:1fr; gap:24px; } }

/* program timeline */
.program{ display:grid; gap:0; }
.prog-day{ display:grid; grid-template-columns:140px 1fr; gap:36px; padding:34px 0; border-top:1px solid var(--forest-3); }
.prog-day:last-child{ border-bottom:1px solid var(--forest-3); }
.prog-day .day{ font-family:var(--font-display); font-size:20px; color:var(--ember-2); }
.prog-day .day small{ display:block; font-family:var(--font-ui); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-faint); margin-top:6px; }
.prog-day h4{ font-size:21px; font-weight:600; margin:0 0 10px; }
.prog-day p{ margin:0; color:var(--on-dark-soft); font-size:15.5px; line-height:1.6; max-width:60ch; }
@media(max-width:640px){ .prog-day{ grid-template-columns:1fr; gap:12px; } }

/* includes list */
.incl{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 40px; }
.incl li{ list-style:none; display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--paper-3); font-size:16px; }
.incl li .ic{ color:var(--ember); font-size:18px; line-height:1.3; }
.section:not(.light) .incl li{ border-color:var(--forest-3); }
@media(max-width:640px){ .incl{ grid-template-columns:1fr; } }

/* gallery */
.gallery{ display:grid; grid-template-columns:repeat(12,1fr); gap:16px; }
.gallery a{ border-radius:12px; overflow:hidden; }
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.gallery a:hover img{ transform:scale(1.06); }
.gallery .g7{ grid-column:span 7; aspect-ratio:16/10; }
.gallery .g5{ grid-column:span 5; aspect-ratio:4/5; }
.gallery .g4{ grid-column:span 4; aspect-ratio:4/3; }
.gallery .g6{ grid-column:span 6; aspect-ratio:3/2; }
@media(max-width:760px){ .gallery > a{ grid-column:span 6 !important; aspect-ratio:4/3 !important; } }

/* amenities */
.amen{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--paper-3); border-radius:14px; overflow:hidden; }
.section:not(.light) .amen{ background:var(--forest-3); }
.amen .a{ background:var(--paper); padding:30px; }
.section:not(.light) .amen .a{ background:var(--forest); }
.amen .a .ic{ font-size:22px; color:var(--ember); margin-bottom:14px; }
.amen .a h4{ font-size:17px; font-weight:600; margin:0 0 6px; }
.amen .a p{ margin:0; font-size:14px; line-height:1.5; color:var(--on-light-soft); }
.section:not(.light) .amen .a p{ color:var(--on-dark-soft); }
@media(max-width:780px){ .amen{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .amen{ grid-template-columns:1fr; } }

/* filter chips row */
.filters{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:44px; }
.filter{ padding:11px 22px; border-radius:100px; border:1px solid var(--forest-3); background:transparent; color:var(--on-dark-soft); font-weight:500; font-size:14px; transition:.3s var(--ease); }
.filter:hover{ color:var(--on-dark); border-color:var(--on-dark); }
.filter.active{ background:var(--ember); color:#fff; border-color:var(--ember); }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .hero-media img{ animation:none; transform:none; }
}

/* ---------- Tweak variant: dark section rhythm ---------- */
body.dark-sections .section.light{ background:var(--forest); color:var(--on-dark); }
body.dark-sections .section.light .lead{ color:var(--on-dark-soft); }
body.dark-sections .chip{ border-color:var(--forest-3); color:var(--on-dark); }
body.dark-sections .chip:hover{ background:var(--on-dark); color:var(--forest); border-color:var(--on-dark); }
body.dark-sections .route .step{ border-color:var(--forest-3); }
body.dark-sections .route .step p{ color:var(--on-light-soft); }
body.dark-sections .route .step p{ color:var(--on-dark-soft); }
body.dark-sections .route .step b{ color:var(--on-dark); }

/* ---------- Tweak variant: sans-serif display ---------- */
body.display-sans .display,
body.display-sans .h-section,
body.display-sans .hero h1,
body.display-sans .nav-logo,
body.display-sans .stat .num,
body.display-sans .tour-card h3,
body.display-sans .stay-card h3,
body.display-sans .exc h3,
body.display-sans .inquiry h3,
body.display-sans .why .n,
body.display-sans .route h3,
body.display-sans .route .step .idx{
  font-family:var(--font-ui);
  font-weight:600;
  letter-spacing:-.02em;
}
body.display-sans .hero h1 em{ font-style:normal; }

/* ===========================================================
   MOBILE MENU + RESPONSIVE POLISH
   =========================================================== */

/* grid variants (replace fragile inline grid-template-columns) */
.stay-grid.cols2{ grid-template-columns:repeat(2,1fr); gap:22px; }
@media(max-width:640px){ .stay-grid.cols2{ grid-template-columns:1fr; } }
.amen.cols2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:480px){ .amen.cols2{ grid-template-columns:1fr; } }
.editorial.even{ grid-template-columns:1fr 1fr; }
@media(max-width:780px){ .editorial.even{ grid-template-columns:1fr; } }

/* mobile menu overlay */
.mobile-menu{
  position:fixed; inset:0; z-index:140;
  background:var(--ink);
  backdrop-filter:blur(22px) saturate(1.2);
  display:flex; flex-direction:column;
  padding:84px var(--gutter) 36px;
  transform:translateY(-101%); opacity:0; pointer-events:none;
  transition:transform .55s var(--ease), opacity .4s var(--ease);
  overflow-y:auto;
}
.mobile-menu.open{ transform:none; opacity:1; pointer-events:auto; }
.mobile-menu .m-links{ display:flex; flex-direction:column; }
.mobile-menu .m-link{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(26px,7vw,36px); line-height:1.1; color:var(--on-dark);
  padding:16px 0; border-bottom:1px solid var(--forest-3);
  display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0;
}
.mobile-menu .m-link::after{ content:"→"; flex:0 0 auto; color:var(--ember); font-family:var(--font-ui); font-size:20px; opacity:.7; }
.mobile-languages{ padding-top:28px; }
.mobile-languages-label{
  display:block; margin-bottom:12px; color:var(--on-dark-faint);
  font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
}
.mobile-language-links{ display:flex; flex-wrap:wrap; gap:9px; }
.mobile-language-links a{
  min-height:44px; padding:11px 15px; border:1px solid var(--forest-3);
  border-radius:999px; display:inline-flex; align-items:center;
  color:var(--on-dark-soft); font-size:13px; font-weight:600;
}
.mobile-language-links a:hover{ border-color:var(--on-dark-soft); color:var(--on-dark); }
.mobile-language-links a[aria-current="true"]{
  background:var(--on-dark); border-color:var(--on-dark); color:var(--forest);
}
.mobile-menu .m-foot{ margin-top:auto; padding-top:32px; display:flex; flex-direction:column; gap:14px; }
.mobile-menu .m-foot .btn{ width:100%; justify-content:center; padding:17px 24px; }
.mobile-close{
  position:absolute; top:20px; right:var(--gutter);
  width:46px; height:46px; border:1px solid var(--forest-3); border-radius:50%;
  background:rgba(244,239,228,.04); color:var(--on-dark); font-size:18px;
  display:flex; align-items:center; justify-content:center; transition:.3s var(--ease);
}
.mobile-close:hover{ border-color:var(--on-dark); }
body.menu-open{ overflow:hidden; }

/* compact nav on phones — drop the secondary CTA, keep burger */
@media(max-width:560px){
  .nav-cta .btn-ember{ display:none; }
  .nav{ padding-block:15px; }
  .nav-logo{ font-size:21px; }
  .nav-cta{ gap:10px; }
  .language-trigger{ min-width:48px; min-height:44px; padding-inline:10px; }
}

/* Simplified Chinese needs native CJK rhythm instead of Latin display rules. */
html[lang^="zh"]{
  --font-display:"Songti SC","STSong","Noto Serif CJK SC",serif;
  --font-ui:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
}
html[lang^="zh"] .eyebrow,
html[lang^="zh"] .tag,
html[lang^="zh"] .mobile-languages-label{
  text-transform:none; letter-spacing:.06em;
}
html[lang^="zh"] .hero h1,
html[lang^="zh"] .h-section,
html[lang^="zh"] .page-hero h1{
  letter-spacing:0; line-height:1.14;
}

/* hero polish on phones */
@media(max-width:560px){
  .hero{ min-height:auto; padding-top:96px; }
  .hero-inner{ padding-bottom:56px; }
  .hero h1{ margin-bottom:24px; }
  .hero-actions{ width:100%; }
  .hero-actions .btn{ flex:1 1 auto; justify-content:center; }
  .inquiry{ max-width:none; padding:24px 22px; }
}

/* tighten section rhythm + headers on phones */
@media(max-width:600px){
  .sec-head .link-more{ margin-top:4px; }
  .facts{ border-radius:12px; }
  .editorial .big{ font-size:clamp(24px,6.5vw,32px); }
  .prog-day{ padding:26px 0; }
  .rev{ flex-basis:82vw; }
  .stat{ padding:30px 26px; }
}

/* gallery: stack to 2-up cleanly, captions readable */
@media(max-width:760px){
  .gallery{ gap:12px; }
}

/* footer: comfortable stacking */
@media(max-width:520px){
  .foot-top{ gap:34px; }
  .foot-bottom{ flex-direction:column; gap:8px; }
}

/* larger tap targets for inline text links in nav menu already handled */
@media(hover:none){
  .tour-card:hover img,
  .stay-card:hover .ph img,
  .exc:hover img,
  .gallery a:hover img{ transform:none; }
}

/* ===========================================================
   MOTION SYSTEM — scroll-driven, kinetic, signature
   =========================================================== */

/* scroll progress bar */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:100%;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg, var(--ember), var(--ember-2));
  z-index:100; will-change:transform; pointer-events:none;
}

/* sound toggle */
.sound-toggle{
  position:fixed; left:22px; bottom:22px; z-index:95;
  width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(16,34,32,.78); backdrop-filter:blur(12px) saturate(1.2);
  border:1px solid var(--forest-3); color:var(--on-dark);
  transition:transform .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), background .35s var(--ease);
}
.sound-toggle:hover{ transform:translateY(-3px); border-color:var(--ember); color:var(--ember-2); }
.sound-toggle.off{ color:var(--on-dark-faint); }
@media(max-width:560px){ .sound-toggle{ left:16px; bottom:16px; width:42px; height:42px; } }

/* kinetic word-rise for headings */
.reveal-h .tw{
  display:inline-block; overflow:hidden; vertical-align:top;
  padding-bottom:.16em; margin-bottom:-.16em;
}
.reveal-h .tw > span{
  display:inline-block; transform:translateY(116%);
  transition:transform .9s var(--ease); will-change:transform;
}
.reveal-h.shown .tw > span{ transform:none; }

/* Keep media visible when an older cached script adds the retired wipe class. */
.mwipe, .mwipe.shown{ clip-path:none; }

/* magnetic button needs a transform-friendly transition */
.btn-ember{ transition:transform .3s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease), color .3s var(--ease); }

/* parallax media inside split features */
.split .media{ position:relative; }
.split .media img.pmedia{ position:absolute; inset:-8% 0; width:100%; height:116%; object-fit:cover; will-change:transform; }

/* ---------- Kinetic type band ---------- */
.kinetic{
  background:var(--ink); color:var(--on-dark);
  padding:clamp(30px,5vw,64px) 0; overflow:hidden;
  border-block:1px solid var(--forest-3);
  --mq-skew:0deg;
}
.kinetic .row{ display:flex; width:max-content; white-space:nowrap; will-change:transform; transform:skewX(var(--mq-skew)); }
.kinetic .seg{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(34px,6.5vw,82px); line-height:1.05; padding-right:.5em;
  display:inline-flex; align-items:center; gap:.45em;
}
.kinetic .seg .star{ color:var(--ember); font-size:.5em; }
.kinetic .row.r1{ animation:mqA 42s linear infinite; }
.kinetic .row.r2{ animation:mqB 52s linear infinite; margin-top:.06em; }
.kinetic .row.r2 .seg{ -webkit-text-stroke:1.2px var(--moss); color:transparent; }
@keyframes mqA{ from{ transform:translateX(0) skewX(var(--mq-skew)); } to{ transform:translateX(-50%) skewX(var(--mq-skew)); } }
@keyframes mqB{ from{ transform:translateX(-50%) skewX(var(--mq-skew)); } to{ transform:translateX(0) skewX(var(--mq-skew)); } }
@media(prefers-reduced-motion:reduce){ .kinetic .row{ animation:none; } }

/* ---------- Pinned horizontal scroll (excursions) ---------- */
.pin-section{ position:relative; background:var(--forest); }
.pin-section .wrap{ padding-block:clamp(72px,9vw,130px) 0; }
.pin-viewport{
  position:sticky; top:0; height:100vh; height:100svh;
  display:flex; align-items:center; overflow:hidden;
}
.pin-track{ display:flex; gap:26px; padding:0 var(--gutter); will-change:transform; }
.pin-card{
  position:relative; flex:0 0 min(46vw,560px); height:min(66vh,640px);
  border-radius:18px; overflow:hidden; display:flex; align-items:flex-end;
  color:#fff; isolation:isolate;
}
.pin-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease); }
.pin-card:hover img{ transform:scale(1.05); }
.pin-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(8,17,15,.94), rgba(8,17,15,.1) 62%); }
.pin-card .num{ position:absolute; top:26px; left:32px; font-family:var(--font-display); font-size:17px; color:rgba(244,239,228,.7); }
.pin-card .body{ padding:34px; }
.pin-card .tag{ font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ember-2); }
.pin-card h3{ font-family:var(--font-display); font-weight:400; font-size:clamp(26px,2.6vw,40px); margin:10px 0 10px; line-height:1.08; }
.pin-card p{ font-size:15px; color:rgba(255,255,255,.82); margin:0; max-width:40ch; line-height:1.5; }
.pin-card.intro{ background:var(--forest-2); border:1px solid var(--forest-3); align-items:flex-start; flex-basis:min(34vw,440px); }
.pin-card.intro .body{ display:flex; flex-direction:column; height:100%; justify-content:center; }
.pin-card.cta-card{ background:var(--forest-2); border:1px solid var(--forest-3); align-items:center; justify-content:center; flex-basis:min(30vw,400px); text-align:center; }
.pin-rail{ position:absolute; left:var(--gutter); right:var(--gutter); bottom:40px; height:2px; background:rgba(244,239,228,.16); z-index:5; }
.pin-rail > i{ position:absolute; left:0; top:0; bottom:0; width:100%; background:var(--ember); transform:scaleX(0); transform-origin:0 50%; }
.pin-hint{ position:absolute; right:var(--gutter); bottom:54px; z-index:5; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--on-dark-faint); display:flex; align-items:center; gap:12px; }
.pin-hint .arr{ width:30px; height:1px; background:var(--ember); position:relative; }
.pin-hint .arr::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid var(--ember); border-right:1px solid var(--ember); transform:rotate(45deg); }

/* pin fallback: phones → horizontal swipe */
@media(max-width:900px){
  .pin-section{ height:auto !important; }
  .pin-viewport{ position:static; height:auto; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-block:30px 16px; scrollbar-width:none; }
  .pin-viewport::-webkit-scrollbar{ display:none; }
  .pin-track{ transform:none !important; }
  .pin-card{ scroll-snap-align:start; flex-basis:78vw; height:62vh; }
  .pin-card.intro, .pin-card.cta-card{ flex-basis:72vw; height:auto; min-height:48vh; }
  .pin-rail, .pin-hint{ display:none; }
}
@media(prefers-reduced-motion:reduce){
  .pin-section{ height:auto !important; }
  .pin-viewport{ position:static; height:auto; overflow-x:auto; padding-block:30px 16px; }
  .pin-track{ transform:none !important; }
  .pin-card{ flex-basis:46vw; height:60vh; }
}


/* ===========================================================
   EXCURSION DETAIL TEMPLATE — flexible image+text rows
   =========================================================== */
.xrow{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,76px); align-items:center; }
.xrow + .xrow{ margin-top:clamp(44px,6vw,92px); }
.xrow.flip .xrow-media{ order:2; }
.xrow-media{ position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 36px 80px -50px rgba(0,0,0,.85); }
.xrow-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.xrow-media:hover img{ transform:scale(1.05); }
.xrow-num{ position:absolute; top:18px; left:20px; z-index:2; font-family:var(--font-display); font-size:15px; color:rgba(244,239,228,.85); background:rgba(11,22,20,.45); backdrop-filter:blur(8px); border:1px solid rgba(244,239,228,.18); border-radius:100px; padding:6px 14px; }
.xrow-content .eyebrow{ color:var(--ember-2); display:block; margin-bottom:16px; }
.xrow-content h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(26px,3vw,42px); line-height:1.1; letter-spacing:-.012em; margin:0 0 18px; max-width:18ch; }
.xrow-content p{ font-size:clamp(16px,1.3vw,18px); line-height:1.65; color:var(--on-dark-soft); margin:0; max-width:46ch; }
.section.light .xrow-content p{ color:var(--on-light-soft); }
@media(max-width:840px){
  .xrow{ grid-template-columns:1fr; gap:26px; }
  .xrow.flip .xrow-media{ order:0; }
}


/* ---------- Carousel (horizontal snap) ---------- */
.carousel{ display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:14px; margin-inline:calc(var(--gutter)*-1); padding-inline:var(--gutter); scrollbar-width:none; }
.carousel::-webkit-scrollbar{ display:none; }
.ccard{ scroll-snap-align:start; flex:0 0 clamp(280px,32vw,400px); background:var(--forest-2); color:var(--on-dark); border:1px solid var(--forest-3); border-radius:14px; overflow:hidden; transition:.45s var(--ease); }
.ccard:hover{ transform:translateY(-6px); border-color:var(--ember); }
.ccard .ph{ aspect-ratio:4/3; overflow:hidden; }
.ccard .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.ccard:hover .ph img{ transform:scale(1.06); }
.ccard .body{ padding:22px; }
.ccard .tag{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ember-2); }
.ccard h3{ font-family:var(--font-display); font-weight:400; font-size:21px; margin:9px 0 8px; line-height:1.18; }
.ccard p{ font-size:14px; color:var(--on-dark-soft); line-height:1.5; margin:0; }

/* ---------- FAQ accordion ---------- */
.faq{ border-top:1px solid var(--forest-3); max-width:880px; }
.faq-item{ border-bottom:1px solid var(--forest-3); }
.faq-q{ width:100%; text-align:left; background:none; border:none; color:var(--on-dark); font-family:var(--font-ui); font-size:clamp(17px,1.6vw,21px); font-weight:500; padding:24px 0; display:flex; justify-content:space-between; align-items:center; gap:24px; cursor:pointer; transition:color .3s var(--ease); }
.faq-q:hover{ color:var(--ember-2); }
.faq-q .ic{ flex:0 0 auto; width:30px; height:30px; border:1px solid var(--forest-3); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; line-height:1; color:var(--ember-2); transition:.4s var(--ease); }
.faq-item.open .faq-q .ic{ background:var(--ember); color:#fff; border-color:var(--ember); transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .55s var(--ease); }
.faq-a p{ margin:0 0 26px; color:var(--on-dark-soft); font-size:16px; line-height:1.66; max-width:72ch; }
.section.light .faq{ border-color:var(--paper-3); }
.section.light .faq-item{ border-color:var(--paper-3); }
.section.light .faq-q{ color:var(--on-light); }
.section.light .faq-a p{ color:var(--on-light-soft); }


/* ---------- Backfill: термальные источники (мета + теги) ---------- */
.src-meta{ display:flex; flex-wrap:wrap; gap:10px 20px; margin:20px 0 16px; }
.src-meta span{ font-size:14px; color:var(--on-light-soft); display:inline-flex; align-items:center; gap:7px; }
.src-meta span b{ color:var(--on-light); font-weight:600; }
.src-meta .price{ color:var(--ember); font-weight:600; }
.section:not(.light) .src-meta span{ color:var(--on-dark-soft); }
.section:not(.light) .src-meta span b{ color:var(--on-dark); }
.src-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.src-tags span{ font-size:12px; padding:6px 13px; border:1px solid var(--paper-3); border-radius:100px; color:var(--on-light-soft); }
.section:not(.light) .src-tags span{ border-color:var(--forest-3); color:var(--on-dark-soft); }

/* ---------- Backfill: список номеров и цен ---------- */
.rooms{ border-top:1px solid var(--forest-3); }
.room-cat{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--ember-2); margin:30px 0 4px; font-weight:600; }
.room-row{ display:flex; align-items:center; justify-content:space-between; gap:22px; padding:17px 0; border-bottom:1px solid var(--forest-3); }
.room-row .rn{ font-size:15px; color:var(--on-dark-soft); line-height:1.5; }
.room-row .rn b{ color:var(--on-dark); font-weight:600; }
.room-row .rp{ font-family:var(--font-display); font-size:23px; color:var(--ember-2); white-space:nowrap; flex:0 0 auto; }
.season-note{ margin-top:22px; font-size:13.5px; color:var(--on-dark-faint); line-height:1.62; max-width:84ch; }
@media(max-width:600px){ .room-row{ flex-direction:column; align-items:flex-start; gap:6px; } }

/* ---------- Backfill: видео-слот яхты ---------- */
.yf-video{ margin-bottom:clamp(18px,2.4vw,28px); aspect-ratio:21/9; border:1px dashed var(--forest-3); border-radius:16px; background:rgba(244,239,228,.02); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:var(--on-dark-faint); font-size:14px; letter-spacing:.02em; }
.yf-video svg{ color:var(--ember-2); }
.yf-video iframe{ width:100%; height:100%; border:0; border-radius:16px; }

/* ---------- Backfill: ограничение высоты текста отзыва ---------- */
.rev p{ display:-webkit-box; -webkit-line-clamp:10; -webkit-box-orient:vertical; overflow:hidden; }


/* ---------- LOGO-IMG: графический логотип вместо текстового (self-contained) ---------- */
.nav-logo{ font-size:0 !important; gap:0 !important; line-height:0; }
.nav-logo .dot{ display:none !important; }
.nav-logo::before{
  content:""; display:block; height:34px; width:102px;       /* 300:100 = 3:1 */
  background:url("data:image/png;base64,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") left center / contain no-repeat;
}
.footer .nav-logo::before{ height:42px; width:126px; }
@media(max-width:560px){ .nav-logo::before{ height:30px; width:90px; } }


/* ===========================================================
   CLIENT BRIEF — ABOUT + SHARED ACCESSIBILITY
   =========================================================== */

:where(a, button, input, select, textarea, summary):focus-visible{
  outline:2px solid var(--ember-2);
  outline-offset:4px;
}
.field input:focus-visible,
.field select:focus-visible{
  outline:2px solid var(--ember-2);
  outline-offset:3px;
}

.about-intro{ padding-top:clamp(68px,8vw,112px); }
.about-cycle{ margin:clamp(38px,5vw,68px) 0 0; padding:0; }
.about-purpose-card .ic{
  font-family:var(--font-display);
  font-size:16px;
  letter-spacing:.08em;
}
.about-timeline{ list-style:none; margin:clamp(38px,5vw,64px) 0 0; padding:0; }
.about-team .content{ background:var(--forest-2); }
.about-team-status{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.about-team-status::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 0 6px rgba(90,163,154,.1);
}
.about-team-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(115deg, transparent 52%, rgba(11,22,20,.18));
  pointer-events:none;
}
.about-video-placeholder{
  position:relative;
  min-height:clamp(390px,52vw,650px);
  margin-top:clamp(34px,5vw,58px);
  padding:clamp(28px,5vw,68px);
  border:1px solid var(--paper-3);
  border-radius:18px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  color:var(--on-dark);
  background:
    linear-gradient(180deg, rgba(11,22,20,.16), rgba(11,22,20,.9)),
    url("/uploads/2021/09/panorama.jpg") center 54% / cover no-repeat;
}
.about-video-placeholder::after{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(244,239,228,.2);
  border-radius:12px;
  pointer-events:none;
}
.about-video-mark{
  position:relative;
  z-index:1;
  font-family:var(--font-display);
  font-size:clamp(42px,10vw,138px);
  line-height:.9;
  letter-spacing:-.04em;
  color:rgba(244,239,228,.82);
}
.about-video-copy{
  position:relative;
  z-index:1;
  max-width:44ch;
  margin-left:auto;
  padding-right:clamp(0px,3vw,34px);
}
.about-video-copy .eyebrow{
  display:block;
  margin-bottom:10px;
  color:var(--ember-2);
}
.about-video-copy p{
  margin:0;
  color:rgba(244,239,228,.74);
  font-size:clamp(15px,1.4vw,18px);
  line-height:1.6;
}
.about-video-channel{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:18px;
  color:var(--on-dark);
  font-size:14px;
  font-weight:600;
  text-decoration:none;
}
.about-video-channel span{ transition:transform .25s var(--ease); }
.about-video-channel:hover span{ transform:translateX(4px); }
.about-documents{ scroll-margin-top:88px; }
.about-document-card{
  min-height:270px;
  display:flex;
  flex-direction:column;
  transition:transform .4s var(--ease), background .4s var(--ease);
}
.about-document-card:hover{
  transform:translateY(-5px);
  background:var(--forest-2) !important;
}
.about-document-card:hover h4{ color:var(--on-dark); }
.about-document-card:hover p{ color:var(--on-dark-soft) !important; }
.about-document-type{
  width:max-content;
  min-width:44px;
  padding:6px 10px;
  border:1px solid currentColor;
  border-radius:100px;
  font-family:var(--font-ui);
  font-size:11px !important;
  font-weight:700;
  line-height:1;
  letter-spacing:.12em;
}
.about-document-link{
  margin-top:auto;
  padding-top:24px;
}
.about-document-card:hover .about-document-link{ color:var(--ember-2); }

@media(max-width:760px){
  .about-purpose-grid,
  .about-document-grid{
    grid-template-columns:1fr;
  }
  .about-video-placeholder{
    min-height:460px;
    background-position:58% center;
  }
  .about-video-copy{
    margin-left:0;
    padding-right:0;
  }
  .about-document-card{ min-height:230px; }
}

@media(prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .about-document-card{ transition:none; }
  .about-document-card:hover{ transform:none; }
  .about-video-channel span{ transition:none; }
  .about-video-channel:hover span{ transform:none; }
}

/* ===========================================================
   CLIENT BRIEF — TRAVELERS GUIDE
   =========================================================== */

#route,
#seasons,
#four-days,
#equipment,
#safety,
#included,
#documents,
#booking,
#request{ scroll-margin-top:132px; }

.trav-toc{
  position:sticky;
  top:69px;
  z-index:40;
  background:rgba(11,22,20,.94);
  border-block:1px solid var(--forest-3);
  backdrop-filter:blur(16px) saturate(1.15);
}
.trav-toc .wrap{
  min-height:64px;
  display:flex;
  align-items:center;
  gap:28px;
}
.trav-toc-label{
  flex:0 0 auto;
  margin:0;
  color:var(--on-dark-faint);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.trav-toc-links{
  min-width:0;
  display:flex;
  align-items:center;
  gap:22px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
}
.trav-toc-links::-webkit-scrollbar{ display:none; }
.trav-toc-links a{
  flex:0 0 auto;
  padding:20px 0 18px;
  border-bottom:2px solid transparent;
  color:var(--on-dark-soft);
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  transition:color .25s var(--ease), border-color .25s var(--ease);
}
.trav-toc-links a:hover{
  color:var(--on-dark);
  border-color:var(--ember-2);
}

.trav-four-grid{
  display:grid;
  grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);
  gap:clamp(40px,8vw,120px);
  align-items:center;
}
.trav-four-number{
  font-family:var(--font-display);
  font-size:clamp(190px,27vw,390px);
  font-weight:400;
  line-height:.72;
  letter-spacing:-.08em;
  color:var(--ember);
}
.trav-four-copy{ max-width:760px; }
.trav-four-copy .h-section{ margin:18px 0 24px; }
.trav-four-copy > p:not(.lead):not(.trav-note){
  max-width:68ch;
  color:var(--on-light-soft);
  font-size:16px;
  line-height:1.7;
}
.trav-note{
  max-width:78ch;
  margin:30px 0 0;
  padding-left:18px;
  border-left:2px solid var(--ember);
  color:var(--on-dark-soft);
  font-size:14px;
  line-height:1.65;
}
.section.light .trav-note{ color:var(--on-light-soft); }

.trav-checklist{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(32px,6vw,88px);
  border-top:1px solid var(--forest-3);
}
.trav-check{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:18px 0;
  border-bottom:1px solid var(--forest-3);
  color:var(--on-dark-soft);
  font-size:15px;
  line-height:1.55;
}
.trav-check-mark{
  width:24px;
  height:24px;
  border:1px solid var(--forest-3);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--ember-2);
  font-size:12px;
  line-height:1;
}

.trav-details-list{
  border-top:1px solid var(--paper-3);
}
.trav-details{
  border-bottom:1px solid var(--paper-3);
}
.trav-details > summary{
  list-style:none;
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 38px;
  gap:20px;
  align-items:center;
  padding:28px 0;
  cursor:pointer;
  color:var(--on-light);
}
.trav-details > summary::-webkit-details-marker{ display:none; }
.trav-details-index{
  font-family:var(--font-display);
  font-size:20px;
  color:var(--ember);
}
.trav-details-heading{
  display:grid;
  gap:4px;
}
.trav-details-heading strong{
  font-family:var(--font-display);
  font-size:clamp(20px,2vw,28px);
  font-weight:400;
  line-height:1.2;
}
.trav-details-heading > span{
  color:var(--on-light-soft);
  font-size:13px;
  line-height:1.5;
}
.trav-details-icon{
  width:34px;
  height:34px;
  border:1px solid var(--paper-3);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--ember);
  font-size:18px;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.trav-details[open] .trav-details-icon{
  transform:rotate(45deg);
  background:var(--ember);
  border-color:var(--ember);
  color:#fff;
}
.trav-details-body{
  max-width:930px;
  margin-left:74px;
  padding:4px 0 50px;
  color:var(--on-light-soft);
}
.trav-memo-section{
  padding:26px 0;
  border-top:1px solid var(--paper-3);
}
.trav-memo-section:first-child{ border-top:0; }
.trav-memo-section h3{
  margin:0 0 13px;
  color:var(--on-light);
  font-size:17px;
  font-weight:700;
}
.trav-memo-section p{
  max-width:78ch;
  margin:0 0 14px;
  font-size:15px;
  line-height:1.7;
}
.trav-memo-section p:last-child{ margin-bottom:0; }
.trav-list,
.trav-rules{
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
}
.trav-list{ list-style:none; }
.trav-list li{
  position:relative;
  padding-left:22px;
  font-size:15px;
  line-height:1.65;
}
.trav-list li::before{
  content:"";
  position:absolute;
  top:.72em;
  left:2px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--ember);
}
.trav-rules{
  list-style:none;
  counter-reset:trav-rules;
}
.trav-rules li{
  counter-increment:trav-rules;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:10px;
  align-items:start;
  font-size:15px;
  line-height:1.65;
}
.trav-rules li::before{
  content:counter(trav-rules, decimal-leading-zero);
  color:var(--ember);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  padding-top:5px;
}

.trav-terms-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid var(--forest-3);
  border-radius:16px;
  background:var(--forest-3);
}
.trav-terms-card{
  min-height:420px;
  padding:clamp(30px,4vw,54px);
  background:var(--forest);
}
.trav-terms-card-in{ background:var(--forest-2); }
.trav-terms-label{
  margin:0 0 12px;
  color:var(--ember-2);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.trav-terms-card h3{
  margin:0 0 28px;
  font-family:var(--font-display);
  font-size:clamp(25px,3vw,38px);
  font-weight:400;
}
.trav-terms-card .trav-list li{ color:var(--on-dark-soft); }
.trav-terms-card .trav-list li::before{ background:var(--ember-2); }

.trav-doc-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid var(--paper-3);
  border-radius:16px;
  background:var(--paper-3);
}
.trav-doc-card{
  min-height:260px;
  padding:clamp(26px,3.5vw,42px);
  background:var(--paper);
}
.trav-doc-num{
  display:block;
  margin-bottom:38px;
  color:var(--ember);
  font-family:var(--font-display);
  font-size:18px;
}
.trav-doc-card h3{
  margin:0 0 12px;
  color:var(--on-light);
  font-family:var(--font-display);
  font-size:25px;
  font-weight:400;
}
.trav-doc-card p{
  margin:0;
  color:var(--on-light-soft);
  font-size:14px;
  line-height:1.65;
}
.trav-alert{
  margin-top:26px;
  padding:22px 26px;
  border-left:3px solid var(--ember);
  background:var(--paper-2);
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:start;
  color:var(--on-light);
}
.trav-alert strong{
  color:var(--ember);
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.trav-alert p{
  margin:0;
  color:var(--on-light-soft);
  font-size:14px;
  line-height:1.65;
}

.trav-booking-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);
  gap:clamp(42px,8vw,112px);
  align-items:center;
}
.trav-booking-copy .h-section{ margin:18px 0 24px; }
.trav-booking-steps{
  list-style:none;
  display:grid;
  gap:0;
  margin:36px 0 0;
  padding:0;
  border-top:1px solid var(--forest-3);
}
.trav-booking-steps li{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:18px;
  padding:20px 0;
  border-bottom:1px solid var(--forest-3);
}
.trav-booking-steps li > span{
  color:var(--ember-2);
  font-family:var(--font-display);
  font-size:20px;
}
.trav-booking-steps p{
  margin:0;
  color:var(--on-dark-soft);
  font-size:15px;
  line-height:1.65;
}
.trav-booking-steps strong{
  color:var(--on-dark);
  font-weight:600;
}
.trav-contact-card{
  padding:clamp(30px,4.5vw,54px);
  border:1px solid var(--forest-3);
  border-radius:16px;
  background:var(--forest-2);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  font-style:normal;
}
.trav-contact-label{
  margin:0 0 16px;
  color:var(--on-dark-faint);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.trav-contact-main{
  margin-bottom:4px;
  font-family:var(--font-display);
  font-size:clamp(29px,3.4vw,43px);
  line-height:1.15;
}
.trav-contact-card > a:not(.trav-contact-main){
  color:var(--ember-2);
  font-size:15px;
}
.trav-contact-actions{
  width:100%;
  display:grid;
  gap:10px;
  margin-top:30px;
}
.trav-contact-actions .btn{
  width:100%;
  justify-content:center;
  text-align:center;
}
.trav-btn-ghost{
  border-color:var(--forest-3);
  color:var(--on-dark) !important;
  background:transparent;
}
.trav-btn-ghost:hover{
  border-color:var(--on-dark);
  background:rgba(244,239,228,.05);
}
.trav-contact-note{
  margin:20px 0 0;
  color:var(--on-dark-faint);
  font-size:12px;
  line-height:1.6;
}

.trav-request-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}
.trav-btn-light{
  border-color:rgba(244,239,228,.3);
  color:var(--on-dark);
  background:transparent;
}
.trav-btn-light:hover{
  border-color:var(--on-dark);
  background:rgba(244,239,228,.06);
}
.trav-request-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:24px 0 0;
  color:var(--on-dark-faint);
  font-size:13px;
}
.trav-request-meta a{
  color:var(--ember-2);
  border-bottom:1px solid transparent;
}
.trav-request-meta a:hover{ border-color:currentColor; }

@media(max-width:900px){
  #route,
  #seasons,
  #four-days,
  #equipment,
  #safety,
  #included,
  #documents,
  #booking,
  #request{ scroll-margin-top:118px; }

  .trav-toc{ top:65px; }
  .trav-toc .wrap{ gap:18px; }
  .trav-toc-label{ display:none; }
  .trav-four-grid{
    grid-template-columns:120px minmax(0,1fr);
    gap:38px;
  }
  .trav-four-number{ font-size:190px; }
  .trav-doc-grid{ grid-template-columns:1fr; }
  .trav-doc-card{ min-height:0; }
  .trav-doc-num{ margin-bottom:24px; }
  .trav-booking-grid{
    grid-template-columns:1fr;
    gap:46px;
  }
}

@media(max-width:680px){
  .trav-toc .wrap{
    min-height:54px;
    padding-right:0;
  }
  .trav-toc-links{ gap:18px; }
  .trav-toc-links a{ padding:16px 0 14px; }
  .trav-toc-links::after{
    content:"";
    flex:0 0 var(--gutter);
  }
  .trav-four-grid{
    grid-template-columns:1fr;
    gap:26px;
  }
  .trav-four-number{
    font-size:160px;
    line-height:.75;
  }
  .trav-checklist{ grid-template-columns:1fr; }
  .trav-details > summary{
    grid-template-columns:34px minmax(0,1fr) 34px;
    gap:12px;
    padding:22px 0;
  }
  .trav-details-index{ font-size:16px; }
  .trav-details-heading > span{ display:none; }
  .trav-details-body{
    margin-left:0;
    padding-bottom:38px;
  }
  .trav-memo-section{ padding:22px 0; }
  .trav-terms-grid{ grid-template-columns:1fr; }
  .trav-terms-card{ min-height:0; }
  .trav-alert{ grid-template-columns:1fr; }
  .trav-contact-card{ padding:28px 22px; }
  .trav-contact-actions .btn{ white-space:normal; }
  .trav-request-actions{ display:grid; }
  .trav-request-actions .btn{ width:100%; justify-content:center; }
}

@media(prefers-reduced-motion:reduce){
  .trav-toc-links a,
  .trav-details-icon{ transition:none; }
}

/* ===========================================================
   TOUR PROGRAMS — expedition editorial system
   =========================================================== */
.catalog-intro{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);
  gap:clamp(32px,7vw,104px);
  align-items:end;
  margin-bottom:clamp(50px,7vw,88px);
}
.catalog-intro .h-section{ max-width:13ch; }
.catalog-intro .lead{ margin:0; }
.tour-collection + .tour-collection{ margin-top:clamp(88px,11vw,150px); }
.collection-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);
  gap:32px;
  align-items:end;
  padding-bottom:24px;
  margin-bottom:30px;
  border-bottom:1px solid var(--forest-3);
}
.collection-head .eyebrow{ color:var(--ember-2); display:block; margin-bottom:14px; }
.collection-head h2{
  font-family:var(--font-display);
  font-size:clamp(32px,4vw,54px);
  font-weight:400;
  line-height:1.06;
  margin:0;
}
.collection-head p{
  color:var(--on-dark-soft);
  font-size:15px;
  line-height:1.65;
  margin:0;
}
.tours-grid.catalog-grid{ grid-template-columns:repeat(12,minmax(0,1fr)); }
.catalog-grid .tour-card{ grid-column:span 4; min-height:460px; }
.catalog-grid .tour-card.wide{ grid-column:span 8; }
.catalog-grid .tour-card.feature{ grid-column:span 5; grid-row:span 2; min-height:0; }
.catalog-grid .tour-card.feature + .tour-card{ grid-column:span 7; }
.tour-card .body{ position:relative; }
.tour-card .card-arrow{
  position:absolute;
  top:26px;
  right:26px;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:17px;
  transition:background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.tour-card:hover .card-arrow{
  background:var(--ember);
  border-color:var(--ember);
  transform:translate(3px,-3px);
}
.tour-card.is-pending::before{
  content:"Программа уточняется";
  position:absolute;
  z-index:2;
  top:22px;
  left:22px;
  padding:8px 13px;
  border-radius:100px;
  background:rgba(11,22,20,.76);
  border:1px solid rgba(244,239,228,.22);
  backdrop-filter:blur(12px);
  color:var(--on-dark);
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
html[lang^="en"] .tour-card.is-pending::before{ content:"Programme being finalised"; }
html[lang^="zh"] .tour-card.is-pending::before{ content:"行程正在确认"; }
.tour-card.is-pending .card-arrow{ display:none; }
.tour-card.is-pending:hover img{ transform:none; }

.page-hero.program-hero{ min-height:min(88svh,760px); }
.program-hero::after{
  background:
    linear-gradient(to top,rgba(8,17,15,.96) 0%,rgba(8,17,15,.42) 58%,rgba(8,17,15,.52) 100%),
    linear-gradient(to right,rgba(8,17,15,.58),transparent 64%);
}
.program-hero .inner{ padding-bottom:clamp(48px,7vw,92px); }
.program-hero .eyebrow{ color:var(--ember-2); display:block; margin-bottom:18px; }
.program-hero .sub{ max-width:62ch; }
.program-route{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:28px;
}
.program-route span{
  padding:9px 14px;
  border-radius:100px;
  border:1px solid rgba(244,239,228,.22);
  background:rgba(11,22,20,.24);
  backdrop-filter:blur(10px);
  color:var(--on-dark-soft);
  font-size:12px;
  font-weight:600;
  letter-spacing:.05em;
}
.facts.program-facts .fact{ min-width:180px; }
.program-intro .lead{ color:var(--on-dark-soft); }
.program-intro .lead p{ color:inherit; }
.program-note{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:18px;
  padding:24px 26px;
  margin-top:36px;
  border:1px solid var(--forest-3);
  border-radius:14px;
  background:var(--forest-2);
}
.program-note .mark{
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(90,163,154,.13);
  color:var(--ember-2);
  font-family:var(--font-display);
  font-size:23px;
}
.program-note strong{ display:block; margin-bottom:4px; font-size:15px; }
.program-note p{ margin:0; color:var(--on-dark-soft); font-size:14px; line-height:1.6; }
.section.light .program .prog-day{ border-color:var(--paper-3); }
.section.light .prog-day .day small{ color:var(--on-light-faint); }
.section.light .prog-day p{ color:var(--on-light-soft); }
.program-links{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  overflow:hidden;
  margin-top:42px;
  border-radius:14px;
  background:var(--forest-3);
}
.program-links a{
  min-height:150px;
  padding:24px;
  background:var(--forest-2);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:24px;
  transition:background .35s var(--ease);
}
.program-links a:hover{ background:var(--forest-3); }
.program-links small{
  color:var(--on-dark-faint);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.program-links span{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  font-family:var(--font-display);
  font-size:20px;
}
.contact-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:clamp(32px,7vw,96px);
  align-items:center;
}
.contact-panel .h-section{ max-width:12ch; margin:16px 0 22px; }
.contact-panel .lead{ margin:0; max-width:44ch; }
.contact-card{
  padding:clamp(24px,4vw,38px);
  border:1px solid var(--forest-3);
  border-radius:16px;
  background:rgba(11,22,20,.24);
}
.contact-card > span{
  display:block;
  color:var(--on-dark-faint);
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:16px;
}
.contact-card a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 0;
  border-bottom:1px solid var(--forest-3);
  font-size:15px;
  font-weight:600;
  transition:color .3s var(--ease);
}
.contact-card a:last-child{ border-bottom:0; }
.contact-card a:hover{ color:var(--ember-2); }
.contact-card a::after{ content:"↗"; color:var(--ember-2); }
.contact-fineprint{
  margin:18px 0 0;
  color:var(--on-dark-faint);
  font-size:12px;
  line-height:1.55;
}

.legacy-redirect{
  min-height:100svh;
  display:grid;
  place-items:center;
  padding:120px var(--gutter) 60px;
  background:var(--forest);
}
.legacy-redirect .box{ width:min(720px,100%); }
.legacy-redirect .h-section{ margin:18px 0 20px; }
.legacy-redirect .lead{ margin-bottom:30px; }

@media(max-width:980px){
  .catalog-grid .tour-card,
  .catalog-grid .tour-card.wide,
  .catalog-grid .tour-card.feature,
  .catalog-grid .tour-card.feature + .tour-card{ grid-column:span 6; min-height:430px; grid-row:auto; }
  .contact-panel{ grid-template-columns:1fr; }
  .contact-card{ max-width:600px; }
}
@media(max-width:760px){
  .catalog-intro,
  .collection-head{ grid-template-columns:1fr; align-items:start; }
  .program-links{ grid-template-columns:1fr; }
  .program-links a{ min-height:120px; }
}
@media(max-width:600px){
  .tours-grid.catalog-grid{ gap:16px; }
  .catalog-grid .tour-card,
  .catalog-grid .tour-card.wide,
  .catalog-grid .tour-card.feature,
  .catalog-grid .tour-card.feature + .tour-card{ grid-column:span 12; min-height:410px; }
  .page-hero.program-hero{ min-height:760px; }
  .program-route{ margin-top:22px; }
  .program-note{ grid-template-columns:1fr; padding:22px; }
  .contact-card{ padding:24px 22px; }
}

@media(max-width:520px){
  .facts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .facts .fact,
  .facts.program-facts .fact{
    min-width:0;
    padding:22px 18px;
    border-right:0;
    border-bottom:1px solid var(--forest-3);
  }
  .facts .fact:nth-child(odd){ border-right:1px solid var(--forest-3); }
  .facts .fact:nth-last-child(-n+2){ border-bottom:0; }
  .facts .fact .k{
    font-size:10px;
    letter-spacing:.11em;
    overflow-wrap:anywhere;
  }
  .facts .fact .v{
    font-size:clamp(20px,6vw,24px);
    line-height:1.25;
    overflow-wrap:anywhere;
  }
}

/* ===========================================================
   ITUGID V2 — UNIFIED CONTEXTUAL BOOKING
   =========================================================== */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.booking-widget{
  width:min(100%,560px);
  color:var(--on-dark);
}
.booking-form{
  position:relative;
  width:100%;
  padding:clamp(22px,2.8vw,30px);
  overflow:hidden;
  border:1px solid rgba(244,239,228,.14);
  border-radius:20px;
  background:rgba(11,25,23,.86);
  box-shadow:0 24px 64px -46px rgba(0,0,0,.9);
  color:var(--on-dark);
}
.booking-form::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:2px;
  background:linear-gradient(90deg,var(--ember),rgba(221,146,92,.08) 62%,transparent);
  pointer-events:none;
}
.booking-topline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  row-gap:8px;
  margin-bottom:14px;
}
.booking-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--ember-2);
  font-size:11px;
  font-weight:700;
  letter-spacing:.15em;
  line-height:1.25;
  text-transform:uppercase;
}
.booking-kicker i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ember);
  box-shadow:0 0 0 5px rgba(221,146,92,.11);
}
.booking-step-count,
.booking-type{
  color:var(--on-dark-faint);
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  white-space:nowrap;
  text-transform:uppercase;
}
.booking-heading h3,
.booking-success h3{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(26px,3vw,34px);
  font-weight:500;
  line-height:1.08;
  letter-spacing:-.025em;
}
.booking-heading > p{
  max-width:52ch;
  margin:10px 0 22px;
  color:var(--on-dark-soft);
  font-size:14px;
  line-height:1.6;
}
.booking-intent{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px;
  margin:0 0 18px;
  padding:4px;
  border:1px solid rgba(244,239,228,.1);
  border-radius:11px;
  background:rgba(4,12,11,.34);
}
.booking-intent label,
.booking-channel-options label{
  position:relative;
  cursor:pointer;
}
.booking-intent input,
.booking-channel-options input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.booking-intent span{
  display:flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:7px;
  color:var(--on-dark-soft);
  font-size:13px;
  font-weight:600;
  transition:background .2s var(--ease),color .2s var(--ease);
}
.booking-intent input:checked + span{
  background:rgba(90,163,154,.18);
  box-shadow:inset 0 0 0 1px rgba(90,163,154,.34);
  color:var(--on-dark);
}
.booking-intent input:focus-visible + span,
.booking-channel-options input:focus-visible + span{
  outline:2px solid var(--ember-2);
  outline-offset:2px;
}
.booking-offer{
  display:flex;
  align-items:center;
  margin:14px 0 16px;
  padding:10px 13px;
  border-left:2px solid var(--ember);
  background:rgba(244,239,228,.055);
}
.booking-offer span{
  padding-top:2px;
  color:var(--on-dark-faint);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.booking-offer strong{
  font-size:13px;
  font-weight:600;
  line-height:1.4;
}
.booking-progress{
  height:2px;
  margin:0 0 22px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(244,239,228,.12);
}
.booking-progress span{
  display:block;
  width:50%;
  height:100%;
  background:var(--ember);
  transition:width .35s var(--ease);
}
.booking-progress.is-complete span{ width:100%; }
.booking-error{
  margin:0 0 16px;
  padding:11px 13px;
  border-left:2px solid #e69a7c;
  background:rgba(160,67,45,.18);
  color:#ffe5db;
  font-size:13px;
  line-height:1.5;
}
.booking-error a{
  color:var(--ember-2);
  text-decoration:underline;
}
.booking-fields-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:10px;
}
.booking-fields-grid--full{ grid-template-columns:1fr; }
.booking-field{
  display:grid;
  gap:8px;
  min-width:0;
}
.booking-field > span,
.booking-channel > span{
  color:var(--on-dark-soft);
  font-size:11px;
  font-weight:600;
  letter-spacing:.035em;
}
.booking-field input,
.booking-field select,
.booking-field textarea{
  width:100%;
  min-height:46px;
  margin:0;
  padding:11px 13px;
  border:1px solid rgba(244,239,228,.15);
  border-radius:9px;
  outline:0;
  background:rgba(4,12,11,.34);
  color:var(--on-dark);
  font:inherit;
  font-size:14px;
  line-height:1.4;
  transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease);
}
.booking-field textarea{
  min-height:70px;
  resize:vertical;
}
.booking-field select{
  appearance:none;
  padding-right:40px;
  cursor:pointer;
  background-image:
    linear-gradient(45deg,transparent 50%,var(--ember-2) 50%),
    linear-gradient(135deg,var(--ember-2) 50%,transparent 50%);
  background-position:calc(100% - 19px) 22px,calc(100% - 13px) 22px;
  background-repeat:no-repeat;
  background-size:6px 6px,6px 6px;
}
.booking-field select option{
  background:var(--forest-2);
  color:var(--on-dark);
}
.booking-field input::placeholder,
.booking-field textarea::placeholder{ color:rgba(244,239,228,.38); }
.booking-field input:hover,
.booking-field select:hover,
.booking-field textarea:hover{ border-color:rgba(244,239,228,.28); }
.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus{
  border-color:var(--ember);
  background:rgba(4,12,11,.5);
  box-shadow:0 0 0 3px rgba(221,146,92,.11);
}
.booking-field [aria-invalid="true"]{
  border-color:#e69a7c;
  box-shadow:0 0 0 3px rgba(230,154,124,.1);
}
.booking-honeypot{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
}
.booking-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  margin-top:18px;
}
.booking-actions .btn{
  min-width:190px;
  justify-content:center;
}
.booking-back,
.booking-reset{
  padding:10px 0;
  border:0;
  background:transparent;
  color:var(--on-dark-soft);
  font:inherit;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  transition:color .2s var(--ease);
}
.booking-back:hover,
.booking-reset:hover{ color:var(--ember-2); }
.booking-hint{
  margin:12px 0 0;
  color:var(--on-dark-faint);
  font-size:11px;
  line-height:1.45;
  text-align:right;
}
.booking-channel{
  display:grid;
  gap:9px;
  margin-bottom:15px;
}
.booking-channel-options{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.booking-channel-options span{
  display:flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  padding:7px 8px;
  border:1px solid rgba(244,239,228,.13);
  border-radius:8px;
  color:var(--on-dark-soft);
  font-size:11px;
  font-weight:600;
  transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease);
}
.booking-channel-options input:checked + span{
  border-color:rgba(221,146,92,.65);
  background:rgba(221,146,92,.12);
  color:var(--ember-2);
}
.booking-consent{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  gap:10px;
  align-items:start;
  margin:0;
  color:var(--on-dark-faint);
  font-size:11px;
  line-height:1.5;
  cursor:pointer;
}
.booking-consent input{
  width:16px;
  height:16px;
  margin:1px 0 0;
  accent-color:var(--ember);
}
.booking-submit-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  margin-top:14px;
}
.booking-submit-row .booking-submit{
  min-width:190px;
  justify-content:center;
}
.booking-direct{
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  align-items:center;
  margin-top:22px;
  padding-top:17px;
  border-top:1px solid rgba(244,239,228,.1);
  color:var(--on-dark-faint);
  font-size:11px;
}
.booking-direct a{
  color:var(--on-dark-soft);
  font-weight:600;
  transition:color .2s var(--ease);
}
.booking-direct a:hover{ color:var(--ember-2); }
.booking-demo-note{
  margin:10px 0 0;
  color:rgba(244,239,228,.38);
  font-size:10px;
  line-height:1.45;
}
.booking-success{
  display:grid;
  justify-items:start;
  min-height:310px;
  align-content:center;
  outline:0;
}
.booking-success-icon{
  display:grid;
  width:50px;
  height:50px;
  place-items:center;
  margin-bottom:22px;
  border:1px solid rgba(221,146,92,.45);
  border-radius:50%;
  background:rgba(221,146,92,.1);
  color:var(--ember-2);
  font-size:21px;
}
.booking-success .booking-kicker{ margin-bottom:12px; }
.booking-success p{
  max-width:54ch;
  margin:14px 0 24px;
  color:var(--on-dark-soft);
  font-size:14px;
  line-height:1.65;
}
.booking-success-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.booking-btn-secondary{
  border:1px solid rgba(244,239,228,.18);
  background:transparent;
  color:var(--on-dark);
}
.booking-reset{ margin-top:12px; }

.contact-panel .booking-widget,
.svc-form-wrap .booking-widget{ max-width:none; }
.split .content .booking-widget{ margin-top:4px; }
.modal .booking-form{ border-radius:16px; }
.modal .booking-direct{ display:none; }
.modal .booking-demo-note{ margin-bottom:0; }

.booking-global-modal{
  position:fixed;
  z-index:150;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s var(--ease);
}
.booking-global-modal.open{
  opacity:1;
  pointer-events:auto;
}
.booking-global-scrim{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(4,12,11,.9);
  backdrop-filter:blur(12px);
  cursor:pointer;
}
.booking-global-panel{
  position:relative;
  z-index:1;
  width:min(590px,100%);
  max-height:min(880px,calc(100svh - 32px));
  overflow:auto;
  border-radius:20px;
  background:#0b1917;
  box-shadow:0 28px 80px -36px rgba(0,0,0,.95);
  transform:translateY(12px);
  transition:transform .3s var(--ease);
}
.booking-global-panel .booking-form{
  background:#0b1917;
}
.booking-global-modal.open .booking-global-panel{ transform:translateY(0); }
.booking-global-close{
  position:absolute;
  z-index:3;
  top:16px;
  right:16px;
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  border:1px solid rgba(244,239,228,.16);
  border-radius:50%;
  background:rgba(4,12,11,.7);
  color:var(--on-dark);
  font-size:13px;
  cursor:pointer;
}
body.booking-modal-open{ overflow:hidden; }
body.booking-modal-open .booking-mobile-dock{
  opacity:0;
  pointer-events:none;
}

.booking-mobile-dock{
  display:none;
  position:fixed;
  z-index:90;
  right:12px;
  bottom:max(12px,env(safe-area-inset-bottom));
  left:12px;
  grid-template-columns:minmax(0,1fr) 52px;
  gap:8px;
  padding:7px;
  border:1px solid rgba(244,239,228,.14);
  border-radius:13px;
  background:rgba(11,25,23,.94);
  box-shadow:0 14px 34px -22px rgba(0,0,0,.95);
  backdrop-filter:blur(16px);
}
body.menu-open .booking-mobile-dock{
  opacity:0;
  pointer-events:none;
}
.booking-mobile-main,
.booking-mobile-phone{
  display:flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  font-size:13px;
  font-weight:700;
}
.booking-mobile-main{
  gap:12px;
  background:var(--ember);
  color:#17110d;
}
.booking-mobile-phone{
  border:1px solid rgba(244,239,228,.16);
  color:var(--on-dark);
  font-size:18px;
}

@media(max-width:700px){
  .booking-form{ padding:22px 18px; border-radius:16px; }
  .booking-heading h3,
  .booking-success h3{ font-size:28px; }
  .booking-fields-grid{ grid-template-columns:1fr; }
  .booking-channel-options{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-actions--submit{ align-items:stretch; }
  .booking-actions--submit .booking-submit{ flex:1; min-width:0; }
  .booking-submit-row{ grid-template-columns:1fr; gap:13px; align-items:stretch; }
  .booking-submit-row .booking-submit{ width:100%; min-width:0; }
}

@media(max-width:620px){
  .booking-mobile-dock{ display:grid; }
  body.has-booking-dock{ padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .booking-success-actions{ width:100%; }
  .booking-success-actions .btn{ width:100%; justify-content:center; }
}

@media(max-width:390px){
  .booking-topline{ align-items:flex-start; }
  .booking-kicker{ max-width:18ch; }
  .booking-intent span{ padding-inline:7px; font-size:12px; }
  .booking-actions{ align-items:stretch; }
  .booking-actions:not(.booking-actions--submit){ display:grid; }
  .booking-actions .btn{ width:100%; min-width:0; }
}

@media(prefers-reduced-motion:reduce){
  .booking-progress span,
  .booking-intent span,
  .booking-field input,
  .booking-field select,
  .booking-field textarea{ transition:none; }
}

/* ===========================================================
   ITUGID BRAND GUIDE — shared stage 1 layer
   =========================================================== */

html{ background:var(--ink); }
body{ background:var(--forest); }

.h-section,
.hero h1,
.page-hero h1,
.tour-card h3,
.stay-card h3,
.pin-card h3,
.why h4,
.contact-cta h2{
  font-family:var(--font-display);
  font-style:normal;
}
.hero h1 em{ color:var(--ember-2); font-style:normal; }

.nav{
  min-height:78px;
  padding-block:16px;
  background:linear-gradient(180deg,rgba(36,46,55,.74),rgba(36,46,55,0));
}
.nav.scrolled{
  min-height:68px;
  padding-block:11px;
  border-color:rgba(255,255,255,.12);
  background:rgba(36,46,55,.94);
  backdrop-filter:blur(18px) saturate(1.1);
}
.nav-logo::before{
  width:118px !important;
  height:34px !important;
  background:url('/assets/brand/itugid-logo-white.png') left center / contain no-repeat !important;
}
.nav-links{ gap:clamp(16px,1.8vw,28px); }
.nav-item{ position:relative; display:flex; align-items:center; }
.nav-links .nav-item > a{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  color:rgba(255,255,255,.76);
  font-size:14px;
  font-weight:500;
  white-space:nowrap;
}
.nav-links .nav-item > a:hover,
.nav-links .nav-item > a[aria-current="page"]{ color:#fff; }
.nav-links .nav-item > a[aria-current="page"]::after{
  content:"";
  position:absolute;
  right:0;
  bottom:2px;
  left:0;
  height:2px;
  background:var(--ember);
}
.nav-subtoggle{
  width:30px;
  height:44px;
  margin-left:-5px;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.72);
}
.nav-subtoggle svg{ width:10px; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .25s var(--ease); }
.nav-item--dropdown:hover .nav-subtoggle svg,
.nav-item--dropdown:focus-within .nav-subtoggle svg,
.nav-item--dropdown.is-open .nav-subtoggle svg{ transform:rotate(180deg); }
.nav-submenu{
  position:absolute;
  top:calc(100% + 8px);
  left:-16px;
  width:248px;
  padding:8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(36,46,55,.98);
  box-shadow:0 20px 50px -28px rgba(0,0,0,.72);
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px);
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;
}
.nav-item--dropdown:hover .nav-submenu,
.nav-item--dropdown:focus-within .nav-submenu,
.nav-item--dropdown.is-open .nav-submenu{ opacity:1; visibility:visible; transform:none; }
.nav-submenu a{
  display:flex;
  min-height:43px;
  align-items:center;
  padding:10px 12px;
  border-radius:8px;
  color:rgba(255,255,255,.72);
  font-size:13.5px;
  transition:background .2s,color .2s;
}
.nav-submenu a:hover,
.nav-submenu a:focus-visible{ background:rgba(139,189,175,.12); color:#fff; }
.language-trigger{ background:rgba(36,46,55,.38); }

.hero-media::after{
  background:
    linear-gradient(to top,rgba(36,46,55,.96) 0%,rgba(36,46,55,.48) 46%,rgba(36,46,55,.24) 72%,rgba(36,46,55,.58) 100%),
    linear-gradient(to right,rgba(36,46,55,.72),transparent 62%);
}
.hero h1{ max-width:13.5ch; font-weight:300; letter-spacing:-.025em; }
.hero-loc .line{ background:var(--ember); }
.hero .booking-widget{ width:min(100%,460px); justify-self:end; }
.hero .booking-form{
  padding:24px;
  border-color:rgba(255,255,255,.16);
  border-radius:12px;
  background:rgba(36,46,55,.82);
  box-shadow:0 20px 48px -36px rgba(0,0,0,.8);
  backdrop-filter:blur(18px);
}
.hero .booking-heading h3{ font-size:clamp(23px,2vw,29px); font-weight:300; }

.btn{ border-radius:8px; }
.btn-ember{ background:var(--ember); color:#fff; }
.btn-ember:hover{ background:#c83c00; box-shadow:none; }
.link-more{ color:var(--ember); }

.section.light{
  background-color:var(--paper);
  background-image:linear-gradient(rgba(234,231,228,.94),rgba(234,231,228,.94)),url('/assets/brand/texture-sea.jpg');
  background-position:center;
  background-size:cover;
}

.stats-head .eyebrow,
.sec-head .eyebrow{ color:var(--ember-2); }
.figures{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.13);
  border-radius:16px;
  background:rgba(255,255,255,.035);
}
.figures::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('/assets/brand/texture-black-sand.jpg') center 42% / cover;
  opacity:.06;
  pointer-events:none;
}
.figure{ padding-block:38px; }
.figure .fig-num{ font-weight:400; }
.figure .fig-rule > i{ background:var(--ember); }
.figure .fig-lab{ letter-spacing:.1em; }

.kinetic{
  padding:24px 0;
  border-color:rgba(255,255,255,.12);
  background:var(--paper);
  color:var(--on-light);
}
.kinetic .seg{
  font-family:var(--font-ui);
  font-size:clamp(15px,1.7vw,22px);
  font-weight:500;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.kinetic .seg .star{ color:var(--ember); font-size:.72em; }
.kinetic .row.r1{ animation-duration:64s; }

.tour-card,
.stay-card,
.addon-card,
.pin-card{ border-radius:10px; }
.tour-card::after,
.addon-card::after,
.pin-card::after{ background:linear-gradient(to top,rgba(36,46,55,.96),rgba(36,46,55,.08) 66%); }
.tour-card .tag,
.addon-card .tag{ color:var(--ember-2); }
@media(hover:hover){
  .tours-grid .tour-card .body{ transform:translateY(52px); transition:transform .45s var(--ease); }
  .tours-grid .tour-card p,
  .tours-grid .tour-card .meta{ opacity:0; transform:translateY(10px); transition:opacity .35s var(--ease),transform .35s var(--ease); }
  .tours-grid .tour-card:hover .body,
  .tours-grid .tour-card:focus-visible .body{ transform:none; }
  .tours-grid .tour-card:hover p,
  .tours-grid .tour-card:hover .meta,
  .tours-grid .tour-card:focus-visible p,
  .tours-grid .tour-card:focus-visible .meta{ opacity:1; transform:none; }
}

.pin-card.intro,
.pin-card.cta-card{ background:var(--forest-2); }
.pin-card.intro::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('/assets/brand/texture-black-sand.jpg') center / cover;
  opacity:.08;
}

.why-grid{
  grid-template-columns:repeat(5,1fr);
  gap:0;
  border:1px solid rgba(255,255,255,.13);
  border-radius:14px;
  background:transparent;
}
.why{
  min-height:100%;
  padding:30px 24px;
  border-right:1px solid rgba(255,255,255,.13);
  background:transparent;
}
.why:last-child{ border-right:0; }
.why:hover{ background:rgba(139,189,175,.08); }
.why .n{ color:var(--ember); }
.why h4{ font-size:20px; font-weight:300; }

.route h3 > span{ color:var(--ember) !important; }
.route-map .mover .glyph{ fill:var(--ember); }
.rev{ border-color:rgba(255,255,255,.12); border-radius:10px; background:rgba(255,255,255,.04); }
.rev .av{ background:var(--ember-2); color:var(--ink); }
.rev .stars{ color:var(--ember); }

.contact-cta{
  position:relative;
  overflow:hidden;
  padding-block:clamp(48px,6vw,78px);
  border-top:1px solid rgba(255,255,255,.12);
  background:var(--forest-2);
}
.contact-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('/assets/brand/texture-sea.jpg') center 58% / cover;
  opacity:.07;
}
.contact-cta__inner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) auto;
  align-items:end;
  gap:40px;
}
.contact-cta .eyebrow{ display:block; margin-bottom:14px; color:var(--ember-2); }
.contact-cta h2{ max-width:18ch; margin:0; font-size:clamp(30px,4vw,54px); font-weight:300; line-height:1.08; }
.contact-cta__actions{ display:flex; flex-direction:column; align-items:flex-end; gap:14px; }
.contact-cta__phone{ font-size:15px; color:var(--on-dark-soft); }
.contact-cta__phone:hover{ color:#fff; }

.footer{
  background:var(--ink);
  background-image:linear-gradient(rgba(36,46,55,.96),rgba(36,46,55,.96)),url('/assets/brand/texture-black-sand.jpg');
  background-size:cover;
}
.footer .footer-logo::before{ width:142px !important; height:42px !important; }
.footer .soc a{ border-radius:8px; }
.footer .soc a:hover{ background:var(--ember); border-color:var(--ember); }
.footer .fcol a:hover{ color:var(--ember-2); }

.mobile-menu{ background:var(--ink); }
.mobile-menu .m-link--group{ padding-bottom:10px; border-bottom:0; color:var(--ember-2); }
.mobile-menu .m-link--group::after{ content:""; }
.mobile-menu .m-link--sub{
  padding:10px 0 10px 22px;
  font-family:var(--font-ui);
  font-size:17px;
  color:var(--on-dark-soft);
}
.mobile-menu .m-link--sub::after{ font-size:15px; }
.mobile-menu .m-link--secondary{ font-size:clamp(20px,5vw,25px); color:var(--on-dark-soft); }

.booking-mobile-dock{ background:rgba(36,46,55,.96); }
.booking-mobile-main{ background:var(--ember); color:#fff; }

@media(max-width:1180px){
  .nav-item{ display:none; }
}
@media(max-width:1040px){
  .why-grid{ grid-template-columns:repeat(2,1fr); }
  .why{ border-bottom:1px solid rgba(255,255,255,.13); }
  .why:nth-child(2n){ border-right:0; }
  .why:last-child{ grid-column:1 / -1; border-bottom:0; }
}
@media(max-width:760px){
  .hero .booking-widget{ justify-self:stretch; }
  .contact-cta__inner{ grid-template-columns:1fr; align-items:start; gap:28px; }
  .contact-cta__actions{ align-items:flex-start; }
}
@media(max-width:560px){
  .nav-logo::before{ width:102px !important; height:30px !important; }
  .hero h1{ font-size:clamp(37px,12vw,52px); }
  .hero .booking-form{ padding:20px 18px; }
  .figures{ border-radius:12px; }
  .why-grid{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; border:0; scrollbar-width:none; }
  .why-grid::-webkit-scrollbar{ display:none; }
  .why{ flex:0 0 84vw; min-height:300px; border:1px solid rgba(255,255,255,.13) !important; border-radius:10px; scroll-snap-align:start; }
  .why:last-child{ grid-column:auto; }
  .contact-cta__actions,.contact-cta__actions .btn{ width:100%; }
  .contact-cta__actions .btn{ justify-content:center; }
}
