:root {
  --ink: #20251f;
  --muted: #6f756d;
  --line: #d7ddd0;
  --paper: #fbf8f2;
  --card: #f1f2e9;
  --leaf: #334a39;
  --lime: #dce648;
  --orange: #e27041;
  --serif: Georgia, 'Times New Roman', serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
button, input { font: inherit; }
button { cursor: pointer; }

.site-header { width: min(100%, 1180px); margin: auto; padding: 22px 20px; display: flex; align-items: center; justify-content: space-between; }
.brand { color: var(--ink); font-size: 1.15rem; font-weight: 750; letter-spacing: -.06em; text-decoration: none; }
.brand span { color: var(--orange); }
.header-link { color: var(--ink); font-size: .85rem; text-decoration: none; }
.header-link span { display: inline-grid; place-items: center; min-width: 1.45rem; height: 1.45rem; margin-left: .25rem; border-radius: 50%; color: var(--paper); background: var(--leaf); font-size: .7rem; }
main { overflow: hidden; }
.hero { min-height: 560px; padding: 88px 20px 72px; position: relative; background: var(--leaf); color: #f8f7f1; }
.hero::before, .hero::after { content: ''; position: absolute; pointer-events: none; border-radius: 48% 52% 59% 41% / 41% 45% 55% 59%; }
.hero::before { width: 430px; height: 430px; right: -245px; top: 40px; border: 1px solid rgba(220, 230, 72, .7); }
.hero::after { width: 270px; height: 270px; right: -150px; top: 125px; background: var(--lime); opacity: .95; }
.hero > * { position: relative; z-index: 1; max-width: 780px; margin-left: auto; margin-right: auto; }
.eyebrow, .step { margin: 0 0 14px; color: var(--orange); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero .eyebrow { color: var(--lime); }
h1, h2 { margin: 0; font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; }
h1 { max-width: 650px; font-size: clamp(3.45rem, 13vw, 7.6rem); line-height: .87; }
h2 { font-size: clamp(2.15rem, 8.5vw, 4.1rem); line-height: .94; }
.hero-copy { max-width: 380px; margin-top: 30px; line-height: 1.55; color: #dfe6d7; }
.text-link { display: inline-flex; gap: 16px; align-items: center; margin-top: 38px; padding-bottom: 6px; border-bottom: 1px solid var(--lime); color: #fff; text-decoration: none; font-weight: 650; }
.text-link span { color: var(--lime); font-size: 1.3rem; }
.intro-band { max-width: 1180px; margin: 0 auto; padding: 42px 20px; display: grid; gap: 24px; font-family: var(--serif); font-size: 1.5rem; line-height: 1.1; }
.intro-band p { margin: 0; max-width: 445px; }
.constructor, .catalogue, .add-ons, .summary, .more { width: min(100%, 1180px); margin: auto; padding: 64px 20px; }
.constructor { background: #e3e8d9; }
.section-heading { margin-bottom: 29px; }
.section-heading .step { color: var(--orange); }
.section-copy { max-width: 470px; color: var(--muted); line-height: 1.5; }
.field-grid { display: grid; gap: 12px; }
.field { display: grid; gap: 9px; }
.field > span, .field-label { color: var(--muted); font-size: .8rem; }
input[type='date'] { width: 100%; min-height: 55px; border: 1px solid #bfc8b7; border-radius: 0; padding: 0 13px; color: var(--ink); background: rgba(255,255,255,.42); }
.date-picker-trigger { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 55px; padding: 0 0 0 13px; border: 1px solid #bfc8b7; border-radius: 0; color: var(--ink); background: rgba(255,255,255,.42); text-align: left; }
.date-picker-trigger > span:last-child { padding: 0 13px; color: var(--muted); font-size: 1.15rem; }
.calendar-dialog { width: min(calc(100% - 32px), 420px); margin: auto; padding: 0; border: 0; color: var(--ink); background: var(--paper); box-shadow: 0 18px 52px rgba(0,0,0,.25); }
.calendar-dialog::backdrop { background: rgba(0,0,0,.36); }.calendar-shell { padding: 20px; }.calendar-header, .calendar-month-nav { display: flex; align-items: center; justify-content: space-between; }.calendar-header { margin-bottom: 22px; }.calendar-header p { margin: 0; font-size: .92rem; font-weight: 700; }.calendar-close, .calendar-month-nav button { display: grid; width: 38px; height: 38px; place-items: center; padding: 0; border: 0; color: var(--ink); background: transparent; font-size: 1.45rem; }.calendar-month-nav { margin-bottom: 15px; }.calendar-month-nav strong { font-size: .95rem; }.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }.calendar-weekdays { margin-bottom: 6px; color: var(--muted); font-size: .67rem; text-align: center; }.calendar-day { display: grid; width: 100%; aspect-ratio: 1; place-items: center; padding: 0; border: 0; border-radius: 50%; color: var(--ink); background: transparent; font-size: .84rem; }.calendar-day:not(:disabled):hover, .calendar-day:not(:disabled):focus-visible { color: #fff; background: var(--leaf); }.calendar-day.is-selected { color: #fff; background: var(--leaf); }.calendar-day:disabled { cursor: not-allowed; color: #c4c4c4; }.calendar-day.is-empty { pointer-events: none; }
.group-size { margin-top: 30px; }
.people-buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-top: 10px; }
.people-buttons button { min-height: 51px; border: 1px solid #aeb9a7; background: transparent; color: var(--ink); }
.people-buttons button.is-selected { border-color: var(--leaf); color: #fff; background: var(--leaf); }
.helper, .disclaimer, .telegram-note { color: var(--muted); font-size: .82rem; line-height: 1.45; }.telegram-note.has-error { color: #b42318; }
.experience-list { display: grid; gap: 12px; }
.experience-card { position: relative; scroll-margin-top: 18px; padding: 20px; border: 1px solid var(--line); background: #fffdf8; }
.experience-card.is-added { border: 2px solid var(--leaf); padding: 19px; background: #f7fbf3; }
.card-number { color: var(--orange); font-family: var(--serif); font-size: 1.3rem; }
.card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-top: 22px; }
.experience-text-link { display: block; color: inherit; text-decoration: none; }
.card-heading h3, .addon-card h3 { margin: 0; font-family: var(--serif); font-size: 1.62rem; font-weight: 400; letter-spacing: -.04em; line-height: 1; }
.duration { flex: none; color: var(--muted); font-size: .78rem; white-space: nowrap; }
.card-summary { margin: 15px 0 20px; color: var(--muted); font-size: .92rem; line-height: 1.5; }
.card-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.price { font-size: .88rem; }
.price strong { display: block; color: var(--ink); font-size: 1.12rem; }
.card-actions button, .addon-toggle { border: 1px solid var(--leaf); padding: 11px 14px; color: var(--leaf); background: transparent; font-size: .8rem; font-weight: 700; }
.card-actions button.is-added, .addon-toggle.is-added { color: #fff; background: var(--leaf); }
.details-button { display: inline-block; margin-top: 18px; padding: 0; border: 0; color: var(--leaf); background: none; font-size: .82rem; text-decoration: underline; text-underline-offset: 3px; }
.add-ons { padding-top: 0; }
.addon-list { display: grid; gap: 12px; }
.addon-card { padding: 22px 20px; background: #e8c697; }
.addon-card:nth-child(2) { background: #c9d8d1; }
.addon-card p { max-width: 540px; color: #3a4138; font-size: .92rem; line-height: 1.5; }
.addon-bottom { display: flex; align-items: end; justify-content: space-between; gap: 15px; }
.addon-price { font-size: .82rem; }.addon-price strong { display: block; font-size: 1.05rem; }
.more { margin-top: 15px; padding-top: 62px; padding-bottom: 62px; color: #fff; background: var(--orange); }
.more .eyebrow { color: var(--ink); }.more p:not(.eyebrow) { max-width: 670px; margin: 0 0 16px; font-family: var(--serif); font-size: clamp(1.52rem, 5vw, 2.8rem); line-height: 1.03; letter-spacing: -.04em; }
.summary { margin-bottom: 84px; background: #fffdf8; }
.summary-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.selection-pill { padding: 7px 10px; border-radius: 20px; color: #fff; background: var(--leaf); font-size: .72rem; white-space: nowrap; }
.summary-meta { margin: 22px 0; color: var(--muted); font-size: .9rem; }
.summary-items { border-top: 1px solid var(--line); }
.summary-item { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.summary-item span { color: var(--muted); }.summary-item strong { white-space: nowrap; font-size: .9rem; }
.summary-total { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 24px 0 9px; }.summary-total span { max-width: 135px; color: var(--muted); font-size: .8rem; }.summary-total strong { font-family: var(--serif); font-size: 2.05rem; font-weight: 400; letter-spacing: -.05em; white-space: nowrap; }
.telegram-button { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; margin-top: 22px; padding: 17px; border: 0; color: #fff; background: #249bd7; font-weight: 750; }.telegram-button:disabled { cursor: not-allowed; opacity: .45; }.telegram-icon { font-size: 1.25rem; }
.telegram-note { margin: 12px 0 0; text-align: center; }
.sticky-cta { position: fixed; z-index: 3; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; color: #fff; background: var(--leaf); box-shadow: 0 -7px 24px rgba(24,33,25,.18); }.sticky-cta[hidden] { display: none !important; }.sticky-cta div { display: grid; gap: 2px; }.sticky-cta span { color: #d6dfcc; font-size: .72rem; }.sticky-cta strong { font-size: .98rem; }.sticky-cta a { padding: 10px 12px; color: var(--leaf); background: var(--lime); font-size: .8rem; font-weight: 750; text-decoration: none; }
.detail-dialog { width: min(100%, 720px); max-height: 92vh; margin: auto 0 0; padding: 28px 20px 34px; border: 0; color: var(--ink); background: var(--paper); }.detail-dialog::backdrop { background: rgba(19, 28, 21, .68); }.dialog-close { position: absolute; top: 11px; right: 12px; width: 38px; height: 38px; border: 0; color: var(--ink); background: transparent; font-size: 2rem; line-height: 1; }.dialog-content { padding-top: 25px; }.dialog-content h3 { max-width: 85%; margin: 0 0 20px; font-family: var(--serif); font-size: 2.5rem; font-weight: 400; letter-spacing: -.05em; line-height: .94; }.dialog-content p { line-height: 1.6; }.dialog-content ul { padding-left: 20px; line-height: 1.55; }.dialog-meta { color: var(--muted); font-size: .85rem; }
.gallery { display: flex; gap: 9px; overflow-x: auto; margin: 24px -20px 25px; padding: 0 20px 9px; scroll-snap-type: x mandatory; }.gallery-image { flex: 0 0 78%; aspect-ratio: 3 / 4; scroll-snap-align: start; overflow: hidden; padding: 0; border: 0; background: #dce1d8; }.gallery-image img { width: 100%; height: 100%; display: block; object-fit: cover; }.gallery-hint { margin: -13px 0 20px; color: var(--muted); font-size: .75rem; }.image-dialog { max-width: min(100vw, 760px); max-height: 100vh; padding: 0; border: 0; background: #121512; }.image-dialog::backdrop { background: rgba(0, 0, 0, .84); }.image-dialog img { display: block; max-width: 100%; max-height: 92vh; object-fit: contain; }.image-close { position: fixed; z-index: 2; top: 12px; right: 12px; width: 42px; height: 42px; border: 0; border-radius: 50%; color: #fff; background: rgba(0,0,0,.55); font-size: 2rem; line-height: 1; }
.details-page { background: #f6f2ea; }.details-page .site-header { max-width: 1040px; }.experience-detail { width: min(100%, 1040px); margin: auto; }.detail-masthead { background: var(--leaf); color: #f8f7f1; }.detail-hero { padding: 34px 20px 28px; }.detail-hero h1 { max-width: 760px; font-size: clamp(2.75rem, 9vw, 4.4rem); line-height: .94; }.detail-duration { margin: 14px 0 0; color: #d8e1d1; }.detail-overview { background: #1d2e22; }.detail-swiper { width: 100%; padding: 0 0 25px; }.detail-photo { height: min(42vh, 400px); padding: 0; border: 0; background: #d9ddd4; }.detail-photo img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }.detail-swiper .swiper-pagination { bottom: 4px; color: #dfe6d7; font-size: .75rem; }.gallery-instruction { max-width: 780px; margin: 14px auto 0; padding: 0 20px; color: var(--muted); font-size: .75rem; }.detail-copy { max-width: 780px; padding: 56px 20px 90px; }.detail-copy .step { margin-bottom: 24px; }.detail-prose > p:not(.detail-footnote) { margin: 0 0 25px; font-family: var(--serif); font-size: 1.42rem; line-height: 1.24; letter-spacing: -.025em; }.detail-footnote { margin: 38px 0 28px; color: var(--muted); font-size: .8rem; line-height: 1.5; }.tour-button { display: inline-block; padding: 15px 18px; color: #fff; background: var(--leaf); font-size: .9rem; font-weight: 700; text-decoration: none; }.lightbox { max-width: min(100vw, 1000px); max-height: 100vh; padding: 0; border: 0; background: #111; }.lightbox::backdrop { background: rgba(0,0,0,.88); }.lightbox img { display: block; max-width: 100%; max-height: 92vh; object-fit: contain; }.lightbox-close, .lightbox-nav { position: fixed; z-index: 2; width: 42px; height: 42px; border: 0; border-radius: 50%; color: #fff; background: rgba(0,0,0,.55); font-size: 2rem; }.lightbox-close { top: 12px; right: 12px; }.lightbox-nav { top: 50%; transform: translateY(-50%); line-height: 1; }.lightbox-prev { left: 12px; }.lightbox-next { right: 12px; }.lightbox-count { position: fixed; bottom: 12px; left: 50%; z-index: 2; margin: 0; transform: translateX(-50%); color: #fff; font-size: .8rem; }

@media (min-width: 700px) {
  .site-header { padding-left: 42px; padding-right: 42px; }.hero { padding: 130px 42px 110px; }.intro-band { grid-template-columns: 1fr 1fr; padding: 64px 42px; }.constructor, .catalogue, .add-ons, .summary, .more { padding-left: 42px; padding-right: 42px; }.field-grid { max-width: 640px; grid-template-columns: 1fr 1fr; }.people-buttons { max-width: 420px; }.experience-list { grid-template-columns: repeat(2, 1fr); }.addon-list { grid-template-columns: repeat(2, 1fr); }.summary { margin-top: 50px; }.detail-dialog { margin: auto; border-radius: 4px; }.gallery { margin-right: 0; margin-left: 0; padding: 0 0 9px; }.gallery-image { flex-basis: 54%; }
  .details-page .site-header { padding-right: 0; padding-left: 0; }.experience-detail { width: 100%; }.detail-hero { display: flex; flex-direction: column; justify-content: center; min-height: 12vh; padding: 22px max(42px, calc((100vw - 780px) / 2)); }.detail-hero h1 { max-width: none; font-size: clamp(2.9rem, 3.5vw, 4rem); }.detail-duration { margin-top: 8px; }.detail-swiper { padding: 0 0 24px; }.detail-photo { height: min(30vh, 330px); }.detail-swiper .swiper-pagination { bottom: 4px; }.gallery-instruction { margin: 14px auto 0; padding: 0; }.detail-copy { max-width: 780px; margin: auto; padding: 58px 0 116px; }.detail-prose > p:not(.detail-footnote) { font-size: 1.5rem; }
}
@media (min-width: 1100px) { .constructor, .catalogue, .add-ons, .summary, .more { padding-left: 70px; padding-right: 70px; }.experience-list { grid-template-columns: repeat(3, 1fr); }.experience-card { min-height: 335px; }.card-actions { position: absolute; right: 20px; bottom: 20px; left: 20px; }.details-button { position: absolute; bottom: 73px; }.summary { max-width: 850px; }.more { max-width: none; padding-left: max(70px, calc((100vw - 1040px)/2)); } }
