:root {
    --public-primary: #122b71;
    --public-primary-dark: #0b1f58;
    --public-accent: #26b99a;
    --public-text: #152148;
    --public-muted: #65718d;
    --public-border: #e5e9f2;
    --public-surface: #ffffff;
    --public-header-height: 96px;
    --public-font-body: 15px;
    --public-font-secondary: 14px;
    --public-font-caption: 13px;
    --public-font-card-title: 18px;
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--public-text);
    background: #ffffff;
    font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: var(--public-font-body);
    -webkit-font-smoothing: antialiased;
}

body.public-menu-open {
    overflow: hidden;
}

.public-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    width: 100%;
    border-bottom: 1px solid rgba(18, 43, 113, 0.08);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 7px 28px rgba(20, 37, 78, 0.06);
    backdrop-filter: blur(14px);
}

.public-header__inner {
    display: grid;
    width: min(100% - 48px, 1320px);
    min-height: var(--public-header-height);
    grid-template-columns: minmax(250px, 1fr) auto minmax(250px, 1fr);
    align-items: center;
    gap: 32px;
    margin: 0 auto;
}

.public-brand {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 14px;
    color: var(--public-primary);
    text-decoration: none;
}

.public-brand__logo {
    display: block;
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    border-radius: 14px;
    object-fit: contain;
}

.public-brand__text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.public-brand__text strong {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.045em;
    white-space: nowrap;
}

.public-brand__text small {
    margin-top: 5px;
    color: var(--public-muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.public-nav {
    align-self: stretch;
}

.public-nav__list {
    display: flex;
    height: 100%;
    align-items: stretch;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.public-nav__item {
    display: flex;
}

.public-nav__link {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 0 22px;
    color: var(--public-text);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.2s ease;
}

.public-nav__link::after {
    position: absolute;
    right: 22px;
    bottom: 0;
    left: 22px;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: var(--public-accent);
    content: "";
    opacity: 0;
    transform: scaleX(0.45);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.public-nav__link:hover,
.public-nav__link:focus-visible,
.public-nav__link.is-active {
    color: var(--public-primary);
}

.public-nav__link:hover::after,
.public-nav__link:focus-visible::after,
.public-nav__link.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.public-header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.public-login {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 22px;
    border: 2px solid var(--public-primary);
    border-radius: 14px;
    color: var(--public-primary);
    background: #ffffff;
    box-shadow: 0 5px 16px rgba(18, 43, 113, 0.07);
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.public-login svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.public-login:hover,
.public-login:focus-visible {
    color: #ffffff;
    background: var(--public-primary);
    box-shadow: 0 10px 24px rgba(18, 43, 113, 0.18);
    transform: translateY(-1px);
}

.public-menu-toggle {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.public-menu-button {
    display: none;
}

:focus-visible {
    outline: 3px solid rgba(38, 185, 154, 0.32);
    outline-offset: 3px;
}

/* Content pages */
.content-page { min-height:60vh;background:#f7f9fd; }
.content-page__header { padding:64px 0 46px;background:linear-gradient(145deg,#fff 0%,#f1f5ff 100%);border-bottom:1px solid var(--public-border); }
.content-page__inner { width:min(100% - 48px,1320px);margin:0 auto; }
.content-page__eyebrow { margin:0 0 12px;color:#15967f;font-size:12px;font-weight:800;letter-spacing:.16em; }
.content-page__header h1 { margin:0;color:var(--public-primary);font-size:clamp(34px,4.5vw,52px);font-weight:800;letter-spacing:-.05em;line-height:1.1; }
.content-page__body { padding:52px 0 72px; }
.content-page__article { padding:38px 42px;border:1px solid var(--public-border);border-radius:20px;background:#fff;box-shadow:0 16px 38px rgba(37,52,104,.08);color:#45516f;line-height:1.8; }
.content-page__article > :first-child { margin-top:0; }.content-page__article > :last-child { margin-bottom:0; }
.content-page__article h2,.content-page__article h3 { margin:1.5em 0 .55em;color:var(--public-primary);line-height:1.3; }.content-page__article h2 { font-size:25px; }.content-page__article h3 { font-size:19px; }
.content-page__article a { color:#087f76;font-weight:700; }.content-page__article img { max-width:100%;height:auto; }

/* Subscription cards page */
.cards-page { background: #fff; }
.cards-page__hero { overflow: hidden; background: radial-gradient(circle at 75% 30%, rgba(38,185,154,.18), transparent 24%), linear-gradient(150deg,#fff 0%,#f4f7ff 55%,#e8edfb 100%); }
.cards-page__hero-inner { display: grid; width: min(100% - 48px,1180px); min-height: 480px; grid-template-columns: minmax(0,1fr) minmax(360px,.8fr); align-items: center; gap: 72px; margin: 0 auto; padding: 64px 0; }
.cards-page__intro { max-width: 600px; }
.cards-page__eyebrow { margin: 0 0 12px; color: #15967f; font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.cards-page__intro h1 { margin: 0; color: var(--public-primary); font-size: clamp(38px,4.5vw,62px); font-weight: 800; letter-spacing: -.055em; line-height: 1.06; }
.cards-page__intro > p:not(.cards-page__eyebrow) { max-width: 560px; margin: 22px 0 0; color: var(--public-muted); font-size: 17px; line-height: 1.75; }
.cards-page__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.cards-page__primary-button,.cards-page__secondary-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 24px; border: 2px solid var(--public-primary); border-radius: 13px; font-size: 14px; font-weight: 800; text-decoration: none; transition: transform .2s ease,box-shadow .2s ease,background .2s ease; }
.cards-page__primary-button { color: #fff; background: var(--public-primary); box-shadow: 0 10px 24px rgba(18,43,113,.2); }
.cards-page__secondary-button { color: var(--public-primary); background: #fff; }
.cards-page__primary-button:hover,.cards-page__secondary-button:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(18,43,113,.16); }
.cards-page__card-visual { position: relative; min-height: 310px; }
.cards-page__visual-glow { position: absolute; inset: 10% 5%; border-radius: 50%; background: rgba(38,185,154,.22); filter: blur(35px); }
.cards-page__travel-card { position: absolute; z-index: 1; top: 50%; left: 50%; width: min(100%,420px); aspect-ratio: 1.586/1; padding: 24px 28px 0; overflow: hidden; border-radius: 22px; color: #fff; background: radial-gradient(circle at 20% 0,#263f94,transparent 45%),linear-gradient(135deg,#142e78,#091b57); box-shadow: 0 30px 55px rgba(18,36,101,.3); transform: translate(-50%,-50%) rotate(5deg); }
.cards-page__travel-card .travel-card-art__card-top { display:flex;align-items:center;justify-content:space-between; }
.cards-page__travel-card .travel-card-art__brand-mark { width:23%;fill:#fff;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:4; }
.cards-page__travel-card .travel-card-art__brand-mark .accent { fill:#42d1b0;stroke:#42d1b0; }
.cards-page__travel-card .travel-card-art__contactless { width:12%;fill:none;stroke:#fff;stroke-linecap:round;stroke-width:4; }
.cards-page__travel-card strong { display:block;margin-top:12px;font-size:20px; }
.cards-page__travel-card small { display:block;margin-top:5px;color:#5de2c3;font-size:10px;font-weight:800;letter-spacing:.06em; }
.cards-page__travel-card .travel-card-art__map { position:absolute;right:-1%;bottom:-4%;width:84%;height:41%;fill:#0c205e; }
.cards-page__travel-card .travel-card-art__map path { fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:11; }
.cards-page__travel-card .travel-card-art__map .green { stroke:#54d7b6; }.cards-page__travel-card .travel-card-art__map .purple { stroke:#6558cf; }.cards-page__travel-card .travel-card-art__map circle { fill:#0c205e;stroke:#54d7b6;stroke-width:7; }.cards-page__travel-card .travel-card-art__map .purple-dot { stroke:#6558cf; }
.cards-page__check { padding: 42px 0; background: #fff; }
.cards-page__check-inner { display:grid;width:min(100% - 48px,1080px);grid-template-columns:minmax(250px,.7fr) minmax(400px,1.3fr);align-items:center;gap:54px;margin:0 auto;padding:30px 34px;border:1px solid #dce2f0;border-radius:22px;background:#fff;box-shadow:0 18px 42px rgba(37,52,104,.1); }
.cards-page__check h2,.cards-page__heading h2,.cards-page__cta h2 { margin:0;color:var(--public-primary);font-size:clamp(26px,3vw,36px);font-weight:800;letter-spacing:-.04em; }
.cards-page__check-inner > div > p:last-child,.cards-page__heading > p:last-child { margin:10px 0 0;color:var(--public-muted);font-size:14px;line-height:1.65; }
.cards-page__check-form label { display:block;margin-bottom:9px;color:var(--public-text);font-size:13px;font-weight:800; }
.cards-page__check-row { display:flex;gap:10px; }
.cards-page__check-row input { width:100%;min-height:52px;padding:0 16px;border:1px solid #cbd3e5;border-radius:11px;color:var(--public-text);font:inherit;font-size:14px; }
.cards-page__check-row input:focus { border-color:var(--public-accent);outline:3px solid rgba(38,185,154,.14); }
.cards-page__check-row button { min-width:125px;border:0;border-radius:11px;color:#fff;background:linear-gradient(90deg,#058f8c,#13a89a);font:inherit;font-size:14px;font-weight:800;cursor:pointer; }
.cards-page__check-form small { display:block;margin-top:8px;color:#7c86a2;font-size:11px; }
.cards-page__types { padding:70px 0 78px;background:linear-gradient(180deg,#f5f7ff,#e9edfb); }
.cards-page__section-inner { width:min(100% - 48px,1180px);margin:0 auto; }
.cards-page__heading { max-width:650px;margin:0 auto 38px;text-align:center; }
.cards-page__type-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px; }
.cards-page__type-card { display:flex;min-height:300px;flex-direction:column;padding:28px;border:1px solid #d9deef;border-radius:18px;background:#fff;box-shadow:0 14px 32px rgba(37,52,104,.1);transition:transform .2s ease,box-shadow .2s ease; }
.cards-page__type-card:hover { transform:translateY(-3px);box-shadow:0 20px 42px rgba(37,52,104,.16); }
.cards-page__type-icon { display:flex;width:58px;height:58px;align-items:center;justify-content:center;border-radius:16px;color:var(--public-primary);background:linear-gradient(145deg,#d7f8ee,#bcebdc); }
.cards-page__type-icon svg { width:30px;height:30px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8; }
.cards-page__type-card h3 { margin:20px 0 9px;color:var(--public-primary);font-size:19px;font-weight:800; }
.cards-page__type-card p { margin:0;color:var(--public-muted);font-size:13px;line-height:1.7; }
.cards-page__type-card .cards-page__type-price { display:flex;align-items:baseline;gap:7px;margin-top:auto;padding-top:22px;color:var(--public-primary);line-height:1; }
.cards-page__type-price strong { font-size:28px;font-weight:800;letter-spacing:-.04em; }
.cards-page__type-price span { color:var(--public-muted);font-size:12px;font-weight:700; }
.cards-page__price-note { margin:22px 0 0;color:#68738f;font-size:12px;text-align:center; }
.cards-page__steps { padding:74px 0;background:#fff; }
.cards-page__step-list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none; }
.cards-page__step-list li { display:flex;gap:16px;padding:24px;border-top:3px solid var(--public-accent);border-radius:0 0 16px 16px;background:#f8faff; }
.cards-page__step-list li > span { display:flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:var(--public-primary);font-weight:800; }
.cards-page__step-list h3 { margin:3px 0 8px;color:var(--public-primary);font-size:16px;font-weight:800; }.cards-page__step-list p { margin:0;color:var(--public-muted);font-size:13px;line-height:1.65; }
.cards-page__cta { padding:0 0 64px;background:#fff; }
.cards-page__cta-inner { display:flex;width:min(100% - 48px,1180px);align-items:center;justify-content:space-between;gap:30px;margin:0 auto;padding:34px 40px;border-radius:22px;color:#fff;background:radial-gradient(circle at 80% 50%,rgba(38,185,154,.32),transparent 30%),linear-gradient(120deg,#0b1f58,#122b71);box-shadow:0 22px 48px rgba(21,39,111,.23); }
.cards-page__cta h2 { color:#fff; }.cards-page__cta p:last-child { margin:9px 0 0;color:rgba(255,255,255,.75);font-size:14px; }.cards-page__cta a { display:inline-flex;min-height:52px;align-items:center;gap:12px;padding:0 22px;border-radius:13px;color:var(--public-primary);background:#c7f6e7;font-size:14px;font-weight:800;text-decoration:none;white-space:nowrap; }

.travel-card-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff 0%, #f8f8ff 24%, #e9ecfb 48%, #cfd5f2 70%, #d8ddf5 82%, #eef0fb 93%, #fff 100%); }
.travel-card-hero__inner { position: relative; z-index: 1; display: grid; width: min(100% - 48px, 1320px); min-height: 650px; grid-template-columns: minmax(390px, .9fr) minmax(520px, 1.1fr); align-items: center; gap: 72px; margin: 0 auto; }
.travel-card-hero__content { position: relative; z-index: 2; width: min(100%, 430px); padding: 70px 0; }
.travel-card-hero__eyebrow { margin: 0 0 12px; color: var(--public-accent); font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.travel-card-hero h1 { margin: 0; color: #102662; font-size: clamp(36px, 3.5vw, 54px); font-weight: 800; letter-spacing: -.055em; line-height: 1.08; }
.travel-card-hero__intro { max-width: 390px; margin: 18px 0 27px; color: #5f6b8d; font-size: 15px; line-height: 1.65; }
.travel-card-hero__form { width: min(100%, 390px); padding: 27px; border: 1px solid rgba(28, 52, 112, .08); border-radius: 18px; background: rgba(255,255,255,.97); box-shadow: 0 20px 50px rgba(38,47,113,.14); }
.travel-card-hero__form label { display: block; margin-bottom: 10px; color: #223361; font-size: var(--public-font-secondary); font-weight: 800; }
.travel-card-hero__form input { width: 100%; height: 48px; padding: 0 14px; border: 1px solid #cbd3e5; border-radius: 8px; color: #1e315f; background: #fff; font: inherit; font-size: var(--public-font-body); }
.travel-card-hero__form input::placeholder { color: #9ca6bd; }
.travel-card-hero__form input:focus { border-color: var(--public-accent); outline: 3px solid rgba(38,185,154,.15); }
.travel-card-hero__form small { display: block; margin: 8px 0 18px; color: #7c86a2; font-size: var(--public-font-caption); }
.travel-card-hero__form button { width: 100%; min-height: 49px; border: 0; border-radius: 8px; color: #fff; background: linear-gradient(90deg,#058f8c,#13a89a); box-shadow: 0 9px 18px rgba(6,147,143,.22); font: inherit; font-size: var(--public-font-body); font-weight: 800; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.travel-card-hero__form button:hover { box-shadow: 0 12px 24px rgba(6,147,143,.3); transform: translateY(-1px); }
.travel-card-hero__secure { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: #667291; font-size: var(--public-font-caption); }.travel-card-hero__secure svg { width: 15px; height: 15px; fill: none; stroke: #16a891; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.travel-card-hero__visual { position: relative; width: 100%; max-width: 650px; min-width: 0; aspect-ratio: 650 / 600; align-self: center; justify-self: center; background: transparent; }
.travel-card-hero__visual::after { position: absolute; z-index: 2; top: 79%; left: 24%; width: 54%; height: 5%; border-radius: 50%; background: rgba(28, 43, 92, .2); content: ""; filter: blur(10px); transform: skewX(-8deg); }
.travel-card-art__circuit { position: absolute; inset: 0 -3% auto auto; width: 105%; height: 88%; stroke: #deddf8; stroke-width: 3; }.travel-card-art__circuit circle { fill: #f5f5ff; stroke-width: 4; }
.travel-card-art__halo { position: absolute; z-index: 0; top: 14%; right: 0; width: 55%; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(135deg, #d8f8ee, #a4e6d3); }
.travel-card-art__city { position: absolute; z-index: 1; top: 32%; right: -2%; width: 35%; height: 56%; object-fit: contain; }
.transport-card { position: relative; aspect-ratio: 1.586 / 1; padding: 3.8% 4.4% 0; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: clamp(14px,3vw,22px); color: #fff; background: radial-gradient(circle at 20% 0,#263f94,transparent 45%),linear-gradient(135deg,#142e78,#091b57); box-shadow: 0 28px 50px rgba(18,36,101,.28); }.transport-card__top { display: flex; align-items: center; justify-content: space-between; }.transport-card__brand-mark { width: 23%; fill: #fff; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; }.transport-card__brand-mark .accent { fill: #42d1b0; stroke: #42d1b0; }.transport-card__contactless { width: 12%; fill: none; stroke: #fff; stroke-linecap: round; stroke-width: 4; }.transport-card strong { display: block; margin-top: 2.5%; font-size: clamp(12px,2vw,20px); letter-spacing: -.03em; }.transport-card small { display: block; margin-top: 1.5%; color: #5de2c3; font-size: clamp(7px,1vw,10px); font-weight: 800; letter-spacing: .06em; }.transport-card__map { position: absolute; right: -1%; bottom: -4%; width: 84%; height: 41%; fill: #0c205e; }.transport-card__map path { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 11; }.transport-card__map .green { stroke: #54d7b6; }.transport-card__map .purple { stroke: #6558cf; }.transport-card__map circle { fill: #0c205e; stroke: #54d7b6; stroke-width: 7; }.transport-card__map .purple-dot { stroke: #6558cf; }
.travel-card-art__card { position: absolute; z-index: 2; top: 14%; left: 5%; width: 58%; transform: rotate(6deg); transform-origin: center; }
.travel-card-art__skyline { position: absolute; z-index: 1; top: 39%; left: -5%; width: 56%; height: auto; opacity: .88; filter: drop-shadow(0 10px 16px rgba(98, 111, 165, .08)); }
.travel-card-art__skyline-buildings { fill: #cdd5ed; }
.travel-card-art__skyline-windows { fill: rgba(255, 255, 255, .72); }
.travel-card-art__bus { position: absolute; z-index: 4; top: 49%; right: 18%; width: 64%; height: auto; filter: drop-shadow(0 22px 15px rgba(24,40,93,.28)); }
.travel-card-art__route { position: absolute; z-index: 3; right: 0; bottom: 0; width: 100%; }.travel-card-art__route path { stroke: #aaa5ed; stroke-linecap: round; stroke-linejoin: round; stroke-width: 5; }.travel-card-art__route circle { fill: #f4f3ff; stroke: #aaa5ed; stroke-width: 5; }
.travel-card-art__pin { position: absolute; z-index: 5; right: 3%; bottom: 3%; width: 6.5%; filter: drop-shadow(0 7px 5px rgba(24,40,93,.18)); }.travel-card-art__pin path { fill: #18347f; }.travel-card-art__pin circle { fill: #fff; }

.public-benefits {
    padding: 34px 0 56px;
    background: linear-gradient(180deg, #ffffff 0%, #f5f7ff 34%, #e7ebfb 100%);
}

.public-benefits__inner {
    display: grid;
    width: min(100% - 48px, 1320px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    align-items: stretch;
    gap: 20px;
    margin: 0 auto;
}

.public-benefit-card {
    display: grid;
    width: 100%;
    min-height: 184px;
    min-width: 0;
    grid-template-columns: 62px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    padding: 28px 24px;
    border: 1px solid #d9deef;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(37, 52, 104, .14);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.public-benefit-card__content {
    min-width: 0;
}

.public-benefit-card:hover {
    border-color: rgba(38, 185, 154, .48);
    box-shadow: 0 20px 42px rgba(37, 52, 104, .18);
    transform: translateY(-3px);
}

.public-benefit-card__icon {
    display: inline-flex;
    width: 62px;
    height: 62px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--public-primary);
    border: 1px solid rgba(38, 185, 154, .2);
    background: linear-gradient(145deg, #d7f8ee, #bcebdc);
    box-shadow: 0 8px 18px rgba(38, 185, 154, .13);
}

.public-benefit-card__icon svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}

.public-benefit-card__content h2 {
    display: flex;
    min-height: 47px;
    align-items: flex-start;
    margin: 4px 0 9px;
    color: var(--public-primary);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.public-benefit-card__content p {
    margin: 0;
    color: var(--public-muted);
    font-size: var(--public-font-body);
    line-height: 1.65;
}

.public-how {
    padding: 46px 0 54px;
    background: linear-gradient(180deg, #e7ebfb 0%, #eef1fc 48%, #ffffff 100%);
}

.public-how__inner {
    width: min(100% - 48px, 1120px);
    margin: 0 auto;
}

.public-section-heading {
    margin-bottom: 38px;
    text-align: center;
}

.public-section-heading h2 {
    position: relative;
    display: inline-block;
    margin: 0;
    padding-bottom: 12px;
    color: var(--public-primary);
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -.04em;
}

.public-section-heading h2::after {
    position: absolute;
    right: 30%;
    bottom: 0;
    left: 30%;
    height: 3px;
    border-radius: 3px;
    background: var(--public-accent);
    content: "";
}

.public-how__steps {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr) 58px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

.public-how-step {
    text-align: center;
}

.public-how-step__visual {
    position: relative;
    width: 142px;
    margin: 0 auto 18px;
}

.public-how-step__number {
    position: absolute;
    z-index: 2;
    top: -18px;
    left: 50%;
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 3px solid #eff1ff;
    border-radius: 50%;
    color: #ffffff;
    background: linear-gradient(145deg, #3349a0, #6554cb);
    box-shadow: 0 8px 18px rgba(48, 63, 149, .2);
    font-size: 18px;
    font-weight: 800;
    transform: translateX(-50%);
}

.public-how-step__icon {
    display: flex;
    width: 142px;
    height: 142px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--public-primary);
    border: 1px solid #d8def1;
    background: #ffffff;
    box-shadow: 0 18px 38px rgba(51, 62, 121, .14);
}

.public-how-step__icon svg {
    width: 72px;
    height: 72px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
}

.public-how-step h3 {
    min-height: 52px;
    margin: 0 0 8px;
    color: #142864;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.4;
}

.public-how-step p {
    max-width: 245px;
    margin: 0 auto;
    color: var(--public-muted);
    font-size: var(--public-font-body);
    line-height: 1.65;
}

.public-how__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 73px;
    color: #45bfa3;
}

.public-how__arrow svg {
    width: 44px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
}

.public-renewal {
    padding: 0 0 52px;
    background: #ffffff;
}

.public-renewal__inner {
    position: relative;
    display: grid;
    width: min(100% - 48px, 1180px);
    min-height: 200px;
    grid-template-columns: 205px minmax(0, 1fr) auto;
    align-items: center;
    gap: 32px;
    margin: 0 auto;
    padding: 26px 38px;
    overflow: hidden;
    border: 1px solid rgba(122, 138, 221, .38);
    border-radius: 20px;
    color: #ffffff;
    background: radial-gradient(circle at 78% 50%, rgba(102, 82, 205, .5), transparent 34%), linear-gradient(120deg, #172e7b 0%, #242f8c 48%, #31379c 100%);
    box-shadow: 0 22px 48px rgba(21, 39, 111, .27);
}

.public-renewal__circuit {
    position: absolute;
    z-index: 0;
    bottom: -4px;
    left: -10px;
    width: 48%;
    stroke: rgba(112, 94, 218, .55);
    stroke-width: 4;
}

.public-renewal__circuit circle {
    fill: #1b327f;
    stroke-width: 5;
}

.public-renewal__visual {
    position: relative;
    z-index: 1;
    display: flex;
    width: 170px;
    height: 170px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--public-primary);
    border: 2px solid rgba(255, 255, 255, .36);
    background: linear-gradient(145deg, #d9faef, #aee8d7);
    box-shadow: 0 14px 30px rgba(5, 23, 78, .22);
}

.public-renewal__visual svg {
    width: 120px;
    height: 96px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
}

.public-renewal__content {
    position: relative;
    z-index: 1;
}

.public-renewal__content h2 {
    margin: 0 0 8px;
    font-size: 27px;
    font-weight: 800;
    letter-spacing: -.035em;
}

.public-renewal__content p {
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: 15px;
    line-height: 1.7;
}

.public-renewal__button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 0 25px;
    border-radius: 14px;
    color: var(--public-primary);
    background: linear-gradient(135deg, #c7f6e7, #a9ecd9);
    box-shadow: 0 10px 24px rgba(5, 23, 78, .18);
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    transition: box-shadow .2s ease, transform .2s ease;
}

.public-renewal__button:hover {
    box-shadow: 0 14px 28px rgba(5, 23, 78, .26);
    transform: translateY(-2px);
}

.public-renewal__button svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.contact-page { color: var(--public-text); background: #fff; }
.contact-hero { overflow: hidden; background: radial-gradient(circle at 73% 43%, rgba(199,244,232,.35), transparent 30%), linear-gradient(180deg,#fff,#f8f9ff); }
.contact-hero__inner { display: grid; width: min(100% - 48px,1320px); min-height: 400px; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 40px; margin: 0 auto; }
.contact-hero__content { position: relative; z-index: 2; }
.contact-hero__eyebrow { display: inline-flex; margin: 0 0 15px; padding: 6px 11px; border-radius: 20px; color: #087f72; background: #d9f5ec; font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.contact-hero h1 { margin: 0; color: var(--public-primary); font-size: clamp(38px,4.2vw,58px); font-weight: 800; letter-spacing: -.055em; line-height: 1.07; }
.contact-hero__content > p:last-child { max-width: 400px; margin: 18px 0 0; color: var(--public-muted); font-size: 15px; line-height: 1.7; }
.contact-hero__visual { position: relative; width: 100%; min-width: 0; aspect-ratio: 1.36 / 1; }.contact-hero__city-image { position: absolute; z-index: 0; top: 1%; right: 7%; width: 84%; height: auto; }.contact-hero__stop-image { position: absolute; z-index: 2; top: 27%; left: 12%; width: 68%; height: auto; filter: drop-shadow(0 14px 14px rgba(28,40,105,.13)); }.contact-hero__route-image { position: absolute; z-index: 1; right: 1%; bottom: 0; width: 94%; height: auto; }.contact-hero__pin-image { position: absolute; z-index: 3; right: 12.5%; bottom: 10%; width: 10%; height: auto; filter: drop-shadow(0 7px 7px rgba(9,116,107,.16)); }.contact-hero__chat-image { position: absolute; z-index: 3; top: 3%; right: 32%; width: 14%; height: auto; filter: drop-shadow(0 8px 14px rgba(65,54,157,.16)); }
.contact-hero__circuit { fill: none; stroke: #e9eafd; stroke-width: 3; }.contact-hero__halo { fill: url(#contact-halo); opacity: .86; }.contact-hero__cloud { fill: rgba(255,255,255,.72); }.contact-hero__tree { fill: #16af91; }.contact-hero__tree--small { fill: #63cbb0; }.contact-hero__tree-trunk { fill: none; stroke: #08796f; stroke-linecap: round; stroke-linejoin: round; stroke-width: 8; }.contact-hero__shelter { fill: url(#contact-shelter); }.contact-hero__shelter-lines { fill: none; stroke: #18357f; stroke-linecap: round; stroke-width: 9; }.contact-hero__bench { fill: #4840a5; }.contact-hero__stop { fill: #fff; stroke: #1f3782; stroke-width: 5; }.contact-hero__stop-icon { fill: none; stroke: #1f3782; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }.contact-hero__stop-pole { fill: none; stroke: #1f3782; stroke-width: 7; }.contact-hero__route { fill: none; stroke: #11a392; stroke-linecap: round; stroke-width: 5; }.contact-hero__route-point { fill: #fff; stroke: #11a392; stroke-width: 4; }.contact-hero__pin { fill: #28bba1; }.contact-hero__pin-dot { fill: #fff; }.contact-hero__bubble { fill: #5149b6; }.contact-hero__bubble-dot { fill: #fff; }

.contact-panel { padding: 24px 0 52px; background: linear-gradient(180deg,#f8f9ff 0%,#fff 100%); }
.contact-panel__inner { display: grid; width: min(100% - 48px,1320px); grid-template-columns: .82fr 1.18fr; gap: 24px; margin: 0 auto; }
.contact-info-card,.contact-form-card { padding: 28px; border: 1px solid #d9deef; border-radius: 18px; background: #fff; box-shadow: 0 16px 38px rgba(39,52,105,.13); }
.contact-info-card h2,.contact-form-card h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; color: var(--public-primary); font-size: 20px; font-weight: 800; letter-spacing: -.025em; }
.contact-panel__heading-icon { display: inline-flex; width: 42px; height: 42px; flex: 0 0 42px; align-items: center; justify-content: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg,#39499e,#6351c9); }
.contact-panel__heading-icon svg,.contact-info-item__icon svg,.contact-page-form button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.contact-info-list { display: grid; gap: 12px; }
.contact-info-item { display: grid; min-height: 76px; grid-template-columns: 48px minmax(0,1fr); align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid #e2e6f2; border-radius: 13px; background: #fff; box-shadow: 0 6px 16px rgba(35,51,105,.05); }
.contact-info-item__icon { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 12px; color: #087f72; background: #dff7ef; }
.contact-info-item div { display: flex; min-width: 0; flex-direction: column; gap: 4px; }.contact-info-item strong { color: #1c2d68; font-size: var(--public-font-body); }.contact-info-item span { color: var(--public-muted); font-size: var(--public-font-secondary); line-height: 1.5; }
.contact-page-form { display: grid; gap: 14px; }.contact-page-form__field { display: grid; gap: 6px; }.contact-page-form__field label { color: #344168; font-size: var(--public-font-secondary); font-weight: 700; }.contact-page-form__field label span,.contact-page-form > small span { color: #d95066; }
.contact-page-form__field input,.contact-page-form__field select,.contact-page-form__field textarea { width: 100%; border: 1px solid #cfd6e8; border-radius: 9px; color: var(--public-text); background: #fff; font: inherit; font-size: var(--public-font-body); transition: border-color .2s ease,box-shadow .2s ease; }.contact-page-form__field input,.contact-page-form__field select { height: 46px; padding: 0 13px; }.contact-page-form__field textarea { min-height: 120px; padding: 12px 13px; resize: vertical; }.contact-page-form__field textarea::placeholder { color: #9aa4ba; }.contact-page-form__field input:focus,.contact-page-form__field select:focus,.contact-page-form__field textarea:focus { border-color: var(--public-accent); outline: 0; box-shadow: 0 0 0 3px rgba(38,185,154,.13); }
.contact-page-form__consent { display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: start; gap: 9px; color: var(--public-muted); font-size: var(--public-font-caption); line-height: 1.55; }.contact-page-form__consent input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--public-accent); }.contact-page-form__consent a { color: var(--public-primary); }
.contact-page-form button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 9px; color: #fff; background: linear-gradient(90deg,#34479c,#5d4ac6); box-shadow: 0 10px 22px rgba(58,65,160,.25); font: inherit; font-size: var(--public-font-body); font-weight: 800; cursor: pointer; }.contact-page-form > small { color: #919bb0; font-size: var(--public-font-caption); }

.contact-about { padding: 10px 0 54px; background: #fff; }.contact-about__inner { width: min(100% - 48px,1320px); margin: 0 auto; }.contact-about__heading { margin-bottom: 26px; text-align: center; }.contact-about__heading h2 { margin: 0 0 9px; color: var(--public-primary); font-size: 30px; font-weight: 800; letter-spacing: -.04em; }.contact-about__heading p { margin: 0; color: var(--public-muted); font-size: var(--public-font-body); line-height: 1.65; }
.contact-about__cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }.contact-about-card { padding: 24px 20px; border: 1px solid #dce1ef; border-radius: 14px; background: #fff; box-shadow: 0 12px 28px rgba(41,55,107,.09); text-align: center; }.contact-about-card > span { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; border-radius: 50%; color: #087f72; background: linear-gradient(145deg,#def9f1,#beeada); }.contact-about-card svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }.contact-about-card h3 { margin: 13px 0 7px; color: var(--public-primary); font-size: var(--public-font-card-title); font-weight: 800; }.contact-about-card p { max-width: 290px; margin: 0 auto; color: var(--public-muted); font-size: var(--public-font-secondary); line-height: 1.6; }

.contact-cta { padding: 0 0 54px; background: #fff; }.contact-cta__inner { position: relative; display: grid; width: min(100% - 48px,1320px); min-height: 170px; grid-template-columns: 230px minmax(0,1fr); align-items: center; gap: 34px; margin: 0 auto; padding: 24px 54px; overflow: hidden; border: 1px solid #bfe8dd; border-radius: 18px; background: linear-gradient(110deg,#e4faf3 0%,#effcf8 55%,#d8f5eb 100%); }.contact-cta__circuit { position: absolute; right: 0; bottom: -8px; left: 0; width: 100%; stroke: rgba(65,190,160,.24); stroke-width: 4; }.contact-cta__circuit circle { fill: #e8faf5; stroke-width: 5; }
.contact-cta__card-art { position: relative; z-index: 1; width: 205px; }.contact-cta__travel-card { width: 205px; border-radius: 14px; box-shadow: 0 15px 28px rgba(38,52,131,.23); transform: rotate(-6deg); }.contact-cta__travel-card strong { font-size: 12px; }.contact-cta__travel-card small { font-size: 6px; }
.contact-cta__content { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 28px; }.contact-cta__content h2 { margin: 0; color: var(--public-primary); font-size: 26px; font-weight: 800; letter-spacing: -.035em; line-height: 1.2; }.contact-cta__content a { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 12px; padding: 0 22px; border-radius: 11px; color: #fff; background: #087f72; box-shadow: 0 10px 22px rgba(8,127,114,.2); font-size: var(--public-font-body); font-weight: 800; text-decoration: none; white-space: nowrap; }.contact-cta__content a svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }

.public-footer {
    position: relative;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.88);
    background:
        radial-gradient(circle at 8% 15%, rgba(38, 185, 154, 0.15), transparent 25%),
        radial-gradient(circle at 92% 90%, rgba(64, 91, 190, 0.24), transparent 30%),
        linear-gradient(118deg, #0a1d4f 0%, #102967 52%, #142d78 100%);
}

.public-footer::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--public-accent), transparent);
    content: "";
    opacity: 0.85;
}

.public-footer__inner {
    position: relative;
    width: min(100% - 48px, 1320px);
    margin: 0 auto;
    padding: 58px 0 24px;
}

.public-footer__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 48px;
    padding: 0 0 46px;
}

.public-footer__grid > * {
    min-width: 0;
}

.public-footer__grid > * + * {
    margin-left: 0;
    padding-left: 0;
    border-left: 0;
}

.public-footer__brand-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: #ffffff;
    text-decoration: none;
}

.public-footer__brand-link img {
    display: block;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 15px;
    box-shadow: 0 12px 28px rgba(4, 13, 42, 0.3);
    object-fit: cover;
}

.public-footer__brand-link span {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.public-footer__brand-link strong {
    font-size: 17px;
    font-weight: 800;
}

.public-footer__brand-link small {
    color: rgba(255, 255, 255, 0.55);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.public-footer__brand p {
    margin: 22px 0 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: var(--public-font-body);
    line-height: 1.75;
}

.public-footer__brand::after {
    display: block;
    width: 72px;
    height: 3px;
    margin-top: 24px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--public-accent), rgba(38, 185, 154, 0));
    content: "";
}

.public-footer__section h2 {
    position: relative;
    margin: 4px 0 19px;
    padding-bottom: 12px;
    color: #ffffff;
    font-size: var(--public-font-card-title);
    font-weight: 800;
}

.public-footer__section h2::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 28px;
    height: 2px;
    border-radius: 2px;
    background: var(--public-accent);
    content: "";
}

.public-footer__links {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.public-footer__links a {
    display: flex;
    align-items: center;
    padding: 2px 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--public-font-body);
    text-decoration: none;
    transition: color 0.2s ease, transform 0.2s ease;
}

.public-footer__links a:hover,
.public-footer__links a:focus-visible {
    color: #ffffff;
}

.public-footer__links a:hover {
    transform: translateX(3px);
}

.public-footer__contacts address {
    display: grid;
    gap: 18px;
    margin: 0;
    font-style: normal;
}

.public-footer__contacts p {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--public-font-body);
}

.public-footer__contacts svg {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    padding: 8px;
    border: 1px solid rgba(38, 185, 154, 0.36);
    border-radius: 10px;
    background: rgba(38, 185, 154, 0.08);
    fill: none;
    stroke: #ffffff;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.public-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.24);
}

.public-footer__bottom p {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--public-font-caption);
}

.public-footer__copyright {
    justify-self: start;
}

.public-footer__bottom .public-footer__credit {
    justify-self: end;
    color: rgba(255, 255, 255, 0.52);
    font-size: var(--public-font-caption);
    letter-spacing: 0.04em;
}

.public-footer__credit a {
    color: rgba(255, 255, 255, 0.78);
    font-weight: 700;
    text-decoration: none;
    transition: color .2s ease;
}

.public-footer__credit a:hover,
.public-footer__credit a:focus-visible {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 3px;
}
