/* ---------- PAGE HERO ---------- */
.page-hero{position:relative;background:var(--navy);color:#fff;overflow:hidden;padding:158px 0 100px}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 520px at 85% 12%, rgba(6,182,212,.22), transparent 60%),radial-gradient(700px 500px at 5% 92%, rgba(37,99,235,.20), transparent 60%)}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.page-hero .container{position:relative}
.breadcrumbs{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--muted-light);margin-bottom:34px}
.breadcrumbs a:hover{color:var(--cyan-soft)}
.breadcrumbs svg{width:14px;height:14px;opacity:.6}
.ph-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:60px;align-items:center}
.ph-badge{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border-radius:100px;background:rgba(6,182,212,.12);border:1px solid rgba(6,182,212,.35);color:var(--cyan-soft);font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ph-badge i{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 0 rgba(45,212,191,.6);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 12px rgba(45,212,191,0)}100%{box-shadow:0 0 0 0 rgba(45,212,191,0)}}
.page-hero h1{font-size:clamp(2.1rem,4.4vw,3.3rem);margin:24px 0 18px;font-weight:700}
.page-hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ph-sub{font-size:17.5px;color:var(--muted-light);max-width:520px}
.ph-sub b{color:#fff}
.ph-chips{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 32px}
.ph-chips span{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:100px;font-size:13px;font-weight:700;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);color:rgba(255,255,255,.85)}
.ph-chips svg{width:15px;height:15px;color:var(--cyan-soft)}
.ph-cta{display:flex;flex-wrap:wrap;gap:16px}
.ph-visual{position:relative;display:flex;justify-content:center}
.ph-frame{position:relative;width:min(460px,100%);border-radius:34px;overflow:hidden;border:1px solid rgba(103,232,249,.3);box-shadow:0 0 0 12px rgba(6,182,212,.06), 0 40px 90px -30px rgba(0,0,0,.7)}
.ph-frame img{width:100%;aspect-ratio:4/3.6;object-fit:cover}
.ph-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%, rgba(6,18,31,.55));pointer-events:none}
.float-chip{position:absolute;background:rgba(10,28,48,.8);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px 20px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-dark);animation:floaty 6s ease-in-out infinite;z-index:3}
.float-chip b{font-family:'Unbounded';font-size:14px;display:block;line-height:1.25}
.float-chip small{font-size:11.5px;color:var(--muted-light);letter-spacing:.05em}
.float-chip svg{width:24px;height:24px;color:var(--cyan-soft);flex:none}
.fc-1{bottom:-22px;left:-22px}
.fc-2{top:7%;right:-18px;animation-delay:-3s}
@keyframes floaty{50%{transform:translateY(-12px)}}

/* ---------- SECTION BASE ---------- */
.section{padding:100px 0}
.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--cyan);font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px}
.eyebrow::before{content:"";width:34px;height:2px;border-radius:2px;background:var(--grad)}
.section-title{font-size:clamp(1.5rem,3.1vw,2.4rem);letter-spacing:-.01em}
.section-lead{color:var(--muted);max-width:700px;margin-top:16px;font-size:16.5px}
.dark{color:#fff}
.dark .section-lead{color:var(--muted-light)}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- INFO CARDS ---------- */
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:-56px;position:relative;z-index:5}
.info-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px 26px;box-shadow:var(--shadow);transition:transform .35s, box-shadow .35s;display:flex;flex-direction:column;gap:6px}
.info-card:hover{transform:translateY(-8px);box-shadow:0 32px 70px -28px rgba(6,30,55,.35)}
.info-card .ii{width:52px;height:52px;border-radius:16px;background:var(--grad);color:#fff;display:grid;place-items:center;margin-bottom:14px;box-shadow:0 12px 26px -10px rgba(6,182,212,.6)}
.info-card .ii svg{width:24px;height:24px}
.info-card b{font-size:15px;letter-spacing:.02em}
.info-card span,.info-card a{font-size:14px;color:var(--muted);line-height:1.6}
.info-card a:hover{color:var(--blue)}
.copy-btn{margin-top:10px;align-self:flex-start;background:none;border:1.5px solid var(--line);border-radius:11px;padding:7px 14px;font-size:12.5px;font-weight:800;color:var(--muted);display:inline-flex;align-items:center;gap:8px;transition:.25s}
.copy-btn:hover{border-color:var(--cyan);color:var(--blue)}
.copy-btn svg{width:14px;height:14px}

/* ---------- MAP ---------- */
.map-sec{background:var(--navy);position:relative;overflow:hidden}
.map-sec::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 480px at 90% 10%, rgba(6,182,212,.14), transparent 60%),radial-gradient(600px 420px at 6% 90%, rgba(37,99,235,.14), transparent 60%)}
.map-sec .container{position:relative}
.map-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:36px;margin-top:52px;align-items:stretch}
.map-wrap{position:relative;border-radius:30px;overflow:hidden;border:1px solid var(--line-dark);background:var(--navy-2);box-shadow:var(--shadow-dark);min-height:440px}
.map-wrap svg{width:100%;height:100%;position:absolute;inset:0}
.map-actions{position:absolute;top:18px;right:18px;display:flex;flex-direction:column;gap:10px;z-index:4}
.map-btn{display:inline-flex;align-items:center;gap:9px;background:rgba(6,18,31,.82);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:13px;padding:11px 17px;font-size:13px;font-weight:800;transition:.25s}
.map-btn:hover{background:var(--grad);border-color:transparent;transform:translateY(-2px)}
.map-btn svg{width:16px;height:16px}
.map-caption{position:absolute;left:18px;bottom:18px;z-index:4;background:rgba(6,18,31,.82);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:16px 22px;color:#fff;max-width:340px}
.map-caption b{font-family:'Unbounded';font-size:14px;display:block;margin-bottom:4px}
.map-caption span{font-size:13px;color:var(--muted-light)}
.map-side{display:flex;flex-direction:column;gap:18px}
.map-side-card{background:rgba(255,255,255,.05);border:1px solid var(--line-dark);border-radius:24px;padding:28px;flex:1;display:flex;flex-direction:column;gap:8px;transition:background .3s}
.map-side-card:hover{background:rgba(6,182,212,.09)}
.map-side-card .si{width:48px;height:48px;border-radius:15px;background:var(--grad);display:grid;place-items:center;color:#fff;margin-bottom:10px}
.map-side-card .si svg{width:22px;height:22px}
.map-side-card b{font-size:15.5px}
.map-side-card span,.map-side-card a{font-size:14px;color:var(--muted-light);line-height:1.65}
.map-side-card a:hover{color:var(--cyan-soft)}
.map-side-card .big{font-family:'Unbounded';font-size:19px;color:#fff;font-weight:600;line-height:1.4}

/* ---------- ROUTES ---------- */
.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:56px}
.route-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;transition:transform .35s, box-shadow .35s}
.route-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.route-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.m-badge{width:34px;height:34px;flex:none;border-radius:10px;background:var(--mcolor,#A85AA6);color:#fff;display:grid;place-items:center;font-family:'Unbounded';font-size:15px;font-weight:700;box-shadow:0 8px 18px -8px rgba(0,0,0,.5)}
.route-head b{font-size:15.5px}
.route-tag{margin-left:auto;font-size:11.5px;font-weight:800;letter-spacing:.05em;color:var(--blue);background:rgba(6,182,212,.1);border:1px solid rgba(6,182,212,.3);padding:4px 10px;border-radius:100px;white-space:nowrap}
.route-card p{font-size:14px;color:var(--muted)}
.route-cta{background:var(--navy);border:none;color:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;position:relative;overflow:hidden}
.route-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(340px 220px at 90% 0%, rgba(6,182,212,.35), transparent 70%)}
.route-cta>*{position:relative}
.route-cta h3{font-size:17px}
.route-cta p{color:var(--muted-light);font-size:13.5px}
.route-cta .btn-row{display:flex;flex-wrap:wrap;gap:10px}
.route-cta .m-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:10px 16px;font-size:13px;font-weight:800;color:#fff;transition:.25s}
.route-cta .m-btn:hover{background:var(--grad);border-color:transparent}
.route-cta .m-btn svg{width:15px;height:15px}

/* ---------- FEEDBACK / CONTACTS ---------- */
.fb{background:var(--navy-2);position:relative;overflow:hidden}
.fb::before{content:"";position:absolute;inset:0;background:radial-gradient(760px 460px at 12% 12%, rgba(6,182,212,.16), transparent 60%)}
.fb .container{position:relative}
.fb-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;margin-top:52px;align-items:start}
.fb-info{display:grid;gap:18px}
.ct-card{display:flex;gap:18px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid var(--line-dark);border-radius:22px;padding:24px 26px;transition:background .3s, transform .3s}
.ct-card:hover{background:rgba(6,182,212,.1);transform:translateX(6px)}
.ct-card .ci{width:48px;height:48px;flex:none;border-radius:15px;background:var(--grad);display:grid;place-items:center;color:#fff}
.ct-card .ci svg{width:22px;height:22px}
.ct-card b{display:block;font-size:15.5px;margin-bottom:4px;color:#fff}
.ct-card span,.ct-card a{font-size:14.5px;color:var(--muted-light);line-height:1.7}
.ct-card a:hover{color:var(--cyan-soft)}
.form-card{background:#fff;color:var(--ink);border-radius:30px;padding:44px;box-shadow:var(--shadow-dark)}
.form-card h3{font-size:21px;margin-bottom:8px}
.form-card>p{color:var(--muted);font-size:14.5px;margin-bottom:28px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-field{margin-bottom:16px}
.f-field label{display:block;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.f-field input,.f-field textarea{width:100%;border:1.5px solid var(--line);border-radius:14px;padding:14px 18px;font-family:inherit;font-size:15px;background:var(--paper);color:var(--ink);transition:border-color .25s, box-shadow .25s;outline:none}
.f-field textarea{resize:vertical;min-height:104px}
.f-field input:focus,.f-field textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(6,182,212,.14);background:#fff}
.f-field input.err,.f-field textarea.err{border-color:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}
.f-consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin:6px 0 22px}
.f-consent input{width:18px;height:18px;accent-color:var(--blue);margin-top:2px}
.form-card .btn{width:100%}

/* ---------- TOUR ---------- */
.tour{position:relative;border-radius:34px;overflow:hidden;min-height:400px;display:flex;align-items:center;box-shadow:var(--shadow)}
.tour img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tour::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(6,18,31,.92) 0%, rgba(6,18,31,.72) 42%, rgba(6,18,31,.15) 100%)}
.tour-content{position:relative;z-index:2;padding:64px;color:#fff;max-width:560px}
.tour-content h2{font-size:clamp(1.4rem,2.8vw,2.1rem);margin:14px 0 16px}
.tour-content p{color:var(--muted-light);margin-bottom:30px}

/* Затемненный фон модального окна */
.modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

/* Класс для отображения окна */
.modal-overlay.show {
  display: flex;
  opacity: 1;
}

/* Контейнер для iframe */
.modal-content {
  position: relative;
  width: 90%;
  max-width: 1200px;
  height: 80vh;
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}

.modal-content iframe {
  width: 100%;
  height: 100%;
  border: none;
}

/* Кнопка закрытия (крестик) */
.modal-close {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 32px;
  font-weight: bold;
  color: #fff;
  cursor: pointer;
  z-index: 10;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  line-height: 1;
}

.modal-close:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* Стили для Toast (если их еще нет в вашем проекте) */
.toast {
  visibility: hidden;
  min-width: 280px;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 16px 24px;
  position: fixed;
  z-index: 10000;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  font-size: 14px;
  opacity: 0;
  transition: opacity 0.3s, bottom 0.3s;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.toast.show {
  visibility: visible;
  opacity: 1;
  bottom: 50px;
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1080px){
  .info-grid{grid-template-columns:repeat(2,1fr);margin-top:-40px}
  .route-grid{grid-template-columns:repeat(2,1fr)}
  .map-grid{grid-template-columns:1fr}
  .map-wrap{min-height:380px}
  .map-side{flex-direction:row}
  .map-side-card{flex:1}
}
@media(max-width:960px){
  .mainnav,.topbar-phone{display:none}
  .burger{display:flex}
  .page-hero{padding-top:130px;padding-bottom:110px}
  .ph-grid{grid-template-columns:1fr;gap:64px}
  .ph-visual{order:-1}
  .ph-frame{width:min(420px,92%)}
  .fc-1{left:0}.fc-2{right:0}
  .fb-grid{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr 1fr}
  .tour-content{padding:44px 32px}
  .map-side{flex-direction:column}
}
@media(max-width:640px){
  .section{padding:72px 0}
  .info-grid{grid-template-columns:1fr;margin-top:-30px}
  .route-grid{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr}
  .form-card{padding:32px 24px}
  .ft-grid{grid-template-columns:1fr}
  .map-caption{max-width:calc(100% - 36px)}
}