.tt-moscow,
.tt-moscow * { box-sizing: border-box; }
.tt-moscow { --tt-moscow-ink: #123d32; --tt-moscow-deep: #082d26; --tt-moscow-paper: #f5f3ec; --tt-moscow-gold: #d9b76d; --tt-moscow-body: #263d36; background: #fff; color: var(--tt-moscow-body); font-family: inherit; line-height: 1.8; }
.tt-moscow__shell { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.tt-moscow__crumb { background: var(--tt-moscow-paper); border-bottom: 1px solid #ddd9cf; }
.tt-moscow__crumb .tt-moscow__shell { display: flex; align-items: center; gap: 10px; min-height: 46px; font-size: .9rem; }
.tt-moscow__crumb a { color: var(--tt-moscow-ink); text-decoration: underline; text-underline-offset: .18em; }
.tt-moscow__hero { background: var(--tt-moscow-deep); color: #fff; padding: 54px 0; }
.tt-moscow__hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .88fr); gap: 48px; align-items: center; }
.tt-moscow__eyebrow { margin: 0 0 10px; color: #f0cf83; font-size: .9rem; font-weight: 800; letter-spacing: .025em; }
.tt-moscow__hero h1 { margin: 0 0 18px; max-width: 680px; color: #fff; font-size: clamp(2.4rem, 4.8vw, 4.1rem); line-height: 1.22; }
.tt-moscow__lead { max-width: 680px; margin: 0; color: #f2f5f3; font-size: 1.12rem; }
.tt-moscow__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.tt-moscow__button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 10px 18px; border: 2px solid transparent; border-radius: 8px; font: inherit; font-weight: 800; line-height: 1.4; text-align: center; text-decoration: none; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
.tt-moscow__button--gold { background: var(--tt-moscow-gold); color: #172d27; }
.tt-moscow__button--outline { border-color: #f2f5f3; color: #fff; background: transparent; }
.tt-moscow__button:hover { filter: brightness(1.08); }
.tt-moscow a:focus-visible { outline: 3px solid #f5d77e; outline-offset: 4px; }
.tt-moscow__facts { display: flex; flex-wrap: wrap; gap: 9px; margin: 22px 0 0; padding: 0; list-style: none; }
.tt-moscow__facts li { padding: 5px 11px; border: 1px solid #769188; border-radius: 999px; color: #f4f6f5; font-size: .9rem; }
.tt-moscow__visual { position: relative; min-height: 360px; margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.35); border-radius: 14px; background: #173e35; }
.tt-moscow__visual img { display: block; width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.tt-moscow__visual figcaption { position: absolute; inset: auto 14px 14px auto; padding: 5px 11px; border-radius: 6px; background: rgba(8,45,38,.92); color: #fff; font-size: .85rem; }
.tt-moscow__intro { padding: 48px 0; background: var(--tt-moscow-ink); color: #f3f6f4; }
.tt-moscow__intro-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 44px; align-items: start; }
.tt-moscow__eyebrow--light { color: #f3d48c; }
.tt-moscow__intro h2, .tt-moscow__before h2 { margin: 0; color: #fff; font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.3; }
.tt-moscow__intro-grid > p { margin: 0; color: #f1f5f3; font-size: 1.05rem; }
.tt-moscow__itinerary { padding: 62px 0; background: #fff; }
.tt-moscow__section-heading { max-width: 760px; margin-bottom: 26px; }
.tt-moscow__section-heading .tt-moscow__eyebrow { color: #775512; }
.tt-moscow__section-heading h2, .tt-moscow__contact h2 { margin: 0 0 9px; color: var(--tt-moscow-ink); font-size: clamp(1.9rem, 3.2vw, 2.9rem); line-height: 1.3; }
.tt-moscow__section-heading > p:last-child { margin: 0; color: #40564f; }
.tt-moscow__days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; counter-reset: moscow-day; }
.tt-moscow__days li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; align-items: start; padding: 20px; border: 1px solid #d9e0dc; border-radius: 10px; background: #f8f8f4; }
.tt-moscow__day-number { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: var(--tt-moscow-ink); color: #fff; font-weight: 800; }
.tt-moscow__day-label { margin: 0 0 3px; color: #765614; font-size: .86rem; font-weight: 800; }
.tt-moscow__days h3 { margin: 0 0 5px; color: #173e35; font-size: 1.2rem; }
.tt-moscow__days li div > p:last-child { margin: 0; color: #344b44; }
.tt-moscow__before { padding: 58px 0; background: var(--tt-moscow-deep); color: #f4f6f5; }
.tt-moscow__before-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.tt-moscow__before-grid > div > p:last-child { max-width: 580px; margin-bottom: 0; color: #edf3f0; }
.tt-moscow__checklist { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.tt-moscow__checklist li { display: grid; gap: 2px; padding: 13px 16px; border: 1px solid #54786d; border-radius: 8px; background: #10392f; }
.tt-moscow__checklist strong { color: #f3d48c; }
.tt-moscow__checklist span { color: #f4f6f5; }
.tt-moscow__contact { padding: 44px 0; background: #e8dfc8; }
.tt-moscow__contact-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.tt-moscow__contact p { max-width: 720px; margin: 0; color: #34463e; }
.tt-moscow__contact-actions { display: grid; justify-items: start; gap: 8px; min-width: 220px; }
.tt-moscow__button--dark { background: var(--tt-moscow-ink); color: #fff; }
.tt-moscow__phone { color: #173e35; font-weight: 800; text-decoration: underline; text-underline-offset: .2em; }

/* Route-local guards: the theme applies high-priority generic text colors. */
.tt-moscow .tt-moscow__hero h1,
.tt-moscow .tt-moscow__hero .tt-moscow__lead,
.tt-moscow .tt-moscow__hero .tt-moscow__facts li,
.tt-moscow .tt-moscow__hero .tt-moscow__button--outline,
.tt-moscow .tt-moscow__visual figcaption,
.tt-moscow .tt-moscow__intro h2,
.tt-moscow .tt-moscow__intro-grid > p,
.tt-moscow .tt-moscow__before h2,
.tt-moscow .tt-moscow__before-grid > div > p:last-child,
.tt-moscow .tt-moscow__checklist strong,
.tt-moscow .tt-moscow__checklist span,
.tt-moscow .tt-moscow__button--dark { color: #f4f6f5 !important; }
.tt-moscow .tt-moscow__hero .tt-moscow__eyebrow,
.tt-moscow .tt-moscow__intro .tt-moscow__eyebrow,
.tt-moscow .tt-moscow__before .tt-moscow__eyebrow { color: #f3d48c !important; }
.tt-moscow .tt-moscow__button--gold { color: #172d27 !important; }
.tt-moscow .tt-moscow__section-heading h2,
.tt-moscow .tt-moscow__days h3,
.tt-moscow .tt-moscow__contact h2 { color: #173e35 !important; }
.tt-moscow .tt-moscow__section-heading > p:last-child,
.tt-moscow .tt-moscow__days li div > p:last-child,
.tt-moscow .tt-moscow__contact p { color: #344b44 !important; }
.tt-moscow .tt-moscow__section-heading .tt-moscow__eyebrow,
.tt-moscow .tt-moscow__days .tt-moscow__day-label,
.tt-moscow .tt-moscow__phone { color: #684b0e !important; }
.tt-moscow .tt-moscow__day-number { color: #fff !important; }
@media (max-width: 760px) {
	.tt-moscow__shell { width: min(100% - 28px, 560px); }
	.tt-moscow__hero { padding: 34px 0 26px; }
	.tt-moscow__hero-grid, .tt-moscow__intro-grid, .tt-moscow__before-grid { grid-template-columns: 1fr; gap: 23px; }
	.tt-moscow__hero h1 { font-size: clamp(2.15rem, 9vw, 2.8rem); }
	.tt-moscow__lead { font-size: 1.02rem; }
	.tt-moscow__actions { display: grid; }
	.tt-moscow__button { width: 100%; }
	.tt-moscow__facts { gap: 7px; }
	.tt-moscow__facts li { font-size: .82rem; }
	.tt-moscow__visual, .tt-moscow__visual img { min-height: 240px; height: 240px; }
	.tt-moscow__intro, .tt-moscow__before { padding: 38px 0; }
	.tt-moscow__itinerary { padding: 42px 0; }
	.tt-moscow__days { grid-template-columns: 1fr; }
	.tt-moscow__contact { padding: 36px 0; }
	.tt-moscow__contact-inner { display: grid; gap: 20px; }
	.tt-moscow__contact-actions { min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.tt-moscow__button { transition: none; }
}
