/* Версия 2.0; общая дизайн-система; 05.10.2026.
 * Доступные поля квиза, полезная навигация и уменьшенное движение. */
:root {
    --color-secondary: #004d49;
    --color-accent: #b89055;
    --color-background: #f5faf9;
    --color-surface: #fff;
    --radius-small: 8px;
    --radius-medium: 16px;
    --radius-large: 24px;
    --shadow-small: 0 4px 16px rgba(22,49,46,.04);
    --shadow-medium: 0 8px 28px rgba(22,49,46,.06);
    --container-width: 1200px;
    --color-text-muted: #586965;
    --header-height: 72px;
}
html { scroll-padding-top: 90px; overflow-x: clip; }
body { line-height: 1.65; }
.quiz-step h3 { margin-block: 22px 12px; font-size: 18px; }
.quiz-hero .breadcrumbs, .quiz-hero .breadcrumbs a { color: #fff; }
.quiz-step textarea { width: 100%; min-height: 100px; padding: 14px; border: 1px solid var(--color-border); border-radius: 10px; font: inherit; resize: vertical; }
.quiz-step [aria-invalid="true"] { outline: 2px solid #ad302c; outline-offset: 2px; }
.quiz-reset { border: 0; background: transparent; color: #005f5a; font: inherit; text-decoration: underline; min-height: 44px; cursor: pointer; }
.country-page-hero { position: relative; min-height: 480px; display: flex; align-items: end; padding-block: 80px 48px; background: #eaf6f4; color: #fff; }
.country-page-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.country-page-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(0,30,27,.25),rgba(0,30,27,.85)); }
.country-page-hero > .container { position: relative; z-index: 1; width: 100%; }
.country-page-hero h1 { font-size: clamp(2.5rem,6vw,4.5rem); margin-bottom: 16px; }
.country-page-hero p { max-width: 760px; margin-bottom: 24px; font-size: 18px; }
.country-page-hero .breadcrumbs, .country-page-hero .breadcrumbs a { color: #fff; }
.country-page-copy { max-width: 920px; }
.country-page-copy > p { margin-block: 20px; }
.country-page-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 32px; }
.country-page-facts > div { padding: 20px; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-medium); }
.country-page-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 24px; }
.country-page-gallery img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-medium); }
.country-page-links { display: flex; flex-wrap: wrap; gap: 12px; }
.country-guide-links { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 10px; list-style: none; padding: 0; margin-top: 20px; }
.country-guide-links a { display: flex; align-items: center; min-height: 48px; padding: 12px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fff; color: #005f5a; }
@media(max-width:600px) { .country-page-facts { grid-template-columns: 1fr; } .country-page-gallery { grid-template-columns: 1fr; } }
.nav__mobile-useful { flex-wrap: wrap; gap: 8px 16px; }
.nav__mobile-useful a { min-height: 44px; display: inline-flex; align-items: center; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
[hidden] { display: none !important; }
main, .container, .section, .section > div { min-width: 0; }
.application-form, .application-guide, .application-form .field { min-width: 0; }
.application-form input, .application-form select, .application-form textarea { max-width: 100%; }
@media(max-width:820px) { .application-guide { position: relative !important; top: auto !important; } }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
:focus-visible { outline: 3px solid #b89055; outline-offset: 4px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline-color: #006b66; outline-offset: 2px; }
.site-header .logo { flex-shrink: 0; }
.site-header .logo__name { white-space: nowrap; font-size: 20px; }
.site-header__inner { gap: 16px; }
.site-header .nav__list { align-items: center; gap: 0; }
.site-header .nav__link { display: inline-flex; align-items: center; min-height: 48px; padding-inline: 10px; }
.site-header .header-actions { flex-shrink: 0; }
.site-header .header-contact-link { display: none; }
.site-header .header-cabinet-link { min-width: 40px; }
body[data-page="home"] .site-header .burger,
.site-header .burger { color: #005f5a !important; background: #edf8f6 !important; border: 1px solid #cddedb !important; flex-shrink: 0; }
.site-header .burger:hover { background: #dcefea !important; }
.nav__mobile-primary { background: #005f5a; }
.page-hero { min-height: 0; padding: 64px 0 48px; background: linear-gradient(120deg,#edf6f3,#fafbf8 70%,#f8f2e8); }
.page-hero h1 { max-width: 900px; font-size: clamp(2.25rem,4vw,3.7rem); line-height: 1.12; margin-bottom: 18px; }
.page-hero p { max-width: 720px; font-size: 17px; line-height: 1.75; }
.page-hero p b, .page-hero p strong { color: inherit !important; }
.page-hero__stats { gap: 24px; margin-top: 30px; flex-wrap: wrap; }
.page-hero__stat { min-width: 0; padding-right: 24px; }
.page-hero__stat-value { font-size: clamp(1.35rem,2.4vw,1.85rem); line-height: 1.3; overflow-wrap: anywhere; }
.page-hero__stat-label { color: #586965; font-size: 12px; line-height: 1.5; letter-spacing: .035em; }
.section { padding-block: 64px; }
.section-head { margin-bottom: 30px; }
.section-head h1 { font-size: clamp(2.1rem,4vw,3.5rem); line-height: 1.15; }
.section-head h2 { font-size: clamp(1.9rem,3vw,2.8rem); line-height: 1.2; }
.section-head__subtitle { line-height: 1.7; font-size: 16px; }
.info-grid { gap: 20px; }
.info-card p, .service-card p, .booking-step p { line-height: 1.7; }
.info-card:hover, .contact-tile:hover, .booking-step:hover { transform: none; }
.contact-tile { min-width: 0; }
.contact-tile__value { overflow-wrap: anywhere; }
.form-card { box-shadow: 0 8px 28px rgba(22,49,46,.06); }
.form-card__lede { line-height: 1.7; }
.faq-item { box-shadow: none; }
.faq-item__question, .faq__question { line-height: 1.5; }
.breadcrumbs { font-size: 13px; margin-bottom: 22px; }
.site-footer { margin-top: 32px; border-top-width: 1px; }
.site-footer .footer-list { font-size: 14px; line-height: 1.65; }
.site-footer .footer-list li { margin-bottom: 9px; }
.site-footer .footer-brand__slogan { font-size: 14px; color: #bfd3cf; }
.site-footer .logo__name { white-space: nowrap; font-size: 20px; }
.footer-grid { gap: 28px; }
.footer-bottom { font-size: 12px; }
.business-verification { padding-block: 24px; }
.business-trust-widget { justify-content: center; }
.public-document { max-width: 840px; }
.public-document h2 { font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.3; margin-top: 34px; }
.public-document p, .public-document li { line-height: 1.85; }
.public-document a { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 3px; }
.public-document ul, .public-document ol { padding-left: 24px; }
.public-document li + li { margin-top: 8px; }
.public-document .btn { text-decoration: none; margin-top: 16px; }
.article-card h2 { font-size: 27px; line-height: 1.2; }
.article-card p { line-height: 1.75; }
.article-empty { grid-column: 1 / -1; }
.reviews-state { grid-column: 1 / -1; padding: 32px; text-align: center; border: 1px solid var(--color-border); border-radius: 16px; background: #fff; }
.reviews-state p { max-width: 580px; margin: 12px auto 22px; color: var(--color-text-muted); }
.review-card__text { line-height: 1.8; overflow-wrap: anywhere; }
.widget-fallback { margin: 20px 0 0; padding: 18px 22px; border: 1px solid #dce8e3; border-radius: 12px; background: #f3f8f5; color: #38554e; font-size: 14px; }
.widget-fallback a { color: #005f5a; font-weight: 700; text-decoration: underline; }
/* The homepage keeps its photographic hero, with one consistent layout. */
body[data-page="home"] .homehero { position: relative; min-height: 680px; padding: 90px 32px 100px; }
body[data-page="home"] .homehero__inner { width: 100%; max-width: 1180px; margin-inline: auto; grid-template-columns: minmax(0,1.25fr) minmax(0,.85fr); column-gap: 48px; }
body[data-page="home"] .homehero__inner { position: relative; z-index: 1; animation: none; opacity: 1; transform: none; }
body[data-page="home"] .stage__bg { top: 0; height: 100%; min-height: 0; }
body[data-page="home"] .stage__bg img { animation: none; transform: none; }
body[data-page="home"] .homehero__title { font-size: clamp(3rem,4.6vw,4.8rem) !important; line-height: 1.06 !important; letter-spacing: -.045em !important; }
body[data-page="home"] .homehero__lede { font-size: 16px; line-height: 1.8; }
body[data-page="home"] .homehero__eyebrow { font-size: 10px; letter-spacing: .09em; }
body[data-page="home"] .hero-proof { font-size: 12px; gap: 9px 18px; }
body[data-page="home"] .hero-search { padding: 24px; border-radius: 18px; box-shadow: 0 16px 44px rgba(0,24,25,.2); }
body[data-page="home"] .hero-search::before { font-size: 28px; }
body[data-page="home"] .hero-search::after { line-height: 1.6; }
body[data-page="home"] .hero-search label span { font-size: 11px; }
body[data-page="home"] .hero-search select { font-size: 14px; }
body[data-page="home"] .hero-actions { gap: 12px; flex-wrap: wrap; }
body[data-page="home"] .hero-action { min-height: 50px; padding-inline: 20px; border-radius: 12px; font-size: 14px; }
body[data-page="home"] .hero-action--secondary { color: #fff !important; background: rgba(0,40,38,.55) !important; border-color: rgba(255,255,255,.5) !important; }
body[data-page="home"] .home-section { padding-block: 64px; }
body[data-page="home"] .home-section__head h2 { font-size: clamp(2rem,3.5vw,3rem) !important; line-height: 1.15; }
body[data-page="home"] .service-card::after { content: none; }
body[data-page="home"] .journey-card::before { content: none; }
body[data-page="home"] .journey-card { padding-top: 26px; }
body[data-page="home"] .journey-card > span { color: #92713e; }
/* A single mobile action bar replaces overlapping messenger bubbles. */
.float-messengers { bottom: 24px; }
body:has(.float-messengers) .back-to-top { right: 92px; }
body:has(.cookie-banner:not([hidden])) .float-messengers { display: none; }
.cookie-banner { z-index: 110; }
.sticky-mobile-cta { z-index: 80; }
.application-hero { padding: 64px 0 48px !important; }
.application-hero h1 { font-size: clamp(2.3rem,4vw,3.7rem) !important; line-height: 1.12 !important; }
.application-hero .section-head__eyebrow { background: rgba(255,255,255,.1); color: #ffe0ab !important; }
.application-hero__proof span { font-size: 13px; }
.application-steps li { font-size: 14px !important; }
.application-guide__note { font-size: 13px !important; }
body:has(.cookie-banner:not([hidden])) .sticky-mobile-cta,
body:has(.nav.is-open) .sticky-mobile-cta { visibility: hidden; }
@media (max-width: 1100px) {
    .site-header { height: 66px; }
    .site-header__inner { min-height: 66px; }
    .site-header .nav { display: none; }
    .site-header .burger { display: inline-flex; }
    .site-header .header-cta { display: none !important; }
    .site-header .nav.is-open { display: block; position: fixed; top: 66px; left: 0; right: 0; bottom: auto; height: calc(100vh - 66px); height: calc(100dvh - 66px); overflow-y: auto; background: #fff; padding: 0 22px 30px; z-index: 90; counter-reset: mobileNav; }
    .site-header .nav.is-open .nav__list { counter-reset: mobileNav; }
    .site-header .nav.is-open .nav__list li { counter-increment: mobileNav; }
    .nav__mobile-head, .nav__mobile-actions { display: block; }
    .nav__mobile-head { padding: 24px 0 16px; }
    .nav__mobile-head span, .nav__mobile-head small { display: block; }
    .nav__mobile-head span { font-size: 24px; color: #17413d; }
    .nav__mobile-head small { font-size: 12px; color: #586965; }
    .site-header .nav.is-open .nav__list { align-items: stretch; flex-direction: column; }
    .site-header .nav.is-open .nav__link { display: flex; min-height: 52px; padding: 12px 0; font-size: 16px; border-bottom: 1px solid #e8eeec; }
    .nav__mobile-actions { display: grid; gap: 12px; padding-top: 20px; }
    .nav__mobile-primary { display: flex; justify-content: space-between; padding: 16px; color: #fff; border-radius: 12px; }
    .nav__mobile-actions > div { display: flex; gap: 20px; }
    .nav__mobile-actions small { font-size: 12px; color: #586965; }
    body[data-page="home"] .stage { padding-top: 66px; }
    body[data-page="home"] .stage__bg { top: 0; height: 100%; }
    body[data-page="home"] .homehero__inner { grid-template-columns: 1fr; grid-template-areas: "eyebrow" "title" "lede" "proof" "actions" "search" "contacts" "points"; max-width: 720px; }
    body[data-page="home"] .homehero { padding-top: 60px; }
    body[data-page="home"] .hero-search { max-width: 600px; margin-top: 16px; }
}
@media (max-width: 640px) {
    :root { --header-height: 66px; }
    .site-header .logo__name { font-size: 18px; }
    .site-header__inner { gap: 8px; }
    .site-header .header-actions { gap: 8px; }
    .page-hero { padding: 40px 0 32px; }
    .page-hero h1 { font-size: 2.3rem; line-height: 1.12; }
    .page-hero p { font-size: 15px; line-height: 1.75; }
    .page-hero__stats { gap: 16px 20px; margin-top: 24px; }
    .page-hero__stat { border: 0; padding-right: 0; flex: 1 1 130px; }
    .section { padding-block: 44px; }
    .section-head__subtitle { font-size: 15px; }
    .info-grid, .split-layout { grid-template-columns: minmax(0,1fr); }
    .footer-grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
    .site-footer { padding-top: 42px; }
    .site-footer h4 { font-size: 21px; margin-bottom: 12px; }
    body[data-page="home"] .homehero { min-height: 0; padding: 44px 20px 66px; }
    body[data-page="home"] .homehero__title { font-size: clamp(2.25rem,10vw,3.5rem) !important; line-height: 1.1 !important; }
    body[data-page="home"] .homehero__lede { font-size: 15px; margin-bottom: 24px; }
    body[data-page="home"] .hero-proof { font-size: 12px; margin-bottom: 24px; }
    body[data-page="home"] .hero-proof span { font-size: inherit; }
    body[data-page="home"] .hero-actions { display: grid; grid-template-columns: minmax(0,1fr); justify-content: stretch; width: 100%; }
    body[data-page="home"] .hero-action { width: 100%; justify-content: center; }
    body[data-page="home"] .hero-search { padding: 20px; grid-template-columns: minmax(0,1fr); gap: 12px; }
    body[data-page="home"] .hero-search::before { font-size: 25px; }
    body[data-page="home"] .home-section { padding: 44px 20px; }
    body[data-page="home"] .trust-item { padding: 18px; }
    body[data-page="home"] .trust-item small { font-size: 12px; }
    .float-messengers { display: none; }
    body:has(.sticky-mobile-cta) { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
    main { padding-bottom: 0; }
    .site-footer { padding-bottom: 28px; }
    .application-hero { padding: 40px 0 34px !important; }
    .application-hero h1 { font-size: 2.3rem !important; }
    .application-guide { position: relative !important; top: auto !important; }
    .sticky-mobile-cta { padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
    body:has(.sticky-mobile-cta) .back-to-top { bottom: calc(86px + env(safe-area-inset-bottom)); right: 16px; }
    .public-document h2 { margin-top: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
/* Clear feedback and a shared type scale throughout the request journey. */
.quiz-hero h1 { font-size:clamp(2.3rem,4vw,3.7rem); line-height:1.12; letter-spacing:-.035em; }
.quiz-hero p { font-size:17px; line-height:1.75; }
.quiz-validation { padding:12px 16px; border:1px solid #efc8c8; border-radius:10px; background:#fff4f3; color:#8a2d2d; font-size:14px; }
.quiz-field input[aria-invalid="true"], .quiz-field select[aria-invalid="true"] { border-color:#b43e3e; }
.quiz-options input[aria-invalid="true"]+span { border-color:#b43e3e; }
.form-success { max-width:100%; }
.form-success__body { overflow-wrap:anywhere; }
@media(max-width:640px) { .quiz-hero h1 { font-size:2.3rem; } .quiz-hero p { font-size:15px; } input:not([type="checkbox"]):not([type="radio"]),select,textarea { font-size:16px; } }
/* Tourvisor uses the site's emerald and warm accent colors. */
.tv-search-form .TVInterfaceWrapper { border-radius:16px!important; border:1px solid #d8e7e2; }
.tv-search-form .TVMainForm { background:#005f5a!important; background-image:none!important; border-radius:16px!important; }
.tv-search-form .TVSearchButton { background:#ddbf89!important; background-image:none!important; color:#153d36!important; border-radius:10px!important; font-weight:700; }
.tv-search-form .TVSearchButton:hover { background:#e9ce9f!important; }
.tv-search-form .TVSearchButton:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.tours-hero__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
@media(max-width:640px) { .tours-hero__actions { display:grid; grid-template-columns:1fr; } .tours-hero__actions .btn { width:100%; justify-content:center; } }

.widget-retry{border:0;background:transparent;padding:0;color:var(--color-primary,#006d63);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.widget-retry:focus-visible{outline:2px solid #006d63;outline-offset:4px}
.footer-telegram-link{display:inline-block;padding:10px 0;color:#dcece7;text-decoration:underline;text-underline-offset:4px;font-size:14px}
.widget-fallback{line-height:1.75;overflow-wrap:anywhere}
@media(max-width:640px){
    .cookie-banner__actions{flex-wrap:wrap}
    .cookie-banner__actions .btn{flex:1 1 140px;min-width:0;white-space:normal}
}
.TVCartStickyButtonRight{bottom:180px!important;right:20px!important;border-radius:12px!important;box-shadow:0 4px 20px rgba(17,53,49,.12)}
@media(max-width:768px){
    .float-messengers{display:none}
    .TVCartStickyButtonRight{bottom:calc(86px + env(safe-area-inset-bottom))!important;right:16px!important}
    body:has(.TVCartStickyButtonRight) .back-to-top{left:16px;right:auto;bottom:calc(86px + env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
