@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@700;800&display=swap');

:root { --navy: #071225; --blue: #1747a5; --accent: #c25c40; --paper: #f5f2ed; --white: #fff; --muted: #bec8d8; --container: 1180px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--navy); color: var(--white); font-family: Manrope, Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
.container { width: min(calc(100% - 64px), var(--container)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

.site-header { position: absolute; z-index: 10; top: 0; width: 100%; border-bottom: 1px solid rgba(255,255,255,.14); }
.site-header__inner { min-height: 103px; display: flex; align-items: center; gap: 42px; }
.brand { display: inline-flex; flex-direction: column; flex: 0 0 auto; text-transform: uppercase; line-height: 1; }
.brand__name { font: 800 28px/1 Montserrat, Arial, sans-serif; letter-spacing: -.06em; }
.brand__tagline { margin-top: 8px; font-size: 10px; font-weight: 700; letter-spacing: .15em; }
.main-nav { flex: 1; }
.main-nav ul { list-style: none; display: flex; gap: 30px; padding: 0; margin: 0; }
.main-nav a { font-size: 14px; font-weight: 600; transition: color .2s ease; }
.main-nav a:hover { color: #93b4fb; }
.site-header__aside { display: flex; align-items: center; gap: 22px; }
.registry { white-space: nowrap; font-size: 11px; color: var(--muted); }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 25px; border-radius: 9px; background: #1450b6; color: #fff; font-size: 14px; font-weight: 700; transition: background .2s ease, transform .2s ease; }
.button:hover { background: #2568d7; transform: translateY(-1px); }
.button--mobile, .menu-toggle { display: none; }

.hero { position: relative; min-height: 760px; isolation: isolate; display: flex; flex-direction: column; justify-content: center; padding: 145px 0 42px; background-image: linear-gradient(90deg, rgba(3,10,24,.91) 0%, rgba(3,10,24,.77) 44%, rgba(3,10,24,.5) 100%), linear-gradient(0deg, rgba(3,10,24,.45), transparent 38%), url('../images/tula-hero.jpg'); background-position: center; background-size: cover; }
.hero::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, transparent 52%, rgba(8,23,66,.18)); }
.hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 70px; align-items: center; }
.hero__content { min-width: 0; max-width: 720px; }
.eyebrow, .tour-card__kicker { margin: 0 0 18px; color: #b7ceff; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
h1 { max-width: 700px; margin: 0; font: 800 clamp(38px, 4.1vw, 65px)/1.06 Montserrat, Arial, sans-serif; letter-spacing: -.052em; text-transform: uppercase; }
.hero__lead { max-width: 625px; margin: 28px 0 27px; font-size: clamp(18px, 1.65vw, 24px); line-height: 1.5; }
.hero__link { border-bottom: 1px solid #a9c4ff; padding-bottom: 6px; color: #dce7ff; font-size: 15px; font-weight: 700; }
.hero__link span { margin-left: 10px; font-size: 20px; }
.tour-card { min-width: 0; padding: 35px 33px; border-radius: 18px; background: #173a91; box-shadow: 0 22px 60px rgba(0,0,0,.28); }
.tour-card h2 { margin: 0; font: 800 25px/1.18 Montserrat, Arial, sans-serif; letter-spacing: -.035em; }
.tour-card p:not(.tour-card__kicker) { margin: 17px 0 26px; color: #d9e1f2; font-size: 14px; line-height: 1.55; }
.button--accent { width: 100%; background: var(--accent); }
.button--accent:hover { background: #d46d50; }
.hero__bottom { display: flex; gap: 26px; margin-top: 55px; padding-top: 21px; border-top: 1px solid rgba(255,255,255,.25); color: #d5dcea; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.hero__bottom span + span::before { content: '•'; margin-right: 26px; color: #85a5e9; }

.site-footer { padding: 64px 0 0; background: #050d1e; border-top: 1px solid rgba(255,255,255,.12); }
.site-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 38px; }
.brand--footer { margin-bottom: 18px; }
.site-footer h2 { margin: 0 0 15px; color: #96b8ff; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
.site-footer p, .site-footer a { display: block; margin: 0 0 8px; color: #d3d9e5; font-size: 13px; line-height: 1.55; }
.site-footer a:hover { color: #fff; }
.site-footer__note { max-width: 200px; }
.social-list { list-style: none; padding: 0; margin: 0; }
.legal-links a { color: #98a5ba; text-decoration: underline; text-underline-offset: 3px; }
.site-footer__bottom { margin-top: 45px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.11); color: #75839b; font-size: 11px; }

@media (max-width: 1050px) { .site-header__inner { gap: 25px; } .main-nav ul { gap: 18px; } .registry { display: none; } .hero__inner { gap: 40px; } }
@media (max-width: 780px) { .container { width: min(calc(100% - 40px), var(--container)); } .site-header { border-bottom: 0; } .site-header__inner { min-height: 78px; justify-content: space-between; } .brand__name { font-size: 24px; } .brand__tagline { margin-top: 6px; font-size: 8px; } .site-header__aside { display: none; } .menu-toggle { position: relative; z-index: 12; display: grid; gap: 5px; width: 39px; height: 39px; place-content: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: transparent; cursor: pointer; } .menu-toggle span:not(.sr-only) { display: block; width: 16px; height: 1px; background: white; transition: transform .2s ease; } .main-nav { position: fixed; inset: 0; display: none; padding: 118px 20px 30px; background: #071225; } .main-nav--open { display: block; } .main-nav ul { display: grid; gap: 0; border-top: 1px solid rgba(255,255,255,.15); } .main-nav li { border-bottom: 1px solid rgba(255,255,255,.15); } .main-nav a { display: block; padding: 21px 0; font-size: 18px; } .button--mobile { display: flex !important; margin-top: 27px; } .hero { min-height: 820px; padding: 125px 0 32px; background-position: 58% center; } .hero__inner { grid-template-columns: 1fr; gap: 40px; } h1 { font-size: 32px; } .hero__lead { margin: 22px 0; font-size: 18px; } .tour-card { padding: 27px 24px; border-radius: 15px; } .tour-card h2 { font-size: 22px; } .hero__bottom { display: grid; gap: 10px; margin-top: 32px; padding-top: 17px; } .hero__bottom span + span::before { display: none; } .site-footer { padding-top: 45px; } .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 33px 24px; } }
@media (max-width: 460px) { .site-footer__grid { grid-template-columns: 1fr; } }
.section{padding:86px 0;background:#f5f2ed;color:#10203d}.section h2{font:800 clamp(30px,4vw,48px)/1.1 Montserrat,Arial;margin:0 0 22px}.section p{line-height:1.6}.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.selection,.social-contact{background:#173a91;color:#fff}.lead-form{display:grid;gap:12px;padding:28px;background:#fff;color:#10203d;border-radius:14px}.lead-form input,.lead-form textarea{width:100%;padding:12px;margin-top:5px;border:1px solid #ccd4e0;border-radius:7px;font:14px Manrope}.lead-form textarea{min-height:80px}.check{font-size:12px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.filters button,.program-card button{border:1px solid #173a91;border-radius:30px;padding:10px 14px;background:transparent;color:#173a91;font:700 12px Manrope}.filters .active{background:#173a91;color:#fff}.program-grid,.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.program-card,.team-grid article{background:#fff;box-shadow:0 10px 25px #10203d1a}.program-card img{width:100%;height:210px;object-fit:cover}.program-card>div{padding:18px}.program-card h3{font-size:20px;margin:8px 0}.program-card span,.note{font-size:12px;color:#68728b}.team-grid img{width:100%;aspect-ratio:1;object-fit:cover}.team-grid h3,.team-grid p{margin:14px 15px 0}.team-grid p{color:#68728b}.about img{width:100%;min-height:370px;object-fit:cover}.process{background:#fff}.process ol{padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.process li{border-top:1px solid #aab6c9;padding:15px}.process li span{font:800 27px Montserrat;color:#c15e43}.process h3{margin:6px 0}.social-contact a{color:#d9e6ff;text-decoration:underline}.final-cta{text-align:center;background:#c15e43;color:#fff}.final-cta .button{background:#fff;color:#173a91}@media(max-width:900px){.program-grid,.team-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.section{padding:58px 0}.split,.process ol,.program-grid,.team-grid{grid-template-columns:1fr;gap:26px}}
.inner-hero{padding:190px 0 85px;background:linear-gradient(90deg,#06142eCC,#06142e66),url('/assets/images/tula-hero.jpg') center/cover;color:#fff}.inner-hero h1{max-width:850px}.inner-hero p{max-width:620px;font-size:19px}.card-link{display:inline-block;margin-top:8px;color:#173a91;font-weight:700}.tour-image{width:100%;min-height:330px;object-fit:cover}
.honeypot{position:absolute;left:-9999px}.form-status{min-height:24px;margin:0;color:#173a91;font-size:13px}.selection .form-status{color:#173a91}.form-status--pending,.form-status--success,.form-status--error{padding:12px 14px;border-radius:7px;font-weight:700;line-height:1.45}.form-status--pending{background:#e7eefc;color:#173a91}.form-status--success{background:#e6f5ea;border:1px solid #69a779;color:#185a2d}.form-status--error{background:#fff0ee;border:1px solid #d9877d;color:#8a2920}.lead-form .button:disabled{cursor:wait;opacity:.7}

/* Unified visual system */
:root{--color-primary:#173a91;--color-primary-dark:#0d2155;--color-accent:#c46246;--color-text:#15233d;--color-bg:#fff;--color-bg-alt:#f5f3ef;--color-border:#d9dfeb;--color-muted:#64708a;--radius:12px;--shadow:0 12px 34px rgba(16,35,75,.10);--space-section:88px;--container:1220px}
body{background:var(--color-bg);color:var(--color-text);font-weight:400}.container{width:min(calc(100% - 56px),var(--container))}.site-header{background:linear-gradient(to bottom,rgba(4,13,34,.56),transparent);border:0}.site-header__inner{min-height:92px}.main-nav a{font-size:13px}.main-nav a:focus-visible,.button:focus-visible,.filters button:focus-visible{outline:3px solid #fff;outline-offset:3px}.button{min-height:46px;border-radius:7px;background:var(--color-primary);box-shadow:none}.button:hover{background:#2455b5}.button--accent{background:var(--color-accent)}.button--accent:hover{background:#b65339}.hero{min-height:700px;padding:128px 0 72px;background-image:linear-gradient(90deg,rgba(4,12,28,.88),rgba(4,12,28,.65) 52%,rgba(4,12,28,.42)),url('../images/tula-hero.jpg')}.hero__inner{grid-template-columns:minmax(0,1fr) 330px;gap:60px}h1{font-size:clamp(40px,4vw,60px);line-height:1.08;text-transform:none;letter-spacing:-.045em}.hero__lead{font-size:20px;max-width:590px}.tour-card{padding:28px;background:rgba(23,58,145,.94);border-radius:var(--radius);box-shadow:var(--shadow)}.tour-card h2{font-size:23px}.section{padding:var(--space-section) 0;background:var(--color-bg-alt);color:var(--color-text)}.section:nth-of-type(even),.programs,.team,.process{background:var(--color-bg)}.section h2{max-width:760px;font-size:clamp(30px,3.2vw,45px);letter-spacing:-.04em}.section p{max-width:720px;font-size:16px}.eyebrow,.tour-card__kicker{color:#6e89c9;letter-spacing:.11em}.selection,.social-contact{background:#eff3fb;color:var(--color-text)}.selection .eyebrow,.social-contact .eyebrow{color:var(--color-primary)}.lead-form{gap:14px;padding:28px;border-radius:var(--radius);box-shadow:var(--shadow)}.lead-form label{font-size:13px;color:var(--color-text)}.lead-form input,.lead-form textarea,.lead-form select{border:1px solid var(--color-border);border-radius:7px;transition:border-color .2s,box-shadow .2s}.lead-form input:focus,.lead-form textarea:focus,.lead-form select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(23,58,145,.12)}.lead-form .button{width:100%}.filters{gap:10px;margin:28px 0 32px}.filters button{border-color:var(--color-border);color:var(--color-text);border-radius:7px;padding:10px 16px}.filters button:hover,.filters .active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.program-grid{gap:24px}.program-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.program-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(16,35,75,.16)}.program-card img{height:220px;display:block}.program-card>div{padding:20px;min-height:215px;display:flex;flex-direction:column}.program-card h3{font-size:20px;line-height:1.2}.program-card p{font-size:14px;margin:0 0 16px}.card-link{margin-top:auto;color:var(--color-primary);font-size:14px}.team-grid{gap:24px}.team-grid article{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.team-grid img{aspect-ratio:4/3;object-fit:cover}.team-grid h3{font-size:18px}.team-grid p{font-size:13px;padding-bottom:4px}.about img,.tour-image{border-radius:var(--radius);box-shadow:var(--shadow)}.process ol{gap:14px}.process li{border:1px solid var(--color-border);border-radius:var(--radius);padding:18px;min-height:155px}.process li span{font-size:22px}.process h3{font-size:17px}.process p{font-size:13px;margin:0}.social-contact{border-top:1px solid var(--color-border)}.final-cta{padding:64px 0;background:var(--color-primary-dark)}.final-cta h2{margin-left:auto;margin-right:auto;color:#fff}.final-cta .button{width:auto;padding:0 28px;background:var(--color-accent);color:#fff}.inner-hero{padding:155px 0 70px;background-image:linear-gradient(90deg,rgba(4,12,28,.82),rgba(4,12,28,.45)),url('/assets/images/tula-hero.jpg')}.inner-hero h1{font-size:clamp(37px,4.8vw,56px)}.site-footer{padding-top:52px;background:#08132b}.site-footer__grid{gap:28px}.site-footer__bottom{margin-top:28px}
@media(max-width:1040px){.site-header__inner{gap:20px}.main-nav ul{gap:15px}.hero__inner{grid-template-columns:minmax(0,1fr) 300px;gap:35px}.team-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){:root{--space-section:64px}.site-header{background:linear-gradient(to bottom,rgba(4,13,34,.78),transparent)}.main-nav a:focus-visible{outline-color:var(--color-primary)}.hero{min-height:auto;padding:122px 0 55px}.hero__inner{grid-template-columns:1fr;gap:30px}.hero__content{max-width:620px}.tour-card{max-width:500px}.split{gap:36px}.program-grid,.team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.container{width:min(calc(100% - 40px),var(--container))}.site-header__inner{min-height:76px}.hero{padding-top:116px;background-position:60% center}h1,.inner-hero h1{font-size:34px;line-height:1.12}.hero__lead{font-size:17px}.tour-card{padding:23px}.section h2{font-size:29px}.section p{font-size:15px}.program-grid,.team-grid,.process ol{grid-template-columns:1fr}.program-card img{height:210px}.team-grid img{aspect-ratio:4/3}.filters{gap:8px}.filters button{padding:9px 12px;font-size:12px}.site-footer__grid{grid-template-columns:1fr;gap:25px}.inner-hero{padding:122px 0 56px}.tour-image{min-height:250px}.lead-form{padding:22px}.button{min-height:48px}}
.hero,.inner-hero,.site-header{color:#fff}.hero .eyebrow,.inner-hero .eyebrow{color:#b7ceff}.site-header .main-nav a,.site-header .brand,.site-header .registry{color:#fff}.hero h1,.hero__lead{color:#fff}
/* Benefits use a plain Flexbox layout. Without Flexbox, articles remain visible block elements. */
.benefits {
  min-height: 0;
  padding: 68px 0;
  background: var(--color-bg);
  color: var(--color-text);
}

.benefits .benefit-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 20px;
  margin-top: 30px;
}

.benefits .benefit-grid article {
  display: block;
  position: static;
  flex: 0 0 calc((100% - 40px) / 3);
  box-sizing: border-box;
  min-width: 0;
  margin: 0;
  padding: 20px 18px;
  border: 1px solid #b7c5d9;
  border-radius: var(--radius);
  background: #f3f6fa;
  color: var(--color-text);
  visibility: visible;
}

.benefits .benefit-grid h3 {
  margin: 0 0 10px;
  color: var(--color-primary);
  font-size: 18px;
}

.benefits .benefit-grid p {
  margin: 0;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.55;
}

@media (max-width: 820px) {
  .benefits .benefit-grid article {
    flex-basis: calc((100% - 20px) / 2);
  }
}

@media (max-width: 700px) {
  .benefits .benefit-grid {
    gap: 14px;
  }

  .benefits .benefit-grid article {
    flex-basis: 100%;
  }
}

.section{padding:76px 0}.section h2{margin-bottom:30px}.section .program-grid{max-width:960px}.section > .container > .button{width:auto;min-width:220px;margin-top:24px}.lead-form input,.lead-form select,.lead-form textarea{box-sizing:border-box;width:100%;min-height:48px;padding:12px 14px;font:15px/1.35 Manrope,Arial,sans-serif;background:#fff;color:var(--color-text)}.lead-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-primary) 50%),linear-gradient(135deg,var(--color-primary) 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:38px}.lead-form textarea{min-height:104px}.brand__name{letter-spacing:-.04em}.brand__tagline{display:block;white-space:nowrap}.site-footer__grid{align-items:start;gap:30px}.site-footer{padding:48px 0 0}@media(max-width:820px){.section{padding:60px 0}}@media(max-width:700px){.section{padding:48px 0}.section > .container > .button{width:100%;min-width:0}.lead-form input,.lead-form select{min-height:46px}.lead-form textarea{min-height:92px}}
.selection__intro{max-width:760px;margin-bottom:34px}.selection__intro h2{margin-bottom:14px}.selection__intro p:last-child{margin:0}.selection .lead-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:24px}.lead-form label{min-width:0}.lead-form .message-field,.lead-form .check,.lead-form .form-status{grid-column:1/-1}.lead-form input[type="checkbox"]{appearance:none;flex:0 0 19px;width:19px;min-width:19px;height:19px;min-height:19px;margin:1px 0 0;padding:0;border:1px solid #8995aa;border-radius:4px;background:#fff;cursor:pointer}.lead-form input[type="checkbox"]:checked{border-color:var(--color-primary);background:var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' d='m3 8 3 3 7-7'/%3E%3C/svg%3E") center/13px no-repeat}.lead-form .check{display:flex;align-items:flex-start;gap:9px;margin:0;font-size:13px;line-height:1.45;cursor:pointer}.lead-form .check span{padding-top:1px}.lead-form .button[type="submit"]{grid-column:1/-1;justify-self:start;width:auto;min-width:200px}.section .program-grid+h2{margin-top:52px}.section .program-grid+h2+p{margin-top:-8px}.section .program-grid+h2+p+.button{margin-top:24px}@media(max-width:700px){.selection__intro{margin-bottom:24px}.selection .lead-form{grid-template-columns:1fr;gap:13px;padding:20px}.lead-form .message-field,.lead-form .check,.lead-form .form-status{grid-column:auto}.lead-form .button[type="submit"]{grid-column:auto;width:100%;justify-self:stretch}.section .program-grid+h2{margin-top:42px}}
.inner-hero--school{background-image:linear-gradient(90deg,rgba(4,12,28,.82),rgba(4,12,28,.42)),url('/assets/images/tula/tula-kremlin-panorama.jpg');background-position:center 54%}.program-card__duration{margin:2px 0 10px!important;color:var(--color-primary)!important;font-size:13px!important;font-weight:800}.tour-detail__intro{margin-bottom:70px}.tour-detail__intro .eyebrow{margin-bottom:12px}.tour-detail__duration{margin-top:22px}.tour-detail__program{max-width:900px}.tour-day{padding:25px 0;border-top:1px solid var(--color-border)}.tour-day h3{margin:0 0 16px;font:800 25px/1.2 Montserrat,Arial,sans-serif;letter-spacing:-.03em}.tour-day ol{display:grid;gap:12px;margin:0;padding-left:22px}.tour-day li{padding-left:6px;line-height:1.55}.tour-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:64px 0}.tour-gallery img{display:block;width:100%;height:330px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.tour-detail__cta{max-width:900px;padding-top:8px}.tour-detail__cta h2{margin-bottom:12px}.tour-detail__cta .lead-form{max-width:680px;margin-top:28px}@media(max-width:700px){.tour-detail__intro{margin-bottom:48px}.tour-day{padding:20px 0}.tour-day h3{font-size:22px}.tour-gallery{grid-template-columns:1fr;gap:14px;margin:46px 0}.tour-gallery img{height:240px}}

/* Catalogue directions and route metadata */
.home-directions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:28px 0 18px}.home-directions a{min-height:74px;display:flex;align-items:center;padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-alt);color:var(--color-primary);font:800 15px/1.3 Montserrat,Arial,sans-serif;letter-spacing:-.02em;transition:background .2s,color .2s,border-color .2s}.home-directions a:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.program-card__route{margin:0 0 7px!important;color:var(--color-muted)!important;font-size:12px!important;line-height:1.4}.tour-detail__route{margin-top:16px!important}.main-nav ul{align-items:center}@media(max-width:1040px){.main-nav ul{gap:12px}.main-nav a{font-size:12px}.site-header__inner{gap:16px}}@media(max-width:820px){.home-directions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.home-directions{grid-template-columns:1fr;margin:22px 0 16px}.home-directions a{min-height:60px}.main-nav a{font-size:18px}}

/* ReviewLab manages its own card markup; only the outer site section is styled here. */
.reviewlab-section{background:#f5f3ef}.reviewlab-wrapper{max-width:1220px}.reviewlab-wrapper h2{margin-bottom:28px}.reviewlab-wrapper review-lab{display:block;width:100%;max-width:100%}@media(max-width:700px){.reviewlab-wrapper h2{margin-bottom:22px}}

/* Homepage: local Tula view with a restrained readability overlay. */
.hero{background-image:linear-gradient(90deg,rgba(4,12,28,.58),rgba(4,12,28,.35) 52%,rgba(4,12,28,.16)),url('/assets/images/tula-hero-8460.jpg');background-size:cover;background-position:center center}@media(max-width:700px){.hero{background-position:52% center}}

/* Every programme catalogue spans the shared section container. */
.section .program-grid{width:100%;max-width:none}

/* Homepage catalogue: a stable grid; hover must not change a card's visual position. */
.programs .program-grid{display:grid;width:100%;max-width:none;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;gap:24px;align-items:stretch}.programs .program-card{width:100%;min-width:0;margin:0;position:static;transform:none}.programs .program-card:hover{transform:none;box-shadow:0 18px 42px rgba(16,35,75,.16)}.programs .program-card img{height:220px}@media(max-width:900px){.programs .program-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.programs .program-grid{grid-template-columns:minmax(0,1fr);gap:24px}.programs .program-card img{height:210px}}

/* Centralized social links and persistent quick-contact component. */
.header-vk{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border:1px solid rgba(255,255,255,.48);border-radius:7px;color:#fff;font:800 12px/1 Montserrat,Arial,sans-serif;letter-spacing:.03em;transition:background .2s,border-color .2s}.header-vk:hover{background:#2787f5;border-color:#2787f5}.main-nav__vk{display:none}.floating-contacts{position:fixed;z-index:30;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:10px}.floating-contact{position:relative;display:flex;width:56px;height:56px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 10px 28px rgba(0,0,0,.35);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.floating-contact:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.36);border-color:rgba(77,163,255,.65)}.floating-contact img{display:block;object-fit:contain}.floating-contact--phone img{width:24px;height:24px}.floating-contact--telegram img,.floating-contact--max img{width:40px;height:40px}.floating-contact--phone{background:#4da3ff}.floating-contact--telegram{background:#229ed9}.floating-contact--max{background:linear-gradient(135deg,#00b8ff,#5b4dff,#8b3dff)}.floating-contact::after{position:absolute;right:calc(100% + 10px);padding:6px 8px;border-radius:5px;background:#08132b;color:#fff;content:attr(data-tooltip);font-size:12px;font-weight:700;line-height:1;opacity:0;pointer-events:none;transform:translateX(4px);transition:opacity .2s,transform .2s;white-space:nowrap}.floating-contact:hover::after,.floating-contact:focus-visible::after{opacity:1;transform:translateX(0)}.header-vk:focus-visible,.floating-contact:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(max-width:1040px){.header-vk{min-width:34px;height:34px}}@media(max-width:780px){.header-vk{display:none}.main-nav__vk{display:block}}@media(max-width:700px){.floating-contacts{right:12px;bottom:calc(14px + env(safe-area-inset-bottom));gap:8px}.floating-contact{width:52px;height:52px}.floating-contact--phone img{width:23px;height:23px}.floating-contact--telegram img,.floating-contact--max img{width:37px;height:37px}.floating-contact::after{display:none}body:has(.lead-form :focus) .floating-contacts{bottom:calc(92px + env(safe-area-inset-bottom))}.lead-form:focus-within{padding-right:70px}}

/* Local date-range picker for the shared lead form. */
.travel-date-range{position:relative;min-width:0}.travel-date-range>label{display:block}.travel-date-range__display{cursor:pointer}.travel-date-range__calendar{width:min(100%,330px);margin-top:8px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);color:var(--color-text)}.travel-date-range__calendar[hidden]{display:none}.date-range-picker__header{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;text-align:center;font:800 15px/1.2 Montserrat,Arial,sans-serif;text-transform:capitalize}.date-range-picker__nav,.date-range-picker__clear{border:0;border-radius:7px;background:#eff3fb;color:var(--color-primary);font:800 14px/1 Manrope,Arial,sans-serif;cursor:pointer}.date-range-picker__nav{width:34px;height:34px;justify-self:center;font-size:24px}.date-range-picker__weekdays,.date-range-picker__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.date-range-picker__weekdays{margin-bottom:5px;color:var(--color-muted);font-size:11px;font-weight:800}.date-range-picker__day{min-height:38px;border:0;border-radius:7px;background:transparent;color:var(--color-text);font:700 13px/1 Manrope,Arial,sans-serif;cursor:pointer}.date-range-picker__day:hover,.date-range-picker__day:focus-visible{background:#dce7fa;outline:none}.date-range-picker__day.is-in-range{border-radius:0;background:#e5edfb}.date-range-picker__day.is-start,.date-range-picker__day.is-end{background:var(--color-primary);color:#fff}.date-range-picker__clear{width:100%;min-height:38px;margin-top:12px;background:#f3f6fa;font-size:13px}@media(max-width:700px){.travel-date-range__calendar{width:100%;max-width:330px;padding:12px}.date-range-picker__day{min-height:42px;font-size:14px}}

/* Agency cooperation: shared palette, typography and card geometry. */
.agency-partnership .eyebrow{color:var(--color-primary)}
.agency-partnership__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px 0}
.agency-partnership__grid article{min-width:0;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-alt)}
.agency-partnership__grid h3{margin:0 0 12px;color:var(--color-primary);font-size:20px;line-height:1.3}
.agency-partnership__grid p{margin:0}
.agency-partnership .agency-partnership__promise{max-width:900px;margin-bottom:0}
.social-contact .split>div{min-width:0}
.social-contact h2{overflow-wrap:anywhere}
.social-contact a{color:#111827;font-weight:800;text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
.social-contact a:hover{color:var(--color-primary);text-decoration-thickness:2px}
.social-contact a:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px;border-radius:2px}
@media(max-width:700px){.agency-partnership__grid{grid-template-columns:minmax(0,1fr);gap:16px;margin:24px 0}.agency-partnership__grid article{padding:20px}}

/* Global cookie notice: visible without JavaScript and dismissed after consent is stored locally. */
.cookie-banner{position:fixed;z-index:40;right:0;bottom:0;left:0;padding:0 28px calc(18px + env(safe-area-inset-bottom));pointer-events:none}.cookie-banner__content{display:flex;align-items:center;gap:24px;width:min(100%,1180px);margin:0 auto;padding:18px 20px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);background:#08132b;color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.28);pointer-events:auto}.cookie-banner p{max-width:none;margin:0;font-size:13px;line-height:1.5}.cookie-banner a{color:#d5e4ff;font-weight:800;text-decoration:underline;text-underline-offset:3px}.cookie-banner a:hover{color:#fff}.cookie-banner__accept{flex:0 0 auto;min-width:112px}.cookie-banner a:focus-visible,.cookie-banner__accept:focus-visible{outline:3px solid #fff;outline-offset:3px}.cookie-banner-is-visible .floating-contacts{bottom:calc(var(--cookie-banner-height,0px) + 18px + env(safe-area-inset-bottom))}@media(max-width:700px){.cookie-banner{padding:0 20px calc(12px + env(safe-area-inset-bottom))}.cookie-banner__content{display:grid;gap:14px;padding:16px}.cookie-banner p{font-size:12px}.cookie-banner__accept{width:100%;min-height:48px}.cookie-banner-is-visible .floating-contacts{bottom:calc(var(--cookie-banner-height,0px) + 14px + env(safe-area-inset-bottom))}}

/* Industrial tourism page uses the existing card and CTA language without implying pre-approved access. */
.industrial-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:30px}.industrial-examples article{min-width:0;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow)}.industrial-examples h3{margin:0 0 12px;color:var(--color-primary);font-size:22px;line-height:1.25}.industrial-examples p{margin:0}.industrial-note{max-width:880px;margin-bottom:0}.industrial-cta{max-width:900px}@media(max-width:700px){.industrial-examples{grid-template-columns:1fr;gap:16px;margin-top:24px}.industrial-examples article{padding:20px}}
