/* Земной Путь — самостоятельный интерфейс, не зависит от темы WordPress */
:root {
  --zp-bg: #0b0d0a;
  --zp-bg-soft: #11140f;
  --zp-panel: #151914;
  --zp-paper: #ebe9df;
  --zp-ink: #f4f3ec;
  --zp-muted: #a6ab9d;
  --zp-line: rgba(255, 255, 255, .13);
  --zp-accent: #d9ff43;
  --zp-accent-alt: #ff6b35;
  --zp-shell: min(1400px, calc(100vw - 64px));
  --zp-radius: 26px;
  --zp-ease: cubic-bezier(.22, 1, .36, 1);
}

html { scroll-behavior: smooth; background: var(--zp-bg); }
body.zp-body, body.zp-site-page {
  margin: 0 !important;
  background: var(--zp-bg);
  color: var(--zp-ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.zp-body * { box-sizing: border-box; }
body.zp-body a { color: inherit; text-decoration: none; }
body.zp-body button, body.zp-body input, body.zp-body textarea { font: inherit; }
body.zp-body button { color: inherit; }
body.zp-body img { max-width: 100%; display: block; }
body.admin-bar .zp-header { top: 32px; }
body.zp-modal-open { overflow: hidden; }
::selection { background: var(--zp-accent); color: #0b0d0a; }

.zp-shell { width: var(--zp-shell); margin-inline: auto; position: relative; }
.zp-skip { position: fixed; left: 16px; top: -80px; z-index: 99999; padding: 12px 18px; background: #fff; color: #000 !important; border-radius: 8px; transition: top .2s; }
.zp-skip:focus { top: 16px; }
.zp-scroll-progress { position: fixed; z-index: 300; left: 0; top: 0; width: 100%; height: 2px; pointer-events: none; }
.zp-scroll-progress span { display: block; width: 0; height: 100%; background: var(--zp-accent); box-shadow: 0 0 18px rgba(217,255,67,.6); }

.zp-header { position: fixed; inset: 0 0 auto; z-index: 200; padding: 18px 0; transition: background .35s, padding .35s, backdrop-filter .35s; }
.zp-header.is-scrolled { padding: 10px 0; background: rgba(11,13,10,.78); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(255,255,255,.08); }
.zp-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.zp-brand { display: inline-flex; align-items: center; gap: 12px; min-width: 215px; }
.zp-brand img { width: 48px; height: 40px; object-fit: contain; }
.zp-brand span { display: grid; line-height: 1.05; }
.zp-brand strong { font-size: 15px; letter-spacing: .12em; }
.zp-brand small { color: rgba(255,255,255,.6); font-size: 9px; text-transform: uppercase; letter-spacing: .14em; margin-top: 6px; }
.zp-nav { display: flex; align-items: center; gap: 28px; font-size: 13px; }
.zp-nav a { color: rgba(255,255,255,.78); position: relative; }
.zp-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--zp-accent); transition: right .3s var(--zp-ease); }
.zp-nav a:hover::after, .zp-nav a:focus-visible::after { right: 0; }
.zp-header__actions { display: flex; align-items: center; gap: 16px; }
.zp-phone { font-weight: 650; font-size: 14px; white-space: nowrap; }
.zp-menu { display: none; width: 46px; height: 46px; border: 1px solid var(--zp-line); border-radius: 50%; background: rgba(255,255,255,.04); padding: 0; place-items: center; }
.zp-menu span { width: 18px; height: 1px; background: #fff; display: block; margin: 4px auto; transition: transform .25s; }

.zp-button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 28px; padding: 0 24px; border: 0; border-radius: 0; background: var(--zp-accent); color: #0b0d0a !important; font-weight: 750; font-size: 13px; letter-spacing: .02em; cursor: pointer; clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 15px 100%, 0 calc(100% - 15px)); transition: transform .25s var(--zp-ease), filter .25s, box-shadow .25s; }
.zp-button:hover { transform: translateY(-3px); filter: brightness(1.04); box-shadow: 0 16px 40px rgba(217,255,67,.15); }
.zp-button i { font-style: normal; font-size: 18px; }
.zp-button--small { min-height: 42px; padding-inline: 18px; font-size: 12px; clip-path: none; border-radius: 999px; }
.zp-button--ghost { background: transparent; color: #fff !important; border: 1px solid rgba(255,255,255,.3); clip-path: none; border-radius: 999px; }
.zp-button--light { background: #fff; }
.zp-button--wide { width: 100%; }
.zp-eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--zp-accent); font-size: 11px; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.zp-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }

.zp-hero { min-height: 100svh; position: relative; display: grid; align-items: end; isolation: isolate; overflow: hidden; }
.zp-hero__slides, .zp-hero__slide { position: absolute; inset: 0; }
.zp-hero__slide { background-image: linear-gradient(90deg, rgba(4,7,4,.82) 0%, rgba(4,7,4,.54) 42%, rgba(4,7,4,.08) 78%), linear-gradient(0deg, rgba(4,7,4,.76), transparent 42%), var(--bg); background-size: cover; background-position: center; opacity: 0; transform: scale(1.04); transition: opacity 1s, transform 8s linear; }
.zp-hero__slide.is-active { opacity: 1; transform: scale(1); }
.zp-hero__noise { position: absolute; inset: 0; z-index: 1; opacity: .16; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.zp-hero__content { z-index: 2; min-height: 100svh; display: grid; grid-template-columns: 1fr 340px; grid-template-rows: auto 1fr auto; align-items: end; padding-top: 120px; padding-bottom: 48px; }
.zp-hero__meta { grid-column: 1/-1; align-self: start; display: flex; gap: 8px; }
.zp-hero__meta span { border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 7px 12px; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; color: rgba(255,255,255,.75); backdrop-filter: blur(8px); }
.zp-hero__copy { align-self: center; max-width: 900px; padding-top: 6vh; }
.zp-hero h1 { font-size: clamp(68px, 11.5vw, 180px); line-height: .72; letter-spacing: -.08em; margin: 28px 0 38px; text-transform: uppercase; font-weight: 900; }
.zp-hero h1 span, .zp-hero h1 em { display: block; }
.zp-hero h1 em { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.75); font-style: normal; margin-left: .42em; }
.zp-hero__lead { max-width: 720px; margin: 0 0 14px; font-size: clamp(22px, 2.2vw, 36px); line-height: 1.1; font-weight: 650; letter-spacing: -.035em; }
.zp-hero__text { color: rgba(255,255,255,.72); max-width: 680px; margin: 0; font-size: 16px; }
.zp-hero__buttons { display: flex; gap: 12px; margin-top: 34px; }
.zp-hero__facts { align-self: end; border-left: 1px solid var(--zp-line); padding-left: 26px; display: grid; gap: 22px; }
.zp-hero__facts div { display: grid; }
.zp-hero__facts strong { font-size: 21px; letter-spacing: -.03em; }
.zp-hero__facts span { color: rgba(255,255,255,.55); font-size: 11px; margin-top: 3px; }
.zp-hero__dial { position: absolute; right: 0; bottom: 250px; display: grid; gap: 5px; }
.zp-hero__dial button { border: 0; border-left: 1px solid rgba(255,255,255,.18); background: transparent; color: rgba(255,255,255,.48); padding: 8px 0 8px 18px; text-align: left; min-width: 116px; cursor: pointer; font-size: 11px; transition: .25s; }
.zp-hero__dial button span { display: inline-block; width: 26px; }
.zp-hero__dial button.is-active { color: #fff; border-left-color: var(--zp-accent); }
.zp-hero__scroll { position: absolute; bottom: 52px; left: 50%; transform: translateX(-50%); display: grid; justify-items: center; gap: 8px; color: rgba(255,255,255,.58); font-size: 9px; text-transform: uppercase; letter-spacing: .17em; }
.zp-hero__scroll span { width: 1px; height: 40px; background: linear-gradient(var(--zp-accent), transparent); animation: zp-scroll 1.8s infinite; }
@keyframes zp-scroll { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 51%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

.zp-marquee { overflow: hidden; background: var(--zp-accent); color: #0b0d0a; border-block: 1px solid rgba(0,0,0,.2); }
.zp-marquee__track { display: flex; width: max-content; will-change: transform; animation: zp-marquee 26s linear infinite; }
.zp-marquee__group { display: flex; flex: 0 0 auto; align-items: center; gap: 28px; width: max-content; min-width: 100vw; padding: 17px 28px 17px 0; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.zp-marquee span { white-space: nowrap; }
.zp-marquee i { flex: 0 0 auto; font-style: normal; font-size: 7px; }
@keyframes zp-marquee { to { transform: translate3d(-50%,0,0); } }

.zp-section { padding: 150px 0; position: relative; }
.zp-section__head { display: grid; grid-template-columns: 1.2fr .65fr; gap: 90px; align-items: end; margin-bottom: 64px; }
.zp-section__head h2, .zp-price-copy h2, .zp-cinematic h2, .zp-night h2, .zp-faq h2, .zp-contacts h2 { font-size: clamp(48px, 6vw, 92px); line-height: .9; letter-spacing: -.065em; margin: 20px 0 0; font-weight: 820; }
.zp-section__head p, .zp-price-copy > p, .zp-cinematic__content > p, .zp-faq__grid > div > p { color: var(--zp-muted); margin: 0; font-size: 17px; line-height: 1.7; }
.zp-price-copy > p { margin-top: 38px; max-width: 540px; }

.zp-routes { background: var(--zp-paper); color: #131610; }
.zp-routes .zp-section__head p { color: #62665d; }
.zp-routes .zp-eyebrow { color: #5d6d13; }
.zp-route-stage { position: relative; display: grid; grid-template-columns: 1.45fr 1fr 1fr; gap: 16px; padding-top: 78px; }
.zp-route-line { position: absolute; inset: 0 0 auto; width: 100%; height: 190px; overflow: visible; pointer-events: none; }
.zp-route-line path { fill: none; stroke: rgba(19,22,16,.19); stroke-width: 2; stroke-dasharray: 6 9; vector-effect: non-scaling-stroke; }
.zp-route-line circle { fill: var(--zp-accent-alt); filter: drop-shadow(0 0 8px rgba(255,107,53,.45)); }
.zp-route-card { min-height: 480px; padding: 28px; display: flex; align-items: flex-end; position: relative; overflow: hidden; background-image: linear-gradient(0deg, rgba(5,7,4,.88), rgba(5,7,4,.05) 70%), var(--image); background-size: cover; background-position: center; color: #fff; clip-path: polygon(0 0, calc(100% - 32px) 0, 100% 32px, 100% 100%, 0 100%); }
.zp-route-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, transparent 45%, rgba(255,255,255,.15), transparent 60%); transform: translateX(-100%); transition: transform .8s; }
.zp-route-card:hover::before { transform: translateX(100%); }
.zp-route-card > span { position: absolute; top: 22px; left: 24px; width: 42px; height: 42px; display: grid; place-items: center; background: var(--zp-accent); color: #10120d; font-size: 11px; font-weight: 850; border-radius: 50%; }
.zp-route-card > div { position: relative; z-index: 1; }
.zp-route-card small { text-transform: uppercase; letter-spacing: .13em; font-size: 9px; color: rgba(255,255,255,.65); }
.zp-route-card h3 { font-size: 34px; letter-spacing: -.045em; margin: 9px 0; }
.zp-route-card p { color: rgba(255,255,255,.73); margin: 0; max-width: 390px; font-size: 13px; }
.zp-route-card--big { min-height: 600px; margin-top: -48px; }

.zp-prices { background: var(--zp-bg); }
.zp-price-layout { display: grid; grid-template-columns: .68fr 1.15fr; gap: 80px; align-items: start; }
.zp-price-copy { position: sticky; top: 130px; }
.zp-price-note { margin-top: 44px; padding: 22px; border-left: 2px solid var(--zp-accent); background: rgba(255,255,255,.035); color: var(--zp-muted); font-size: 13px; line-height: 1.8; }
.zp-price-note b { color: #fff; }
.zp-calculator { border: 1px solid var(--zp-line); background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018)); padding: 34px; box-shadow: 0 40px 90px rgba(0,0,0,.25); }
.zp-calculator__top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 24px; border-bottom: 1px solid var(--zp-line); }
.zp-calculator__top span { font-size: 24px; font-weight: 750; letter-spacing: -.03em; }
.zp-calculator__top small { color: var(--zp-muted); }
.zp-calculator fieldset { border: 0; padding: 30px 0 0; margin: 0; }
.zp-calculator legend { color: var(--zp-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 13px; }
.zp-calculator input { position: absolute; opacity: 0; pointer-events: none; }
.zp-segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.zp-calculator__machine { margin-top: 30px; padding: 20px 22px; border: 1px solid var(--zp-line); background: rgba(217,255,67,.055); display: grid; gap: 5px; }
.zp-calculator__machine span { color: var(--zp-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }
.zp-calculator__machine strong { font-size: 21px; letter-spacing: -.025em; }
.zp-calculator__machine small { color: var(--zp-muted); }
.zp-segmented label span { display: grid; gap: 4px; border: 1px solid var(--zp-line); padding: 19px; cursor: pointer; transition: .25s; }
.zp-segmented b { font-size: 18px; }
.zp-segmented small { color: var(--zp-muted); }
.zp-segmented input:checked + span { border-color: var(--zp-accent); background: rgba(217,255,67,.09); box-shadow: inset 0 0 0 1px var(--zp-accent); }
.zp-duration { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; }
.zp-duration span { min-height: 48px; display: grid; place-items: center; border: 1px solid var(--zp-line); color: var(--zp-muted); cursor: pointer; font-size: 12px; transition: .25s; }
.zp-duration input:checked + span { background: var(--zp-accent); color: #10120d; border-color: var(--zp-accent); font-weight: 800; }
.zp-options { display: grid; gap: 8px; }
.zp-options label span { border: 1px solid var(--zp-line); min-height: 52px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px 0 45px; cursor: pointer; color: var(--zp-muted); position: relative; }
.zp-options label span::before { content: ""; position: absolute; left: 16px; width: 16px; height: 16px; border: 1px solid rgba(255,255,255,.35); }
.zp-options label span::after { content: "✓"; position: absolute; left: 18px; top: 14px; opacity: 0; color: #0b0d0a; font-weight: 900; }
.zp-options input:checked + span { border-color: rgba(217,255,67,.6); color: #fff; background: rgba(217,255,67,.06); }
.zp-options input:checked + span::before { background: var(--zp-accent); border-color: var(--zp-accent); }
.zp-options input:checked + span::after { opacity: 1; }
.zp-options b { color: #fff; font-size: 12px; }
.zp-calculator__result { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-top: 30px; padding-top: 30px; border-top: 1px solid var(--zp-line); }
.zp-calculator__result > div { display: grid; }
.zp-calculator__result span { font-size: 10px; color: var(--zp-muted); text-transform: uppercase; letter-spacing: .11em; }
.zp-calculator__result strong { font-size: clamp(42px, 5vw, 68px); line-height: 1; letter-spacing: -.06em; margin: 8px 0; }
.zp-calculator__result small { color: var(--zp-muted); }
.zp-tariff-strip { margin-top: 90px; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--zp-line); }
.zp-tariff-strip > div { min-height: 240px; padding: 26px; display: flex; flex-direction: column; border-right: 1px solid var(--zp-line); }
.zp-tariff-strip > div:last-child { border-right: 0; }
.zp-tariff-strip span { color: var(--zp-muted); text-transform: uppercase; letter-spacing: .13em; font-size: 9px; }
.zp-tariff-strip strong { font-size: 37px; letter-spacing: -.05em; margin: auto 0 12px; }
.zp-tariff-strip small { color: var(--zp-muted); line-height: 1.7; }
.zp-tariff-strip__cta { background: var(--zp-accent); color: #0b0d0a; }
.zp-tariff-strip__cta span, .zp-tariff-strip__cta small { color: rgba(11,13,10,.65); }
.zp-tariff-strip__cta button { margin-top: 18px; padding: 0; background: none; border: 0; text-align: left; font-weight: 800; cursor: pointer; }

.zp-cinematic { min-height: 820px; position: relative; display: grid; align-items: center; overflow: hidden; }
.zp-cinematic__image { position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(4,6,4,.91), rgba(4,6,4,.4) 56%, rgba(4,6,4,.08)), var(--image); background-size: cover; background-position: center; transform: scale(1.04); }
.zp-cinematic__content { position: relative; z-index: 1; }
.zp-cinematic h2 { max-width: 850px; }
.zp-cinematic__content > p { max-width: 600px; margin-top: 32px; }
.zp-cinematic__badges { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 34px; }
.zp-cinematic__badges span { border: 1px solid rgba(255,255,255,.28); border-radius: 999px; padding: 10px 16px; color: rgba(255,255,255,.74); font-size: 11px; backdrop-filter: blur(8px); }

.zp-process { background: var(--zp-paper); color: #11140f; }
.zp-process .zp-eyebrow { color: #5d6d13; }
.zp-process .zp-section__head p { color: #62665d; }
.zp-steps { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(17,20,15,.15); }
.zp-step { min-height: 390px; padding: 28px; border-right: 1px solid rgba(17,20,15,.15); display: flex; flex-direction: column; position: relative; overflow: hidden; }
.zp-step:last-child { border-right: 0; }
.zp-step > span { color: #83877e; font-size: 10px; }
.zp-step__icon { width: 76px; height: 76px; display: grid; place-items: center; border: 1px solid rgba(17,20,15,.18); border-radius: 50%; font-size: 28px; margin: 45px 0 auto; transition: .4s var(--zp-ease); }
.zp-step:hover .zp-step__icon { background: var(--zp-accent); border-color: var(--zp-accent); transform: rotate(9deg) scale(1.08); }
.zp-step h3 { font-size: 27px; letter-spacing: -.04em; margin: 0 0 12px; }
.zp-step p { color: #676b62; margin: 0; font-size: 13px; }
.zp-rules { margin-top: 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.zp-rules div { padding: 24px; background: #171a14; color: #fff; display: grid; min-height: 150px; }
.zp-rules span { color: var(--zp-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .14em; }
.zp-rules strong { font-size: 24px; margin: auto 0 4px; letter-spacing: -.035em; }
.zp-rules small { color: var(--zp-muted); }

.zp-night { min-height: 780px; position: relative; display: grid; align-items: center; overflow: hidden; }
.zp-night__image { position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(7,8,6,.88), rgba(7,8,6,.18)), var(--image); background-size: cover; background-position: center; }
.zp-night__grid { display: grid; grid-template-columns: 1.1fr .7fr; gap: 120px; position: relative; z-index: 1; align-items: end; }
.zp-night__copy { background: rgba(11,13,10,.72); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,.13); padding: 40px; display: grid; }
.zp-night__copy p { color: rgba(255,255,255,.72); margin: 0 0 30px; font-size: 17px; line-height: 1.7; }
.zp-night__copy strong { color: var(--zp-accent); font-size: 58px; letter-spacing: -.06em; line-height: 1; }
.zp-night__copy small { color: rgba(255,255,255,.55); margin: 6px 0 26px; }

.zp-gallery { background: #10120e; }
.zp-gallery__grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 120px; gap: 12px; }
.zp-gallery__item { border: 0; background: #1a1d18; padding: 0; position: relative; overflow: hidden; cursor: zoom-in; color: #fff; }
.zp-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--zp-ease), filter .5s; }
.zp-gallery__item:hover img { transform: scale(1.045); filter: contrast(1.05); }
.zp-gallery__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,5,3,.82), transparent 55%); }
.zp-gallery__item > span { position: absolute; z-index: 2; inset: auto 18px 16px; display: flex; align-items: center; gap: 12px; font-size: 12px; text-align: left; }
.zp-gallery__item b { color: var(--zp-accent); }
.zp-gallery__item i { margin-left: auto; font-style: normal; font-size: 18px; }
.zp-gallery__item--1 { grid-column: 1/8; grid-row: span 4; }
.zp-gallery__item--2 { grid-column: 8/13; grid-row: span 3; }
.zp-gallery__item--3 { grid-column: 8/13; grid-row: span 4; }
.zp-gallery__item--4 { grid-column: 1/5; grid-row: span 3; }
.zp-gallery__item--5 { grid-column: 5/8; grid-row: span 3; }
.zp-gallery__item--6 { grid-column: 1/7; grid-row: span 4; }
.zp-gallery__item--7 { grid-column: 7/13; grid-row: span 4; }
.zp-gallery__item--8 { grid-column: 1/5; grid-row: span 4; }
.zp-gallery__item--9 { grid-column: 5/9; grid-row: span 4; }
.zp-gallery__item--10 { grid-column: 9/13; grid-row: span 4; }

.zp-special { padding-top: 0; }
.zp-special__grid { display: grid; grid-template-columns: 1.6fr .65fr; gap: 16px; }
.zp-special__main { min-height: 620px; display: flex; align-items: flex-end; padding: 42px; background-image: linear-gradient(0deg, rgba(5,7,4,.88), rgba(5,7,4,.08) 70%), var(--image); background-size: cover; background-position: center; }
.zp-special__main > div { max-width: 760px; }
.zp-special h2 { font-size: clamp(44px, 5vw, 78px); line-height: .93; letter-spacing: -.06em; margin: 20px 0; }
.zp-special__main p { max-width: 620px; color: rgba(255,255,255,.72); }
.zp-special__side { background: var(--zp-accent); color: #10120d; padding: 38px; display: flex; flex-direction: column; }
.zp-special__side .zp-eyebrow { color: #2f350e; }
.zp-special__side h3 { font-size: 42px; letter-spacing: -.05em; margin: auto 0 18px; }
.zp-special__side p { color: rgba(16,18,13,.69); }
.zp-special__side a { font-weight: 850; margin-top: 24px; }

.zp-faq { background: var(--zp-paper); color: #11140f; }
.zp-faq .zp-eyebrow { color: #5d6d13; }
.zp-faq__grid { display: grid; grid-template-columns: .7fr 1fr; gap: 100px; }
.zp-faq__grid > div > p { color: #676b62; margin-top: 28px; max-width: 420px; }
.zp-accordion details { border-top: 1px solid rgba(17,20,15,.18); }
.zp-accordion details:last-child { border-bottom: 1px solid rgba(17,20,15,.18); }
.zp-accordion summary { list-style: none; cursor: pointer; min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 19px; font-weight: 700; }
.zp-accordion summary::-webkit-details-marker { display: none; }
.zp-accordion summary i { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(17,20,15,.2); display: grid; place-items: center; font-style: normal; transition: transform .3s; }
.zp-accordion details[open] summary i { transform: rotate(45deg); background: var(--zp-accent); }
.zp-accordion details p { color: #676b62; margin: -2px 50px 28px 0; max-width: 680px; }

.zp-contacts { min-height: 760px; position: relative; display: grid; align-items: center; overflow: hidden; }
.zp-contacts__map { position: absolute; inset: 0; background: #0d100c; overflow: hidden; }
.zp-topo { position: absolute; inset: -20%; opacity: .22; background-image: repeating-radial-gradient(ellipse at 62% 48%, transparent 0 38px, rgba(217,255,67,.23) 39px 40px, transparent 41px 67px); transform: rotate(-12deg) scale(1.25); }
.zp-contacts__map::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 48%, rgba(217,255,67,.08), transparent 24%), linear-gradient(90deg, rgba(11,13,10,.98) 0%, rgba(11,13,10,.76) 50%, rgba(11,13,10,.15)); }
.zp-map-pin { position: absolute; z-index: 2; left: 70%; top: 46%; transform: translate(-50%,-50%); color: rgba(255,255,255,.75); font-size: 10px; line-height: 1.45; letter-spacing: .1em; text-align: center; }
.zp-map-pin i { width: 28px; height: 28px; background: var(--zp-accent-alt); border: 8px solid rgba(255,107,53,.25); background-clip: padding-box; border-radius: 50%; display: block; margin: 0 auto 9px; animation: zp-pin 2s infinite; }
@keyframes zp-pin { 50% { box-shadow: 0 0 0 18px rgba(255,107,53,0); } }
.zp-contacts__grid { position: relative; z-index: 3; display: grid; grid-template-columns: 1fr 440px; gap: 120px; align-items: end; }
.zp-contacts__copy p { max-width: 600px; color: rgba(255,255,255,.69); font-size: 18px; }
.zp-map-link { display: inline-flex; align-items: center; gap: 22px; margin-top: 20px; border-bottom: 1px solid rgba(255,255,255,.25); padding-bottom: 8px; }
.zp-map-link span { color: var(--zp-accent); }
.zp-contacts__card { background: #f1efe7; color: #11140f; padding: 34px; }
.zp-contacts__card > div { display: grid; gap: 5px; padding: 17px 0; border-bottom: 1px solid rgba(17,20,15,.14); }
.zp-contacts__card > div span { color: #74796e; text-transform: uppercase; letter-spacing: .13em; font-size: 9px; }
.zp-contacts__card > div a, .zp-contacts__card > div strong { font-size: 19px; font-weight: 750; }
.zp-contacts__card .zp-button { margin-top: 24px; }
.zp-whatsapp { display: block; text-align: center; margin-top: 16px; color: #4a4f46 !important; font-size: 13px; }

.zp-footer { background: #070806; border-top: 1px solid rgba(255,255,255,.08); padding: 70px 0 24px; }
.zp-footer__grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 60px; }
.zp-brand--footer { margin-bottom: 20px; }
.zp-footer__grid > div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.zp-footer__grid > div:first-child p { color: var(--zp-muted); max-width: 420px; font-size: 13px; }
.zp-footer__label { color: rgba(255,255,255,.38); text-transform: uppercase; letter-spacing: .14em; font-size: 9px; margin-bottom: 10px; }
.zp-footer__grid a { color: rgba(255,255,255,.74); font-size: 13px; }
.zp-footer__grid small { color: rgba(255,255,255,.42); }
.zp-footer__bottom { margin-top: 60px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 24px; color: rgba(255,255,255,.34); font-size: 10px; }
.zp-footer__legal { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; }
.zp-footer__bottom a { color: rgba(255,255,255,.55); transition: color .2s; }
.zp-footer__bottom a:hover { color: #fff; }
.zp-footer__credit { white-space: nowrap; }
.zp-footer__credit strong { color: var(--zp-accent); letter-spacing: .04em; }
.zp-footer--legal { margin-top: 0; }

/* Стилизованные юридические страницы */
.zp-header--legal { background: rgba(11,13,10,.84); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(255,255,255,.08); }
.zp-legal { background: var(--zp-paper); color: #11140f; }
.zp-legal-hero { min-height: 540px; position: relative; display: grid; align-items: end; overflow: hidden; isolation: isolate; background-image: linear-gradient(90deg, rgba(4,7,4,.93) 0%, rgba(4,7,4,.70) 50%, rgba(4,7,4,.25) 100%), linear-gradient(0deg, rgba(4,7,4,.85), transparent 52%), var(--legal-bg); background-size: cover; background-position: center 56%; color: #fff; }
.zp-legal-hero__noise { position: absolute; inset: 0; z-index: -1; opacity: .14; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.zp-legal-hero__inner { min-height: 540px; display: grid; grid-template-columns: 1fr 180px; grid-template-rows: auto 1fr; gap: 34px; align-items: end; padding: 126px 0 64px; }
.zp-legal-back { grid-column: 1/-1; align-self: start; display: inline-flex; align-items: center; gap: 12px; width: max-content; color: rgba(255,255,255,.68) !important; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.zp-legal-back span { color: var(--zp-accent); font-size: 18px; }
.zp-legal-hero h1 { max-width: 1050px; margin: 22px 0 18px; font-size: clamp(52px, 7vw, 112px); line-height: .88; letter-spacing: -.065em; font-weight: 860; }
.zp-legal-hero p { max-width: 700px; margin: 0; color: rgba(255,255,255,.68); font-size: clamp(16px, 1.5vw, 21px); }
.zp-legal-hero__mark { justify-self: end; align-self: end; width: 150px; height: 150px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; display: grid; place-items: center; position: relative; }
.zp-legal-hero__mark::before, .zp-legal-hero__mark::after { content: ""; position: absolute; inset: 14px; border: 1px dashed rgba(217,255,67,.36); border-radius: inherit; }
.zp-legal-hero__mark::after { inset: 31px; border-style: solid; border-color: rgba(255,255,255,.12); }
.zp-legal-hero__mark span { color: var(--zp-accent); font-size: 34px; font-weight: 900; z-index: 1; }
.zp-legal-main { padding: 110px 0 80px; }
.zp-legal-layout { display: grid; grid-template-columns: 260px minmax(0, 900px); justify-content: space-between; gap: 80px; align-items: start; }
.zp-legal-aside { position: sticky; top: 110px; display: grid; gap: 26px; padding-top: 18px; }
.zp-legal-aside > span { color: #7d8177; text-transform: uppercase; letter-spacing: .16em; font-size: 9px; font-weight: 800; }
.zp-legal-aside nav { display: grid; border-top: 1px solid rgba(17,20,15,.14); }
.zp-legal-aside nav a { position: relative; padding: 12px 0 12px 17px; border-bottom: 1px solid rgba(17,20,15,.14); color: #5f645b !important; font-size: 12px; transition: color .2s, padding-left .2s; }
.zp-legal-aside nav a::before { content: ""; position: absolute; left: 0; top: 50%; width: 6px; height: 1px; background: #707d22; transition: width .2s; }
.zp-legal-aside nav a:hover { color: #11140f !important; padding-left: 22px; }
.zp-legal-aside nav a:hover::before { width: 12px; }
.zp-legal-aside__contact { display: grid; gap: 5px; padding: 18px; background: #dfe6bd; }
.zp-legal-aside__contact small { color: #737a51; text-transform: uppercase; letter-spacing: .12em; font-size: 8px; }
.zp-legal-aside__contact a { font-weight: 800; font-size: 12px; overflow-wrap: anywhere; }
.zp-legal-card { background: #f7f5ed; padding: clamp(28px, 5vw, 72px); box-shadow: 0 30px 100px rgba(30,35,23,.08); }
.zp-legal-doc__intro { margin: 0 0 60px; padding-bottom: 40px; border-bottom: 1px solid rgba(17,20,15,.14); font-size: clamp(20px, 2.1vw, 30px); line-height: 1.28; letter-spacing: -.025em; color: #292e25; }
.zp-legal-doc section { scroll-margin-top: 105px; display: grid; grid-template-columns: 46px 1fr; gap: 24px; padding: 44px 0; border-bottom: 1px solid rgba(17,20,15,.13); }
.zp-legal-doc section:first-of-type { padding-top: 0; }
.zp-legal-doc section:last-of-type { border-bottom: 0; padding-bottom: 10px; }
.zp-legal-doc__number { color: #84922a; font-size: 11px; font-weight: 900; letter-spacing: .08em; padding-top: 8px; }
.zp-legal-doc h2 { margin: 0 0 20px; font-size: clamp(28px, 3vw, 48px); line-height: .98; letter-spacing: -.045em; color: #11140f; }
.zp-legal-doc p { margin: 0 0 17px; color: #5c6258; font-size: 15px; line-height: 1.75; }
.zp-legal-doc p:last-child { margin-bottom: 0; }
.zp-legal-doc strong { color: #171a15; }
.zp-legal-doc ul { margin: 0 0 18px; padding: 0; list-style: none; display: grid; gap: 10px; }
.zp-legal-doc li { position: relative; padding-left: 23px; color: #5c6258; font-size: 15px; line-height: 1.65; }
.zp-legal-doc li::before { content: ""; position: absolute; left: 0; top: .75em; width: 8px; height: 2px; background: #77851f; }
.zp-legal-doc a { color: #4f5c11 !important; font-weight: 800; border-bottom: 1px solid rgba(79,92,17,.3); }
.zp-legal-card__note { margin-top: 58px; display: grid; grid-template-columns: 86px 1fr; gap: 25px; padding: 25px; background: #171a15; color: #fff; }
.zp-legal-card__note span { color: var(--zp-accent); text-transform: uppercase; letter-spacing: .14em; font-size: 9px; font-weight: 900; padding-top: 4px; }
.zp-legal-card__note p { margin: 0; color: rgba(255,255,255,.64); font-size: 12px; line-height: 1.65; }
.zp-legal-switch { padding: 0 0 110px; }
.zp-legal-switch a { min-height: 190px; display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 10px 50px; padding: 40px 48px; background: #11140f; color: #fff !important; position: relative; overflow: hidden; }
.zp-legal-switch a::before { content: ""; position: absolute; inset: auto -70px -120px auto; width: 280px; height: 280px; border: 1px solid rgba(217,255,67,.17); border-radius: 50%; }
.zp-legal-switch a span { grid-column: 1; color: var(--zp-accent); text-transform: uppercase; letter-spacing: .16em; font-size: 9px; font-weight: 800; }
.zp-legal-switch a strong { grid-column: 1; max-width: 760px; font-size: clamp(27px, 4vw, 52px); line-height: 1; letter-spacing: -.045em; }
.zp-legal-switch a i { grid-column: 2; grid-row: 1/3; align-self: center; width: 58px; height: 58px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; font-style: normal; font-size: 22px; transition: transform .25s, background .25s; }
.zp-legal-switch a:hover i { transform: rotate(45deg); background: var(--zp-accent); color: #11140f; }

.zp-mobile-bar { display: none; }
.zp-modal[hidden], .zp-lightbox[hidden] { display: none !important; }
.zp-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px; }
.zp-modal__backdrop { position: absolute; inset: 0; background: rgba(3,4,3,.78); backdrop-filter: blur(12px); }
.zp-modal__panel { width: min(590px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; position: relative; z-index: 1; background: #f1efe7; color: #11140f; padding: 42px; box-shadow: 0 40px 120px rgba(0,0,0,.55); animation: zp-modal .45s var(--zp-ease); }
@keyframes zp-modal { from { opacity: 0; transform: translateY(30px) scale(.98); } }
.zp-modal__panel .zp-eyebrow { color: #5d6d13; }
.zp-modal__panel h2 { font-size: 44px; line-height: .95; letter-spacing: -.055em; margin: 18px 0; }
.zp-modal__panel > p { color: #6b7067; }
.zp-modal__close { position: absolute; top: 17px; right: 17px; width: 40px; height: 40px; border: 1px solid rgba(17,20,15,.2); border-radius: 50%; background: transparent; cursor: pointer; font-size: 24px; }
.zp-form { display: grid; gap: 14px; margin-top: 28px; }
.zp-form label { display: grid; gap: 7px; }
.zp-form label > span { font-size: 10px; text-transform: uppercase; letter-spacing: .11em; color: #70756b; }
.zp-form input, .zp-form textarea { width: 100%; border: 1px solid rgba(17,20,15,.18); background: rgba(255,255,255,.45); color: #11140f; padding: 14px 15px; border-radius: 0; outline: 0; transition: border-color .2s, box-shadow .2s; }
.zp-form input:focus, .zp-form textarea:focus { border-color: #717d2f; box-shadow: 0 0 0 3px rgba(113,125,47,.11); }
.zp-check { grid-template-columns: 18px 1fr !important; align-items: start; gap: 9px !important; }
.zp-check input { width: 16px; height: 16px; padding: 0; margin-top: 2px; }
.zp-check span { text-transform: none !important; letter-spacing: 0 !important; }
.zp-check a { color: #3f4d09 !important; font-weight: 800; border-bottom: 1px solid rgba(63,77,9,.35); }
.zp-hp { position: absolute !important; left: -9999px !important; }
.zp-form__status { min-height: 20px; font-size: 12px; color: #647014; }
.zp-form__status.is-error { color: #b03321; }
.zp-modal__alt { margin-top: 18px; text-align: center; color: #6b7067; font-size: 12px; }
.zp-modal__alt a { color: #26300a !important; font-weight: 800; border-bottom: 1px solid; }

.zp-lightbox { position: fixed; inset: 0; z-index: 1100; background: rgba(3,4,3,.95); display: grid; place-items: center; padding: 70px; }
.zp-lightbox > button { position: absolute; right: 25px; top: 20px; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: transparent; font-size: 28px; cursor: pointer; }
.zp-lightbox img { max-height: calc(100vh - 140px); max-width: calc(100vw - 140px); object-fit: contain; }
.zp-lightbox > div { position: absolute; left: 32px; bottom: 24px; display: flex; gap: 18px; align-items: center; }
.zp-lightbox > div span { color: var(--zp-accent); font-weight: 800; }
.zp-lightbox > div p { margin: 0; color: rgba(255,255,255,.72); }

.zp-reveal { opacity: 0; transform: translateY(34px); transition: opacity .85s var(--zp-ease), transform .85s var(--zp-ease); }
.zp-reveal.is-visible { opacity: 1; transform: translateY(0); }
.zp-cursor { position: fixed; z-index: 999; left: 0; top: 0; width: 28px; height: 28px; border: 1px solid rgba(217,255,67,.65); border-radius: 50%; pointer-events: none; transform: translate(-100px,-100px); mix-blend-mode: difference; transition: width .2s, height .2s, border-color .2s; }
.zp-cursor span { position: absolute; width: 4px; height: 4px; background: #fff; border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.zp-cursor.is-hover { width: 52px; height: 52px; border-color: #fff; }

@media (max-width: 1100px) {
  :root { --zp-shell: min(100% - 40px, 1000px); }
  .zp-nav { display: none; position: fixed; inset: 80px 20px auto; background: rgba(11,13,10,.97); padding: 30px; flex-direction: column; align-items: flex-start; font-size: 22px; border: 1px solid var(--zp-line); }
  .zp-nav.is-open { display: flex; }
  .zp-menu { display: grid; }
  .zp-header__actions .zp-phone { display: none; }
  .zp-hero__content { grid-template-columns: 1fr 270px; }
  .zp-route-stage { grid-template-columns: 1fr 1fr; }
  .zp-route-card--big { grid-column: 1/-1; }
  .zp-price-layout { grid-template-columns: 1fr; }
  .zp-price-copy { position: static; }
  .zp-tariff-strip { grid-template-columns: 1fr 1fr; }
  .zp-tariff-strip > div:nth-child(2) { border-right: 0; }
  .zp-tariff-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--zp-line); }
  .zp-tariff-strip > div:nth-child(3) { grid-column: 1 / -1; border-right: 0; }
  .zp-steps { grid-template-columns: 1fr 1fr; }
  .zp-step:nth-child(2) { border-right: 0; }
  .zp-step:nth-child(-n+2) { border-bottom: 1px solid rgba(17,20,15,.15); }
  .zp-night__grid { gap: 50px; }
  .zp-contacts__grid { grid-template-columns: 1fr 380px; gap: 50px; }
  .zp-footer__grid { grid-template-columns: 1.3fr 1fr 1fr; }
  .zp-footer__grid > div:last-child { grid-column: 2/4; }
  .zp-legal-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 45px; }
}

@media (max-width: 760px) {
  :root { --zp-shell: calc(100% - 28px); --zp-radius: 18px; }
  body.admin-bar .zp-header { top: 46px; }
  .zp-header { padding: 10px 0; }
  .zp-brand { min-width: auto; }
  .zp-brand img { width: 42px; }
  .zp-brand strong { font-size: 13px; }
  .zp-brand small { display: none; }
  .zp-header__actions { display: none; }
  .zp-menu { width: 42px; height: 42px; }
  .zp-nav { inset: 68px 14px auto; }
  .zp-hero { min-height: 850px; }
  .zp-hero__content { min-height: 850px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; padding: 95px 0 34px; }
  .zp-hero__meta { margin-bottom: auto; flex-wrap: wrap; }
  .zp-hero__meta span { font-size: 8px; padding: 6px 9px; }
  .zp-hero__copy { padding-top: 60px; }
  .zp-hero h1 { font-size: clamp(64px, 22vw, 104px); margin: 22px 0 30px; }
  .zp-hero h1 em { margin-left: .18em; }
  .zp-hero__lead { font-size: 25px; }
  .zp-hero__text { font-size: 14px; }
  .zp-hero__buttons { flex-direction: column; align-items: stretch; }
  .zp-hero__facts { margin-top: 30px; grid-template-columns: 1fr 1fr; padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--zp-line); gap: 16px; }
  .zp-hero__facts div:last-child { grid-column: 1/-1; }
  .zp-hero__facts strong { font-size: 17px; }
  .zp-hero__dial, .zp-hero__scroll { display: none; }
  .zp-marquee__group { padding-top: 13px; padding-bottom: 13px; }
  .zp-section { padding: 88px 0; }
  .zp-section__head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 38px; }
  .zp-section__head h2, .zp-price-copy h2, .zp-cinematic h2, .zp-night h2, .zp-faq h2, .zp-contacts h2 { font-size: 49px; }
  .zp-section__head p, .zp-price-copy > p, .zp-cinematic__content > p, .zp-faq__grid > div > p { font-size: 15px; }
  .zp-price-copy > p { margin-top: 28px; }
  .zp-route-stage { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 30px 14px 8px 0; margin-right: -14px; gap: 10px; }
  .zp-route-line { display: none; }
  .zp-route-card, .zp-route-card--big { min-width: 86vw; min-height: 520px; margin: 0; scroll-snap-align: start; }
  .zp-price-layout { gap: 40px; }
  .zp-calculator { padding: 20px; }
  .zp-calculator__top span { font-size: 20px; }
  .zp-segmented { grid-template-columns: 1fr; }
  .zp-duration { grid-template-columns: repeat(4, 1fr); }
  .zp-calculator__result { align-items: stretch; flex-direction: column; }
  .zp-calculator__result strong { font-size: 48px; }
  .zp-tariff-strip { margin-top: 50px; grid-template-columns: 1fr; }
  .zp-tariff-strip > div { border-right: 0; border-bottom: 1px solid var(--zp-line); min-height: 210px; }
  .zp-tariff-strip > div:last-child { border-bottom: 0; }
  .zp-cinematic { min-height: 760px; align-items: end; }
  .zp-cinematic__image { background-image: linear-gradient(0deg, rgba(4,6,4,.94), rgba(4,6,4,.1) 78%), var(--image); background-position: 58% center; }
  .zp-cinematic__content { padding-bottom: 60px; }
  .zp-steps { grid-template-columns: 1fr; }
  .zp-step { min-height: 310px; border-right: 0; border-bottom: 1px solid rgba(17,20,15,.15); }
  .zp-step:last-child { border-bottom: 0; }
  .zp-step__icon { margin: 30px 0 auto; }
  .zp-rules { grid-template-columns: 1fr; }
  .zp-night { min-height: 820px; align-items: end; }
  .zp-night__image { background-image: linear-gradient(0deg, rgba(7,8,6,.96), rgba(7,8,6,.05) 75%), var(--image); background-position: 56% center; }
  .zp-night__grid { grid-template-columns: 1fr; gap: 26px; padding-bottom: 50px; }
  .zp-night__copy { padding: 24px; }
  .zp-gallery__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin-right: -14px; padding-right: 14px; }
  .zp-gallery__item { min-width: 86vw; height: 520px; scroll-snap-align: start; }
  .zp-special__grid { grid-template-columns: 1fr; }
  .zp-special__main { min-height: 620px; padding: 24px; }
  .zp-special__main h2 { font-size: 46px; }
  .zp-special__side { min-height: 390px; padding: 28px; }
  .zp-faq__grid { grid-template-columns: 1fr; gap: 45px; }
  .zp-accordion summary { min-height: 76px; font-size: 16px; }
  .zp-contacts { min-height: 900px; align-items: end; }
  .zp-contacts__map::after { background: linear-gradient(0deg, rgba(11,13,10,.99) 0%, rgba(11,13,10,.72) 60%, rgba(11,13,10,.2)); }
  .zp-map-pin { display: none; }
  .zp-contacts__grid { grid-template-columns: 1fr; gap: 34px; padding-bottom: 70px; }
  .zp-contacts__card { padding: 24px; }
  .zp-footer { padding-bottom: 92px; }
  .zp-footer__grid { grid-template-columns: 1fr 1fr; gap: 38px 22px; }
  .zp-footer__grid > div:first-child { grid-column: 1/-1; }
  .zp-footer__grid > div:last-child { grid-column: 1/-1; }
  .zp-footer__bottom { flex-direction: column; align-items: flex-start; margin-top: 40px; }
  .zp-footer__legal { display: grid; gap: 8px; }
  .zp-legal-hero, .zp-legal-hero__inner { min-height: 620px; }
  .zp-legal-hero__inner { grid-template-columns: 1fr; padding: 105px 0 44px; }
  .zp-legal-hero h1 { font-size: clamp(48px, 15vw, 72px); }
  .zp-legal-hero p { font-size: 15px; }
  .zp-legal-hero__mark { display: none; }
  .zp-legal-main { padding: 62px 0 45px; }
  .zp-legal-layout { grid-template-columns: 1fr; gap: 28px; }
  .zp-legal-aside { position: static; padding: 0; }
  .zp-legal-aside nav { display: flex; overflow-x: auto; border: 0; gap: 7px; padding-bottom: 4px; }
  .zp-legal-aside nav a { flex: 0 0 auto; padding: 9px 12px; border: 1px solid rgba(17,20,15,.14); background: rgba(255,255,255,.35); }
  .zp-legal-aside nav a::before, .zp-legal-aside__contact { display: none; }
  .zp-legal-card { padding: 28px 20px; margin-inline: -2px; }
  .zp-legal-doc__intro { margin-bottom: 36px; padding-bottom: 30px; font-size: 20px; }
  .zp-legal-doc section { grid-template-columns: 1fr; gap: 9px; padding: 35px 0; }
  .zp-legal-doc__number { padding: 0; }
  .zp-legal-doc h2 { font-size: 32px; }
  .zp-legal-doc p, .zp-legal-doc li { font-size: 14px; }
  .zp-legal-card__note { grid-template-columns: 1fr; gap: 8px; padding: 20px; }
  .zp-legal-switch { padding-bottom: 72px; }
  .zp-legal-switch a { min-height: 220px; padding: 28px 24px; grid-template-columns: 1fr; }
  .zp-legal-switch a i { grid-column: 1; grid-row: auto; width: 48px; height: 48px; margin-top: 15px; }
  .zp-mobile-bar { position: fixed; z-index: 350; left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); display: grid; grid-template-columns: .7fr 1.3fr; gap: 5px; padding: 5px; background: rgba(238,237,229,.95); color: #10120d; box-shadow: 0 14px 50px rgba(0,0,0,.3); border-radius: 18px; backdrop-filter: blur(15px); }
  .zp-mobile-bar a, .zp-mobile-bar button { min-height: 52px; display: grid; place-items: center; border: 0; border-radius: 14px; font-weight: 800; font-size: 13px; }
  .zp-mobile-bar a { background: #20241d; color: #fff !important; }
  .zp-mobile-bar button { background: var(--zp-accent); color: #10120d; }
  .zp-modal { padding: 0; align-items: end; }
  .zp-modal__panel { max-height: 92svh; padding: 28px 20px 34px; width: 100%; }
  .zp-modal__panel h2 { font-size: 38px; padding-right: 32px; }
  .zp-lightbox { padding: 55px 12px 90px; }
  .zp-lightbox img { max-width: 100%; max-height: calc(100vh - 155px); }
  .zp-lightbox > div { left: 16px; bottom: 22px; }
  .zp-cursor { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .zp-reveal { opacity: 1; transform: none; }
  .zp-cursor { display: none; }
}
