/* Altyn Bosaga Syýahat — "golden threshold": navy + gold from the AB logo, lagoon and sunset as the juicy accents.
   Fonts: Playfair Display (display, close to the logo's high-contrast AB) + Onest (text). */
:root {
  --navy: #0A3560; --navy-2: #0C79BC; --ink: #0E2036; --muted: #5A6478;
  --gold: #C9A14A; --gold-2: #E9CC85; --gold-ink: #9A7020;
  --sand: #FBF7EF; --sand-2: #F3EADA; --line: #E6DCC8;
  --sea: #0C79BC; --sea-2: #E6F2FA; --sun: #EF5B36; --sun-2: #D9481F;
  --r: 16px; --arch: 26px;
  --shadow: 0 18px 40px -18px rgba(11, 35, 80, .35);
  /* Turkmen carpet border (2026-11-11): Tekke gols on a thread, saw-tooth edges, stepped diamonds between them */
  --band: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='24' viewBox='0 0 48 24'%3E%3Cpath fill-rule='evenodd' d='M0 0h48v1H0z M0 23h48v1H0z M0 1 6 1 3 3.4z M0 23 6 23 3 20.6z M6 1 12 1 9 3.4z M6 23 12 23 9 20.6z M12 1 18 1 15 3.4z M12 23 18 23 15 20.6z M18 1 24 1 21 3.4z M18 23 24 23 21 20.6z M24 1 30 1 27 3.4z M24 23 30 23 27 20.6z M30 1 36 1 33 3.4z M30 23 36 23 33 20.6z M36 1 42 1 39 3.4z M36 23 42 23 39 20.6z M42 1 48 1 45 3.4z M42 23 48 23 45 20.6z M0 11.5h10.6v1H0z M37.4 11.5H48v1H37.4z M14.8 4.8 33.2 4.8 37.4 9 37.4 15 33.2 19.2 14.8 19.2 10.6 15 10.6 9z M15.8 6.2 32.2 6.2 35.8 9.8 35.8 14.2 32.2 17.8 15.8 17.8 12.2 14.2 12.2 9.8z M16.6 7.2 31.4 7.2 34.6 10.4 34.6 13.6 31.4 16.8 16.6 16.8 13.4 13.6 13.4 10.4z M13.4 11.55h21.2v.9H13.4z M23.55 7.2h.9v9.6h-.9z M24 8.6 28.2 12 24 15.4 19.8 12z M24 10.2 26.2 12 24 13.8 21.8 12z M18.2 8.3 19.8 9.4 18.2 10.5 16.6 9.4z M29.8 8.3 31.4 9.4 29.8 10.5 28.2 9.4z M18.2 13.5 19.8 14.6 18.2 15.7 16.6 14.6z M29.8 13.5 31.4 14.6 29.8 15.7 28.2 14.6z M21.4 4.8h5.2v-1h-1.3v-.9h-2.6v.9h-1.3z M21.4 19.2h5.2v1h-1.3v.9h-2.6v-.9h-1.3z M0 6.4 5.6 12 0 17.6z M0 9.2 2.8 12 0 14.8z M48 6.4 42.4 12 48 17.6z M48 9.2 45.2 12 48 14.8z'/%3E%3C/svg%3E");
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 16px/1.6 Onest, system-ui, sans-serif; color: var(--ink); background: var(--sand); overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
.wrap { width: min(1200px, 100% - 40px); margin-inline: auto; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--navy); color: #fff; padding: 8px 14px; border-radius: 8px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--sea); outline-offset: 3px; }

/* type */
.h1, .h2, .h3, .brand b, .dest__name, .poster__dest, .tcard__name, .next__n { font-family: "Playfair Display", Georgia, serif; }
.h1 { font-weight: 700; font-size: clamp(2.3rem, 4.4vw, 4rem); line-height: 1.06; letter-spacing: -.01em; color: var(--navy); margin: 0 0 20px; }
.h1 em, .h2 em { font-style: italic; font-weight: 600; color: var(--gold-ink); }
.h2 { font-weight: 700; font-size: clamp(1.9rem, 3.2vw, 2.8rem); line-height: 1.1; color: var(--navy); margin: 0; }
.h3 { font-weight: 700; font-size: 1.45rem; line-height: 1.2; color: var(--navy); margin: 0 0 14px; }
.eyebrow { font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sea); margin: 0 0 14px; display: flex; align-items: center; gap: 10px; }
.eyebrow::before { content: ""; width: 28px; height: 1.5px; background: var(--gold); }
.lead { color: var(--muted); max-width: 60ch; margin: 10px 0 0; }
.muted { color: var(--muted); }
svg { width: 1.1em; height: 1.1em; flex: none; }

/* buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 50px; padding: 0 24px; border-radius: 999px; border: 0; font-weight: 600; font-size: .98rem; text-decoration: none; cursor: pointer; transition: transform .2s, background .2s, box-shadow .2s; white-space: nowrap; }
.btn--sun { background: var(--sun); color: #fff; box-shadow: 0 10px 24px -10px rgba(239, 91, 54, .7); }
.btn--sun:hover { background: var(--sun-2); transform: translateY(-1px); }
.btn--line { background: transparent; color: var(--navy); box-shadow: inset 0 0 0 1.5px var(--navy); }
.btn--line:hover { background: var(--navy); color: #fff; }
.btn--sm { min-height: 40px; padding: 0 18px; font-size: .9rem; }
.btn--wide { width: 100%; }

/* threshold band */
/* Turkmen embroidery border from the sample Rasul sent (2026-11-11): white removed, one repeat tiled, with its hanging tassels.
   On navy the black stitches turn gold (ornament-hang-light.png) so the pattern stays visible. */
.band { height: 72px; background: url("/static/img/ornament-hang.png") left top / auto 100%; background-repeat: round no-repeat; }   /* round: whole repeats only, no motif cut at the ends */
.poster .band, .dest__i--type .band, .sec--dest .band { background-image: url("/static/img/ornament-hang-light.png"); }
.band--gold { color: var(--gold); }
.band--thin { height: 46px; }

/* header */
.top { position: sticky; top: 0; z-index: 50; background: rgba(251, 247, 239, .88); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); transition: box-shadow .3s; }
.top.is-scrolled { box-shadow: 0 1px 0 var(--line), 0 10px 30px -20px rgba(11, 35, 80, .4); }
.top__in { display: flex; align-items: center; gap: 28px; height: 74px; }
.brand { display: flex; align-items: center; text-decoration: none; flex: none; }
.brand img { height: 52px; width: auto; display: block; }
.foot .brand img { height: 54px; }
.brand__ab { font: 700 1.9rem/1 "Playfair Display", serif; letter-spacing: -.06em; padding-right: 10px; border-right: 1.5px solid var(--gold); }
.brand__txt { display: grid; line-height: 1.05; }
.brand__txt b { font-size: 1.05rem; font-weight: 700; letter-spacing: .02em; }
.brand__txt small { font-size: .64rem; letter-spacing: .32em; text-transform: uppercase; color: var(--gold-ink); }
.brand--light { color: #fff; } .brand--light small { color: var(--gold-2); }
.nav { display: flex; gap: 26px; margin-left: auto; }
.nav a { text-decoration: none; font-weight: 500; font-size: .95rem; position: relative; padding: 6px 0; }
.nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1.5px; background: var(--gold); transition: right .25s; }
.nav a:hover::after { right: 0; }
.nav__wa { display: none; }
.top__tools { display: flex; align-items: center; gap: 14px; }
.langs { display: flex; gap: 2px; padding: 3px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line); }
.langs a { font-weight: 600; font-size: .78rem; text-decoration: none; padding: 6px 9px; border-radius: 999px; color: var(--muted); }
.langs a[aria-current] { background: var(--navy); color: #fff; }
.lang { font-weight: 600; font-size: .85rem; text-decoration: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line); }
.lang:hover { box-shadow: inset 0 0 0 1.5px var(--gold); }
.burger { display: none; width: 42px; height: 42px; border: 0; background: var(--navy); border-radius: 50%; cursor: pointer; position: relative; }
.burger span { position: absolute; left: 12px; right: 12px; height: 2px; background: #fff; transition: transform .25s; }
.burger span:first-child { top: 16px; } .burger span:last-child { top: 24px; }
.burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

/* hero */
.hero { position: relative; padding: 36px 0 84px; overflow: hidden;
  background: radial-gradient(60% 70% at 85% 30%, rgba(10, 143, 156, .14), transparent 70%), radial-gradient(40% 50% at 10% 90%, rgba(201, 161, 74, .16), transparent 70%); }
.hero__in { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.hero__lead { font-size: 1.12rem; color: #334058; max-width: 52ch; margin: 0 0 30px; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }
/* three promises under the hero text: a white card, icon over a bold line (client's reference, 2026-11-11) */
.feats { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 40px 0 0; padding: 22px 12px; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 10px 30px -22px rgba(11, 35, 80, .35); }
.feats li { display: grid; justify-items: center; align-content: start; gap: 6px; text-align: center; padding: 0 6px; }
.feats svg { width: 30px; height: 30px; color: var(--sea); margin-bottom: 4px; }
.feats b { font-weight: 600; font-size: .98rem; line-height: 1.25; color: var(--ink); }
.feats span { font-size: .8rem; line-height: 1.35; color: var(--muted); }
@media (max-width: 560px) {
  .feats { gap: 4px; padding: 18px 4px; border-radius: 18px; margin-top: 30px; }
  .feats li { min-width: 0; padding: 0 3px; gap: 4px; }
  .feats svg { width: 26px; height: 26px; }
  .feats b { font-size: .78rem; }
  .feats span { font-size: .7rem; }
  .docs ul { grid-template-columns: 1fr; }
}
.docs { margin: 22px 0 6px; padding: 18px 22px; background: #fff; border-radius: var(--r); border-left: 3px solid var(--gold); }
.docs h3 { margin: 0 0 10px; font-size: 1.05rem; color: var(--navy); }
.docs ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.docs li { display: flex; align-items: center; gap: 8px; font-size: .95rem; color: #334058; }
.docs svg { flex: none; width: 18px; height: 18px; color: var(--sea); }
.hero__facts { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 44px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); }
.hero__facts li { display: grid; gap: 4px; font-size: .88rem; color: var(--muted); line-height: 1.35; }
.hero__facts b { font: 700 1.5rem/1 "Playfair Display", serif; color: var(--navy); }
.hero__facts b svg { width: 26px; height: 26px; color: var(--sea); }
.hero__door { position: relative; justify-self: center; width: min(560px, 100%); padding: 18px 18px 0 0; }
.arch { position: relative; aspect-ratio: 5 / 4; border-radius: var(--arch); overflow: hidden; background: var(--navy); box-shadow: var(--shadow); z-index: 1; }
.arch figure { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.4s ease; }
.arch figure.is-on { opacity: 1; }
.arch img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 7s ease-out; }
.arch figure.is-on img { transform: scale(1); }
.arch figcaption { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); padding: 7px 16px; border-radius: 999px; background: rgba(11, 35, 80, .72); backdrop-filter: blur(6px); color: #fff; font: 600 .78rem/1 Onest, sans-serif; letter-spacing: .18em; text-transform: uppercase; white-space: nowrap; }
.arch__line { position: absolute; top: 0; right: 0; left: 18px; bottom: 18px; border: 1.5px solid var(--gold); border-radius: var(--arch); }
.hero__sill { position: relative; height: 84px; margin: 14px -30px 0 -12px; z-index: 2; }
.next { position: absolute; z-index: 3; left: -46px; bottom: 54px; width: 250px; display: grid; gap: 2px; padding: 16px 18px; background: #fff; border-radius: 14px; text-decoration: none; box-shadow: var(--shadow); border-left: 3px solid var(--sun); transition: transform .2s; }
.next:hover { transform: translateY(-3px); }
.next__k { font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sea); }
.next__n { font-size: 1.12rem; font-weight: 700; color: var(--navy); line-height: 1.2; }
.next__m { font-size: .86rem; color: var(--muted); } .next__m b { color: var(--sun-2); }

/* sections */
.sec { padding: 96px 0; }
.shead { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 40px; }
.more { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--navy); text-decoration: none; white-space: nowrap; border-bottom: 1.5px solid var(--gold); padding-bottom: 3px; }

/* tour cards */
.sec--tours { background: #fff; }
.rail { list-style: none; margin: 0 -20px; padding: 6px 20px 18px; display: grid; grid-auto-flow: column; grid-auto-columns: 292px; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--gold) transparent; }
.rail > li { scroll-snap-align: start; }
.grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 34px 24px; }
.tcard { display: flex; flex-direction: column; }
.tcard__pic { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 20px; overflow: hidden; background: var(--navy); }
.tcard__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.tcard:hover .tcard__pic img { transform: scale(1.05); }
.tcard__dates { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: rgba(11, 35, 80, .78); backdrop-filter: blur(6px); color: #fff; font-size: .82rem; font-weight: 600; }
.tcard__dates svg { color: var(--gold-2); }
.tag { position: absolute; top: 18%; right: 0; padding: 6px 12px 6px 14px; border-radius: 999px 0 0 999px; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: var(--sun); }
.tag--new { background: var(--sea); } .tag--sold { background: #7a8191; }
.pd__info > .tag { position: static; display: inline-block; border-radius: 999px; margin-bottom: 14px; }
.tcard__body { padding: 16px 4px 0; display: flex; flex-direction: column; flex: 1; }
.tcard__dest { margin: 0; font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sea); }
.tcard__name { font-size: 1.28rem; font-weight: 700; line-height: 1.22; margin: 4px 0 6px; color: var(--navy); }
.tcard__name a { text-decoration: none; }
.tcard__name a::after { content: ""; position: absolute; inset: 0; } .tcard { position: relative; }
.tcard__meta { margin: 0 0 12px; font-size: .88rem; color: var(--muted); line-height: 1.45; }
.tcard__price { margin: auto 0 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.tcard__price b { font-size: 1.32rem; color: var(--sun-2); font-weight: 700; }
.tcard__price span { font-size: .8rem; color: var(--muted); }

/* poster for tours without a clean photo */
.poster { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; padding: 30px 18px;
  background: radial-gradient(90% 60% at 50% 0%, rgba(233, 204, 133, .22), transparent 70%), linear-gradient(170deg, var(--navy-2), var(--navy) 70%); }
.poster::before { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(233, 204, 133, .45); border-radius: 150px 150px 10px 10px; }
.poster__dest { position: relative; font-size: 2rem; font-style: italic; font-weight: 600; color: var(--gold-2); text-align: center; line-height: 1.1; }
.poster .band { position: relative; width: 60%; }

/* destinations */
.sec--dest { background: var(--navy); color: #fff; position: relative; }
.sec--dest .h2 { color: #fff; } .sec--dest .h2 em { color: var(--gold-2); } .sec--dest .lead { color: #b9c3d9; }
.dest { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 210px; gap: 14px; }
.dest__i a { position: relative; display: flex; flex-direction: column; justify-content: end; height: 100%; padding: 18px 20px; border-radius: var(--r); overflow: hidden; text-decoration: none; isolation: isolate; }
.dest__i img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .7s ease; }
.dest__i a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 40%, rgba(6, 18, 44, .82)); }
.dest__i a:hover img { transform: scale(1.06); }
.dest__i--big { grid-column: span 2; grid-row: span 2; }
.dest__i--big a { border-radius: var(--arch); }
.dest__i--big .dest__name { font-size: 2.4rem; }
.dest__i--type a { background: var(--navy-2); box-shadow: inset 0 0 0 1px rgba(233, 204, 133, .35); justify-content: space-between; }
.dest__i--type a::before { display: none; }
.dest__i--type .band { width: 100%; opacity: .7; }
.dest__name { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.dest__i--type .dest__name { font-style: italic; color: var(--gold-2); }
.dest__meta { font-size: .86rem; color: #d7deec; margin-top: 4px; }

/* visas */
.sec--visa { background: var(--sea-2); }
.visa { display: grid; grid-template-columns: 1fr 1fr 1.05fr; gap: 20px; }
.visa__card { background: #fff; border-radius: var(--r); padding: 28px; box-shadow: 0 1px 0 rgba(11, 35, 80, .06); }
.visa__card h3 { font: 700 1.5rem/1.15 "Playfair Display", serif; color: var(--navy); margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1.5px solid var(--gold); }
.visa__card dl { margin: 0; display: grid; gap: 14px; }
.visa__card dl div { display: flex; align-items: baseline; gap: 10px; }
.visa__card dt { font-size: .92rem; color: #334058; flex: 1; display: flex; gap: 10px; }
.visa__card dt::after { content: ""; flex: 1; border-bottom: 1.5px dotted #c9d3de; transform: translateY(-4px); }
.visa__card dd { margin: 0; font-weight: 700; color: var(--navy); white-space: nowrap; }
.visa__card--docs { background: var(--navy); color: #e4e9f4; display: flex; flex-direction: column; }
.visa__card--docs h3 { color: #fff; }
.visa__card--docs ul { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 12px; font-size: .92rem; }
.visa__card--docs li { display: flex; gap: 10px; line-height: 1.45; }
.visa__card--docs li svg { color: var(--gold-2); margin-top: 3px; }
.visa__card--docs .btn { margin-top: auto; align-self: flex-start; }
.visa__more { margin: 22px 0 0; color: #3c5662; font-size: .95rem; }

/* about + gallery */
.about { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; margin-bottom: 80px; }
.about__lead { font-size: 1.16rem !important; color: var(--navy) !important; line-height: 1.55; }
.about__cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.about__cards li { position: relative; padding: 26px 22px 22px; background: #fff; border-radius: var(--r); box-shadow: 0 14px 34px -24px rgba(11, 35, 80, .45); border-top: 3px solid var(--gold); }
.about__cards li:nth-child(2), .about__cards li:nth-child(4) { margin-top: 26px; margin-bottom: -26px; }   /* margin, not transform: the rise animation owns transform */
.about__ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--sea-2); color: var(--sea); margin-bottom: 14px; }
.about__ic svg { width: 24px; height: 24px; }
.about__cards h3 { margin: 0 0 6px; font: 700 1.12rem/1.25 "Playfair Display", serif; color: var(--navy); }
.about__cards p { margin: 0; color: var(--muted); font-size: .93rem; line-height: 1.5; }
.about__pics { position: relative; width: min(440px, 100%); justify-self: center; }
.about__pics figure { margin: 0; overflow: hidden; }
.about__p1 { aspect-ratio: 4 / 5; border-radius: var(--arch); box-shadow: var(--shadow); }
.about__p2 { position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 3 / 4; border-radius: var(--r); border: 6px solid var(--sand); box-shadow: var(--shadow); }
.about__pics img { width: 100%; height: 100%; object-fit: cover; }
.about__copy p { color: #334058; font-size: 1.06rem; }
.about__copy .h2 { margin-bottom: 18px; }
.about__office { margin-top: 26px; padding: 18px 22px; border-left: 3px solid var(--gold); background: #fff; border-radius: 0 var(--r) var(--r) 0; display: flex; gap: 14px; align-items: flex-start; }
.about__office > svg { flex: none; width: 24px; height: 24px; color: var(--gold-ink); margin-top: 2px; }
.about__office div { display: grid; gap: 4px; }
.about__office b { color: var(--navy); } .about__office span { color: var(--muted); font-size: .93rem; }
.gal { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gal li { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; }
.gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.gal li:hover img { transform: scale(1.05); }
.gal span { position: absolute; left: 10px; bottom: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(11, 35, 80, .7); color: #fff; font-size: .78rem; }

/* contacts + form */
.sec--contacts { background: #fff; }
.contacts { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
.contacts dl { margin: 30px 0 0; display: grid; gap: 22px; }
.contacts dt { display: flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sea); margin-bottom: 4px; }
.contacts dd { margin: 0; font-size: 1.05rem; line-height: 1.6; }
.contacts dd a { text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.contacts dd a:hover { color: var(--sun-2); }
.contacts__form { background: var(--sand); border-radius: var(--r); padding: 32px; border-top: 4px solid var(--gold); }
.req__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0 18px; }
.req label { display: grid; gap: 6px; font-size: .84rem; font-weight: 500; color: #334058; }
.req input, .req select { height: 48px; padding: 0 14px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; font-size: 1rem; width: 100%; min-width: 0; }
.req input:focus, .req select:focus { border-color: var(--sea); outline: none; box-shadow: 0 0 0 3px rgba(10, 143, 156, .15); }
.req input[aria-invalid="true"] { border-color: var(--sun); }
.req__tour { margin: 12px 0 0; padding: 10px 14px; background: var(--sea-2); border-radius: 10px; font-weight: 600; color: var(--navy); }
.err { color: var(--sun-2); font-size: .9rem; margin: -6px 0 12px; }
.req__done { text-align: center; } .req__done p { font-weight: 600; color: var(--navy); font-size: 1.05rem; }
.req.is-done .req__grid, .req.is-done > .btn, .req.is-done .err { display: none; }

/* dialog */
.dlg { width: min(620px, 100% - 24px); border: 0; border-radius: 22px; padding: 34px; background: var(--sand); color: var(--ink); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .5); }
.dlg::backdrop { background: rgba(6, 18, 44, .6); backdrop-filter: blur(4px); }
.dlg h2 { font: 700 1.8rem/1.15 "Playfair Display", serif; color: var(--navy); margin: 0 0 6px; }
.x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; font-size: 1.5rem; cursor: pointer; line-height: 1; }

/* catalog / product */
.sec--page { padding: 40px 0 90px; }
.crumbs { font-size: .86rem; color: var(--muted); margin: 0 0 18px; } .crumbs a { text-decoration: none; } .crumbs a:hover { color: var(--sea); }
.h1--page { font-size: clamp(2.2rem, 4vw, 3.4rem); margin: 0; }
.chips { display: flex; gap: 8px; margin: 28px 0 36px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
.chip { flex: none; padding: 9px 16px; border-radius: 999px; text-decoration: none; font-size: .92rem; font-weight: 500; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); }
.chip.is-on { background: var(--navy); color: #fff; box-shadow: none; }
.empty { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; color: var(--muted); }
.pd { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: start; }
.pd__gal { position: sticky; top: 96px; min-width: 0; }
.pd__main { position: relative; aspect-ratio: 4 / 3; border-radius: var(--arch); overflow: hidden; background: var(--navy); box-shadow: var(--shadow); }
.pd__main figure { position: absolute; inset: 0; margin: 0; overflow: hidden; opacity: 0; transition: opacity .5s; }
.pd__main figure.is-on { opacity: 1; }
.pd__main img { width: 100%; height: 100%; object-fit: cover; }
.pd__thumbs { display: flex; gap: 8px; margin-top: 12px; overflow-x: auto; }
.pd__thumbs button { flex: none; width: 72px; height: 72px; padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; cursor: pointer; background: none; opacity: .65; }
.pd__thumbs button.is-on { border-color: var(--gold); opacity: 1; }
.pd__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.pd__gal--poster { position: relative; aspect-ratio: 4 / 3; border-radius: var(--arch); overflow: hidden; }
.pd__gal--poster .poster__dest { font-size: 3rem; }
.h1--pd { font-size: clamp(2rem, 3.4vw, 2.9rem); margin-bottom: 14px; }
.pd__dates { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--navy); background: var(--sea-2); padding: 8px 14px; border-radius: 999px; margin: 0 0 12px; }
.pd__meta { color: #334058; font-size: 1.05rem; margin: 0 0 22px; }
.pd__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 20px 0; border-block: 1px solid var(--line); }
.pd__price b { font: 700 2.2rem/1 "Playfair Display", serif; color: var(--sun-2); }
.pd__price span { color: var(--muted); }
.pd__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 12px; }
.pd__note { font-size: .86rem; color: var(--muted); margin: 0; }
.pd__text { margin-top: 34px; padding: 28px; background: #fff; border-radius: var(--r); }
.pd__text p { margin: 0 0 12px; color: #334058; }
.ticks { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 9px; }
.ticks li { display: flex; gap: 10px; line-height: 1.45; }
.ticks svg { color: var(--sea); margin-top: 3px; }
.pd__rel { margin: 80px 0 26px; font-size: 1.9rem; }
.nf { text-align: center; } .nf .lead { margin: 14px auto 26px; }

/* footer, fab */
.foot { background: var(--navy); color: #c4cde0; padding: 0 0 40px; }
/* footer border in the original red of Rasul's sample, sitting on the seam between the page and the navy footer (diamonds across the line, tassels into the navy) */
.foot > .band { position: relative; z-index: 2; top: -25px; height: 76px; margin: 0 0 6px; }
.foot__in { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 30px; font-size: .92rem; }
.foot__in p { margin: 0; } .foot__in > div p { margin-top: 14px; }
.foot a { text-decoration: none; } .foot a:hover { color: var(--gold-2); }
.foot__small { color: #8090b0; font-size: .82rem; }
.fab { position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #25D366; color: #fff; box-shadow: 0 12px 28px -10px rgba(0, 0, 0, .45); transition: transform .2s; }
.fab:hover { transform: scale(1.06); } .fab svg { width: 28px; height: 28px; }

/* journey: the map pins and the route draws stop by stop (site.js) */
.journey { background: radial-gradient(70% 60% at 80% 20%, rgba(239, 91, 54, .16), transparent 70%), radial-gradient(60% 60% at 0 100%, rgba(10, 143, 156, .18), transparent 70%), #072847; color: #fff; overflow: hidden; }
.journey__pin { min-height: 100vh; display: flex; align-items: center; padding: 90px 0 60px; }
.journey__in { display: grid; grid-template-columns: 1.25fr .75fr; gap: 48px; align-items: center; }
.eyebrow--gold { color: var(--gold-2); } .eyebrow--gold::before { background: var(--gold-2); }
.h2--light { color: #fff; } .h2--light em, .sec--abroad .h2 em { color: var(--gold-2); }
.journey__lead { color: #b9c3d9; margin: 12px 0 18px; max-width: 52ch; }
.journey__stops { list-style: none; margin: 0; padding: 0; position: relative; aspect-ratio: 3 / 4.2; }
.jstop { position: absolute; inset: 0; display: flex; flex-direction: column; border-radius: var(--arch); overflow: hidden; background: var(--navy); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7); opacity: 0; visibility: hidden; }
.jstop.is-on { opacity: 1; visibility: visible; }
.jstop figure { margin: 0; flex: 1; overflow: hidden; }
.jstop img { width: 100%; height: 100%; object-fit: cover; }
.jstop div { padding: 18px 22px 22px; background: linear-gradient(180deg, var(--navy-2), var(--navy)); border-top: 2px solid var(--gold); }
.jstop span { font-size: .74rem; letter-spacing: .2em; color: var(--gold-2); font-weight: 600; }
.jstop h3 { font: 700 1.7rem/1.1 "Playfair Display", serif; margin: 6px 0 6px; }
.jstop p { margin: 0; color: #c9d2e6; font-size: .95rem; line-height: 1.45; }
.js-motion .jstop { transition: none; }

/* schematic map of Turkmenistan */
.tmap { width: 100%; height: auto; display: block; border-radius: 14px; }
.tmap__water { fill: #0f2a4a; }
.tmap__nb { fill: #08203d; stroke: rgba(255, 255, 255, .2); stroke-width: 1.2; }
.tmap__tm { fill: #0e4a80; }
.tmap__vel { fill: none; stroke: rgba(233, 204, 133, .35); stroke-width: 1.3; stroke-dasharray: 5 5; }
.tmap__line { fill: none; stroke: var(--gold-2); stroke-width: 2.2; stroke-linejoin: round; opacity: .9; }
.tmap__sea { fill: rgba(140, 220, 228, .75); font: italic 500 17px Onest, sans-serif; letter-spacing: .08em; }
.tmap__ctry { fill: rgba(255, 255, 255, .38); font: 600 15px Onest, sans-serif; letter-spacing: .3em; }
.tmap__vlbl { fill: rgba(233, 204, 133, .62); font: 600 13px Onest, sans-serif; letter-spacing: .28em; text-transform: uppercase; }
.tmap__route { fill: none; stroke: var(--sun); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; filter: drop-shadow(0 0 6px rgba(255, 120, 60, .85)); }
.tmap .pl circle { fill: var(--gold-2); stroke: #072847; stroke-width: 3; }
.tmap .pl rect { fill: var(--sun); stroke: #072847; stroke-width: 3; }
.tmap .pl text { fill: rgba(255, 255, 255, .92); font: 500 17px Onest, sans-serif; paint-order: stroke; stroke: #072847; stroke-width: 5px; }
.tmap .pl--border text { fill: var(--gold-2); }
.tmap .pl:not(.pl--on) { opacity: .45; }
.tmap .pl.is-hit circle { fill: var(--sun); r: 9; }
.mapbox { background: #072847; border-radius: var(--r); padding: 16px; margin-top: 8px; }
.mapbox__legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 4px 0; font-size: .82rem; color: #b9c3d9; align-items: center; }
.mapbox__legend span { display: inline-flex; align-items: center; gap: 8px; } .mapbox__legend em { margin-left: auto; font-style: normal; opacity: .75; }
.lg-b { width: 10px; height: 10px; background: var(--sun); transform: rotate(45deg); display: inline-block; }
.lg-s { width: 11px; height: 11px; background: var(--gold-2); border-radius: 50%; display: inline-block; }

/* tours in Turkmenistan */
.grid--tours { grid-template-columns: repeat(3, 1fr); }
.tcard__days { position: absolute; left: 14px; bottom: 12px; color: #fff; display: flex; align-items: baseline; gap: 6px; font-size: .85rem; font-weight: 600; text-shadow: 0 2px 10px rgba(0, 0, 0, .5); }
.tcard__days b { font: 700 2.6rem/1 "Playfair Display", serif; }
.tcard__pic:has(.tcard__days)::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(6, 18, 44, .6)); }
.tcard__days { z-index: 1; }
.tag--hot { background: var(--sun); } .tag--exc { background: var(--sea); position: static; display: inline-block; border-radius: 999px; margin-bottom: 14px; }

/* excursions: numbered ticket rows */
.sec--exc { background: #fff; }
.excs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; counter-reset: exc; }
.exc a { display: grid; grid-template-columns: 42px 96px 1fr 36px; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: background .25s; }
.exc a:hover { background: var(--sand); }
.exc__n { font: 700 1.3rem/1 "Playfair Display", serif; color: var(--gold-ink); }
.exc__pic { position: relative; width: 96px; height: 72px; border-radius: 12px; overflow: hidden; background: var(--navy); }
.exc__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.exc a:hover .exc__pic img { transform: scale(1.08); }
.exc__txt { display: grid; gap: 3px; min-width: 0; }
.exc__txt b { font: 700 1.15rem/1.2 "Playfair Display", serif; color: var(--navy); }
.exc__txt small { color: var(--muted); font-size: .85rem; line-height: 1.4; }
.exc__price { font-weight: 700; color: var(--sun-2); font-size: .92rem; white-space: nowrap; }
.exc__go { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--sand-2); color: var(--navy); transition: background .2s, color .2s; }
.exc a:hover .exc__go { background: var(--sun); color: #fff; }

/* LOI steps */
.sec--loi { background: var(--sea-2); }
.loi { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: start; }
.loi__copy .lead { margin: 14px 0 26px; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.steps li { display: grid; grid-template-columns: 56px 1fr; gap: 2px 18px; padding: 22px 24px; background: #fff; border-radius: var(--r); }
.steps b { grid-row: span 2; width: 52px; height: 52px; border-radius: 26px 26px 8px 8px; display: grid; place-items: center; font: 700 1.5rem/1 "Playfair Display", serif; color: #fff; background: var(--navy); border-bottom: 3px solid var(--gold); }
.steps h3 { margin: 0; align-self: end; color: var(--navy); font-size: 1.1rem; }
.steps p { margin: 0; color: var(--muted); font-size: .94rem; }

/* team */
.team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 30px 22px; }
.member { text-align: center; }
.member__pic { margin: 0 auto 14px; width: 100%; max-width: 240px; aspect-ratio: 4 / 5; border-radius: var(--arch); overflow: hidden; background: var(--navy); display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--gold); }
.member__pic img { width: 100%; height: 100%; object-fit: cover; }
.member__pic span { font: 700 3rem/1 "Playfair Display", serif; color: var(--gold-2); }
.member h3 { font: 700 1.3rem/1.2 "Playfair Display", serif; color: var(--navy); margin: 0 0 4px; }
.member__role { margin: 0 0 6px; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sea); }
.member__text { margin: 0; color: var(--muted); font-size: .92rem; }
/* team of two or three: heading on the left, staggered arch portraits with a name card on the right */
.sec--team { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--sand) 0%, var(--sand-2) 100%); }
.crew { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: center; }
.crew__copy .lead { margin: 16px 0 0; }
.crew__band { width: 264px; max-width: 100%; margin: 30px 0; }
.crew__copy .btn svg { width: 20px; height: 20px; }
.crew__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px; align-items: start; }
.crew__list--3 { grid-template-columns: repeat(3, 1fr); gap: 22px; }
.crew__list--1 { grid-template-columns: minmax(0, 340px); justify-content: center; }
.crew__m:nth-child(2) { margin-top: 70px; }   /* margin, not transform: the rise animation owns transform */
.crew__pic { position: relative; margin: 0; }
.crew__line { position: absolute; inset: -14px 14px 14px -14px; border: 1.5px solid var(--gold); border-radius: var(--arch); }
.crew__img { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 5.2; border-radius: var(--arch); overflow: hidden; background: var(--navy); box-shadow: var(--shadow); }
.crew__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; transition: transform .8s ease; }
.crew__m:hover .crew__img img { transform: scale(1.04); }
.crew__img b { font: 700 3.4rem/1 "Playfair Display", serif; color: var(--gold-2); }
.crew__card { position: relative; z-index: 2; margin: -46px 18px 0; padding: 16px 18px 15px; background: #fff; border-radius: 14px; box-shadow: var(--shadow); border-bottom: 3px solid var(--gold); text-align: center; }
.crew__card small { display: block; font: italic 600 .95rem/1 "Playfair Display", serif; color: var(--gold-ink); margin-bottom: 6px; }
.crew__card h3 { font: 700 1.22rem/1.2 "Playfair Display", serif; color: var(--navy); margin: 0 0 6px; }
.crew__card p { margin: 0; font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sea); }
.crew__card .crew__text { margin-top: 8px; font-size: .9rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted); }
@media (max-width: 860px) {
  .crew { grid-template-columns: 1fr; gap: 44px; }
  .crew__m:nth-child(2) { margin-top: 50px; }
}
@media (max-width: 560px) {
  .crew__list { gap: 18px; }
  .crew__list--3 { grid-template-columns: 1fr 1fr; }
  .crew__m:nth-child(2) { margin-top: 40px; }
  .crew__line { inset: -8px 8px 8px -8px; }
  .crew__card { margin: -30px 6px 0; padding: 12px 8px 11px; }
  .crew__card small { font-size: .8rem; margin-bottom: 4px; }
  .crew__card h3 { font-size: .98rem; }
  .crew__card p { font-size: .6rem; letter-spacing: .08em; }
}

/* travel abroad (for Turkmen citizens) */
.sec--abroad { background: var(--navy); color: #fff; }
.sec--abroad .h2 { color: #fff; } .sec--abroad .lead { color: #b9c3d9; }
.h3--light { color: #fff; margin: 46px 0 18px; }
.more--light { color: #fff; }
.sec--abroad .tcard__name, .sec--abroad .tcard__name a { color: #fff; }
.sec--abroad .tcard__dest { color: var(--gold-2); } .sec--abroad .tcard__meta, .sec--abroad .tcard__price span { color: #b9c3d9; }
.sec--abroad .tcard__price b { color: #ff8a65; }
.sec--abroad .rail { scrollbar-color: var(--gold) transparent; }
.visa__card h4 { font: 700 1.5rem/1.15 "Playfair Display", serif; color: var(--navy); margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1.5px solid var(--gold); }
.visa__card--docs { background: var(--navy-2); } .visa__card--docs h4 { color: #fff; }
.sec--abroad .visa__more { color: #b9c3d9; }

.tcard__more { margin: auto 0 0; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .92rem; color: var(--sea); }
.tcard:hover .tcard__more svg { transform: translateX(4px); } .tcard__more svg { transition: transform .2s; }
.excgroup { margin-top: 44px; scroll-margin-top: 90px; } .excgroup .h3 { padding-bottom: 10px; border-bottom: 1.5px solid var(--gold); margin-bottom: 6px; }
.chip small { color: var(--muted); margin-left: 2px; }

/* wide night panorama */
.nightband { position: relative; height: min(66vh, 560px); overflow: hidden; display: flex; align-items: flex-end; background: #071a33; color: #fff; }
.nightband img { position: absolute; left: 0; top: -6%; width: 100%; height: 112%; object-fit: cover; object-position: 50% 40%; }
.nightband::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 26, 51, .88), rgba(7, 26, 51, .5) 42%, rgba(7, 26, 51, 0) 72%), linear-gradient(180deg, rgba(7, 26, 51, 0) 55%, rgba(7, 26, 51, .55)); }
@media (max-width: 760px) { .nightband::after { background: linear-gradient(180deg, rgba(7, 26, 51, .1) 25%, rgba(7, 26, 51, .88) 75%); } }
.nightband__in { position: relative; z-index: 1; padding-bottom: 56px; }
.nightband p { max-width: 52ch; color: #dbe6f3; margin: 12px 0 22px; font-size: 1.08rem; }

.incl.incl--one { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
.cat { margin-top: 34px; }

/* tour page body */
.pd__body { max-width: 860px; margin-top: 56px; }
.pd__body p { color: #334058; }
.pd__h { font-size: 1.7rem; margin: 40px 0 18px; }
.h4 { font: 700 1.2rem/1.2 "Playfair Display", serif; color: var(--navy); margin: 0 0 12px; }
.days { list-style: none; margin: 0; padding: 0; }
.day { display: grid; grid-template-columns: 64px 1fr; gap: 18px; padding-bottom: 22px; position: relative; }
.day::before { content: ""; position: absolute; left: 27px; top: 58px; bottom: 6px; width: 2px; background: repeating-linear-gradient(var(--gold) 0 6px, transparent 6px 12px); }
.day:last-child::before { display: none; }
.day__n { width: 56px; height: 56px; border-radius: 28px 28px 8px 8px; display: grid; place-items: center; background: var(--navy); color: var(--gold-2); font: 700 1.25rem/1 "Playfair Display", serif; }
.day h3 { font: 700 1.3rem/1.2 "Playfair Display", serif; color: var(--navy); margin: .4em 0 .6em; }
.incl { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
.incl > div { background: #fff; border-radius: var(--r); padding: 22px 24px; }
.incl h3 { font: 700 1.2rem/1.2 "Playfair Display", serif; color: var(--navy); margin: 0 0 12px; }
.incl__out .ticks svg { color: var(--sun); }
.credit { font-size: .74rem; color: var(--muted); margin: 10px 0 0; line-height: 1.5; }
.credit a { color: inherit; }
.credits { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.credits li { display: grid; grid-template-columns: 88px 1fr; gap: 12px; align-items: center; font-size: .88rem; }
.credits img { width: 88px; height: 66px; object-fit: cover; border-radius: 8px; }

/* reveal */
.rv { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.rv.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } .rv { opacity: 1; transform: none; } html { scroll-behavior: auto; } }

/* responsive */
@media (max-width: 1080px) {
  .nav { gap: 18px; } .top__tools .btn { display: none; }
  .grid--tours { grid-template-columns: 1fr 1fr; }
  .excs { grid-template-columns: 1fr; }
  .journey__in { grid-template-columns: 1fr .8fr; gap: 28px; }
  .visa { grid-template-columns: 1fr 1fr; } .visa__card--docs { grid-column: span 2; }
  .dest { grid-template-columns: repeat(3, 1fr); }
  .foot__in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .wrap { width: calc(100% - 32px); }
  .top__in { height: 64px; gap: 12px; }
  .brand img { height: 38px; }
  .burger { display: block; }
  .nav { position: fixed; inset: 64px 0 auto 0; flex-direction: column; gap: 0; padding: 8px 16px 20px; background: var(--sand); box-shadow: 0 20px 30px -20px rgba(0, 0, 0, .3); transform: translateY(-120%); visibility: hidden; transition: transform .3s, visibility .3s; }
  .nav.is-open { transform: none; visibility: visible; }
  .nav a { padding: 14px 4px; border-bottom: 1px solid var(--line); font-size: 1.05rem; }
  .nav a::after { display: none; }
  .nav__wa { display: flex; align-items: center; gap: 8px; color: #128C4A; border-bottom: 0 !important; }
  .top__tools { margin-left: auto; }
  .hero { padding: 18px 0 64px; }
  .hero__in { grid-template-columns: 1fr; gap: 30px; }
  .hero__door { order: -1; width: min(400px, 100%); padding: 12px 12px 0 0; }
  .arch { aspect-ratio: 5 / 4; }
  .arch__line { left: 12px; bottom: 12px; }
  .hero__sill { margin: 10px -16px 0 -4px; }
  .next { left: auto; right: -4px; bottom: 34px; width: 220px; padding: 12px 14px; }
  .h1 { font-size: clamp(2.1rem, 9vw, 2.8rem); }
  .hero__lead { font-size: 1.02rem; }
  .hero__cta .btn { flex: 1 1 auto; }
  .hero__facts { grid-template-columns: 1fr; gap: 12px; margin-top: 30px; }
  .hero__facts li { grid-template-columns: 84px 1fr; align-items: center; }
  .hero__facts b { font-size: 1.25rem; white-space: nowrap; }
  .sec { padding: 68px 0; }
  .shead { flex-direction: column; align-items: start; margin-bottom: 28px; }
  .rail { grid-auto-columns: 76%; margin: 0 -16px; padding-inline: 16px; scroll-padding-inline: 16px; }
  .dest { grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; gap: 10px; }
  .dest__i--big { grid-row: span 2; }
  .dest__i--big .dest__name { font-size: 1.9rem; }
  .dest__name { font-size: 1.3rem; }
  .dest__i a { padding: 14px; }
  .visa { grid-template-columns: 1fr; } .visa__card--docs { grid-column: auto; }
  .visa__card { padding: 22px; }
  .about { grid-template-columns: 1fr; gap: 36px; margin-bottom: 56px; }
  .about__cards { gap: 12px; }
  .about__cards li:nth-child(2), .about__cards li:nth-child(4) { margin: 0; }
  .about__cards li { padding: 20px 16px 18px; }
  .about__pics { max-width: 420px; }
  .gal { grid-template-columns: 1fr 1fr; }
  .contacts { grid-template-columns: 1fr; gap: 36px; }
  .contacts__form { padding: 22px; margin-inline: -4px; }
  .req__grid { grid-template-columns: 1fr; }
  .dlg { padding: 26px 20px; }
  .pd { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .pd__gal { position: static; }

  .grid { grid-template-columns: 1fr 1fr; gap: 26px 14px; }
  .grid .tcard__name { font-size: 1.08rem; }
  .grid .tcard__meta { display: none; }
  .grid .tcard__price b { font-size: 1.1rem; }
  .grid .tcard__dates { font-size: .72rem; padding: 5px 9px; left: 8px; bottom: 8px; }
  .grid .poster__dest { font-size: 1.4rem; }
  .foot__in { grid-template-columns: 1fr; }
  .journey__pin { min-height: 0; padding: 64px 0; }
  .journey__in { grid-template-columns: 1fr; }
  .journey__stops { aspect-ratio: auto; display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 0 16px 10px; }
  .jstop { position: relative; inset: auto; opacity: 1; visibility: visible; scroll-snap-align: start; aspect-ratio: 3 / 4.4; }
  .tmap .pl text { font-size: 26px; } .tmap__vlbl { font-size: 19px; } .tmap__ctry { font-size: 19px; }
  .grid--tours { grid-template-columns: 1fr; }
  .grid--tours .tcard__meta { display: block; }

  .exc a { grid-template-columns: 72px 1fr 30px; gap: 12px; }
  .exc__n { display: none; }
  .exc__pic { width: 72px; height: 54px; }
  .exc__go { width: 30px; height: 30px; }
  .loi { grid-template-columns: 1fr; gap: 28px; }
  .steps li { grid-template-columns: 46px 1fr; padding: 18px; gap: 2px 14px; }
  .steps b { width: 44px; height: 44px; font-size: 1.2rem; }
  .team { grid-template-columns: 1fr 1fr; gap: 22px 12px; }
  .langs a { padding: 6px 7px; font-size: .72rem; }
  .day { grid-template-columns: 46px 1fr; gap: 12px; } .day__n { width: 42px; height: 42px; font-size: 1rem; } .day::before { left: 20px; top: 48px; }
  .incl { grid-template-columns: 1fr; }
  .mapbox__legend em { margin-left: 0; }
}
@media (max-width: 400px) {
  .brand img { height: 34px; }
  .lang { width: 34px; height: 34px; }
}
@media (max-width: 860px) {
  .pd__gal--poster { aspect-ratio: 16 / 11; }
  .pd__gal--poster .poster__dest { font-size: 2.2rem; }
}

/* A photo whose shape is far from its frame is shown whole, over a blurred copy of itself (see fit() in lib/views.mjs). */
[data-fit] { isolation: isolate; }
[data-fit]::before { content: ""; position: absolute; inset: -30px; z-index: 0; background: var(--ph) center / cover no-repeat; filter: blur(26px) saturate(1.2) brightness(.85); transform: scale(1.1); }
/* the img is sized to the photo itself (not the frame), so its masked edges are the photo's own edges */
[data-fit] > img { position: absolute; left: 50%; top: 50%; z-index: 1; transform: translate(-50%, -50%); object-fit: fill; }
[data-fit="tall"] > img { height: 100% !important; width: auto !important; max-width: 100%; -webkit-mask: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); mask: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); }
[data-fit="wide"] > img { width: 100% !important; height: auto !important; max-height: 100%; -webkit-mask: linear-gradient(180deg, transparent, #000 10%, #000 90%, transparent); mask: linear-gradient(180deg, transparent, #000 10%, #000 90%, transparent); }
.tcard:hover .tcard__pic[data-fit] img, .exc a:hover .exc__pic[data-fit] img { transform: translate(-50%, -50%) scale(1.04); }
