@font-face {
  font-family: 'RusNovgorod';
  src: url('/assets/fonts/RusNovgorod-Regular.woff') format('woff'),
       url('/assets/fonts/RusNovgorod-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: optional;
}
:root {
  --blue-deep: #0D2E5C;
  --blue-main: #124285;
  --blue-mid: #1B5BAA;
  --blue-light: #2E7BD6;
  --gold: #C6A55C;
  --gold-light: #E8D5A0;
  --white: #FFFFFF;
  --gray-50: #F7F8FA;
  --gray-100: #EEF0F4;
  --gray-200: #D4D8E0;
  --gray-400: #8B92A0;
  --gray-600: #4A5568;
  --gray-800: #2D3748;
  --green-kg: #2E9E5A;
  --green-bg: #E6F5EC;
  --accent: #b44a2f;
  --font-display: 'RusNovgorod', 'Playfair Display', Georgia, serif;
  --font-heading: 'Montserrat', -apple-system, sans-serif;
  --font-body: 'Montserrat', -apple-system, sans-serif;
  --max-w: 1200px;
  --radius: 12px;
  --shadow: 0 2px 16px rgba(13,46,92,0.08);
  --shadow-h: 0 8px 32px rgba(13,46,92,0.14);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--gray-800);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}

/* ── Заглушка: фон-плейсхолдер для всех карточек с фото ── */
.cd-hero-img,
.cd-related-item-img,
.city-card-img,
.city-event-img,
.exc-card-img,
.hr-card-img,
.prx-card-img,
.cd-no-img{background:var(--gray-100) url('/assets/img/placeholder.png') center/cover no-repeat}

/* HEADER */
.hdr{background:#fff;border-bottom:1px solid var(--gray-100);position:sticky;top:0;z-index:999}
.hdr-in{max-width:var(--max-w);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:68px}
.hdr-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--blue-deep)}
.hdr-logo img{width:34px;height:34px}
.hdr-logo-t{display:flex;flex-direction:column;line-height:1.15}
.hdr-logo-t .b{font-family:var(--font-heading);font-size:16px;letter-spacing:.5px}
.hdr-logo-t .s{font-size:11px;color:var(--gray-400);font-weight:400}
.hdr-nav{display:flex;gap:24px}
.hdr-nav a{text-decoration:none;color:var(--gray-600);font-size:13.5px;font-weight:500;transition:color .2s}
.hdr-nav a:hover{color:var(--blue-main)}
.hdr-r{display:flex;align-items:center;gap:14px}
.hdr-ph{font-size:13.5px;font-weight:600;color:var(--blue-main);text-decoration:none;white-space:nowrap}
.hdr-search-wrap{position:relative;display:flex;align-items:center}
.hdr-search-btn{background:none;border:none;color:var(--gray-500,#6b7280);display:flex;align-items:center;padding:6px;border-radius:6px;cursor:pointer;transition:color .2s;position:relative;z-index:12}
.hdr-search-btn:hover{color:var(--blue-main)}
.hdr-search-form{position:absolute;right:0;top:50%;transform:translateY(-50%);width:0;overflow:hidden;transition:width .3s ease;z-index:11}
.hdr-search-wrap.open .hdr-search-form{width:360px}
.hdr-search-input{width:100%;padding:8px 40px 8px 14px;border:1px solid var(--blue-main);border-radius:8px;font-size:14px;outline:none;background:#fff;font-family:inherit;box-shadow:0 4px 16px rgba(0,0,0,.08)}
.hdr-more-wrap{position:relative}
.hdr-more{background:none;border:1px solid var(--gray-200,#e5e7eb);color:var(--gray-500,#6b7280);font-size:12px;font-weight:600;padding:5px 12px;border-radius:6px;cursor:pointer;transition:all .2s;white-space:nowrap}
.hdr-more:hover,.hdr-more.open{border-color:var(--blue-main);color:var(--blue-main)}
.hdr-drop{display:none;position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.12);min-width:200px;padding:8px 0;z-index:100}
.hdr-drop.open{display:block}
.hdr-drop a{display:block;padding:8px 18px;font-size:13px;color:var(--blue-deep);text-decoration:none;transition:background .15s}
.hdr-drop a:hover{background:var(--gray-50,#f8f7f5)}
.hdr-drop-sep{height:1px;background:var(--gray-200,#e5e7eb);margin:6px 14px}
.btn-kg{background:var(--green-kg);color:#fff;padding:7px 16px;border-radius:8px;font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .2s}
.btn-kg:hover{background:#26874D;transform:translateY(-1px)}

/* BURGER MENU */
.burger{display:none;width:36px;height:36px;border:1px solid var(--gray-200);border-radius:8px;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px}
.burger span{display:block;width:18px;height:2px;background:var(--gray-600);border-radius:1px;transition:all .3s}
.burger.open span:nth-child(1){transform:rotate(45deg) translate(2.5px,2.5px)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:rotate(-45deg) translate(2.5px,-2.5px)}
.mob-menu{display:none;position:fixed;top:68px;left:0;right:0;bottom:0;background:#fff;z-index:998;padding:24px;overflow-y:auto}
.mob-menu.open{display:block}
.mob-menu a{display:block;padding:12px 0;font-size:16px;font-weight:500;color:var(--gray-800);text-decoration:none;border-bottom:1px solid var(--gray-100)}
.mob-menu a:hover{color:var(--blue-main)}
.mob-menu .mob-section{margin-top:20px;padding-top:12px}
.mob-menu .mob-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--gray-400);margin-bottom:4px}
.mob-menu .mob-phone{display:block;margin-top:20px;font-size:18px;font-weight:600;color:var(--blue-main);text-decoration:none}

/* GLOBAL: remove underlines from card links */
.sc-card,.rt-card,.ct-card,.jn-card,.af-card{text-decoration:none;color:inherit}
.rt-desc,.rt-eco-l,.sc-card-body p,.ct-card-body p,.jn-body p{text-decoration:none}

/* HERO */
.hero{position:relative;overflow:hidden;min-height:540px;display:flex;align-items:center;color:#fff}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(13,46,92,.82),rgba(18,66,133,.6) 50%,rgba(30,90,180,.4))}
.hero-in{max-width:var(--max-w);margin:0 auto;padding:72px 24px;position:relative;z-index:2;width:100%}
.hero-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);padding:5px 14px;border-radius:20px;font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;margin-bottom:20px;backdrop-filter:blur(4px)}
.hero h1{font-family:var(--font-display);font-size:64px;font-weight:400;line-height:1.1;max-width:700px;margin-bottom:14px;text-transform:uppercase}
.hero-sub{font-size:17px;font-weight:300;opacity:.85;max-width:500px;margin-bottom:32px;line-height:1.5}
.hero-search{display:flex;max-width:480px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.2)}
.hero-search input{flex:1;border:none;padding:14px 18px;font-size:14px;font-family:var(--font-body);color:var(--gray-800);outline:none}
.hero-search input::placeholder{color:var(--gray-400)}
.hero-search button{background:var(--blue-main);color:#fff;border:none;padding:0 22px;font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer}
.hero-stats{display:flex;gap:36px;margin-top:40px}
.hero-stat-n{font-family:var(--font-display);font-size:34px;font-weight:400}
.hero-stat-l{font-size:12px;opacity:.6}

/* SECTION */
.sec{padding:72px 24px;position:relative}
.sec-in{max-width:var(--max-w);margin:0 auto}
.sec-t{font-family:var(--font-display);font-size:42px;font-weight:400;color:var(--blue-deep);margin-bottom:6px;text-align:center;text-transform:uppercase}
.sec-st{font-size:15px;color:var(--gray-400);text-align:center;margin-bottom:40px}
.bg-gray{background:var(--gray-50)}

/* INTRO */
.intro{padding:44px 24px 36px}
.intro .sec-in{max-width:var(--max-w);margin:0 auto}
.intro-lead{font-size:18px;font-weight:500;line-height:1.55;color:var(--blue-deep);margin-bottom:12px}
.intro-body{font-size:14.5px;color:var(--gray-600);line-height:1.7}
.intro-body a{color:var(--blue-main);text-decoration:underline;text-decoration-color:rgba(18,66,133,.3);text-underline-offset:2px}
.intro-body a:hover{text-decoration-color:var(--blue-main)}

/* SCENARIOS */
.sc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.sc-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit;display:flex;flex-direction:column;cursor:pointer}
.sc-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}
.sc-card-img{position:relative;overflow:hidden;flex-shrink:0;aspect-ratio:16/10}
/* <picture>-обёртки прозрачны для лэйаута; фикс. рамку 16:10 держит контейнер, img заполняет её абсолютом */
.hero-bg picture,.sc-card-img picture{display:contents}
.sc-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.sc-badge{position:absolute;top:10px;right:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;padding:4px 9px;border-radius:4px;letter-spacing:.2px;z-index:2;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.sc-card-body{padding:14px 16px 16px}
.sc-card-body h3{font-family:var(--font-heading);font-size:15px;font-weight:700;margin:0 0 4px;line-height:1.3;color:var(--blue-deep)}
.sc-card-body p{font-size:12.5px;color:var(--gray-500,#6b7280);margin:0;line-height:1.4}
.sc-icon{display:none}

/* ROUTES */
.rt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rt-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;cursor:pointer;background:#fff}
.rt-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-h)}
.rt-img{height:220px;position:relative;overflow:hidden}
.rt-img img{width:100%;height:100%;object-fit:cover}
.rt-dur{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.92);color:var(--blue-deep);font-size:11px;font-weight:600;padding:3px 9px;border-radius:5px;z-index:2}
.rt-name{display:none}
.rt-card-name{font-family:var(--font-heading);font-size:15px;font-weight:600;color:var(--blue-deep);line-height:1.3;margin:0 0 6px}
.rt-body{padding:16px}
.rt-desc{font-size:12.5px;color:var(--gray-400);margin-bottom:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rt-eco{background:var(--green-bg);border-radius:8px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between}
.rt-eco-l{font-size:11.5px;color:var(--gray-600)}
.rt-eco-l strong{display:inline;font-size:12.5px;color:var(--green-kg);font-weight:700}
.kg-b{background:var(--green-kg);color:#fff;font-size:10px;font-weight:700;padding:3px 7px;border-radius:4px}

/* ROUTES lead text */
.sec-lead{font-size:14px;color:var(--gray-600);margin:-24px 0 36px;line-height:1.6}

/* GUEST CARD — Tilda-inspired */
.gc{background:linear-gradient(135deg,var(--blue-deep),#0a1f3a);color:#fff;padding:64px 24px;position:relative;overflow:hidden}
.gc::before{content:'';position:absolute;top:-20%;right:-10%;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(198,165,92,.1),transparent 70%)}
.gc-in{max-width:var(--max-w);margin:0 auto;position:relative;z-index:2}
.gc-top{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.gc-hero-left h2{font-family:var(--font-display);font-size:42px;font-weight:400;margin-bottom:12px;text-transform:uppercase}
.gc-hero-left p{font-size:15px;opacity:.8;max-width:480px;line-height:1.6;margin-bottom:4px}
.gc-hero-right img{width:280px;filter:drop-shadow(0 16px 48px rgba(0,0,0,.4))}
.gc-cta{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.btn-gold{background:linear-gradient(135deg,var(--gold),#d4b06a);color:var(--blue-deep);padding:12px 28px;border-radius:10px;font-size:14px;font-weight:700;text-decoration:none;transition:all .2s;box-shadow:0 4px 20px rgba(198,165,92,.3)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(198,165,92,.4)}
.btn-wh{color:#fff;border:1px solid rgba(255,255,255,.25);padding:12px 20px;border-radius:10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s}
.btn-wh:hover{background:rgba(255,255,255,.08)}

/* KG pricing micro-block */
.gc-pricing{display:flex;gap:20px;margin-top:16px;font-size:13px;opacity:.8;flex-wrap:wrap}
.gc-pricing div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 16px;flex:1;min-width:180px}
.gc-pricing strong{display:block;font-size:14px;opacity:1;color:#fff}
.gc-pricing .label{font-size:11px;opacity:.5;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}

/* KG nums */
.gc-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:32px 0}
.gc-num{text-align:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:20px 12px}
.gc-num-v{font-family:var(--font-heading);font-size:36px;margin-bottom:4px}
.gc-num-v.gold{color:var(--gold-light)}
.gc-num-l{font-size:12px;opacity:.6;line-height:1.3}
/* Tariffs + features */
.gc-bottom{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.gc-tariffs{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:28px}
.gc-tariffs h3{font-family:var(--font-heading);font-size:22px;margin-bottom:4px}
.gc-tariffs .gc-price-big{font-family:var(--font-heading);font-size:44px;color:var(--gold-light);margin-bottom:16px}
.gc-tariffs .gc-price-big span{font-size:16px;opacity:.6;font-family:var(--font-body)}
.gc-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gc-price-col h4{font-size:13px;font-weight:600;opacity:.5;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}
.gc-price-row{font-size:13.5px;opacity:.8;margin-bottom:4px}
.gc-price-row strong{color:#fff;opacity:1}
.gc-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.gc-feat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:18px 16px}
.gc-feat-n{font-family:var(--font-heading);font-size:26px;margin-bottom:2px}
.gc-feat-n.green{color:#5dd99a}
.gc-feat-l{font-size:11.5px;opacity:.6;line-height:1.3}

/* PROOF */
.pf-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:40px}
.pf-n{text-align:center;padding:24px 14px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}
.pf-n-v{font-family:var(--font-heading);font-size:32px;color:var(--blue-main);margin-bottom:4px}
.pf-n-l{font-size:12px;color:var(--gray-400)}
.pf-revs{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.pf-rev{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border-left:4px solid var(--gold)}
.pf-rev-t{font-size:14px;color:var(--gray-600);font-style:italic;line-height:1.5;margin-bottom:12px}
.pf-rev-a{font-size:12px;font-weight:600;color:var(--gray-800)}
.pf-rev-m{font-size:11px;color:var(--gray-400)}

/* CITIES */
.ct-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ct-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit;display:flex;flex-direction:column;cursor:pointer}
.ct-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}
.ct-card-img{position:relative;overflow:hidden;flex-shrink:0}
.ct-card-img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.ct-card-body{padding:14px 16px 16px}
.ct-card-body h3{font-family:var(--font-heading);font-size:16px;font-weight:700;margin:0 0 4px;line-height:1.3;color:var(--blue-deep)}
.ct-card-body p{font-size:12.5px;color:var(--gray-500,#6b7280);margin:0;line-height:1.4}
.ct-kg{position:absolute;top:10px;right:10px;z-index:2}

/* JOURNAL */
.jn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.jn-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;cursor:pointer}
.jn-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-h)}
.jn-img{height:170px;overflow:hidden;position:relative}
.jn-img img{width:100%;height:100%;object-fit:cover}
.jn-tag{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.92);color:var(--blue-deep);font-size:10px;font-weight:600;padding:3px 9px;border-radius:5px;text-transform:uppercase;letter-spacing:.3px;z-index:2}
.jn-body{padding:16px}
.jn-body h3{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--blue-deep);margin-bottom:6px;line-height:1.35}
.jn-body p{font-size:12.5px;color:var(--gray-400);line-height:1.4}

/* PARTNERS */
.part{padding:48px 24px;background:#fff;border-top:1px solid var(--gray-100);position:relative}
.part h2{font-family:var(--font-display);font-size:42px;font-weight:400;color:var(--blue-deep);text-align:center;margin-bottom:32px;text-transform:uppercase}
.part-logos{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap}
.part-logo{width:110px;height:110px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06);overflow:hidden;flex-shrink:0}
.part-logo img{width:100%;height:100%;object-fit:cover;display:block}

/* APP */
.app{background:linear-gradient(135deg,var(--blue-main),var(--blue-deep));padding:40px 24px;position:relative}
.app-in{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.app-t{color:#fff}
.app-t h3{font-family:var(--font-heading);font-size:22px;margin-bottom:2px}
.app-t p{font-size:13px;opacity:.7}
.app-btns{display:flex;gap:10px}
.app-btn{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:9px 16px;color:#fff;text-decoration:none;transition:all .2s;font-size:13px}
.app-btn:hover{background:rgba(255,255,255,.18)}
.app-btn small{font-size:9px;opacity:.7;display:block}
.app-btn strong{font-size:13px}

/* SEO ABOUT */
.seo-about{padding:52px 24px;background:var(--gray-50)}
.seo-about .sec-in{max-width:var(--max-w);margin:0 auto}
.seo-about h2{font-family:var(--font-heading);font-size:26px;color:var(--blue-deep);margin-bottom:20px}
.seo-text{font-size:14.5px;color:var(--gray-600);line-height:1.75}
.seo-text p{margin-bottom:14px}
.seo-text p:last-child{margin-bottom:0}
.seo-text a{color:var(--blue-main);text-decoration:underline;text-decoration-color:rgba(18,66,133,.3);text-underline-offset:2px}
.seo-text a:hover{text-decoration-color:var(--blue-main)}

/* FOOTER */
.ftr{background:var(--blue-deep);color:#fff;padding:48px 24px 28px}
.ftr-in{max-width:var(--max-w);margin:0 auto}
.ftr-top{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px;margin-bottom:32px}
.ftr-brand{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.ftr-bl{display:flex;align-items:center;gap:12px}
.ftr-bl img{width:38px;height:38px;flex:0 0 38px;object-fit:contain;object-position:center;filter:brightness(0) invert(1)}
.ftr-bl span{font-family:var(--font-heading);font-size:14px;opacity:1}
.ftr-gov{display:flex;align-items:center;gap:12px;opacity:1}
.ftr-gov img{width:38px;height:38px;flex:0 0 38px;object-fit:contain;object-position:center}
.ftr-gov span{font-family:var(--font-heading);font-size:14px;opacity:1}
.ftr-col h4{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;opacity:.4;margin-bottom:12px}
.ftr-col a{display:block;color:rgba(255,255,255,.65);text-decoration:none;font-size:13px;margin-bottom:6px;transition:color .2s}
.ftr-col a:hover{color:#fff}
.ftr-bot{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;display:flex;flex-direction:column;gap:4px}
.ftr-copy{font-size:11px;opacity:.35}
.ftr-copy a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3)}
.ftr-copy a:hover{text-decoration-color:#fff}
.ftr-credit{font-size:11px;opacity:.35;display:flex;align-items:center;gap:5px}
.ftr-credit a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.3)}
.ftr-credit a:hover{text-decoration-color:#fff}
.ftr-credit-logo{height:12px;width:12px;border-radius:2px}
.ftr-phone{color:#fff;text-decoration:none;font-size:14px;font-weight:600}

/* AFISHA */
.af-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.af-card{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s;background:#fff;display:block}
.af-card:hover{transform:translateY(-3px)}
.af-card-img{height:160px;overflow:hidden}
.af-card-img img{width:100%;height:100%;object-fit:cover}
.af-card-body{padding:14px}
.af-card-body h4{font-size:13px;font-weight:600;color:var(--blue-deep);line-height:1.3;margin-bottom:6px}
.af-card-body p{font-size:11px;color:var(--gray-400)}

/* BUTTON MORE */
.btn-more{display:inline-block;padding:12px 32px;border:2px solid var(--blue-main);color:var(--blue-main);border-radius:10px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s}
.btn-more:hover{background:var(--blue-main);color:#fff}

/* RESPONSIVE */
@media(max-width:900px){
  .hdr-nav{display:none}
  .hdr-ph{display:none}
  .hdr-more-wrap{display:none}
  .hdr-logo-t{display:none}
  .burger{display:flex}
  /* Мобильная шапка: [лого] [поле поиска] [Карта гостя] [бургер] — поле статичное, не выезжает */
  .hdr-in{gap:10px}
  .hdr-logo{flex:0 0 auto}
  .hdr-r{flex:1 1 auto;min-width:0;gap:8px;justify-content:flex-end}
  .hdr-search-wrap{flex:1 1 auto;min-width:0;order:-1;margin-right:auto}
  .hdr-search-form{position:static;transform:none;width:100%;overflow:visible}
  .hdr-search-wrap .hdr-search-form{width:100%}
  .hdr-search-wrap.open .hdr-search-form{width:100%}
  .hdr-search-input{width:100%;padding:8px 38px 8px 12px;box-shadow:none;border-color:var(--gray-200,#e5e7eb)}
  .hdr-search-input:focus{border-color:var(--blue-main)}
  .hdr-search-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:4px;z-index:12}
  .btn-kg{flex:0 0 auto}
}
@media(max-width:480px){
  /* Очень узкие экраны: компактнее, чтобы поле поиска осталось удобным */
  .hdr-in{gap:8px;padding:0 12px}
  .btn-kg{padding:7px 10px;font-size:12px}
  .hdr-search-input{font-size:13.5px;padding:8px 34px 8px 10px}
  .hdr-search-input::placeholder{font-size:13px}
  .hero h1{font-size:38px}
  .hero-stats{flex-wrap:wrap;gap:20px}
  .intro{padding:32px 20px 24px}
  .intro-lead{font-size:16px}
  .sc-grid,.ct-grid{grid-template-columns:repeat(2,1fr)}
  .rt-grid,.jn-grid{grid-template-columns:1fr}
  .gc-top{grid-template-columns:1fr}
  .gc-hero-right{display:none}
  .gc-pricing{flex-direction:column}
  .gc-nums{grid-template-columns:repeat(2,1fr)}
  .gc-bottom{grid-template-columns:1fr}
  .gc-features{grid-template-columns:1fr 1fr}
  .pf-nums{grid-template-columns:repeat(2,1fr)}
  .pf-revs{grid-template-columns:1fr}
  .af-grid{grid-template-columns:1fr}
  .ftr-top{grid-template-columns:1fr}
  .ftr-col{display:none}
  .ftr-top{margin-bottom:16px}
  .app-in{flex-direction:column;gap:16px;text-align:center}
  .seo-about{padding:36px 20px}
  .seo-about h2{font-size:22px}
}


/* ═══════════════════════════════════════════════════
   EVENTS / АФИША
   ═══════════════════════════════════════════════════ */

/* Section title for upcoming/past split */
.ev-section-title{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin:0 0 20px}
.ev-past-title{margin-top:56px;padding-top:32px;border-top:1px solid var(--gray-200);color:var(--gray-400)}

/* Grid */
.ev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ev-grid--compact{grid-template-columns:repeat(4,1fr)}

/* Empty state */
.ev-empty{text-align:center;padding:48px 20px;color:var(--gray-400);font-size:15px}

/* ── Event Card (catalog) ── */
.ev-card{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;background:#fff;text-decoration:none;color:inherit}
.ev-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}
.ev-card-img{height:170px;overflow:hidden;position:relative}
.ev-card-img img{width:100%;height:100%;object-fit:cover}
.ev-card-body{padding:14px 16px}
.ev-card-date{font-size:12px;font-weight:600;color:var(--blue-main);margin-bottom:4px}
.ev-card-name{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--blue-deep);line-height:1.35;margin-bottom:4px}
.ev-card-city{font-size:11.5px;color:var(--gray-400)}

/* Past card — dimmed */
.ev-card--past{opacity:.7}
.ev-card--past:hover{opacity:1}

/* Badges on card */
.ev-badge-past{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;z-index:2}
.ev-card-img .kg-b{position:absolute;top:10px;right:10px;z-index:2}

/* Filters */
.filters{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap}
.filter-chip{background:var(--gray-50);border:1px solid var(--gray-200);color:var(--gray-600);font-size:12.5px;font-weight:500;padding:6px 16px;border-radius:20px;cursor:pointer;transition:all .15s;font-family:var(--font-body)}
.filter-chip:hover{border-color:var(--blue-main);color:var(--blue-main)}
.filter-chip.active{background:var(--blue-main);border-color:var(--blue-main);color:#fff}

/* ── Event Page ── */
.ev-page{padding:0 24px 60px}
.ev-page-in{max-width:var(--max-w);margin:0 auto}

/* Breadcrumb */
.breadcrumb{font-size:12px;color:var(--gray-400);padding:16px 0 20px}
.breadcrumb a{color:var(--gray-400);text-decoration:none}
.breadcrumb a:hover{color:var(--blue-main)}

/* Past banner */
.ev-past-banner{background:#FFF3E0;border:1px solid #FFE0B2;border-radius:var(--radius);padding:16px 20px;margin-bottom:24px;display:flex;align-items:center;gap:12px}
.ev-past-banner-text strong{display:block;font-size:14px;color:#E65100;margin-bottom:2px}
.ev-past-banner-text span{font-size:13px;color:#BF360C}

/* Hero */
.ev-hero{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px}
.ev-hero-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
.ev-hero-img img{width:100%;height:100%;object-fit:cover}
.ev-hero-info{display:flex;flex-direction:column;justify-content:flex-start}
.ev-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--blue-main);margin-bottom:8px}
.ev-hero-info h1{font-family:var(--font-heading);font-size:30px;color:var(--blue-deep);line-height:1.2;margin-bottom:10px}
.ev-date{font-size:16px;font-weight:600;color:var(--blue-main);margin-bottom:16px}

/* Info Card */
.ev-info-card{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;padding:16px 18px}
.ev-info-row{font-size:13px;color:var(--gray-600);padding:5px 0;display:flex;align-items:center;gap:8px}
.ev-info-row a{color:var(--blue-main);text-decoration:none}
.ev-info-row a:hover{text-decoration:underline}
.ev-info-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}
.ev-info-kg{color:var(--green-kg);font-weight:600}

/* Description */
.ev-description{font-size:15px;color:var(--gray-800);line-height:1.7;margin-bottom:32px;max-width:800px}
.ev-description p{margin-bottom:12px}

/* Map */
.ev-map{height:300px;border-radius:var(--radius);overflow:hidden;margin-bottom:32px}

/* KG block */
.kg-block{background:var(--green-bg);border:1px solid #c8e6d5;border-radius:var(--radius);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}
.kg-block-text strong{display:block;font-size:15px;color:var(--green-kg);margin-bottom:2px}
.kg-block-text span{font-size:13px;color:var(--gray-600)}

/* Related events */
.ev-related{margin-top:48px}
.ev-related h2{font-family:var(--font-heading);font-size:22px;color:var(--blue-deep);margin-bottom:20px}

/* ── Events: дополнения ── */
.filter-count{font-size:11px;opacity:.6;margin-left:2px}
.filter-chip.active .filter-count{opacity:.8}
.ev-card-intro{font-size:12.5px;color:var(--gray-400);line-height:1.45;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-month-label{grid-column:1/-1;font-family:var(--font-heading);font-size:18px;color:var(--gray-400);padding:8px 0 4px;margin-top:16px;border-bottom:1px solid var(--gray-100)}
.ev-month-label:first-child{margin-top:0}
.ev-empty-icon{font-size:36px;margin-bottom:12px}
.ev-empty-text{font-size:17px;font-weight:600;color:var(--blue-deep);margin-bottom:6px}
.ev-empty-sub{font-size:14px;color:var(--gray-400)}
.ev-date-icon{margin-right:4px}
.ev-date-time{color:var(--gray-600);font-weight:400;margin-left:6px}
.ev-past-banner-icon{font-size:24px;flex-shrink:0}
.ev-map-title{font-family:var(--font-heading);font-size:20px;color:var(--blue-deep);margin-bottom:12px}
.ev-card-city{display:flex;align-items:center;gap:2px}

/* ── Event page: tile cards (маршруты/экскурсии) ── */
.ev-block-section{margin-bottom:40px}
.ev-block-title{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin-bottom:6px}
.ev-block-sub{font-size:14px;color:var(--gray-400);margin-bottom:20px}
.ev-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ev-tile{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;background:#fff;text-decoration:none;color:inherit}
.ev-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}
.ev-tile-img{height:180px;overflow:hidden;position:relative}
.ev-tile-img img{width:100%;height:100%;object-fit:cover}
.ev-tile-badge{position:absolute;top:10px;left:10px;background:var(--blue-deep);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;z-index:2}
.ev-tile-body{padding:14px 16px}
.ev-tile-name{font-family:var(--font-heading);font-size:15px;font-weight:600;color:var(--blue-deep);line-height:1.3;margin-bottom:6px}
.ev-tile-desc{font-size:12.5px;color:var(--gray-400);line-height:1.45;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-tile-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--gray-600)}

/* ── Responsive ── */
@media(max-width:900px){
  .ev-grid{grid-template-columns:repeat(2,1fr)}
  .ev-grid--compact{grid-template-columns:repeat(2,1fr)}
  .ev-hero{grid-template-columns:1fr}
  .ev-hero-info h1{font-size:24px}
  .kg-block{flex-direction:column;text-align:center}
  .filters{flex-wrap:wrap}
  .filter-chip{flex-shrink:0}
  .ev-month-label{font-size:16px}
  .ev-tiles{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:480px){
  .ev-grid{grid-template-columns:1fr}
  .ev-grid--compact{grid-template-columns:1fr 1fr}
  .ev-card-intro{-webkit-line-clamp:1}
  .ev-tiles{grid-template-columns:1fr}
}

/* ── Search Autocomplete ── */
.search-dropdown{position:absolute;background:#fff;border:1px solid var(--gray-200);border-top:none;border-radius:0 0 10px 10px;box-shadow:0 12px 32px rgba(13,46,92,.18),0 4px 8px rgba(13,46,92,.08);z-index:9999}
.search-item{display:block;padding:10px 16px;text-decoration:none;color:inherit;border-bottom:1px solid var(--gray-50);transition:background .1s}
.search-item:hover,.search-item--active{background:var(--gray-50)}
.search-item-name{display:block;font-size:14px;font-weight:500;color:var(--blue-deep);line-height:1.3}
.search-item-name mark{background:#FFF3CD;border-radius:2px;padding:0 1px}
.search-item-meta{display:block;font-size:11.5px;color:var(--gray-400);margin-top:2px}
.search-item--all{text-align:center;color:var(--blue-main);font-size:13px;font-weight:600;border-bottom:none}
.search-empty{padding:16px;text-align:center;color:var(--gray-400);font-size:13px}

/* Search bar on results page */
.search-bar{display:flex;max-width:600px;margin:0 0 32px;gap:0;position:relative}
.search-bar input{flex:1;padding:12px 16px;border:1px solid var(--gray-200);border-radius:var(--radius) 0 0 var(--radius);font-size:15px;font-family:var(--font-body);outline:none;transition:border-color .2s}
.search-bar input:focus{border-color:var(--blue-main)}
.search-bar button{padding:12px 24px;background:var(--blue-main);color:#fff;border:none;border-radius:0 var(--radius) var(--radius) 0;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:background .2s}
.search-bar button:hover{background:var(--blue-mid)}


/* ═══════════════════════════════════════════════════
   EXCURSION PAGE (excursion.php) — Atom-S туры
   ═══════════════════════════════════════════════════ */

/* Section titles */
.exc-sec-title{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin:0 0 16px}

/* ── Swiper inside hero ── */
.exc-swiper{width:100%;height:100%}
.exc-swiper img{width:100%;height:100%;object-fit:cover}
.exc-swiper .swiper-button-prev,
.exc-swiper .swiper-button-next{color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.exc-swiper .swiper-button-prev::after,
.exc-swiper .swiper-button-next::after{font-size:20px}
.exc-swiper .swiper-pagination-bullet{background:#fff;opacity:.5}
.exc-swiper .swiper-pagination-bullet-active{opacity:1}

/* ── Program days (details/summary accordion) ── */
.exc-program{margin-bottom:36px}
.exc-day{border:1px solid var(--gray-100);border-radius:10px;margin-bottom:8px;overflow:hidden}
.exc-day summary{padding:14px 18px;font-size:14px;font-weight:600;color:var(--blue-deep);cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px;transition:background .15s}
.exc-day summary::-webkit-details-marker{display:none}
.exc-day summary::after{content:'＋';font-size:16px;color:var(--gray-400);margin-left:auto;transition:transform .2s}
.exc-day[open] summary::after{content:'−'}
.exc-day[open] summary{background:var(--gray-50)}
.exc-day-badge{display:inline-flex;align-items:center;background:var(--blue-main);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:6px;white-space:nowrap;flex-shrink:0}
.exc-day-title{flex:1}
.exc-day-body{padding:16px 18px 20px;font-size:14px;color:var(--gray-800);line-height:1.7}
.exc-day-body p{margin-bottom:10px}
.exc-day-body b,.exc-day-body strong{color:var(--blue-deep)}

/* ── Hotels grid ── */
.exc-hotels-sec{margin-bottom:36px}
.exc-hotels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.exc-hotel{border:1px solid var(--gray-100);border-radius:10px;overflow:hidden;transition:box-shadow .2s}
.exc-hotel:hover{box-shadow:var(--shadow-h)}
.exc-hotel-img{height:130px;background:var(--gray-50)}
.exc-hotel-img img{width:100%;height:100%;object-fit:cover}
.exc-hotel-body{padding:12px 14px}
.exc-hotel-body strong{font-size:14px;color:var(--blue-deep)}
.exc-hotel-addr{font-size:12px;color:var(--gray-400);margin-top:4px}

/* ── Included / Not included ── */
.exc-inclusions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:36px}
.exc-incl{padding:20px;border-radius:var(--radius)}
.exc-incl--yes{background:var(--green-bg);border:1px solid #c8e6d5}
.exc-incl--no{background:#FEF2F2;border:1px solid #FECACA}
.exc-incl h3{font-size:15px;font-weight:700;margin:0 0 12px;display:flex;align-items:center;gap:8px}
.exc-incl--yes h3{color:var(--green-kg)}
.exc-incl--no h3{color:#DC2626}
.exc-incl .cd-desc-body{font-size:14px}
.exc-incl .cd-desc-body p{margin-bottom:8px}

/* ── Logistics (meeting points) ── */
.exc-logistics{margin-bottom:36px}
.exc-logistics-item{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;margin-bottom:8px;font-size:14px;line-height:1.6;color:var(--gray-600)}
.exc-logistics-item .cd-info-icon{flex-shrink:0;margin-top:2px}

/* ── Extra info ── */
.exc-extra{margin-bottom:36px}

/* ── CTA block ── */
.cd-cta-compact{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border:1px solid var(--gray-100);border-radius:var(--radius);margin-bottom:36px;flex-wrap:wrap}
.cd-cta-compact strong{font-size:15px;color:var(--blue-deep)}
.cd-cta-compact .cd-cta-price{font-size:14px;color:var(--gray-400);margin-left:12px}

/* ── Responsive ── */
@media(max-width:900px){
    .exc-hotels-grid{grid-template-columns:repeat(2,1fr)}
    .exc-inclusions{grid-template-columns:1fr}
}
@media(max-width:480px){
    .exc-hotels-grid{grid-template-columns:1fr}
    .exc-day summary{flex-wrap:wrap;gap:8px}
}


/* ═══════════════════════════════════════════════════
   CARD PAGE (card.php) — объект / отель / ресторан / сувенир
   ═══════════════════════════════════════════════════ */

.cd-page{padding:0 24px 60px}
.cd-page-in{max-width:var(--max-w);margin:0 auto}

/* ── Hero: фото + Info Card ── */
.cd-hero{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px}

.cd-hero-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10;position:relative}
.cd-hero-img img{width:100%;height:100%;object-fit:cover}
.cd-hero-kg{position:absolute;top:12px;right:12px;z-index:2}
.cd-no-img{width:100%;height:100%;background:var(--gray-100);display:flex;align-items:center;justify-content:center}
.cd-no-img span{font-family:var(--font-heading);font-size:64px;color:var(--gray-200)}

.cd-info{display:flex;flex-direction:column;justify-content:flex-start}
.cd-stars{font-size:14px;color:var(--gold);margin-bottom:6px;letter-spacing:2px}
.cd-info h1{font-family:var(--font-heading);font-size:30px;color:var(--blue-deep);line-height:1.2;margin-bottom:8px}
.cd-city{font-size:13px;color:var(--blue-main);text-decoration:none;margin-bottom:16px;display:inline-block}
.cd-city:hover{text-decoration:underline}

.cd-info-card{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.cd-info-row{font-size:13px;color:var(--gray-600);padding:5px 0;display:flex;align-items:center;gap:8px}
.cd-info-row a{color:var(--blue-main);text-decoration:none}
.cd-info-row a:hover{text-decoration:underline}
.cd-info-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}
.cd-info-icon:empty{display:none}
.cd-info-row:has(.cd-info-icon:empty){gap:0}
.cd-info-kg{color:var(--green-kg);font-weight:600}
.cd-info-access{color:var(--blue-main,#2563eb);font-weight:600}

.cd-actions{display:flex;gap:10px;flex-wrap:wrap}

/* ── Description ── */
.cd-description{margin-bottom:36px;max-width:var(--max-w)}
.cd-desc-lead{font-size:17px;font-weight:500;line-height:1.6;color:var(--blue-deep);margin-bottom:16px}
.cd-desc-body{font-size:15px;color:var(--gray-800);line-height:1.75}
.cd-desc-body p{margin-bottom:12px}
.cd-desc-body h2,.cd-desc-body h3,.cd-desc-body h4{font-family:var(--font-heading);color:var(--blue-deep);margin:20px 0 8px;font-size:20px}
.cd-desc-body a{color:var(--blue-main);text-decoration:underline;text-decoration-color:rgba(18,66,133,.3);text-underline-offset:2px}
.cd-desc-body a:hover{text-decoration-color:var(--blue-main)}
.cd-desc-body ul,.cd-desc-body ol{margin:8px 0 12px 20px}
.cd-desc-body li{margin-bottom:4px}

/* ── Route tabs (card.php) ── */
.cd-routes{margin-bottom:36px}
.cd-routes-title{font-family:var(--font-heading);font-size:22px;color:var(--blue-deep);margin:0 0 6px;padding:0}
.cd-routes-sub{color:var(--gray-400);font-size:15px;margin-bottom:16px}
.cd-rtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.cd-rtab{padding:8px 18px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;border:2px solid var(--gray-100);background:#fff;color:var(--gray-400);transition:all .15s;font-family:var(--font-body)}
.cd-rtab:hover{border-color:var(--accent);color:var(--accent)}
.cd-rtab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.cd-rpanel{display:none}
.cd-rpanel.active{display:block}
.cd-rstops{border:1px solid var(--gray-100);border-radius:8px;overflow:hidden;margin-bottom:16px;background:#fff}
.cd-rstop{display:grid;grid-template-columns:70px 1fr auto;gap:12px;padding:12px 16px;border-bottom:1px solid var(--gray-100);align-items:center}
.cd-rstop:last-child{border-bottom:none}
.cd-rstop-time{font-size:13px;font-weight:700;color:var(--accent);text-transform:uppercase}
.cd-rstop-name a{color:var(--blue-deep);text-decoration:none;font-weight:600}
.cd-rstop-name a:hover{color:var(--accent)}
.cd-rstop-note{font-size:13px;color:var(--gray-400)}
.cd-rstop-saving{font-size:13px;color:var(--green-kg);font-weight:600;white-space:nowrap}
.cd-rsavings{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;text-align:center;padding:20px;background:var(--bg-warm,#fef7f4);border-radius:8px;margin:0 0 16px}
.cd-rsavings-num{font-size:22px;font-weight:700}
.cd-rsavings-label{font-size:12px;color:var(--gray-400);margin-top:2px}
.cd-rsavings-num.green{color:var(--green-kg)}
.cd-rhotel{display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--gray-50);border-radius:8px;margin:0 0 16px;font-size:14px}
.cd-rhotel .icon{font-size:20px}
.cd-ratom{background:#fff;border:1px solid var(--gray-100);border-radius:8px;padding:16px;margin:0 0 16px}
.cd-ratom-title{font-size:14px;color:var(--gray-400);margin-bottom:8px}
.cd-ratom-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0}
.cd-ratom-item+.cd-ratom-item{border-top:1px solid var(--gray-100)}
.cd-ratom-name{font-weight:600;font-size:14px}
.cd-ratom-name a{color:var(--blue-deep);text-decoration:none}
.cd-ratom-name a:hover{color:var(--accent)}
.cd-ratom-meta{font-size:12px;color:var(--gray-400)}
.cd-ratom-meta .stars{color:#f5a623;font-weight:700}
.cd-ratom-btn{display:inline-block;padding:6px 16px;font-size:13px;font-weight:600;border:1px solid var(--gray-100);border-radius:6px;color:var(--blue-deep);text-decoration:none;transition:all .15s;white-space:nowrap;flex-shrink:0}
.cd-ratom-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ── KG block ── */
.cd-kg-block{background:var(--green-bg);border:1px solid #c8e6d5;border-radius:var(--radius);padding:24px;margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cd-kg-text strong{display:block;font-size:16px;color:var(--green-kg);margin-bottom:4px}
.cd-kg-text span{font-size:13px;color:var(--gray-600);line-height:1.5}
.cd-kg-prices{display:flex;gap:12px;flex-wrap:wrap}
.cd-kg-prices span{font-size:12px;color:var(--gray-600);background:#fff;border:1px solid #c8e6d5;border-radius:6px;padding:4px 10px;white-space:nowrap}

/* ── Map ── */
.cd-map{height:300px;border-radius:var(--radius);overflow:hidden;margin-bottom:32px}
.cd-map:empty{display:none}

/* ── Related (3 columns) ── */
.cd-related{margin-bottom:36px}
.cd-related-title{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin-bottom:20px}
.cd-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}
.cd-related-col h3{font-size:14px;font-weight:700;color:var(--blue-deep);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--blue-main)}
.cd-related-col{display:flex;flex-direction:column;gap:10px}
.cd-related-item{display:block;border-radius:10px;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit;background:#fff}
.cd-related-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}
.cd-related-item-img{aspect-ratio:16/10;overflow:hidden;position:relative}
.cd-related-item-img img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.cd-related-item-body{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.cd-related-item-name{font-size:12.5px;font-weight:600;color:var(--blue-deep);line-height:1.3;flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cd-related-item-kg{font-size:10px;font-weight:600;color:var(--green-kg);background:var(--green-bg);padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0}

/* ── Персоны: годы жизни ── */
.cd-person-years{font-size:15px;color:#6b7280;margin-top:2px;margin-bottom:2px}

/* ── Плашка скрытого объекта ── */
.cd-notice{background:#fef3cd;border:1px solid #ffc107;border-radius:8px;padding:12px 16px;margin:12px 0 0;font-size:14px;color:#664d03;line-height:1.5}
.cd-notice a{color:#664d03;font-weight:600;text-decoration:underline}

/* ── FAQ ── */
.cd-faq{margin-bottom:36px}
.cd-faq h2{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin-bottom:16px}
.cd-faq-item{border:1px solid var(--gray-100);border-radius:10px;margin-bottom:8px;overflow:hidden}
.cd-faq-item summary{padding:14px 18px;font-size:14px;font-weight:600;color:var(--blue-deep);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;transition:background .15s}
.cd-faq-item summary::-webkit-details-marker{display:none}
.cd-faq-item summary::after{content:'＋';font-size:16px;color:var(--gray-400);transition:transform .2s}
.cd-faq-item[open] summary::after{content:'−'}
.cd-faq-item[open] summary{background:var(--gray-50)}
.cd-faq-item p{padding:0 18px 14px;font-size:14px;color:var(--gray-600);line-height:1.6}

/* ── Responsive ── */
@media(max-width:900px){
    .cd-hero{grid-template-columns:1fr}
    .cd-info h1{font-size:24px}
    .cd-related-grid{grid-template-columns:1fr}
    .cd-kg-block{flex-direction:column;text-align:center}
    .cd-rstop{grid-template-columns:60px 1fr;gap:8px}
    .cd-rstop-saving{grid-column:2}
    .cd-rsavings{grid-template-columns:1fr;gap:12px}
}

@media(max-width:480px){
    .cd-hero-img{aspect-ratio:4/3}
    .cd-kg-prices{flex-direction:column;align-items:center}
}


/* ── Общие кнопки ── */
.btn-light{display:inline-block;padding:6px 16px;font-size:13px;font-weight:600;border:1px solid var(--gray-100);border-radius:6px;color:var(--blue-deep);text-decoration:none;transition:all .15s;white-space:nowrap}
.btn-light:hover{border-color:var(--accent);color:var(--accent)}

/* ── Smooth scroll + anchor nav ── */
html{scroll-behavior:smooth}
[id="routes"],[id="guest-card"],[id="objects"],[id="hotels"],[id="restaurants"],[id="tours"],[id="events"],[id="people"],[id="faq"]{scroll-margin-top:80px}
.city-anchors{display:flex;gap:6px;overflow-x:auto;padding:0 0 4px;margin:0 0 28px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.city-anchors::-webkit-scrollbar{display:none}
.city-anchor{flex-shrink:0;padding:7px 14px;border-radius:6px;font-size:13px;font-weight:600;border:1px solid var(--gray-100);background:#fff;color:var(--gray-400);text-decoration:none;transition:all .15s;white-space:nowrap}
.city-anchor:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-warm,#fef7f4)}

/* ── City page (city.php) ── */
.city-hero{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-bottom:32px}
.city-gallery{border-radius:8px;overflow:hidden}
.city-gallery-main{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:8px}
.city-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.city-thumbs{display:flex;gap:6px;margin-top:6px}
.city-thumb{width:60px;height:44px;border-radius:4px;overflow:hidden;cursor:pointer;opacity:.6;transition:opacity .15s;flex-shrink:0}
.city-thumb.active,.city-thumb:hover{opacity:1;outline:2px solid var(--accent)}
.city-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.city-info h1{font-size:28px;margin:0 0 12px;line-height:1.2}
.city-stats{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.city-stat{font-size:13px;color:var(--gray-400);background:var(--gray-50);padding:4px 10px;border-radius:4px}
.city-stat b{color:var(--blue-deep)}
.city-info-card{background:#fff;border:1px solid var(--gray-100);border-radius:8px;padding:16px;margin:16px 0}
.city-info-row{padding:4px 0;font-size:14px;display:flex;align-items:baseline;gap:6px}
.city-info-row .icon{width:20px;text-align:center;flex-shrink:0}
.city-tabs-sec{margin:40px 0}
.city-tabs-sec h2{margin:0 0 6px}
.city-tabs-sub{color:var(--gray-400);font-size:15px;margin-bottom:16px}
.city-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.city-tab{padding:8px 18px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;border:2px solid var(--gray-100);background:#fff;color:var(--gray-400);transition:all .15s}
.city-tab:hover{border-color:var(--accent);color:var(--accent)}
.city-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.city-route-panel{display:none}
.city-route-panel.active{display:block}
.city-route{border:1px solid var(--gray-100);border-radius:8px;overflow:hidden;margin-bottom:16px}
.city-stop{display:grid;grid-template-columns:70px 1fr auto;gap:12px;padding:12px 16px;border-bottom:1px solid var(--gray-100);align-items:center}
.city-stop:last-child{border-bottom:none}
.city-stop-time{font-size:13px;font-weight:700;color:var(--accent);text-transform:uppercase}
.city-stop-name a{color:var(--blue-deep);text-decoration:none;font-weight:600}
.city-stop-name a:hover{color:var(--accent)}
.city-stop-note{font-size:13px;color:var(--gray-400)}
.city-stop-saving{font-size:13px;color:var(--green-kg);font-weight:600;white-space:nowrap}
.city-savings{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;text-align:center;padding:20px;background:var(--bg-warm,#fef7f4);border-radius:8px;margin:16px 0}
.city-savings-num{font-size:22px;font-weight:700}
.city-savings-label{font-size:12px;color:var(--gray-400);margin-top:2px}
.city-savings-num.green{color:var(--green-kg)}
.city-sputnik{background:#fff;border:1px solid var(--gray-100);border-radius:8px;padding:16px;margin:12px 0}
.city-sputnik-title{font-size:14px;color:var(--gray-400);margin-bottom:8px}
.city-sputnik-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0}
.city-sputnik-item+.city-sputnik-item{border-top:1px solid var(--gray-100)}
.city-sputnik-name{font-weight:600;font-size:14px}
.city-sputnik-meta{font-size:12px;color:var(--gray-400)}
.city-sputnik-meta .stars{color:#f5a623;font-weight:700}
.city-hotel-tip{display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--gray-50);border-radius:8px;margin:12px 0;font-size:14px}
.city-hotel-tip .icon{font-size:20px}
.city-catalog{margin:32px 0}
.city-catalog h2{margin:0 0 16px}
.city-catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.city-card{border:1px solid var(--gray-100);border-radius:8px;overflow:hidden;text-decoration:none;color:var(--blue-deep);transition:box-shadow .15s;display:flex;flex-direction:column}
.city-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.city-card-img{height:140px;overflow:hidden;flex-shrink:0}
.city-card-img img{width:100%;height:100%;object-fit:cover;display:block;margin:0;padding:0;border:0;vertical-align:top}
.city-card-body{padding:12px}
.city-card-name{font-weight:600;font-size:14px;margin-bottom:4px}
.city-card-sub{font-size:12px;color:var(--gray-400)}
.city-kg-badge{display:inline-block;background:var(--green-kg);color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:3px;margin-top:6px}
.city-show-more{display:block;text-align:center;padding:12px;color:var(--accent);font-weight:600;font-size:14px;cursor:pointer;border:1px solid var(--gray-100);border-radius:8px;margin-top:12px;text-decoration:none}
.city-related{margin:40px 0}
.city-related h2{margin:0 0 16px}
.city-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.city-routes-sec{margin:32px 0}
.city-routes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.city-events-sec{margin:32px 0}
.city-events-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.city-event{display:flex;gap:12px;border:1px solid var(--gray-100);border-radius:8px;overflow:hidden;text-decoration:none;color:var(--blue-deep);transition:box-shadow .15s}
.city-event:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.city-event-img{width:110px;flex-shrink:0;overflow:hidden}
.city-event-img img{width:100%;height:100%;object-fit:cover}
.city-event-body{padding:10px 12px 10px 0;display:flex;flex-direction:column;justify-content:center}
.city-event-date{font-size:12px;color:var(--accent);font-weight:600;margin-bottom:2px}
.city-event-name{font-weight:600;font-size:14px;line-height:1.3}
.city-names-sec{margin:32px 0}
.city-names-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.city-name-card{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--blue-deep);padding:10px;border:1px solid var(--gray-100);border-radius:8px;transition:box-shadow .15s}
.city-name-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.city-name-ava{width:50px;height:50px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--gray-50)}
.city-name-ava img{width:100%;height:100%;object-fit:cover}
.city-name-text{font-weight:600;font-size:14px}
.city-faq{margin:32px 0}
.cd-description .cd-desc-body img{max-width:100%;height:auto;border-radius:8px;margin:12px 0}

@media(max-width:768px){
.city-hero{grid-template-columns:1fr}
.city-catalog-grid,.city-related-grid,.city-routes-grid{grid-template-columns:1fr 1fr}
.city-names-grid{grid-template-columns:1fr}
.city-events-grid{grid-template-columns:1fr}
.city-savings{grid-template-columns:1fr;gap:12px}
.city-stop{grid-template-columns:60px 1fr;gap:8px}
.city-stop-saving{grid-column:2}
.city-thumbs{overflow-x:auto}
}
@media(max-width:480px){
.city-catalog-grid,.city-related-grid{grid-template-columns:1fr}
}


/* ── Каталог экскурсий /excursions ── */
.exc-cat-page{padding:24px 0 60px;max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
.exc-cat-breadcrumb{font-size:13px;color:var(--text-2,#6b6b6b);margin-bottom:16px}
.exc-cat-breadcrumb a{color:var(--accent,#b44a2f);text-decoration:none}
.exc-cat-hero{background:var(--blue-deep,#1a3a5c);color:#fff;padding:28px 32px;border-radius:12px;margin-bottom:24px}
.exc-cat-hero h1{color:#fff;font-family:var(--font-display);font-size:42px;margin:0 0 8px;font-weight:400;text-transform:uppercase}
.exc-cat-hero p{color:rgba(255,255,255,.8);font-size:15px;margin:0}

.exc-cat-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding:12px;background:#f7f4ef;border-radius:8px}
.exc-cat-filter-label{font-size:13px;color:var(--text-2,#6b6b6b);padding:6px 4px;margin-right:4px;font-weight:600}
.exc-cat-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;border:1px solid #e0ddd8;background:#fff;font-size:13px;color:var(--text-2,#6b6b6b);cursor:pointer;text-decoration:none;transition:all .15s;white-space:nowrap}
.exc-cat-chip:hover{border-color:var(--accent,#b44a2f);color:var(--accent,#b44a2f)}
.exc-cat-chip--on{background:var(--accent,#b44a2f);border-color:var(--accent,#b44a2f);color:#fff}
.exc-cat-chip--on:hover{background:#9c3d28;color:#fff}
.exc-cat-chip-count{font-size:11px;opacity:.7;margin-left:3px}

.exc-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.exc-card{background:#fff;border:1px solid #e0ddd8;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:var(--text,#1a1a18);transition:all .2s}
.exc-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}
.exc-card-img{height:180px;overflow:hidden;position:relative;flex-shrink:0}
.exc-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.exc-card-source{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.7);color:#fff;font-size:11px;padding:3px 10px;border-radius:12px;font-weight:600}
.exc-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.exc-card-name{font-weight:600;font-size:15px;line-height:1.3;margin-bottom:8px;color:var(--text,#1a1a18)}
.exc-card-desc{font-size:13px;color:var(--gray-400);line-height:1.4;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exc-card-meta{font-size:12px;color:var(--text-2,#6b6b6b);margin-bottom:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.exc-card-meta .stars{color:#f5a623;font-weight:700;margin-right:2px}
.exc-card-meta .exc-card-reviews{color:var(--text-2,#6b6b6b)}
.exc-card-meta .exc-card-duration{color:var(--text-2,#6b6b6b)}
.exc-card-price{font-weight:700;font-size:18px;color:var(--text,#1a1a18);margin-top:auto;margin-bottom:12px}
.exc-card-price .exc-card-price-lbl{font-size:12px;font-weight:400;color:var(--text-2,#6b6b6b);margin-right:3px}
.exc-card-actions{display:flex;gap:8px}
.exc-card-actions .btn-light,.exc-card-actions .btn-gold{flex:1;text-align:center;font-size:13px;padding:8px 12px;border-radius:6px;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .15s}
.exc-card-actions .btn-light{background:transparent;color:var(--accent,#b44a2f);border:1.5px solid var(--accent,#b44a2f)}
.exc-card-actions .btn-light:hover{background:var(--accent,#b44a2f);color:#fff}
.exc-card-actions .btn-gold{background:linear-gradient(135deg,#c6a55c,#d4b06a);color:#1a3a5c;border:none}
.exc-card-actions .btn-gold:hover{box-shadow:0 2px 8px rgba(198,165,92,.4)}

.exc-cat-empty{text-align:center;padding:60px 20px;color:var(--text-2,#6b6b6b)}
.exc-cat-empty h3{font-size:18px;margin-bottom:8px;color:var(--text,#1a1a18)}
.exc-cat-empty a{color:var(--accent,#b44a2f);font-weight:600}

@media(max-width:900px){.exc-cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
.exc-cat-page{padding-left:16px;padding-right:16px}
.exc-cat-grid{grid-template-columns:1fr;gap:16px}
.exc-cat-hero{padding:20px 16px;border-radius:0;margin-left:-16px;margin-right:-16px}
.exc-cat-filters{padding:10px;gap:6px}
.exc-cat-chip{font-size:12px;padding:5px 10px}
}

/* ── Каталог городов /cities ── */

/* Универсальные отступы для блоков внутри sec-in на мобиле */
.cit-pad{padding:0 24px}

/* Hero — full-width background */
.cat-hero-wrap{background:var(--blue-deep);margin-bottom:24px}
.cat-hero{color:#fff;padding:32px 24px 28px;border-radius:var(--radius)}
.cat-hero-wrap .cat-hero{border-radius:0;padding:32px 24px 28px}
.cat-hero h1{font-family:var(--font-display);font-size:42px;font-weight:400;margin-bottom:10px;color:#fff;text-transform:uppercase}
.cat-hero-sub{font-size:15px;opacity:.75;line-height:1.6;margin-bottom:20px}
.cat-hero-stats{display:flex;gap:32px;flex-wrap:wrap}
.cat-hero-stat{display:flex;flex-direction:column}
.cat-hero-n{font-family:var(--font-heading);font-size:28px;font-weight:700;line-height:1}
.cat-hero-l{font-size:13px;opacity:.6;margin-top:4px}

/* Контент страницы — отступ снизу */
.cit-content{padding-bottom:60px}

/* Фильтр городов /cities */
.cit-filter-wrap{margin-bottom:20px}
.cit-filter-label{font-size:12px;font-weight:600;color:var(--gray-400);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}
.cit-filter{display:flex;flex-wrap:wrap;gap:8px}
.cit-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;border:1px solid var(--gray-200);background:transparent;font-size:13px;color:var(--gray-600);cursor:pointer;transition:all .2s;font-family:var(--font-body);white-space:nowrap}
.cit-chip:hover{border-color:var(--blue-deep);color:var(--blue-deep)}
.cit-chip--on{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff}
.cit-chip--on:hover{background:var(--blue-main);color:#fff}
.cit-empty{text-align:center;padding:48px 20px;color:var(--gray-400);font-size:15px}
.cit-empty a{color:var(--blue-main);font-weight:600}

@media(max-width:640px){
    .cit-pad{padding:0 16px}
    .cat-hero{padding:22px 16px 20px}
    .cat-hero-sub{font-size:14px}
    .cat-hero-stats{gap:18px}
    .cat-hero-n{font-size:22px}
    .cit-filter{flex-wrap:wrap}
    .cit-chip{flex-shrink:1}
    .ct-grid{grid-template-columns:repeat(2,1fr);gap:12px}
    .ct-card-body h3{font-size:15px}
}

.cit-seo{padding:40px 0 0;margin-top:32px;border-top:1px solid var(--gray-100)}
.cit-seo h2{font-family:var(--font-heading);font-size:22px;color:var(--blue-deep);margin-bottom:14px}
.cit-seo p{font-size:15px;color:var(--gray-600);line-height:1.7;margin-bottom:12px}
.cit-seo a{color:var(--green-kg);font-weight:500}

/* ── catalog-names ── */
.cit-chip-cnt{display:inline-block;background:rgba(255,255,255,.2);border-radius:10px;padding:1px 7px;font-size:12px;margin-left:4px}
.cit-chip--on .cit-chip-cnt{background:rgba(255,255,255,.35)}
.ct-card-noimg{aspect-ratio:4/3;background:var(--gray-100,#f0f0f0);display:flex;align-items:center;justify-content:center;font-size:48px;border-radius:8px 8px 0 0}
/* Квадратные изображения в каталоге «Известные люди» (унификация: разные исходники приходят с разными пропорциями) */
#namesGrid .ct-card > img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-radius:8px 8px 0 0}
#namesGrid .ct-card-noimg{aspect-ratio:1/1}
.ct-card-city{color:var(--accent,#b44a2f);font-size:13px;margin:2px 0 0}
.ct-card-intro{color:var(--gray-500,#6b7280);font-size:13px;line-height:1.4;margin:4px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* === Экскурсии в cd-ratom: подзаголовок для соседнего города === */
.cd-ratom-title-sub {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--gray-200);
    font-size: 13px;
    color: var(--gray-500);
    font-weight: normal;
    letter-spacing: 0.02em;
}
 

/* === CATALOG HOTELS/RESTAURANTS === */
.hr-filters{margin-bottom:24px}
.hr-filters .cit-filter-wrap{margin-bottom:14px}
.hr-filters .cit-filter-wrap:last-child{margin-bottom:0}

.hr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
.hr-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit;display:flex;flex-direction:column;cursor:pointer}
.hr-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-h)}

.hr-card-img{position:relative;aspect-ratio:16/10;height:180px;flex-shrink:0;overflow:hidden}
.hr-card-img img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.hr-card-noimg{width:100%;height:180px;display:flex;align-items:center;justify-content:center;font-size:56px;opacity:.35}
.hr-card-kg{position:absolute;top:10px;right:10px;background:var(--green-kg);color:#fff;font-size:11px;font-weight:700;padding:4px 9px;border-radius:4px;letter-spacing:.2px;z-index:2}

.hr-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px}
.hr-card-name{font-family:var(--font-heading);font-size:16px;font-weight:600;color:var(--blue-deep);line-height:1.3;margin:0 0 2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hr-card-meta{font-size:12.5px;color:var(--gray-600,#4b5563);line-height:1.4}
.hr-card-city{font-weight:500;color:var(--accent,#b44a2f)}
.hr-card-type,.hr-card-stars{color:var(--gray-500,#6b7280)}
.hr-card-price{font-size:13px;font-weight:600;color:var(--gray-800,#1f2937);margin-top:4px}
.hr-card-kg-text{font-size:12px;color:var(--green-kg);line-height:1.4;margin-top:2px}
.hr-card-intro{font-size:12.5px;color:var(--gray-600,#4b5563);line-height:1.45;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

@media (max-width:900px){
  .hr-grid{grid-template-columns:repeat(2,1fr);gap:14px}
}
@media (max-width:560px){
  .hr-grid{grid-template-columns:1fr;gap:12px}
  .hr-card-name{font-size:15px}
  .hr-card-img,.hr-card-noimg{height:200px}
}
/* === END CATALOG HOTELS/RESTAURANTS === */


/* ═══════════════════════════════════════════════════════════════════════════
   LANDINGS — стили для /landing/{slug}
   Префикс: .ld-*  (не конфликтует ни с одним существующим классом)
   Использует глобальные токены: --accent, --max-w, --font-heading
   Mobile-first (74% трафика на мобайле)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   landing.css — стили посадочных страниц /landing/*
   
   Использует глобальные токены: --accent, --max-w (из :root style.css).
   Все классы с префиксом .ld- чтобы не конфликтовать с остальным сайтом.
   Mobile-first (74% трафика на мобайле).
   ═══════════════════════════════════════════════════════════════ */

.ld {
    --ld-dark:       #1e1e1e;
    --ld-dark-soft:  #2a2a2a;
    --ld-ink:        #1a1a1a;
    --ld-muted:      #6b6b6b;
    --ld-line:       #e6e6e6;
    --ld-bg-soft:    #f7f5f2;
    --ld-bg-accent:  #faf3ef;     /* тёплый бежевый под акцент */
    --ld-save:       #085041;     /* зелёный «с КГ — бесплатно» */
    --ld-save-bg:    #e7f3ef;
    --ld-r:          12px;

    color: var(--ld-ink);
    line-height: 1.55;
    font-size: 16px;
}

.ld *,
.ld *::before,
.ld *::after { box-sizing: border-box; }

.ld-wrap {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
    padding: 0 20px;
}

.ld a:not(.ld-btn):not(.ld-seg-title):not(.ld-seg-book) { color: var(--accent, #b44a2f); text-decoration: underline; text-underline-offset: 2px; }
.ld a:not(.ld-btn):not(.ld-seg-title):not(.ld-seg-book):hover { text-decoration: none; }

/* ─── Заголовки ────────────────────────────────────────── */
.ld-h1 {
    font-family: var(--font-heading, inherit);
    font-size: 32px;
    line-height: 1.15;
    font-weight: 800;
    margin: 0 0 18px;
    letter-spacing: -0.01em;
}
.ld-h2 {
    font-family: var(--font-heading, inherit);
    font-size: 26px;
    line-height: 1.2;
    font-weight: 800;
    margin: 0 0 18px;
    letter-spacing: -0.005em;
}
.ld-h2--light { color: #fff; }

@media (min-width: 768px) {
    .ld-h1 { font-size: 52px; }
    .ld-h2 { font-size: 36px; margin-bottom: 24px; }
}
@media (min-width: 1024px) {
    .ld-h1 { font-size: 64px; }
    .ld-h2 { font-size: 40px; }
}

/* ─── Кнопки ───────────────────────────────────────────── */
.ld-btn {
    display: inline-block;
    padding: 14px 26px;
    border-radius: 8px;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.2;
    text-decoration: none !important;
    text-align: center;
    border: 2px solid transparent;
    transition: transform .15s, box-shadow .15s, background .15s, color .15s;
    cursor: pointer;
}
.ld-btn-lg { padding: 18px 34px; font-size: 17px; }
.ld a.ld-btn,
.ld .ld-btn {
    color: inherit;
}
.ld a.ld-btn-primary,
.ld .ld-btn-primary {
    background: var(--accent, #b44a2f);
    color: #fff !important;
    border-color: var(--accent, #b44a2f);
    box-shadow: 0 4px 14px rgba(180, 74, 47, 0.25);
}
.ld a.ld-btn-primary:hover,
.ld .ld-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(180, 74, 47, 0.4);
    background: #a04127;
    color: #fff !important;
}
.ld a.ld-btn-outline,
.ld .ld-btn-outline {
    background: transparent;
    color: var(--accent, #b44a2f) !important;
    border-color: var(--accent, #b44a2f);
}
.ld a.ld-btn-outline:hover,
.ld .ld-btn-outline:hover {
    background: var(--accent, #b44a2f);
    color: #fff !important;
}

/* ═══ HERO ═══════════════════════════════════════════════ */
.ld-hero {
    background-color: var(--ld-dark);
    background-size: cover;
    background-position: center 35%;
    background-repeat: no-repeat;
    color: #fff;
    padding: 56px 0 64px;
    text-align: left;
    position: relative;
    z-index: 0;
}
.ld-hero.has-bg {
    min-height: 440px;
    display: flex;
    align-items: center;
}
@media (min-width: 768px) {
    .ld-hero.has-bg { min-height: 520px; }
}
.ld-hero .ld-h1 { color: #fff; max-width: 900px; }
.ld-kicker {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: .85;
    margin-bottom: 18px;
    padding: 6px 12px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 20px;
}
.ld-hero-sub {
    font-size: 17px;
    line-height: 1.5;
    opacity: .92;
    max-width: 760px;
    margin: 0 0 28px;
}
.ld-hero-cta { margin-top: 8px; }

@media (min-width: 768px) {
    .ld-hero { padding: 100px 0 120px; }
    .ld-hero-sub { font-size: 20px; }
}
@media (min-width: 1024px) {
    .ld-hero { padding: 140px 0 160px; }
    .ld-hero-sub { font-size: 22px; }
}

/* ═══ INTRO (pains / why) ═══════════════════════════════ */
.ld-intro { padding: 56px 0; background: #fff; }
.ld-intro-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}
.ld-intro-card {
    background: var(--ld-bg-soft);
    border-radius: var(--ld-r);
    padding: 24px;
    position: relative;
}
.ld-intro--pains .ld-intro-card {
    padding-top: 24px;
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 0 10px;
}
.ld-intro-num {
    grid-row: 1;
    grid-column: 1;
    width: 32px; height: 32px;
    background: var(--accent, #b44a2f);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 15px;
    flex-shrink: 0;
    margin-top: 2px;
}
.ld-intro-q { font-size: 18px; font-weight: 700; margin: 0 0 10px; color: var(--ld-ink); grid-column: 2; }
.ld-intro-text { color: var(--ld-muted); margin: 0 0 14px; font-size: 15px; grid-column: 1 / -1; }
.ld-intro-answer {
    margin: 0;
    padding: 14px 16px;
    background: var(--ld-save-bg);
    border-left: 3px solid var(--ld-save);
    border-radius: 6px;
    font-weight: 600;
    font-size: 14px;
    color: var(--ld-ink);
    text-transform: uppercase;
    letter-spacing: 0.01em;
    line-height: 1.4;
    grid-column: 1 / -1;
}
.ld-why-title { font-size: 17px; font-weight: 700; margin: 0 0 8px; }
.ld-why-text { margin: 0; font-size: 15px; color: var(--ld-muted); line-height: 1.55; }
.ld-intro-footer { margin-top: 22px; font-size: 17px; color: var(--ld-ink); text-align: center; }

@media (min-width: 768px) {
    .ld-intro { padding: 80px 0; }
    .ld-intro-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .ld-why-title { font-size: 18px; }
}
@media (min-width: 1024px) {
    .ld-intro-card { padding: 28px; }
    .ld-intro--pains .ld-intro-card { padding-top: 28px; }
}

/* ═══ KG-БЛОК ═════════════════════════════════════════════ */
.ld-kg {
    background: var(--ld-dark);
    color: #fff;
    padding: 56px 0;
}
.ld-kg-kicker {
    display: inline-block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent, #b44a2f);
    margin-bottom: 14px;
}

/* 3 карточки-цифры */
.ld-kg-stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 28px 0;
}
.ld-kg-stat {
    padding: 24px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--ld-r);
    text-align: center;
}
.ld-kg-stat-num {
    font-size: 36px;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 8px;
    color: #fff;
    letter-spacing: -0.02em;
}
.ld-kg-stat-label {
    font-size: 15px;
    opacity: .85;
    line-height: 1.4;
}

.ld-kg a { color: #fff; }
.ld-kg-prices {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin: 0 0 24px;
}
.ld-kg-prices > div {
    padding: 10px 16px;
    background: rgba(255,255,255,.1);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
}

.ld-kg-cta { text-align: center; }
.ld-kg-note {
    font-size: 13px;
    opacity: .6;
    margin: 12px 0 0;
}

@media (min-width: 600px) {
    .ld-kg-stats { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}
@media (min-width: 768px) {
    .ld-kg { padding: 80px 0; }
    .ld-kg-stat { padding: 28px; }
    .ld-kg-stat-num { font-size: 44px; }
    .ld-kg-stat-label { font-size: 16px; }
}

/* ═══ ТАБЫ-МАРШРУТЫ ═════════════════════════════════════ */
.ld-tabs { padding: 56px 0; background: #fff; }
.ld-tabs-sub { font-size: 17px; color: var(--ld-muted); max-width: 720px; margin: -8px 0 28px; }

.ld-tabs-nav {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: 0 -20px 24px;
    padding: 0 20px 6px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}
.ld-tabs-nav::-webkit-scrollbar { height: 4px; }
.ld-tabs-nav::-webkit-scrollbar-thumb { background: var(--ld-line); border-radius: 2px; }

.ld-tab-btn {
    flex: 0 0 auto;
    padding: 12px 20px;
    background: var(--ld-bg-soft);
    border: 2px solid transparent;
    border-radius: 24px;
    font-size: 14px;
    font-weight: 700;
    color: var(--ld-ink);
    cursor: pointer;
    white-space: nowrap;
    scroll-snap-align: start;
    transition: all .15s;
}
.ld-tab-btn:hover { background: var(--ld-bg-accent); }
.ld-tab-btn.is-active {
    background: var(--ld-dark);
    color: #fff;
    border-color: var(--ld-dark);
}

.ld-tab-panel { display: none; }
.ld-tab-panel.is-active { display: block; animation: ldFadeIn .25s ease-out; }

@keyframes ldFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.ld-tab-subtitle { color: var(--ld-muted); font-size: 16px; margin: 0 0 20px; font-style: normal; }
.ld-tab-subtitle em { font-style: italic; }
.ld-tab-format { font-size: 14px; color: var(--ld-muted); margin: 0 0 24px; font-weight: 600; }

.ld-day {
    margin: 0 0 32px;
    padding: 24px;
    background: var(--ld-bg-soft);
    border-radius: var(--ld-r);
}
.ld-day-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 18px;
    color: var(--ld-ink);
    padding-bottom: 12px;
    border-bottom: 2px solid var(--accent, #b44a2f);
    display: inline-block;
}
.ld-day-note { font-size: 14px; color: var(--ld-muted); margin: 0 0 16px; }

.ld-seg { margin: 0 0 22px; }
.ld-seg:last-child { margin-bottom: 0; }
.ld-seg-label {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: var(--accent, #b44a2f);
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* ─── Карточки (грид) ──────────────────────────────────── */
.ld-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

/* ─── Вертикальная карточка (с картинкой) ──────────────── */
.ld-card {
    background: #fff;
    border-radius: var(--ld-r);
    overflow: hidden;
    border: 1px solid var(--ld-line);
    transition: border-color .15s, box-shadow .15s, transform .15s;
    display: flex;
    flex-direction: column;
}
.ld-card:hover {
    border-color: var(--accent, #b44a2f);
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
    transform: translateY(-2px);
}

.ld-card-img {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--ld-bg-soft);
}
.ld-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}
.ld-card:hover .ld-card-img img { transform: scale(1.04); }

/* КГ-бейдж на картинке (правый верх) */
.ld-card-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 4px 10px;
    border-radius: 6px;
    background: var(--ld-save, #085041);
    color: #fff;
    white-space: nowrap;
    z-index: 2;
}

.ld-card-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.ld-card-title {
    font-weight: 700;
    font-size: 16px;
    line-height: 1.3;
    margin: 0 0 6px;
    color: var(--ld-ink);
    text-decoration: none;
    display: block;
}
a.ld-card-title { color: var(--ld-ink); }
a.ld-card-title:hover { color: var(--accent, #b44a2f); }

.ld-card-desc {
    color: var(--ld-muted);
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    flex: 1;
}

.ld-card-book {
    display: inline-block;
    margin-top: 10px;
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 700;
    color: #fff;
    background: var(--accent, #b44a2f);
    border-radius: 6px;
    text-decoration: none;
    text-align: center;
    transition: background .15s;
    align-self: flex-start;
}
.ld-card-book:hover { background: #a04127; color: #fff; }

/* Плейсхолдер (нет фото) */
.ld-card-img--ph {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--ld-bg-soft) 0%, var(--ld-bg-accent, #faf3ef) 100%);
}
.ld-card-ph {
    font-size: 42px;
    line-height: 1;
    opacity: .6;
}
.ld-card--meal .ld-card-img--ph { background: linear-gradient(135deg, #fdf6e3 0%, #faf0d8 100%); }
.ld-card--excursion .ld-card-img--ph { background: linear-gradient(135deg, #f0e8f5 0%, #e8dff0 100%); }

@media (min-width: 600px) {
    .ld-cards { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (min-width: 768px) {
    .ld-tabs { padding: 80px 0; }
    .ld-tabs-nav { margin-bottom: 36px; }
    .ld-tab-btn { padding: 14px 24px; font-size: 15px; }
    .ld-day { padding: 32px; }
    .ld-day-title { font-size: 24px; }
    .ld-cards { grid-template-columns: repeat(3, 1fr); gap: 18px; }
    .ld-card-body { padding: 16px 18px 18px; }
    .ld-card-title { font-size: 17px; }
}

/* ─── Таблицы: расчёт и бонусы ─────────────────────────── */
.ld-calc, .ld-bonus { margin: 24px 0 0; }
.ld-calc-title {
    font-size: 17px;
    font-weight: 800;
    margin: 0 0 14px;
    color: var(--ld-ink);
}
.ld-table-wrap {
    overflow-x: auto;
    margin: 0 -20px;
    padding: 0 20px;
    -webkit-overflow-scrolling: touch;
}
.ld-table {
    width: 100%;
    min-width: 520px;
    border-collapse: collapse;
    background: #fff;
    border-radius: var(--ld-r);
    overflow: hidden;
    box-shadow: 0 1px 0 var(--ld-line);
}
.ld-table th,
.ld-table td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--ld-line);
    font-size: 14px;
    line-height: 1.4;
    vertical-align: middle;
}
.ld-table th {
    background: var(--ld-bg-soft);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--ld-muted);
}
.ld-table--calc td:nth-child(4) { color: var(--ld-save); font-weight: 700; }
.ld-table--calc td:last-child { color: var(--ld-save); font-weight: 700; white-space: nowrap; }
.ld-table-kg td { background: var(--ld-bg-accent); font-weight: 700; }
.ld-table-total td {
    background: var(--accent, #b44a2f);
    color: #fff;
    font-weight: 800;
    font-size: 15px;
    border-bottom: 0;
}
.ld-table-total td:last-child { color: #fff; }
.ld-table--bonus td:last-child { color: var(--ld-save); font-weight: 700; }

@media (min-width: 768px) {
    .ld-table-wrap { margin: 0; padding: 0; }
    .ld-table { min-width: 0; }
    .ld-table th, .ld-table td { padding: 14px 18px; font-size: 15px; }
}

/* ─── Итоговая сводка таба ─────────────────────────────── */
.ld-summary {
    margin: 24px 0 0;
    padding: 24px;
    background: var(--ld-save-bg);
    border-radius: var(--ld-r);
    border-left: 4px solid var(--ld-save);
}
.ld-summary-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    font-size: 15px;
    border-bottom: 1px dashed rgba(8, 80, 65, 0.15);
}
.ld-summary-row:last-of-type { border-bottom: 0; }
.ld-summary-label { color: var(--ld-ink); }
.ld-summary-value { font-weight: 700; color: var(--ld-ink); white-space: nowrap; }
.ld-summary-total {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
    padding: 14px 16px;
    background: var(--ld-save);
    color: #fff;
    border-radius: 8px;
    font-weight: 800;
    font-size: 17px;
}

/* ═══ КАК ЭТО РАБОТАЕТ ═════════════════════════════════ */
.ld-how { padding: 56px 0; background: var(--ld-bg-soft); }
.ld-how-sub { font-size: 19px; font-weight: 700; margin: -8px 0 28px; color: var(--ld-ink); }
.ld-how-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 18px;
}
.ld-how-step {
    display: flex;
    gap: 18px;
    padding: 22px 24px;
    background: #fff;
    border-radius: var(--ld-r);
    align-items: flex-start;
}
.ld-how-num {
    flex: 0 0 42px;
    width: 42px; height: 42px;
    background: var(--accent, #b44a2f);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 18px;
}
.ld-how-text { font-size: 16px; line-height: 1.5; }

@media (min-width: 768px) {
    .ld-how { padding: 80px 0; }
    .ld-how-steps { grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .ld-how-step { padding: 28px; }
    .ld-how-num { flex-shrink: 0; }
}

/* ═══ EXTRAS (Новгород в телефоне / Святые источники) ══ */
.ld-extra { padding: 56px 0; background: #fff; }
.ld-extra-sub { font-size: 17px; color: var(--ld-muted); margin: -8px 0 24px; }
.ld-extra-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
}
.ld-extra-card {
    padding: 22px;
    border: 1px solid var(--ld-line);
    border-radius: var(--ld-r);
    background: #fff;
    transition: border-color .15s, transform .15s;
}
.ld-extra-card:hover { border-color: var(--accent, #b44a2f); transform: translateY(-2px); }
.ld-extra-label { font-size: 16px; font-weight: 800; margin-bottom: 8px; color: var(--accent, #b44a2f); }
.ld-extra-text { font-size: 15px; line-height: 1.55; margin: 0; color: var(--ld-ink); }

@media (min-width: 768px) {
    .ld-extra { padding: 80px 0; }
    .ld-extra-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
}

/* ═══ LISTINGS (8 экскурсий / 12 монастырей) ═══════════ */
.ld-list { padding: 56px 0; background: var(--ld-bg-soft); }
.ld-list-sub { font-size: 17px; color: var(--ld-muted); margin: -8px 0 24px; }
.ld-list-group {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--accent, #b44a2f);
    margin: 28px 0 12px;
}
.ld-list-group:first-of-type { margin-top: 0; }
.ld-list-items {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}
.ld-list-item {
    padding: 16px 18px;
    background: #fff;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.5;
    border-left: 3px solid var(--accent, #b44a2f);
}
.ld-list-item strong { color: var(--ld-ink); }
.ld-list-price { color: var(--accent, #b44a2f); font-weight: 700; }
.ld-list-note { color: var(--ld-muted); }
.ld-list-desc { margin-top: 6px; color: var(--ld-muted); font-size: 14px; }

@media (min-width: 768px) {
    .ld-list { padding: 80px 0; }
    .ld-list-item { font-size: 16px; padding: 18px 22px; }
}

/* ═══ FAQ ═══════════════════════════════════════════════ */
.ld-faq { padding: 56px 0; background: #fff; }
.ld-faq-list {
    max-width: 860px;
    display: grid;
    gap: 10px;
}
.ld-faq-item {
    background: var(--ld-bg-soft);
    border-radius: var(--ld-r);
    padding: 18px 22px;
    transition: background .15s;
}
.ld-faq-item[open] { background: #fff; border: 1px solid var(--ld-line); }
.ld-faq-q {
    cursor: pointer;
    font-weight: 700;
    font-size: 16px;
    list-style: none;
    position: relative;
    padding-right: 32px;
    color: var(--ld-ink);
}
.ld-faq-q::-webkit-details-marker { display: none; }
.ld-faq-q::after {
    content: '+';
    position: absolute;
    right: 0; top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    color: var(--accent, #b44a2f);
    font-weight: 400;
    transition: transform .15s;
    line-height: 1;
}
.ld-faq-item[open] .ld-faq-q::after { content: '−'; }
.ld-faq-a {
    margin-top: 12px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--ld-muted);
}

@media (min-width: 768px) {
    .ld-faq { padding: 80px 0; }
    .ld-faq-q { font-size: 17px; }
}

/* ═══ CUSTOM TOUR ═══════════════════════════════════════ */
.ld-custom {
    padding: 56px 0;
    background: var(--ld-bg-accent);
    text-align: center;
}
.ld-custom-sub { font-size: 18px; font-weight: 700; max-width: 700px; margin: -8px auto 16px; }
.ld-custom-text { font-size: 16px; color: var(--ld-muted); max-width: 640px; margin: 0 auto 24px; }
.ld-custom-cta { margin-bottom: 12px; }
.ld-custom-note { font-size: 13px; color: var(--ld-muted); margin: 0; }

@media (min-width: 768px) {
    .ld-custom { padding: 80px 0; }
}

/* ═══ ФИНАЛЬНЫЙ CTA ═════════════════════════════════════ */
.ld-final {
    padding: 72px 0 80px;
    background:
        radial-gradient(circle at 20% 30%, rgba(180, 74, 47, 0.35), transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(180, 74, 47, 0.2), transparent 50%),
        var(--ld-dark);
    color: #fff;
    text-align: center;
}
/* Когда задан фон-картинка через inline style — она перекрывает градиент, но цвет и текст остаются светлыми */
.ld-final.has-bg {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.ld-final-sub { font-size: 19px; opacity: .9; margin: -8px 0 24px; font-weight: 500; }
.ld-final-prices {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0 auto 22px;
    max-width: 820px;
}
.ld-final-prices > div {
    padding: 12px 18px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
}
.ld-final-bullets {
    font-size: 15px;
    opacity: .85;
    max-width: 780px;
    margin: 0 auto 28px;
    line-height: 1.7;
}
.ld-final-cta { margin-bottom: 14px; }
.ld-final-note { font-size: 14px; opacity: .7; margin: 0; }

@media (min-width: 768px) {
    .ld-final { padding: 100px 0 110px; }
    .ld-final-sub { font-size: 22px; }
    .ld-final-bullets { font-size: 17px; }
}
/* =========================================================
   GUEST CARD PAGE (/guest-card) — префикс .gcp-*
   Добавить в конец /assets/css/style.css
   ========================================================= */

/* --- Hero --- */
.gcp-hero{background:linear-gradient(135deg,rgba(13,46,92,.88) 0%,rgba(10,31,58,.92) 60%,rgba(8,24,48,.95) 100%),url('/assets/img/kg-hero-bg.jpg') center/cover no-repeat;color:#fff;padding:60px 24px 56px;position:relative;overflow:hidden}
.gcp-hero::before{content:'';position:absolute;top:-30%;right:-15%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(198,165,92,.12),transparent 70%);pointer-events:none}
.gcp-hero::after{content:'';position:absolute;bottom:-40%;left:-10%;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(46,123,214,.14),transparent 70%);pointer-events:none}
.gcp-hero-in{max-width:var(--max-w);margin:0 auto;position:relative;z-index:2}
.gcp-hero-grid{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start}
.gcp-kicker{display:inline-block;font-size:11px;font-weight:600;letter-spacing:1.5px;color:var(--gold-light);background:rgba(198,165,92,.1);border:1px solid rgba(198,165,92,.25);padding:6px 14px;border-radius:20px;margin-bottom:20px}
.gcp-hero-l h1{font-family:var(--font-heading);font-size:52px;line-height:1.05;font-weight:700;margin-bottom:18px;color:#fff}
.gcp-hero-sub{font-size:17px;line-height:1.55;opacity:.85;max-width:560px;margin-bottom:24px}
.gcp-hero-highlight{background:rgba(46,158,90,.15);border:1px solid rgba(46,158,90,.35);border-radius:10px;padding:14px 18px;margin-bottom:24px;font-size:14.5px;line-height:1.5;max-width:560px}
.gcp-hero-highlight strong{color:#5dd99a}
.gcp-calc-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:18px 22px;margin-bottom:28px;max-width:560px}
.gcp-calc-title{font-size:12px;text-transform:uppercase;letter-spacing:1px;opacity:.55;margin-bottom:10px}
.gcp-calc-line{font-size:14.5px;line-height:1.55;opacity:.85;margin-bottom:4px}
.gcp-calc-line strong{color:#fff;opacity:1}
.gcp-calc-line-hl{font-size:16px;color:var(--gold-light);opacity:1}
.gcp-calc-line-hl strong{color:var(--gold-light);font-size:20px}
.gcp-cta-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.gcp-cta-sub{display:flex;gap:18px;flex-wrap:wrap}
.gcp-cta-phone,.gcp-cta-org{color:rgba(255,255,255,.7);font-size:13.5px;text-decoration:none;border-bottom:1px dashed rgba(255,255,255,.25);padding-bottom:2px;transition:color .2s}
.gcp-cta-phone:hover,.gcp-cta-org:hover{color:#fff}

/* Hero mini-tariffs aside */
.gcp-hero-r{display:flex;align-items:center;justify-content:center}
.gcp-hero-mini-title{font-size:11px;font-weight:600;letter-spacing:1.5px;opacity:.5;margin-bottom:4px}
.gcp-mini{display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:14px 16px;text-decoration:none;color:#fff;transition:all .2s;position:relative}
.gcp-mini:hover{background:rgba(255,255,255,.1);transform:translateX(-2px)}
.gcp-mini-hot{background:rgba(198,165,92,.12);border-color:rgba(198,165,92,.35)}
.gcp-mini-hot:hover{background:rgba(198,165,92,.18)}
.gcp-mini-fam{background:rgba(46,158,90,.1);border-color:rgba(46,158,90,.3)}
.gcp-mini-fam:hover{background:rgba(46,158,90,.15)}
.gcp-mini-days{font-size:13.5px;opacity:.9}
.gcp-mini-price{font-family:var(--font-heading);font-size:20px;font-weight:600}
.gcp-mini-hot .gcp-mini-price{color:var(--gold-light)}
.gcp-mini-fam .gcp-mini-price{color:#5dd99a}
.gcp-mini-label{position:absolute;top:-8px;left:12px;background:var(--gold);color:var(--blue-deep);font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 8px;border-radius:10px}

/* --- Card images (айдентика пластика) --- */
.gcp-hero-card-img{width:100%;max-width:320px;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.35);margin-bottom:16px;transition:transform .3s}
.gcp-hero-card-img:hover{transform:scale(1.03) rotate(-1deg)}

/* --- Кнопки --- */
.gcp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:10px;font-size:14.5px;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:all .2s;font-family:var(--font-body)}
.gcp-btn-primary{background:linear-gradient(135deg,var(--gold) 0%,#d4b06a 100%);color:var(--blue-deep);box-shadow:0 4px 20px rgba(198,165,92,.35)}
.gcp-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(198,165,92,.5)}
.gcp-btn-block{display:flex;width:100%}

/* --- Секции --- */
.gcp-section{padding:72px 24px;position:relative}
.gcp-section-white{background:#fff}
.gcp-section-gray{background:var(--gray-50)}
.gcp-section-dark{background:var(--blue-deep);color:#fff}
.gcp-section-in{max-width:var(--max-w);margin:0 auto}
.gcp-section-head{text-align:center;margin-bottom:44px}
.gcp-section-head h2{font-family:var(--font-heading);font-size:36px;color:var(--blue-deep);margin-bottom:10px;font-weight:700}
.gcp-section-dark .gcp-section-head h2{color:#fff}
.gcp-section-head p{font-size:16px;color:var(--gray-600);max-width:640px;margin:0 auto;line-height:1.55}
.gcp-section-dark .gcp-section-head p{color:rgba(255,255,255,.75)}

/* --- Зона 2: Что входит --- */
.gcp-incl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.gcp-incl{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius);padding:28px 20px;text-align:center;transition:all .2s}
.gcp-incl:hover{transform:translateY(-4px);box-shadow:var(--shadow-h);border-color:transparent}
.gcp-incl-icon{font-size:38px;line-height:1;margin-bottom:12px}
.gcp-incl-n{font-family:var(--font-heading);font-size:34px;color:var(--blue-main);font-weight:700;line-height:1}
.gcp-incl-t{font-size:13px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.8px;margin:6px 0 12px}
.gcp-incl-d{font-size:13.5px;color:var(--gray-600);line-height:1.55}

/* --- Зона 3: Калькулятор --- */
.gcp-calc-card{background:#fff;border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);border:1px solid var(--gray-100)}
.gcp-calc-cols{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:stretch;margin-bottom:24px}
.gcp-calc-col{padding:22px 20px;border-radius:10px}
.gcp-calc-col-red{background:#fdf2ef;border:1px solid #f0d9cf}
.gcp-calc-col-green{background:#e6f5ec;border:1px solid #c6e4d2}
.gcp-calc-col-h{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}
.gcp-calc-col-red .gcp-calc-col-h{color:#b04a30}
.gcp-calc-col-green .gcp-calc-col-h{color:#1e7642}
.gcp-calc-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;font-size:14px;border-bottom:1px solid rgba(0,0,0,.06)}
.gcp-calc-row:last-of-type{border-bottom:none}
.gcp-calc-row span{color:var(--gray-600)}
.gcp-calc-row b{font-weight:600;color:var(--gray-800)}
.gcp-calc-col-green .gcp-free{color:#1e7642;font-size:13px}
.gcp-calc-total{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0 0;margin-top:8px;border-top:2px solid rgba(0,0,0,.1);font-size:16px;font-weight:700}
.gcp-calc-col-red .gcp-calc-total b{color:#b04a30}
.gcp-calc-col-green .gcp-calc-total b{color:#1e7642}
.gcp-calc-arrow{display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--gold);font-weight:700}
.gcp-calc-result{background:linear-gradient(135deg,var(--blue-deep),var(--blue-main));color:#fff;border-radius:10px;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:14px}
.gcp-calc-result-main{display:flex;align-items:baseline;gap:16px}
.gcp-calc-result-l{font-size:14px;opacity:.85}
.gcp-calc-result-v{font-family:var(--font-heading);font-size:40px;color:var(--gold-light);font-weight:700;line-height:1;white-space:nowrap}
.gcp-calc-result-sub{font-size:13.5px;opacity:.8;max-width:420px;text-align:right}
.gcp-calc-result-sub strong{color:var(--gold-light)}
.gcp-calc-note{font-size:12px;color:var(--gray-400);font-style:italic;text-align:center;margin-top:12px}

/* --- Зона 3b: Тарифы --- */
.gcp-tar-group-label{font-size:12px;font-weight:700;letter-spacing:1.2px;color:var(--gray-400);text-transform:uppercase;margin:28px 0 16px;text-align:center}
.gcp-tar-group-label:first-of-type{margin-top:0}
.gcp-tar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:8px}
.gcp-tar{background:#fff;border:2px solid var(--gray-100);border-radius:var(--radius);padding:28px 24px;text-align:center;position:relative;transition:all .2s;display:flex;flex-direction:column;gap:10px}
.gcp-tar:hover{transform:translateY(-2px);box-shadow:var(--shadow-h);border-color:var(--blue-light)}
.gcp-tar-hot{border-color:var(--green-kg);background:linear-gradient(180deg,#fff 0%,#f0faf3 100%)}
.gcp-tar-hot:hover{border-color:var(--green-kg);box-shadow:0 12px 32px rgba(46,158,90,.15)}
.gcp-tar-fam{border-color:#e4d9bd;background:linear-gradient(180deg,#fff 0%,#fdf8ed 100%)}
.gcp-tar-fam:hover{border-color:var(--gold)}
.gcp-tar-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--green-kg);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:5px 14px;border-radius:20px;white-space:nowrap}
.gcp-tar-days{font-size:14px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.8px}
.gcp-tar-price{font-family:var(--font-heading);font-size:48px;color:var(--blue-deep);font-weight:700;line-height:1}
.gcp-tar-price span{font-size:22px;font-weight:400;color:var(--gray-400);margin-left:4px}
.gcp-tar-hot .gcp-tar-price{color:var(--green-kg)}
.gcp-tar-fam .gcp-tar-price{color:var(--gold)}
.gcp-tar-desc{font-size:13.5px;color:var(--gray-600);line-height:1.45;min-height:38px}
.gcp-tar .gcp-btn{margin-top:4px}

/* --- Зона 4: Как получить --- */
.gcp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:32px}
.gcp-step{text-align:center;background:#fff;border-radius:var(--radius);padding:32px 24px;border:1px solid var(--gray-100);position:relative}
.gcp-step-n{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(135deg,var(--blue-main),var(--blue-light));color:#fff;border-radius:50%;font-family:var(--font-heading);font-size:22px;font-weight:700;margin-bottom:14px;box-shadow:0 4px 16px rgba(46,123,214,.3)}
.gcp-step-t{font-size:17px;font-weight:700;color:var(--blue-deep);margin-bottom:10px}
.gcp-step-d{font-size:13.5px;color:var(--gray-600);line-height:1.55}
.gcp-activate{background:linear-gradient(135deg,#fff8e6 0%,#faf0d3 100%);border:1px solid #e4d9bd;border-radius:10px;padding:18px 24px;text-align:center;font-size:14.5px;color:var(--gray-800);line-height:1.55}
.gcp-activate strong{color:var(--blue-deep)}

/* --- Зона 5: Партнёры --- */
.gcp-ptabs{display:flex;justify-content:center;gap:10px;margin-bottom:32px;flex-wrap:wrap;border-bottom:1px solid var(--gray-100);padding-bottom:0}
.gcp-ptab{background:none;border:none;padding:14px 24px;font-size:14.5px;font-weight:600;color:var(--gray-600);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;font-family:var(--font-body);margin-bottom:-1px}
.gcp-ptab:hover{color:var(--blue-main)}
.gcp-ptab-active{color:var(--blue-deep);border-bottom-color:var(--gold)}

.gcp-ppane{display:none}
.gcp-ppane-active{display:block}
.gcp-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gcp-pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gray-100);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:all .2s}
.gcp-pcard:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--blue-light)}
.gcp-pcard-img{width:100%;height:237px;flex-shrink:0;background:var(--gray-50)}
.gcp-pcard-img img{width:100%;height:100%;object-fit:cover;display:block}
.gcp-pcard-body{padding:14px 16px;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.gcp-pcard-name{font-size:14.5px;font-weight:600;color:var(--blue-deep);margin-bottom:4px;line-height:1.35}
.gcp-pcard-city{font-size:12.5px;color:var(--gray-400);margin-bottom:8px}
.gcp-pcard-kg{display:inline-block;font-size:11.5px;font-weight:600;color:var(--green-kg);background:var(--green-bg);padding:3px 10px;border-radius:12px}
.gcp-pcard-kg-free{background:var(--green-bg);color:var(--green-kg)}
.gcp-pcard-kg-gift{background:#fff3e0;color:#c06e17}

.gcp-phidden{display:none;margin-top:14px}
.gcp-phidden-open{display:block}
.gcp-phidden .gcp-pgrid{margin-top:0}
.gcp-pmore{display:block;margin:24px auto 0;background:#fff;border:2px solid var(--blue-main);color:var(--blue-main);padding:12px 32px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;font-family:var(--font-body)}
.gcp-pmore:hover{background:var(--blue-main);color:#fff}

/* --- Зона 6: FAQ --- */
.gcp-faq-wrap{max-width:880px}
.gcp-faq{display:flex;flex-direction:column;gap:10px}
.gcp-faq-item{background:#fff;border:1px solid var(--gray-100);border-radius:10px;overflow:hidden;transition:all .2s}
.gcp-faq-item[open]{border-color:var(--blue-light);box-shadow:var(--shadow)}
.gcp-faq-item summary{padding:18px 22px;font-size:15px;font-weight:600;color:var(--blue-deep);cursor:pointer;position:relative;padding-right:50px;list-style:none;line-height:1.4}
.gcp-faq-item summary::-webkit-details-marker{display:none}
.gcp-faq-item summary::after{content:'+';position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400;color:var(--gold);transition:transform .2s}
.gcp-faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.gcp-faq-item summary:hover{background:var(--gray-50)}
.gcp-faq-a{padding:0 22px 18px;font-size:14.5px;color:var(--gray-600);line-height:1.65}
.gcp-faq-a p{margin:0}
.gcp-faq-a a{color:var(--blue-main);font-weight:500}

/* --- Зона 7: B2B --- */
.gcp-org{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}
.gcp-org-l h2{font-family:var(--font-heading);font-size:34px;color:#fff;margin-bottom:14px;font-weight:700}
.gcp-org-l p{font-size:15.5px;color:rgba(255,255,255,.8);line-height:1.6;margin-bottom:20px}
.gcp-org-ul{list-style:none;padding:0;margin:0}
.gcp-org-ul li{padding:8px 0 8px 28px;position:relative;font-size:14.5px;color:rgba(255,255,255,.85)}
.gcp-org-ul li::before{content:'✓';position:absolute;left:0;color:var(--gold-light);font-weight:700}
.gcp-org-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:32px;text-align:center}
.gcp-org-card-t{font-size:14px;opacity:.7;margin-bottom:16px;text-transform:uppercase;letter-spacing:1px}
.gcp-org-phone{display:block;font-family:var(--font-heading);font-size:32px;color:var(--gold-light);font-weight:700;text-decoration:none;margin-bottom:8px}
.gcp-org-phone:hover{color:#fff}
.gcp-org-mail{display:block;font-size:14.5px;color:rgba(255,255,255,.85);text-decoration:none;margin-bottom:14px;border-bottom:1px dashed rgba(255,255,255,.3);padding-bottom:2px}
.gcp-org-mail:hover{color:#fff}
.gcp-org-hours{font-size:12.5px;opacity:.55}

/* --- Модалка покупки --- */
.gcp-modal{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:20px}
.gcp-modal-open{display:flex}
.gcp-modal-backdrop{position:absolute;inset:0;background:rgba(13,46,92,.6);backdrop-filter:blur(4px)}
.gcp-modal-box{position:relative;background:#fff;border-radius:var(--radius);max-width:460px;width:100%;padding:36px 32px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-height:90vh;overflow-y:auto}
.gcp-modal-x{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;background:var(--gray-100);border-radius:50%;font-size:20px;color:var(--gray-600);cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s}
.gcp-modal-x:hover{background:var(--gray-200)}
.gcp-modal-box h3{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin-bottom:8px;font-weight:700}
.gcp-modal-box h4{font-family:var(--font-heading);font-size:20px;color:var(--blue-deep);margin:10px 0 8px;font-weight:700}
.gcp-modal-tariff{font-size:14px;color:var(--gray-600);margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--gray-100)}
.gcp-modal-tariff strong{color:var(--green-kg)}
.gcp-form{display:flex;flex-direction:column;gap:14px}
.gcp-form label{display:flex;flex-direction:column;gap:5px}
.gcp-form label span{font-size:12.5px;font-weight:600;color:var(--gray-600)}
.gcp-form input[type=text],.gcp-form input[type=email],.gcp-form input[type=tel]{padding:11px 14px;border:1px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:var(--font-body);color:var(--gray-800);outline:none;transition:border .2s}
.gcp-form input:focus{border-color:var(--blue-light)}
.gcp-form-check{flex-direction:row;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--gray-600);line-height:1.45;cursor:pointer}
.gcp-form-check input{margin-top:2px;flex-shrink:0}
.gcp-form-check a{color:var(--blue-main)}
.gcp-form-note{text-align:center;font-size:11.5px;color:var(--gray-400);margin-top:8px}

/* Купон */
.gcp-coupon{display:flex;flex-direction:column;gap:6px}
.gcp-coupon-label{font-size:12.5px;font-weight:600;color:var(--gray-600)}
.gcp-coupon-hint{font-weight:400;color:var(--gray-400)}
.gcp-coupon-row{display:flex;gap:8px}
.gcp-coupon-row input{flex:1;padding:11px 14px;border:1px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:var(--font-body);color:var(--gray-800);outline:none;transition:border .2s;text-transform:none}
.gcp-coupon-row input:focus{border-color:var(--blue-light)}
.gcp-coupon-apply{flex-shrink:0;padding:0 18px;background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200);font-size:13px;font-weight:600;cursor:pointer;border-radius:8px}
.gcp-coupon-apply:hover{background:var(--gray-200)}
.gcp-coupon-apply:disabled{opacity:.6;cursor:default}
.gcp-coupon-msg{font-size:12.5px;line-height:1.4;padding:2px 0}
.gcp-coupon-ok{color:var(--green-kg,#2e7d32)}
.gcp-coupon-err{color:var(--accent,#b44a2f)}

/* Итог */
.gcp-total{border-top:1px solid var(--gray-100);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.gcp-total-row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;color:var(--gray-600)}
.gcp-total-row b{font-weight:600;color:var(--gray-800)}
.gcp-total-disc b{color:var(--green-kg,#2e7d32)}
.gcp-total-final{font-size:16px;color:var(--gray-900,#1a1a18);padding-top:6px;border-top:1px dashed var(--gray-200);margin-top:2px}
.gcp-total-final b{font-size:18px;color:var(--accent,#b44a2f)}

.gcp-modal-stub{text-align:center;padding:20px 0}
.gcp-stub-icon{font-size:42px;margin-bottom:12px}
.gcp-modal-stub p{font-size:14.5px;color:var(--gray-600);line-height:1.55;margin:10px 0 18px}
.gcp-stub-hours{font-size:12px;color:var(--gray-400);margin-top:12px}

/* =========================================================
   GUEST CARD — MOBILE (≤900px)
   ========================================================= */
@media(max-width:900px){
  .gcp-hero{padding:40px 20px}
  .gcp-hero-grid{grid-template-columns:1fr;gap:28px}
  .gcp-hero-l h1{font-size:36px}
  .gcp-hero-sub{font-size:15.5px}
  .gcp-hero-r{justify-content:center}
  .gcp-hero-card-img{max-width:260px}

  .gcp-section{padding:48px 20px}
  .gcp-section-head h2{font-size:28px}
  .gcp-section-head p{font-size:14.5px}
  .gcp-section-head{margin-bottom:28px}

  .gcp-incl-grid{grid-template-columns:1fr 1fr;gap:12px}
  .gcp-incl{padding:22px 16px}

  .gcp-calc-cols{grid-template-columns:1fr;gap:14px}
  .gcp-calc-arrow{transform:rotate(90deg);padding:4px 0}
  .gcp-calc-result{flex-direction:column;align-items:flex-start;text-align:left}
  .gcp-calc-result-sub{text-align:left}

  .gcp-tar-grid{grid-template-columns:1fr;gap:14px}
  .gcp-tar{padding:22px 18px}

  .gcp-steps{grid-template-columns:1fr;gap:14px}

  .gcp-ptabs{gap:6px;padding-bottom:0;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}
  .gcp-ptab{padding:10px 14px;font-size:13px;white-space:nowrap;flex-shrink:0}
  .gcp-pgrid{grid-template-columns:1fr}
  .gcp-pcard-img{height:234px}

  .gcp-org{grid-template-columns:1fr;gap:24px}
  .gcp-org-l h2{font-size:26px}
  .gcp-org-phone{font-size:26px}

  .gcp-modal-box{padding:28px 22px}
}

@media(max-width:560px){
  .gcp-hero-l h1{font-size:30px}
  .gcp-cta-row{flex-direction:column;align-items:stretch;gap:14px}
  .gcp-cta-sub{justify-content:center}
  .gcp-hero-card-img{max-width:200px}
  .gcp-incl-grid{grid-template-columns:1fr}
  .gcp-ptab{padding:10px 12px;font-size:12.5px}
}
/* ═══ Checkout Success ═══════════════════════════════════ */
.gcp-success{padding:80px 24px;min-height:60vh;display:flex;align-items:center}
.gcp-success__box{max-width:520px;margin:0 auto;text-align:center;background:#fff;padding:48px 32px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--gray-100)}
.gcp-success__icon{font-size:48px;margin-bottom:16px}
.gcp-success__box h1{font-family:var(--font-heading);font-size:28px;margin:0 0 12px;color:var(--blue-deep)}
.gcp-success__box p{color:var(--gray-600);line-height:1.6;font-size:15px}
.gcp-success__hint{font-size:13.5px;color:var(--gray-400);margin-top:16px}
.gcp-success__spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--blue-main);border-radius:50%;animation:gcp-spin 1s linear infinite;margin:20px auto}
@keyframes gcp-spin{to{transform:rotate(360deg)}}

/* ═══ My Card ════════════════════════════════════════════ */

/* Карточка — градиент в синей гамме сайта */
.mc-card{background:linear-gradient(135deg,var(--blue-deep) 0%,#0a1f3a 60%,#081830 100%);color:#fff;padding:32px;border-radius:var(--radius);margin-bottom:32px;position:relative;overflow:hidden}
.mc-card::before{content:'';position:absolute;top:-30%;right:-15%;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(198,165,92,.1),transparent 70%);pointer-events:none}
.mc-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;position:relative;z-index:2}
.mc-card__logo{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--gold-light);font-weight:600}
.mc-card__status{font-size:14px}
.mc-card__name{font-family:var(--font-heading);font-size:32px;font-weight:700;margin:0 0 8px;position:relative;z-index:2}
.mc-card__tariff{font-size:15px;opacity:.8;margin-bottom:20px;position:relative;z-index:2}
.mc-card__details{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:14px;opacity:.85;position:relative;z-index:2}
.mc-card__timeleft{color:var(--gold-light);font-weight:600}
.mc-card--expired{background:linear-gradient(135deg,#3a3e4a 0%,#555a66 100%)}
.mc-card--canceled,.mc-card--failed{background:linear-gradient(135deg,#4a3040 0%,#5a3848 100%)}

/* Прогресс-бар */
.mc-progress{margin-top:24px;position:relative;z-index:2}
.mc-progress__bar{background:rgba(255,255,255,.12);border-radius:20px;height:10px;overflow:hidden}
.mc-progress__fill{background:linear-gradient(90deg,var(--gold),var(--gold-light));height:100%;border-radius:20px;transition:width .6s ease}
.mc-progress__text{font-size:12px;color:rgba(255,255,255,.65);margin-top:6px;text-align:right}

/* Форма отметки */
.mc-visit-form{background:var(--gray-50);padding:28px;border-radius:var(--radius);margin-bottom:32px;border:1px solid var(--gray-100)}
.mc-visit-form h2{font-family:var(--font-heading);font-size:22px;color:var(--blue-deep);margin:0 0 8px}
.mc-visit-form__hint{font-size:14px;color:var(--gray-400);margin:0 0 16px}
.mc-visit-form__row{display:flex;gap:12px}
.mc-visit-form__input-wrap{flex:1}
.mc-visit-form__input-wrap input{width:100%;padding:12px 16px;border:1px solid var(--gray-200);border-radius:8px;font-size:15px;font-family:var(--font-body);transition:border-color .2s}
.mc-visit-form__input-wrap input:focus{border-color:var(--blue-light);outline:none;box-shadow:0 0 0 3px rgba(46,123,214,.1)}
.mc-visit-form__error{color:#c0392b;margin-top:8px;font-size:14px}
.mc-visit-form__ok{color:var(--green-kg);margin-top:8px;font-size:14px;font-weight:500}

/* Заголовки секций */
.mc-section-t{font-family:var(--font-heading);font-size:24px;color:var(--blue-deep);margin:0 0 16px}

/* История */
.mc-history{margin-bottom:32px}
.mc-history__empty{color:var(--gray-400);font-style:italic;padding:20px;background:var(--gray-50);border-radius:var(--radius);text-align:center}
.mc-history__list{display:flex;flex-direction:column;gap:8px}
.mc-history__item{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:#fff;border-radius:10px;border:1px solid var(--gray-100);transition:all .2s}
.mc-history__item:hover{border-color:var(--blue-light);box-shadow:var(--shadow)}
.mc-history__item--new{animation:mc-flash .6s}
@keyframes mc-flash{0%,100%{background:#fff}50%{background:var(--green-bg)}}
.mc-history__museum{font-weight:600;color:var(--blue-deep);font-size:14.5px}
.mc-history__date{font-size:13px;color:var(--gray-400)}

/* Доступные музеи (чеклист) */
.mc-available{margin-bottom:32px}
.mc-available__toggle{font-family:var(--font-heading);font-size:18px;color:var(--blue-deep);cursor:pointer;padding:16px 20px;background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-100);transition:all .2s;list-style:none}
.mc-available__toggle::-webkit-details-marker{display:none}
.mc-available__toggle::after{content:'+';float:right;font-size:20px;color:var(--gray-400);font-family:var(--font-body);font-weight:300}
details[open] .mc-available__toggle::after{content:'−'}
details[open] .mc-available__toggle{border-radius:var(--radius) var(--radius) 0 0;border-bottom-color:transparent}
.mc-available__list{border:1px solid var(--gray-100);border-top:none;border-radius:0 0 var(--radius) var(--radius);padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:400px;overflow-y:auto}
.mc-available__item{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;color:var(--gray-600);border-radius:6px}
.mc-available__item--done{color:var(--green-kg);text-decoration:line-through;opacity:.65}
.mc-available__item:hover{background:var(--gray-50)}

/* Поделиться */
.mc-share{text-align:center;margin-bottom:32px}

/* Инфо */
.mc-info{text-align:center;padding:24px;color:var(--gray-400);font-size:14px}
.mc-info a{color:var(--blue-main);text-decoration:none;border-bottom:1px dashed rgba(18,66,133,.3)}
.mc-info a:hover{color:var(--blue-deep);border-bottom-color:var(--blue-deep)}

/* Мобильная адаптация */
@media(max-width:600px){
  .mc-card{padding:24px 20px}
  .mc-card__name{font-size:24px}
  .mc-card__details{flex-direction:column;gap:6px}
  .mc-visit-form__row{flex-direction:column}
  .mc-history__item{flex-direction:column;align-items:flex-start;gap:4px}
  .mc-available__list{grid-template-columns:1fr}
  .gcp-success__box{padding:32px 20px}
}

/* ═══ Admin Panel ════════════════════════════════════════ */
.adm-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:32px}
.adm-stat{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius);padding:20px;text-align:center;transition:all .2s}
.adm-stat:hover{box-shadow:var(--shadow);border-color:var(--blue-light)}
.adm-stat__n{font-family:var(--font-heading);font-size:32px;color:var(--blue-deep);font-weight:700;line-height:1.1}
.adm-stat__l{font-size:12.5px;color:var(--gray-400);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}

.adm-block{margin-bottom:32px}
.adm-block__t{font-family:var(--font-heading);font-size:22px;color:var(--blue-deep);margin:0 0 16px}

.adm-filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;background:var(--gray-50);padding:20px;border-radius:var(--radius);border:1px solid var(--gray-100)}
.adm-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--gray-400);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.adm-filters input,.adm-filters select{padding:9px 12px;border:1px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:var(--font-body);min-width:140px}
.adm-filters input:focus,.adm-filters select:focus{border-color:var(--blue-light);outline:none}
.adm-filters__btns{display:flex;gap:12px;align-items:center}
.adm-filters__reset{font-size:13px;color:var(--gray-400);text-decoration:underline}

.adm-export{margin-bottom:32px;background:var(--gray-50);padding:20px;border-radius:var(--radius);border:1px solid var(--gray-100)}
.adm-export__btns{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.adm-export__btns .gcp-btn{font-size:13px;padding:10px 18px}
.adm-export__note{font-size:12px;color:var(--gray-400);font-style:italic}

.adm-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.adm-table{width:100%;border-collapse:collapse;font-size:13.5px}
.adm-table th{background:var(--blue-deep);color:#fff;padding:10px 14px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.adm-table td{padding:10px 14px;border-bottom:1px solid var(--gray-100);color:var(--gray-800)}
.adm-table tr:hover td{background:var(--gray-50)}
.adm-table .adm-nowrap{white-space:nowrap}

.adm-status{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11.5px;font-weight:600}
.adm-status--paid{background:var(--green-bg);color:var(--green-kg)}
.adm-status--active{background:#e0f2fe;color:#0369a1}
.adm-status--expired{background:var(--gray-100);color:var(--gray-400)}
.adm-status--canceled{background:#fef2f2;color:#b91c1c}
.adm-status--pending{background:#fef9c3;color:#a16207}

.adm-link{color:var(--blue-main);text-decoration:none;font-weight:500}
.adm-link:hover{text-decoration:underline}

@media(max-width:900px){
  .adm-stats{grid-template-columns:repeat(3,1fr)}
  .adm-filters{flex-direction:column}
}
@media(max-width:600px){
  .adm-stats{grid-template-columns:1fr 1fr}
  .adm-table{font-size:12px}
  .adm-table th,.adm-table td{padding:8px 10px}
}


/* ═══════════════════════════════════════════════════════
   АУДИОГИДЫ (.ag-*)
   ═══════════════════════════════════════════════════════ */

/* --- Hero --- */
.ag-hero {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    color: #fff;
    padding: 48px 24px 40px;
    text-align: center;
}
.ag-hero-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
}
.ag-hero h1 {
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 12px;
}
.ag-hero-stats {
    font-size: 18px;
    opacity: .85;
    margin: 0 0 8px;
}
.ag-hero-sub {
    font-size: 15px;
    opacity: .65;
    margin: 0;
}

/* --- Карта --- */
.ag-map-section {
    max-width: var(--max-w, 1200px);
    margin: 32px auto;
    padding: 0 24px;
}
.ag-map-section h2 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 16px;
}
.ag-map {
    width: 100%;
    height: 420px;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e2e2e2;
}

/* --- Фильтры-чипсы --- */
.ag-filters {
    max-width: var(--max-w, 1200px);
    margin: 24px auto;
    padding: 0 24px;
}
.ag-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ag-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 20px;
    background: #f3f3f3;
    color: #333;
    font-size: 14px;
    text-decoration: none;
    transition: background .2s, color .2s;
    white-space: nowrap;
}
.ag-chip:hover {
    background: #e8e8e8;
}
.ag-chip--active {
    background: var(--accent, #b44a2f);
    color: #fff;
}
.ag-chip-cnt {
    font-size: 12px;
    opacity: .7;
}

/* --- Каталог: сетка карточек --- */
.ag-catalog {
    max-width: var(--max-w, 1200px);
    margin: 24px auto;
    padding: 0 24px;
}
.ag-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
}
.ag-card {
    display: flex;
    flex-direction: column;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e8e8e8;
    text-decoration: none;
    color: inherit;
    transition: box-shadow .2s, transform .15s;
}
.ag-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
    transform: translateY(-2px);
}
.ag-card-img {
    height: 180px;
    background-size: cover;
    background-position: center;
    background-color: #eee;
}
.ag-card-noimg {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    background: #f0ebe6;
}
.ag-card-body {
    padding: 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.ag-card-title {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 8px;
    line-height: 1.3;
}
.ag-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    color: #777;
    margin-bottom: 8px;
}
.ag-card-city {
    color: var(--accent, #b44a2f);
    font-weight: 500;
}
.ag-card-intro {
    font-size: 13px;
    color: #666;
    line-height: 1.45;
    margin: 0;
}
.ag-empty {
    text-align: center;
    color: #999;
    padding: 40px 0;
}

/* --- SEO текст --- */
.ag-seo {
    background: #f9f7f5;
    padding: 40px 24px;
    margin-top: 40px;
}
.ag-seo-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
}
.ag-seo h2 {
    font-size: 20px;
    font-weight: 600;
    margin: 0 0 12px;
}
.ag-seo p {
    font-size: 15px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 12px;
}

/* ═══ СТРАНИЦА АУДИОГИДА (.ag-page-*) ═══ */

.ag-page-hero {
    background: #1a1a2e;
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 48px 24px 40px;
}
.ag-page-hero-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
}
.ag-breadcrumb {
    font-size: 13px;
    margin-bottom: 12px;
    opacity: .75;
}
.ag-breadcrumb a {
    color: #fff;
    text-decoration: none;
}
.ag-breadcrumb a:hover {
    text-decoration: underline;
}
.ag-breadcrumb span {
    margin: 0 6px;
}
.ag-page-hero h1 {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 16px;
    line-height: 1.25;
}
.ag-page-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ag-pill {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 16px;
    background: rgba(255,255,255,.15);
    font-size: 13px;
}
.ag-pill--green {
    background: rgba(29,158,117,.25);
}

/* --- Intro --- */
.ag-intro {
    max-width: var(--max-w, 1200px);
    margin: 32px auto;
    padding: 0 24px;
}
.ag-intro-text {
    font-size: 16px;
    line-height: 1.65;
    color: #444;
}

/* --- Карта маршрута --- */
.ag-route-map-section {
    max-width: var(--max-w, 1200px);
    margin: 24px auto 32px;
    padding: 0 24px;
}
.ag-route-map-section h2 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 16px;
}

/* --- Остановки --- */
.ag-stops {
    max-width: var(--max-w, 1200px);
    margin: 0 auto 40px;
    padding: 0 24px;
}
.ag-stops h2 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 24px;
}
.ag-stop {
    display: flex;
    gap: 16px;
    padding: 24px 0;
    border-bottom: 1px solid #eee;
}
.ag-stop:last-child {
    border-bottom: none;
}
.ag-stop-num {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--accent, #b44a2f);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ag-stop-content {
    flex: 1;
    min-width: 0;
}
.ag-stop-title {
    font-size: 17px;
    font-weight: 600;
    margin: 0 0 10px;
}
.ag-stop-img {
    margin-bottom: 12px;
}
.ag-stop-img img {
    max-width: 360px;
    width: 100%;
    height: auto;
    border-radius: 8px;
}
.ag-stop-player {
    margin-bottom: 12px;
}
.ag-stop-player audio {
    width: 100%;
    max-width: 480px;
}
.ag-stop-text {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
    margin-bottom: 8px;
}
.ag-stop-text p {
    margin: 0 0 10px;
}
.ag-stop-geo {
    display: inline-block;
    font-size: 13px;
    color: var(--accent, #b44a2f);
    text-decoration: none;
}
.ag-stop-geo:hover {
    text-decoration: underline;
}

/* --- Контент --- */
.ag-content-block {
    max-width: var(--max-w, 1200px);
    margin: 0 auto 32px;
    padding: 0 24px;
    font-size: 15px;
    line-height: 1.6;
    color: #444;
}

/* --- КГ блок --- */
.ag-kg-block {
    background: #f0ebe6;
    padding: 40px 24px;
    margin-bottom: 40px;
}
.ag-kg-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
    text-align: center;
}
.ag-kg-inner h2 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 12px;
}
.ag-kg-inner p {
    font-size: 15px;
    line-height: 1.6;
    color: #555;
    margin: 0 0 20px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}
.ag-kg-btn {
    display: inline-block;
    padding: 12px 28px;
    background: var(--accent, #b44a2f);
    color: #fff !important;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 15px;
    transition: background .2s;
}
.ag-kg-btn:hover {
    background: #9a3d26;
}

/* --- Похожие --- */
.ag-related {
    max-width: var(--max-w, 1200px);
    margin: 0 auto 48px;
    padding: 0 24px;
}
.ag-related h2 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 20px;
}

/* --- Адаптив --- */
@media (max-width: 640px) {
    .ag-hero h1 { font-size: 24px; }
    .ag-hero-stats { font-size: 15px; }
    .ag-map { height: 300px; }
    .ag-grid { grid-template-columns: 1fr; }
    .ag-page-hero h1 { font-size: 22px; }
    .ag-stop { flex-direction: column; gap: 8px; }
    .ag-stop-num { width: 28px; height: 28px; font-size: 13px; }
    .ag-stop-img img { max-width: 100%; }
}

/* ═══ PROXIMITY BLOCKS v5 ═══ */
.prx-wrap{margin-top:2rem}

.prx-badge{
    position:absolute;
    bottom:6px;right:6px;
    background:var(--accent,#b44a2f);
    color:#fff;
    font-size:12px;font-weight:700;
    padding:4px 10px;
    border-radius:20px;
    white-space:nowrap;
    line-height:1;
    letter-spacing:.03em;
    box-shadow:0 2px 6px rgba(0,0,0,.25);
}

/* Названия в 1 строку с обрезкой */
.prx-wrap .cd-related-item-name{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* «Рядом с этим местом» (v3): показываем интро + расстояние-пилюлю + бейдж КГ.
   Раскладка тела карточки — вертикальная, чтобы всё помещалось под названием. */
.prx-wrap .cd-related-item-body{
    padding:10px 12px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
}
/* название можно в 2 строки (а не обрезать в одну) */
.prx-wrap .cd-related-item-name{
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
/* контейнер карточек в колонке (для дозаписи по «Ещё») */
.prx-col-items{display:flex;flex-direction:column;gap:10px}
/* короткое описание под названием */
.prx-intro{display:block;font-size:12px;color:#6b7280;line-height:1.35}
/* мета-строка: расстояние + бейдж КГ */
.prx-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}
/* пилюля с расстоянием — заметная */
.prx-dist{display:inline-block;background:#eb5757;color:#fff;font-size:11px;font-weight:600;line-height:1;padding:4px 8px;border-radius:6px;white-space:nowrap}
/* кнопка «Ещё» под колонкой */
.prx-more{display:block;margin:14px auto 0;padding:9px 28px;background:#f3f4f6;color:#1f2937;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}
.prx-more-all{min-width:160px}
.prx-more:hover{background:#e9ebef;border-color:#d1d5db}
.prx-more:disabled{opacity:.6;cursor:default}

.prx-geo{margin-top:1.5rem;padding:1.2rem;background:var(--gray-50,#f8f7f5);border-radius:var(--radius,12px);text-align:center}
.prx-geo-btn{padding:.6rem 1.5rem;border:2px solid var(--accent,#b44a2f);border-radius:8px;background:transparent;color:var(--accent,#b44a2f);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}
.prx-geo-btn:hover{background:var(--accent,#b44a2f);color:#fff}
.prx-geo-btn:disabled{opacity:.6;cursor:wait}
.prx-geo-result{margin-top:.6rem;font-size:.95rem}
.prx-geo-result .geo-dist strong{font-size:1.3rem;color:var(--accent,#b44a2f)}
.prx-geo-result .geo-walk{color:#777;margin-left:.3rem}
.prx-geo-result .geo-route{display:inline-block;margin-top:.4rem;color:var(--accent,#b44a2f);font-weight:500;text-decoration:none}
.prx-geo-result .geo-error{color:#c33}
.cd-geo-incard{margin-top:1rem;background:none;padding:0;text-align:left}
.cd-geo-incard .prx-geo-btn{padding:.55rem 1.2rem;border:2px solid var(--accent,#b44a2f);border-radius:8px;background:transparent;color:var(--accent,#b44a2f);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}
.cd-geo-incard .prx-geo-btn:hover{background:var(--accent,#b44a2f);color:#fff}
.cd-geo-incard .prx-geo-result{margin-top:.5rem;font-size:.92rem}

@media(max-width:600px){
    .prx-wrap .cd-related-grid{grid-template-columns:1fr}
    .prx-geo-btn{width:100%}
}

/* === Расстояния и мета в маршрутном блоке (v3) === */
/* Обновлено 23 апр 2026 — цветовая дифференциация + легенда */

/* Подпись расстояния у остановки: в цвет акцента, жирная */
.cd-rstop-dist,
.city-stop-dist {
    color: var(--accent);
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
}

/* Хинт под списком остановок: в цвет акцента, полужирный, не italic */
.cd-rstops-hint,
.city-stops-hint {
    font-size: 13px;
    color: var(--accent);
    padding: 10px 14px 4px;
    font-weight: 500;
    line-height: 1.4;
}

/* === Легенда колонок маршрута === */
.rt-stops-legend {
    font-size: 12px;
    color: #9a9a9a;
    padding: 0 14px 8px;
    margin-top: -4px;
    text-align: right;
    letter-spacing: 0.01em;
}

/* === Цветовое кодирование правой колонки (⏱ время · 🎫 оплата) === */

/* Время осмотра — всегда нейтральный серый */
.rt-stop-dur {
    color: #8a8a8a;
    font-weight: 500;
    white-space: nowrap;
}

/* Оплата — базовый класс (цвет задаётся модификатором ниже) */
.rt-stop-pay {
    font-weight: 600;
    white-space: nowrap;
} 

/* "бесплатно" (просто факт, не выгода) — серый, не выделяется */
.rt-stop-pay-free {
    color: #8a8a8a;
    font-weight: 500;
}

/* "бесплатно по КГ (250 ₽)" — ЗЕЛЁНЫЙ (реальная экономия) */
.rt-stop-pay-kg {
    color: #15803d;
}

/* "КГ −10%" — АКЦЕНТ (скидка) */
.rt-stop-pay-discount {
    color: var(--accent);
}

/* "вход 300 ₽" / "средний чек 800 ₽" — серый (справочно) */
.rt-stop-pay-price {
    color: #8a8a8a;
    font-weight: 500;
}

/* Адаптив под мобильник — на узком экране легенда слишком длинная */
@media (max-width: 560px) {
    .rt-stops-legend {
        font-size: 11px;
        text-align: center;
        padding: 0 8px 6px;
    }
    .rt-stop-dur,
    .rt-stop-pay {
        font-size: 13px;
    }
}

/* ═══════════════════════════════════════════════════════════
   CROSS-LINKS: аудиогид + курируемые маршруты (card.php, ЗОНА 2.4)
   Компактные плашки между описанием и блоком маршрутов.
   ═══════════════════════════════════════════════════════════ */
.cd-crosslinks {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 32px;
}
.cd-clink {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    background: var(--gray-50);
    border: 1px solid var(--gray-100);
    border-left: 3px solid var(--accent);
    border-radius: 8px;
    text-decoration: none;
    color: var(--gray-800);
    transition: background .15s, border-color .15s, transform .15s, box-shadow .15s;
}
.cd-clink:hover {
    background: #fff;
    border-color: var(--gray-200);
    box-shadow: var(--shadow);
    transform: translateX(2px);
}
.cd-clink-audio { border-left-color: var(--blue-main); }
.cd-clink-route { border-left-color: var(--accent); }
.cd-clink-exc { border-left-color: #6366f1; }

.cd-clink-audio .cd-clink-icon::before { content: ''; }
.cd-clink-route .cd-clink-icon::before { content: ''; }
.cd-clink-exc .cd-clink-icon::before { content: ''; }

.cd-clink-icon {
    display: none;
}
.cd-clink-text {
    flex: 1 1 auto;
    min-width: 0;
}
.cd-clink-title {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--blue-deep);
    line-height: 1.3;
}
.cd-clink-sub {
    font-size: 12.5px;
    color: var(--gray-400);
    margin-top: 2px;
}
.cd-clink-btn {
    font-size: 13px;
    font-weight: 600;
    color: var(--accent);
    flex-shrink: 0;
    white-space: nowrap;
}
.cd-clink-audio .cd-clink-btn { color: var(--blue-main); }
.cd-clink-exc .cd-clink-btn { color: #6366f1; }

@media (max-width: 560px) {
    .cd-clink { padding: 10px 12px; gap: 10px; }
    .cd-clink-icon { font-size: 18px; }
    .cd-clink-title { font-size: 13.5px; }
    .cd-clink-sub { font-size: 11.5px; }
    .cd-clink-btn { font-size: 12px; }
}

/* Бейдж «✓ с посещением» в мета-строке тура (блок .cd-ratom) */
.cd-tour-badge {
    display: inline-block;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--accent);
    background: #fff1ec;
    padding: 2px 7px;
    border-radius: 10px;
    letter-spacing: .2px;
    vertical-align: baseline;
}


/* ═══ Блок «Другие экскурсии в городе» на excursion.php ═══ */
/* Переопределяет cd-related-grid (3 колонки «Что/Где остановиться/Где поесть»)
   на 3 колонки карточек-туров (тот же размер, но без подколонок) */
.cd-related-grid-excs {
    grid-template-columns: repeat(3, 1fr);
}
.cd-related-item-meta {
    font-size: 11.5px;
    font-weight: 500;
    color: var(--gray-400);
    line-height: 1.3;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* body для этого блока: имя и meta — друг под другом, а не рядом с бейджем */
.cd-related-grid-excs .cd-related-item-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
@media (max-width: 900px) {
    .cd-related-grid-excs { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .cd-related-grid-excs { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════════
   /routes — карточки маршрутов (стандарт каталога)
   ══════════════════════════════════════════════════════════════════ */
.ct-grid--routes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rt-card{display:block;border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.rt-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(13,46,92,.12)}
.rt-card-img{position:relative;height:200px;overflow:hidden;background:var(--gray-50)}
.rt-card-img img{width:100%;height:100%;object-fit:cover}
.rt-card-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;color:var(--accent);font-weight:700;background:var(--gray-50)}
.rt-card-dur{position:absolute;top:10px;left:10px;background:var(--blue-deep);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;z-index:2}
.rt-card-body{padding:14px 16px 18px}
.rt-card-name{font-family:var(--font-heading);font-size:16px;font-weight:600;color:var(--blue-deep);line-height:1.3;margin:0 0 6px}
.rt-card-desc{font-size:13px;color:var(--gray-400);line-height:1.5;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rt-card-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--gray-600)}
.rt-card-type{background:var(--gray-50);padding:2px 8px;border-radius:4px;font-size:11px;color:var(--gray-400)}
@media(max-width:900px){.ct-grid--routes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.ct-grid--routes{grid-template-columns:1fr}.rt-card-img{height:180px}}

/* ══════════════════════════════════════════════════════════════════
   /my-route — страница сгенерированного маршрута
   ══════════════════════════════════════════════════════════════════ */
.mr-page{max-width:var(--max-w);margin:0 auto;padding:24px 20px 60px}
.mr-bread{margin-bottom:20px}
.mr-header{margin-bottom:32px}
.mr-header h1{font-family:var(--font-heading);font-size:28px;color:var(--blue-deep);margin:0 0 6px}
.mr-sub{font-size:15px;color:var(--gray-400);margin:0 0 16px}
.mr-actions{display:flex;gap:10px;flex-wrap:wrap}
.mr-actions-bottom{justify-content:center;margin-top:32px}
.mr-btn{display:inline-flex;align-items:center;gap:4px;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;border:2px solid var(--accent);background:var(--accent);color:#fff;transition:opacity .2s}
.mr-btn:hover{opacity:.85}
.mr-btn-s{background:transparent;color:var(--blue-deep);border-color:var(--gray-200)}
.mr-btn-s:hover{border-color:var(--accent);color:var(--accent)}
.mr-actions-hero{margin-top:20px}
.mr-actions-hero .mr-btn{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);color:#fff}
.mr-actions-hero .mr-btn:hover{background:rgba(255,255,255,.25)}
.mr-actions-hero .mr-btn-s{background:transparent;border-color:rgba(255,255,255,.25);color:rgba(255,255,255,.85)}
.mr-actions-hero .mr-btn-s:hover{border-color:#fff;color:#fff}

/* Карта */
.mr-map{width:100%;height:400px;border-radius:var(--radius);margin-bottom:32px;overflow:hidden}

/* День */
.mr-day{border:1px solid var(--gray-100);border-radius:var(--radius);padding:24px;margin-bottom:20px;background:#fff}
.mr-day-h{font-family:var(--font-heading);font-size:18px;color:var(--blue-deep);font-weight:600;padding-bottom:16px;border-bottom:1px solid var(--gray-100);margin-bottom:4px}

/* Периоды */
.mr-period{display:flex;align-items:center;gap:8px;margin:20px 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.mr-period-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mr-period-line{flex:1;height:1px;background:var(--gray-100)}
.mr-p-morning .mr-period-dot{background:#EF9F27}.mr-p-morning{color:#BA7517}
.mr-p-lunch .mr-period-dot{background:#1D9E75}.mr-p-lunch{color:#0F6E56}
.mr-p-afternoon .mr-period-dot{background:#378ADD}.mr-p-afternoon{color:#185FA5}
.mr-p-evening .mr-period-dot{background:#7F77DD}.mr-p-evening{color:#534AB7}
.mr-p-hotel .mr-period-dot{background:#888780}.mr-p-hotel{color:#5F5E5A}

/* Плитки */
.mr-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:6px}
.mr-tile{display:block;border-radius:10px;overflow:hidden;box-shadow:var(--shadow);background:#fff;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.mr-tile:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(13,46,92,.12)}
.mr-tile-img{height:140px;overflow:hidden;position:relative}
.mr-tile-img img{width:100%;height:100%;object-fit:cover}
.mr-tile-img .kg-b{position:absolute;top:8px;right:8px;z-index:2}
.mr-tile-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--gray-50);font-size:28px;color:var(--accent);font-weight:700}
.mr-tile-body{padding:10px 12px 12px}
.mr-tile-name{font-size:13px;font-weight:600;color:var(--blue-deep);line-height:1.3;margin-bottom:3px}
.mr-tile-intro{font-size:11px;color:var(--gray-400);line-height:1.4;margin-bottom:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mr-tile-meta{font-size:11px;color:var(--gray-400)}
.mr-tile-rest{border-left:3px solid #1D9E75}

/* Отель */
.mr-hotel{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--gray-50);border-radius:10px}
.mr-hotel-img{width:52px;height:52px;border-radius:8px;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--gray-100)}
.mr-hotel-img img{width:100%;height:100%;object-fit:cover}
.mr-hotel-lbl{font-size:10px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em}
.mr-hotel-name{font-size:14px;font-weight:600;color:var(--blue-deep)}
.mr-hotel-name a{color:inherit;text-decoration:none}
.mr-hotel-name a:hover{color:var(--accent)}

/* КГ блок */
.mr-kg{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:24px;background:var(--blue-deep);border-radius:var(--radius);color:#fff;margin-top:28px}
.mr-kg-text{flex:1;min-width:220px}
.mr-kg-text strong{display:block;font-size:16px;margin-bottom:4px}
.mr-kg-text span{font-size:13px;color:rgba(255,255,255,.8)}
.mr-kg-prices{display:flex;gap:16px;font-size:13px;color:rgba(255,255,255,.9)}

/* Responsive */
@media(max-width:900px){
    .mr-tiles{grid-template-columns:repeat(2,1fr)}
    .mr-map{height:300px}
    .mr-kg{flex-direction:column;text-align:center}
}
@media(max-width:480px){
    .mr-tiles{grid-template-columns:1fr}
    .mr-header h1{font-size:22px}
    .mr-tile-img{height:120px}
    .mr-map{height:240px}
    .mr-actions{flex-direction:column}
    .mr-btn{justify-content:center}
}

/* Печать */
@media print{
    header, footer, .mr-actions, .mr-map, .mr-kg, .breadcrumb{display:none!important}
    .mr-page{max-width:100%;padding:0}
    .mr-day{break-inside:avoid;border:1px solid #ddd;page-break-inside:avoid}
    .mr-tile{box-shadow:none;border:1px solid #eee}
    .mr-tile-img{height:80px}
    .mr-tiles{grid-template-columns:repeat(3,1fr);gap:8px}
}
/* ═══ ROUTE BUILDER — конструктор маршрута (landing v2) ══════════ */
.ld-rb {
    padding: 56px 0;
    background: var(--ld-bg-soft);
}
.ld-rb-h2 {
    font-family: var(--font-heading, inherit);
    font-size: 32px;
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 8px;
    color: var(--ld-ink);
    text-align: center;
}
.ld-rb-sub {
    font-size: 16px;
    color: var(--ld-muted);
    text-align: center;
    margin: 0 0 28px;
}

.ld-rb-form {
    max-width: 860px;
    margin: 0 auto;
    padding: 28px 24px;
    background: #fff;
    border-radius: var(--ld-r);
    border: 1px solid var(--ld-line);
}

/* Ряды */
.ld-rb-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 22px;
}
.ld-rb-row--full { grid-template-columns: 1fr; }

/* Группа */
.ld-rb-group {}
.ld-rb-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ld-muted);
    margin-bottom: 10px;
}
.ld-rb-hint {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}

/* Пиллы */
.ld-rb-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ld-rb-pills--compact { gap: 6px; }

.ld-rb-pill {
    padding: 10px 18px;
    background: #fff;
    border: 2px solid var(--ld-line);
    border-radius: 24px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ld-ink);
    cursor: pointer;
    white-space: nowrap;
    transition: all .15s;
    line-height: 1.2;
}
.ld-rb-pills--compact .ld-rb-pill {
    padding: 10px 16px;
    border-radius: 8px;
    min-width: 44px;
    text-align: center;
}
.ld-rb-pill:hover {
    border-color: var(--accent, #b44a2f);
    color: var(--accent, #b44a2f);
}
.ld-rb-pill.is-on {
    background: var(--accent, #b44a2f);
    border-color: var(--accent, #b44a2f);
    color: #fff;
}

/* GPS чекбокс */
.ld-rb-geo {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--ld-muted);
    margin: 20px 0;
    cursor: pointer;
}
.ld-rb-geo input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--accent, #b44a2f);
}

/* Кнопки действий */
.ld-rb-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.ld-rb-submit {
    flex: 1;
    min-width: 200px;
}
.ld-rb-random {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 14px 28px;
    background: #fff;
    border: 2px solid var(--ld-line);
    border-radius: 8px;
    font-size: 16px;
    font-weight: 700;
    color: var(--ld-ink);
    text-decoration: none;
    transition: border-color .15s, transform .15s;
    white-space: nowrap;
}
.ld-rb-random:hover {
    border-color: var(--accent, #b44a2f);
    transform: translateY(-1px);
}

@media (min-width: 600px) {
    .ld-rb-row { grid-template-columns: 1fr 1fr; }
    .ld-rb-row--full { grid-template-columns: 1fr; }
}
@media (min-width: 768px) {
    .ld-rb { padding: 80px 0; }
    .ld-rb-h2 { font-size: 42px; }
    .ld-rb-form { padding: 36px 32px; }
    .ld-rb-pill { padding: 10px 20px; font-size: 15px; }
}


/* ─── Электронная карта — строка в финальном CTA ────────── */
.ld-final-electronic {
    font-size: 15px;
    opacity: .85;
    margin: -4px 0 20px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
/* ═══ Sputnik8 Booking Widget ═══ */
.sp8-widget{margin:24px 0;padding:24px;background:#fff;border:1px solid #e5e7eb;border-radius:12px}
.sp8-title{margin:0 0 20px;font-size:22px;font-family:var(--font-heading,inherit);color:var(--text,#1a1a18)}
.sp8-label{font-size:13px;font-weight:600;color:var(--text-2,#6b6b6b);margin-bottom:8px}
.sp8-step{margin-bottom:20px}
.sp8-dates{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.sp8-date{flex:0 0 auto;padding:8px 14px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;text-align:center;transition:all .15s;font-family:inherit;font-size:14px;line-height:1.3}
.sp8-date:hover{border-color:var(--accent,#b44a2f);background:#faf5f3}
.sp8-date-active{border-color:var(--accent,#b44a2f);background:var(--accent,#b44a2f);color:#fff}
.sp8-date-day{display:block;font-size:18px;font-weight:700}
.sp8-date-mon{display:block;font-size:11px;opacity:.8}
.sp8-times{display:flex;gap:8px;flex-wrap:wrap}
.sp8-time{padding:8px 18px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-family:inherit;font-size:15px;font-weight:500;transition:all .15s}
.sp8-time:hover{border-color:var(--accent,#b44a2f)}
.sp8-time-active{border-color:var(--accent,#b44a2f);background:var(--accent,#b44a2f);color:#fff}
.sp8-time-cap{font-size:12px;opacity:.7;margin-left:4px}
.sp8-ticket{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f0f0f0}
.sp8-ticket:last-child{border-bottom:0}
.sp8-ticket-name{font-size:15px;font-weight:500;color:var(--text,#1a1a18)}
.sp8-ticket-price{font-size:14px;color:var(--accent,#b44a2f);font-weight:600;margin-top:2px}
.sp8-ticket-qty{display:flex;align-items:center;gap:12px}
.sp8-qty-btn{width:32px;height:32px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:18px;line-height:1;font-family:inherit;display:flex;align-items:center;justify-content:center;transition:all .15s}
.sp8-qty-btn:hover{border-color:var(--accent,#b44a2f);color:var(--accent,#b44a2f)}
.sp8-qty-val{font-size:18px;font-weight:600;min-width:24px;text-align:center}
.sp8-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.sp8-form-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-2,#6b6b6b);font-weight:500}
.sp8-form-grid input{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;font-family:inherit;color:var(--text,#1a1a18)}
.sp8-form-grid input:focus{outline:none;border-color:var(--accent,#b44a2f);box-shadow:0 0 0 3px rgba(180,74,47,.1)}
.sp8-submit{margin-top:4px}
.sp8-total{margin-top:12px;font-size:18px;font-weight:700;color:var(--text,#1a1a18)}
.sp8-error{margin-top:8px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;font-size:14px}
.sp8-success{text-align:center;padding:24px 0}
.sp8-success h3{margin:0 0 8px;color:#059669;font-size:20px}
.sp8-success p{margin:4px 0;color:var(--text-2,#6b6b6b)}
.sp8-loading{text-align:center;padding:16px;color:var(--text-2,#6b6b6b);font-size:14px}
.sp8-empty{padding:12px;color:var(--text-2,#6b6b6b);font-size:14px}
@media(max-width:560px){.sp8-form-grid{grid-template-columns:1fr}}
/* ===== /centers — ТИЦы ===== */
.ct-hero{background:linear-gradient(135deg,#1a3a5c 0%,#2d5a8c 100%);color:#fff;padding:60px 0 48px;text-align:center}
.ct-overtitle{font-size:.85rem;text-transform:uppercase;letter-spacing:2px;opacity:.7;display:block;margin-bottom:12px}
.ct-title{font-size:2rem;font-weight:700;margin:0 0 16px}
.ct-subtitle{font-size:1.05rem;opacity:.85;max-width:600px;margin:0 auto;line-height:1.5}
.ct-link{color:#fff;text-decoration:underline;text-underline-offset:3px}
.ct-section{padding:48px 0}
.ct-section--contact{padding:40px 0 60px;background:#f8f8f8}
.ct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto}
.ct-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.08);transition:box-shadow .2s}
.ct-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.12)}
.ct-card-img{position:relative;height:200px;overflow:hidden;background:#e5e7eb}
.ct-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.ct-badge{position:absolute;top:12px;left:12px;display:inline-block;font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:4px;z-index:1}
.ct-badge--kg{background:var(--accent,#b44a2f);color:#fff}
.ct-card-body{padding:20px}
.ct-card-city{font-size:.78rem;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.ct-card-name{font-size:1.05rem;font-weight:600;margin:0 0 12px;color:#1a1a1a;line-height:1.3}
.ct-card-meta{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.ct-meta-row{font-size:.85rem;color:#555;line-height:1.4}
.ct-meta-row a{color:var(--accent,#b44a2f);text-decoration:none}
.ct-meta-row a:hover{text-decoration:underline}
.ct-card-desc{font-size:.83rem;color:#777;line-height:1.5;margin:0}
.ct-contact-box{text-align:center;background:#fff;border-radius:12px;padding:40px;max-width:500px;margin:0 auto;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.ct-contact-title{font-size:1.2rem;font-weight:600;margin:0 0 12px}
.ct-phone{font-size:1.8rem;font-weight:700;color:var(--accent,#b44a2f);text-decoration:none;display:block;margin-bottom:8px}
.ct-contact-note{font-size:.85rem;color:#888;margin:0}
@media(max-width:1024px){.ct-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){
  .ct-hero{padding:40px 16px 32px}
  .ct-title{font-size:1.5rem}
  .ct-grid{grid-template-columns:1fr}
  .ct-phone{font-size:1.4rem}
}

/* ── Сворачиваемые чипы-фильтры (вынесено из catalog-restaurants.php) ── */
.cit-filter-collapse{max-height:46px;overflow:hidden;position:relative;transition:max-height .25s ease}
.cit-filter-collapse.is-open{max-height:2000px}
.cit-filter-toggle{display:inline-block;cursor:pointer;font-size:12px;color:var(--accent,#b44a2f);font-weight:600;padding:4px 12px;margin-top:4px;background:#faf5f3;border-radius:16px;border:1px solid #eee}
.cit-filter-toggle:hover{background:#f0ebe6}

/* ── FIX: блок «Рядом с этим местом» — стабильные 3 колонки + защита от переполнения ──
   Было: .cd-related-grid = auto-fit/minmax(250px) → длинное имя/слово раздувало трек,
   и при подгрузке «Ещё» сетка схлопывалась с 3 в 2 колонки. */
.prx-wrap .cd-related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.prx-wrap .cd-related-col,
.prx-wrap .prx-col-items{min-width:0}
.prx-wrap .cd-related-item-name{overflow-wrap:anywhere}
.prx-wrap .prx-intro{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:900px){.prx-wrap .cd-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.prx-wrap .cd-related-grid{grid-template-columns:1fr}}


/* ═══════════════════════════════════════════════════
   EXCURSION PAGE — перенесено из инлайна excursion.php
   (галерея, форма заявки, виджет Atom-S booking.js, календарь)
   ═══════════════════════════════════════════════════ */
.exc-gallery{width:100%;display:flex;flex-direction:column;gap:8px}
.exc-gallery-main{width:100%;aspect-ratio:3/2;border-radius:8px;overflow:hidden;background:#eee}
.exc-gallery-main img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s}
.exc-gallery-thumbs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.exc-gallery-thumb{flex:0 0 72px;width:72px;height:54px;padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;cursor:pointer;background:none;transition:border-color .15s}
.exc-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.exc-gallery-thumb:hover{border-color:var(--accent,#b44a2f)}
.exc-gallery-thumb.is-active{border-color:var(--accent,#b44a2f)}
.cd-info-guide{align-items:flex-start !important;font-size:13px;line-height:1.5;color:var(--text-2,#6b6b6b)}
.cd-info-guide strong{color:var(--text,#1a1a18);font-weight:600}
@media(max-width:640px){.exc-gallery-thumb{flex:0 0 60px;width:60px;height:45px}}

/* Форма заявки на экскурсию */
.cd-request-form{margin:24px 0;padding:24px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;scroll-margin-top:80px}

/* Виджет Atom-S */
.cd-atom-booking{margin:24px 0;scroll-margin-top:80px}
.cd-atom-booking h2{margin:0 0 16px;font-size:22px;font-family:var(--font-heading,inherit);color:var(--text,#1a1a18)}
/* Стилизация виджета Atom-S под novgorod.travel */
#atom-booking-widget{font-family:inherit!important;font-size:15px!important}
#atom-booking-widget .card{box-shadow:0 2px 10px rgba(0,0,0,.08)!important;border-radius:12px!important;border:1px solid #e5e7eb!important}
#atom-booking-widget .container{padding-right:0!important;padding-left:0!important}
#atom-booking-widget .block{padding:24px!important}
#atom-booking-widget .block .header{font-size:18px!important;font-family:var(--font-heading,inherit)!important;margin-bottom:12px!important}
#atom-booking-widget .card .block-header{font-size:18px!important}
#atom-booking-widget .text-muted{color:var(--text-2,#6b6b6b)!important}
#atom-booking-widget .block.editor{background-color:#faf9f7!important}
#atom-booking-widget hr.narrow.darker{border-top:1px solid #e5e7eb!important}
#atom-booking-widget .block.border-top{border-top:1px solid #e5e7eb!important}
#atom-booking-widget .block.border-bottom{border-bottom:1px solid #e5e7eb!important}
/* Кнопки — акцент #b44a2f */
#atom-booking-widget .btn-default,#atom-booking-widget .btn-green.btn-lg{color:#fff!important;background-color:var(--accent,#b44a2f)!important;border:1px solid transparent!important;padding:0 28px!important;font-size:15px!important;line-height:44px!important;font-weight:600!important;border-radius:8px!important}
#atom-booking-widget .btn-default:hover{background-color:#9a3e28!important}
#atom-booking-widget .actions .btn-blue{color:#fff!important;background-color:var(--accent,#b44a2f)!important;border-color:var(--accent,#b44a2f)!important}
#atom-booking-widget .actions .btn-blue:hover,#atom-booking-widget .actions .btn-blue:focus,#atom-booking-widget .actions .btn-blue:active{background-color:#9a3e28!important;border-color:#9a3e28!important}
#atom-booking-widget .btn-link{color:var(--accent,#b44a2f)!important;font-size:14px!important;text-decoration:none!important}
div#atom-booking-widget a{color:var(--accent,#b44a2f)!important}
div#atom-booking-widget a.btn{color:#fff!important}
div#atom-booking-widget a.btn-green{color:#fff!important}
#atom-booking-widget .btn:focus,#atom-booking-widget .btn.focus{outline:0!important;box-shadow:none!important}
/* Отели в виджете */
#atom-booking-widget .hotels .hotel-item{padding:24px!important}
#atom-booking-widget .hotels .hotel-item .header{font-size:18px!important;margin-bottom:12px!important}
#atom-booking-widget .hotels .selected{background-color:#faf9f7!important}
#atom-booking-widget .hotels .hotel-item .wrap .option{padding:16px!important;border:1px solid #e5e7eb!important;border-radius:8px!important}
#atom-booking-widget .hotels .hotel-item .gallery .wrapper{border-bottom:0!important;border-top:0!important;padding-bottom:0!important;padding-top:0!important}
/* Пакет/итого */
#atom-booking-widget .card .package .green-block{background-color:inherit!important;color:inherit!important;padding-bottom:0!important}
#atom-booking-widget .block.summary-body.border-bottom{border-bottom:0!important}
/* Календарь */
.CalendarDay__selected,.CalendarDay__selected:active,.CalendarDay__selected:hover{color:#fff!important;background:var(--accent,#b44a2f)!important;border-color:var(--accent,#b44a2f)!important}
.DayPicker_weekHeader_ul{padding-left:0!important}
/* Вторая кнопка (промокод и тп) */
.block.editor.tourists+.block>.actions>button.btn-default:nth-child(2){background-color:transparent!important;color:var(--text,#1a1a18)!important;border-color:var(--accent,#b44a2f)!important}
.block.editor.tourists+.block>.actions>button.btn-default:nth-child(2):hover{background-color:var(--accent,#b44a2f)!important;color:#fff!important}
/* Sticky итого на десктопе */
@media(min-width:768px){#atom-booking-widget .col-sm-5{position:sticky;top:40px}}
@media(max-width:600px){#atom-booking-widget .block,#atom-booking-widget .block,#atom-booking-widget .hotels .hotel-item,#atom-booking-widget .hotels .hotel-item{padding:20px 16px!important}}
.cd-request-form h2{margin:0 0 8px;font-size:22px;font-family:var(--font-heading,inherit);color:var(--text,#1a1a18)}
.cd-req-sub{margin:0 0 20px;color:var(--text-2,#6b6b6b);font-size:14px;line-height:1.5}
.cd-req-error{margin:0 0 16px;padding:12px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;font-size:14px}
.cd-req-success{text-align:center;padding:16px 0}
.cd-req-success h3{margin:0 0 8px;color:#059669;font-size:20px}
.cd-req-success p{margin:0;color:var(--text-2,#6b6b6b)}
.cd-req-form{display:flex;flex-direction:column;gap:14px}
.cd-req-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cd-req-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-2,#6b6b6b);font-weight:500}
.cd-req-form label.cd-req-full{width:100%}
.cd-req-form input,.cd-req-form textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;font-family:inherit;color:var(--text,#1a1a18);background:#fff;transition:border-color .15s}
.cd-req-form input:focus,.cd-req-form textarea:focus{outline:none;border-color:var(--accent,#b44a2f);box-shadow:0 0 0 3px rgba(180,74,47,.1)}
.cd-req-form textarea{resize:vertical;min-height:80px}
.cd-req-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.cd-req-hint{font-size:12px;color:var(--text-2,#6b6b6b);line-height:1.4;flex:1;min-width:200px}
@media(max-width:560px){.cd-req-row{grid-template-columns:1fr}}

/* === booking.js (новый виджет): перекраска акцентных элементов в тему === */
#atom-booking-widget .btn-primary,
#atom-booking-widget .btn-blue,
#atom-booking-widget .btn-info,
#atom-booking-widget .btn-green.btn-lg{color:#fff!important;background-color:var(--accent,#b44a2f)!important;border-color:var(--accent,#b44a2f)!important}
#atom-booking-widget .btn-primary:hover,
#atom-booking-widget .btn-blue:hover,
#atom-booking-widget .btn-info:hover,
#atom-booking-widget .btn-primary:focus,
#atom-booking-widget .btn-blue:focus{background-color:#9a3e28!important;border-color:#9a3e28!important;color:#fff!important}
/* выделенная дата/время (активная плитка) */
#atom-booking-widget .btn.active,
#atom-booking-widget .btn-primary.active,
#atom-booking-widget .active>.btn,
#atom-booking-widget .nav-pills>li.active>a,
#atom-booking-widget .list-group-item.active{background-color:var(--accent,#b44a2f)!important;border-color:var(--accent,#b44a2f)!important;color:#fff!important}
/* индикаторы/спиннер/чекбоксы акцентного цвета */
#atom-booking-widget .progress-bar{background-color:var(--accent,#b44a2f)!important}
#atom-booking-widget .text-primary{color:var(--accent,#b44a2f)!important}


/* Запасной блок при ошибке виджета Atom-S */
.cd-atom-fallback{margin:24px 0;padding:24px;background:#faf9f7;border:1px solid #e5e7eb;border-radius:12px}
.cd-atom-fallback-t{margin:0 0 6px;font-size:18px;font-weight:600;color:var(--text,#1a1a18);font-family:var(--font-heading,inherit)}
.cd-atom-fallback-s{margin:0 0 16px;color:var(--text-2,#6b6b6b);font-size:14px;line-height:1.5}
.cd-atom-fallback-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cd-atom-fallback-link{color:var(--accent,#b44a2f);font-weight:600;text-decoration:none}
.cd-atom-fallback-link:hover{text-decoration:underline}

/* ===== Правки 04.06: +30% высоты превью (cities + centers) + текст без обрезки + proximity 1->3 ===== */
.hr-grid--tall .hr-card-img,.hr-grid--tall .hr-card-noimg{height:234px;aspect-ratio:auto}
.hr-grid--tall .hr-card-intro{-webkit-line-clamp:unset;overflow:visible;display:block}
@media(max-width:600px){.hr-grid--tall .hr-card-img,.hr-grid--tall .hr-card-noimg{height:240px}}
/* khvoyninskiy: если в «Рядом» осталась одна колонка (нет поесть/остановиться) — растянуть её на всю ширину и разложить карточки в 3 в ряд */
.prx-wrap .cd-related-col:only-child{grid-column:1/-1}
.prx-wrap .cd-related-col:only-child .prx-col-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media(max-width:900px){.prx-wrap .cd-related-col:only-child .prx-col-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.prx-wrap .cd-related-col:only-child .prx-col-items{grid-template-columns:1fr}}
