/* ==========================================================================
   Strong Way — rail design layer
   Loaded after public-site.css. Two jobs:
     1. re-point the existing --sw-* tokens at the rail palette, so every
        public page (services, legal, tracking, login) follows along;
     2. define the landing components. Every class here is prefixed rs-
        so nothing collides with Tailwind utilities or public-site.css.

   Palette
     ink       #10191D  graphite — dark surfaces, text on light
     ink-2     #182328  secondary dark surface
     paper     #F5F3ED  warm white
     orange    #FF6436  signal — primary actions, small accents only
   ========================================================================== */

:root {
    --rs-ink:        #10191D;
    --rs-ink-2:      #182328;
    --rs-ink-3:      #1F2C32;
    --rs-paper:      #F5F3ED;
    --rs-paper-2:    #ECE9E0;
    --rs-white:      #FFFFFF;
    --rs-text:       #10191D;
    --rs-text-2:     #46555C;
    --rs-text-3:     #66767D;
    --rs-line:       #D9DFDD;
    --rs-on-dark:    #F5F3ED;
    --rs-on-dark-2:  #B4C1C6;
    --rs-on-dark-3:  #9AABB2;
    --rs-line-dark:  rgba(154, 171, 178, .18);
    --rs-line-dark-2: rgba(154, 171, 178, .32);
    --rs-orange:     #FF6436;
    --rs-orange-hi:  #FF7A51;
    --rs-orange-lo:  #E75025;
    --rs-orange-ink: #B33B14;   /* orange for small text on paper — AA */
    --rs-orange-wash: rgba(255, 100, 54, .12);

    --rs-wrap:   1240px;
    --rs-gutter: clamp(16px, 4vw, 48px);
    --rs-section: clamp(72px, 9vw, 128px);
    --rs-nav-h:  76px;
    --rs-r-sm: 8px;
    --rs-r-md: 14px;
    --rs-r-lg: 20px;
    --rs-ease: cubic-bezier(.22, 1, .36, 1);

    --rs-shadow-card: 0 1px 2px rgba(16, 25, 29, .05), 0 18px 40px -22px rgba(16, 25, 29, .28);
    --rs-shadow-lift: 0 2px 6px rgba(16, 25, 29, .06), 0 28px 56px -24px rgba(16, 25, 29, .36);

    /* existing design-system tokens, re-pointed */
    --sw-canvas: #F5F3ED;
    --sw-surface: #FFFFFF;
    --sw-brand: #FF6436;
    --sw-brand-deep: #B33B14;
    --sw-brand-tint: #FFEDE6;
    --sw-ink: #10191D;
    --sw-body: #46555C;
    --sw-line: #D9DFDD;
    --sw-graphite: #10191D;
    --sw-shadow-sm: 0 1px 2px rgba(16, 25, 29, .05), 0 2px 8px rgba(16, 25, 29, .05);
    --sw-shadow-md: 0 4px 12px rgba(16, 25, 29, .07), 0 12px 32px rgba(16, 25, 29, .08);
    --sw-shadow-lg: 0 8px 24px rgba(16, 25, 29, .09), 0 24px 64px rgba(16, 25, 29, .12);

    --rs-tex-dots: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Ccircle cx='1' cy='1' r='1' fill='%239AABB2' fill-opacity='.28'/%3E%3C/svg%3E");
    --rs-tex-rail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cg fill='none' stroke='%239AABB2' stroke-opacity='.16'%3E%3Cpath d='M0 69h160M0 91h160M15 57v46M47 57v46M79 57v46M111 57v46M143 57v46'/%3E%3C/g%3E%3C/svg%3E");
}

html { scroll-padding-top: calc(var(--rs-nav-h) + 12px); }
::selection { background: var(--rs-orange); color: var(--rs-ink); }

:focus-visible {
    outline: 2px solid var(--rs-orange);
    outline-offset: 3px;
    border-radius: 4px;
}

/* Orange fills carry graphite text (white on #FF6436 fails contrast).
   Two classes beat Tailwind's single-class utilities on every page. */
.bg-brand.text-white { color: var(--rs-ink); }
.bg-brand.text-white:hover { background-color: var(--rs-orange-hi); color: var(--rs-ink); }

.rs-wrap {
    width: 100%;
    max-width: var(--rs-wrap);
    margin-inline: auto;
    padding-inline: var(--rs-gutter);
}

.rs-ico { width: 24px; height: 24px; display: block; flex: none; }

/* --------------------------------------------------------- type --------- */

/* Mkhedruli has no capitals; wide tracking on small Georgian labels splits
   words apart, so eyebrows only letter-space in Latin/Cyrillic. */
.rs-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    color: var(--rs-orange-ink);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
:lang(ka) .rs-eyebrow { letter-spacing: .03em; }
.rs-eyebrow::before {
    content: '';
    width: 28px;
    height: 2px;
    border-radius: 2px;
    background: var(--rs-orange);
}

.rs-h2 {
    margin: 0;
    color: var(--rs-text);
    font-size: clamp(1.75rem, 3.4vw, 2.75rem);
    line-height: 1.15;
    letter-spacing: -.01em;
    text-wrap: balance;
}

.rs-lead {
    margin: 18px 0 0;
    color: var(--rs-text-2);
    font-size: clamp(1rem, 1.2vw, 1.0625rem);
    line-height: 1.75;
    text-wrap: pretty;
}

.rs-head { max-width: 44rem; margin-bottom: clamp(36px, 4.5vw, 56px); }
.rs-head--center { margin-inline: auto; text-align: center; }
.rs-head--center .rs-eyebrow { justify-content: center; }

/* --------------------------------------------------------- buttons ------ */

.rs-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 50px;
    padding: 13px 24px;
    border: 1px solid transparent;
    border-radius: var(--rs-r-sm);
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .22s ease, border-color .22s ease, color .22s ease,
                box-shadow .3s ease, transform .3s var(--rs-ease);
}
.rs-btn__arrow { transition: transform .3s var(--rs-ease); flex: none; }
.rs-btn:hover .rs-btn__arrow { transform: translateX(4px); }

.rs-btn--primary { background: var(--rs-orange); color: var(--rs-ink); }
.rs-btn--primary:hover {
    background: var(--rs-orange-hi);
    box-shadow: 0 12px 26px -12px rgba(255, 100, 54, .7);
    transform: translateY(-1px);
}
.rs-btn--primary:active { background: var(--rs-orange-lo); transform: none; }

.rs-btn--ghost { background: transparent; border-color: var(--rs-line-dark-2); color: var(--rs-on-dark); }
.rs-btn--ghost:hover { border-color: var(--rs-on-dark); background: rgba(245, 243, 237, .06); }

.rs-btn--sm { min-height: 42px; padding: 9px 18px; font-size: .8125rem; }
.rs-btn--xs { min-height: 36px; padding: 7px 14px; font-size: .75rem; }
.rs-btn--block { width: 100%; }
.rs-btn[disabled] { opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }

/* --------------------------------------------------------- nav ---------- */

.rs-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    width: 100%;
    background: rgba(16, 25, 29, .96);
    border-bottom: 1px solid var(--rs-line-dark);
    color: var(--rs-on-dark);
    transition: box-shadow .3s ease;
}
@supports (backdrop-filter: blur(1px)) {
    .rs-nav { background: rgba(16, 25, 29, .9); backdrop-filter: blur(14px) saturate(1.3); }
}
.rs-nav[data-scrolled="true"] { box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .7); }

.rs-nav__inner { display: flex; align-items: center; gap: 28px; height: var(--rs-nav-h); }

.rs-nav__logo { display: flex; align-items: center; gap: 12px; flex: none; text-decoration: none; }
/* the supplied mark is white-on-transparent — it sits on graphite as-is */
.rs-nav__logo img { height: 40px; width: auto; }
.rs-nav__wordmark {
    display: flex;
    flex-direction: column;
    color: var(--rs-on-dark);
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1.05;
    white-space: nowrap;
}
.rs-nav__wordmark small {
    margin-top: 3px;
    color: var(--rs-orange);
    font-size: .5625rem;
    font-weight: 700;
    letter-spacing: .26em;
    text-transform: uppercase;
}

.rs-nav__links { display: none; align-items: center; gap: 26px; margin-left: auto; }

.rs-nav__link {
    position: relative;
    padding: 6px 0;
    color: var(--rs-on-dark-2);
    font-size: .875rem;
    font-weight: 500;
    white-space: nowrap;
    transition: color .2s ease;
}
.rs-nav__link::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--rs-orange);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s var(--rs-ease);
}
.rs-nav__link:hover { color: var(--rs-on-dark); }
.rs-nav__link:hover::after { transform: scaleX(1); }

.rs-nav__lang {
    display: flex;
    align-items: center;
    gap: 2px;
    padding-left: 22px;
    border-left: 1px solid var(--rs-line-dark-2);
}
.rs-lang {
    padding: 6px 8px;
    border-radius: 6px;
    color: var(--rs-on-dark-3);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .08em;
    transition: color .2s ease, background-color .2s ease;
}
.rs-lang:hover { color: var(--rs-on-dark); }
.rs-lang.is-active { background: var(--rs-orange); color: var(--rs-ink); }

.rs-nav__actions { display: flex; align-items: center; gap: 14px; }
.rs-nav__signin {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--rs-on-dark);
    font-size: .875rem;
    font-weight: 600;
    white-space: nowrap;
    transition: color .2s ease;
}
.rs-nav__signin:hover { color: var(--rs-orange); }

.rs-nav__mobile { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.rs-nav__mobile .rs-btn { margin-left: 6px; }
.rs-nav__burger {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-left: 4px;
    border: 1px solid var(--rs-line-dark-2);
    border-radius: var(--rs-r-sm);
    color: var(--rs-on-dark);
}

.rs-nav__panel {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: var(--rs-ink) var(--rs-tex-dots);
    border-bottom: 1px solid var(--rs-line-dark);
    box-shadow: 0 24px 40px -20px rgba(0, 0, 0, .6);
}
.rs-nav__panel-inner { display: flex; flex-direction: column; padding-block: 12px 20px; }
.rs-nav__panel-link {
    padding: 14px 4px;
    border-bottom: 1px solid var(--rs-line-dark);
    color: var(--rs-on-dark);
    font-size: 1.0625rem;
    font-weight: 700;
    transition: color .2s ease, padding-left .3s var(--rs-ease);
}
.rs-nav__panel-link:last-child { border-bottom: 0; }
.rs-nav__panel-link:hover { color: var(--rs-orange); padding-left: 10px; }
.rs-nav__panel-link--accent { color: var(--rs-orange); }

@media (min-width: 1024px) {
    .rs-nav__links { display: flex; }
    .rs-nav__mobile, .rs-nav__panel { display: none !important; }
}
@media (min-width: 1024px) and (max-width: 1180px) {
    .rs-nav__wordmark { display: none; }
    .rs-nav__inner { gap: 18px; }
    .rs-nav__links { gap: 16px; }
    .rs-nav__lang { padding-left: 14px; }
    .rs-nav__signin span, .rs-nav__signin { font-size: 0; gap: 0; }
    .rs-nav__signin svg { width: 18px; height: 18px; }
}
@media (max-width: 1023px) {
    :root { --rs-nav-h: 64px; }
    .rs-nav__logo img { height: 34px; }
}
@media (max-width: 400px) {
    .rs-nav__wordmark { display: none; }
    .rs-nav__mobile { gap: 2px; }
    .rs-nav__mobile .rs-lang { padding: 6px 5px; }
    .rs-nav__mobile .rs-btn { margin-left: 2px; padding: 7px 10px; }
    .rs-nav__burger { width: 40px; height: 40px; margin-left: 2px; }
}

/* --------------------------------------------------------- hero --------- */

.rs-hero { position: relative; background: var(--rs-ink); color: var(--rs-on-dark); }

.rs-hero__stage {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(600px, 88vh, 860px);
    padding-top: clamp(56px, 7vw, 96px);
    padding-bottom: clamp(150px, 13vw, 200px);
    overflow: hidden;
    isolation: isolate;
}

.rs-hero__media,
.rs-hero__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
}
.rs-hero__media img { object-fit: cover; object-position: 68% 50%; }

.rs-hero__scrim {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(16, 25, 29, .93) 0%, rgba(16, 25, 29, .66) 34%, rgba(16, 25, 29, .14) 62%, rgba(16, 25, 29, 0) 80%),
        linear-gradient(0deg, var(--rs-ink) 0%, rgba(16, 25, 29, .55) 14%, rgba(16, 25, 29, 0) 38%);
}

.rs-hero__inner { position: relative; width: 100%; }
.rs-hero__copy { max-width: min(44rem, 58%); }

.rs-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 22px;
    padding: 7px 14px 7px 12px;
    border: 1px solid var(--rs-line-dark-2);
    border-radius: 999px;
    background: rgba(16, 25, 29, .45);
    color: var(--rs-on-dark);
    font-size: .8125rem;
    font-weight: 600;
}
.rs-badge__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rs-orange);
    box-shadow: 0 0 0 4px var(--rs-orange-wash);
}

/* BPG Nino Mtavruli is the site's display face: caps, so it sets wide and
   needs a calmer size than a mixed-case headline would. */
.rs-hero__title {
    margin: 0;
    color: var(--rs-on-dark);
    font-size: clamp(2rem, 4.4vw, 4rem);
    line-height: 1.06;
    letter-spacing: .01em;
}
.rs-hero__line { display: block; }
.rs-hero__line--accent { color: var(--rs-orange); }

.rs-hero__body { margin-top: clamp(22px, 2.4vw, 30px); }
.rs-hero__lead { max-width: 33rem; margin: 0; color: var(--rs-on-dark-2); font-size: clamp(1rem, 1.2vw, 1.0625rem); line-height: 1.75; }
.rs-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* departure board */
.rs-hero__dock { position: relative; z-index: 2; padding-bottom: clamp(48px, 6vw, 80px); }

.rs-board {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.9fr);
    margin-top: clamp(-128px, -8vw, -88px);
    background: rgba(24, 35, 40, .95);
    border: 1px solid var(--rs-line-dark-2);
    border-radius: var(--rs-r-lg);
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8);
    overflow: hidden;
}
@supports (backdrop-filter: blur(1px)) {
    .rs-board { background: rgba(24, 35, 40, .86); backdrop-filter: blur(16px) saturate(1.2); }
}
.rs-board::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: linear-gradient(90deg, var(--rs-orange) 0 16%, rgba(255, 100, 54, 0) 40%);
}

.rs-board__track { padding: clamp(24px, 2.6vw, 34px) clamp(22px, 2.6vw, 34px); scroll-margin-top: calc(var(--rs-nav-h) + 24px); }
.rs-board__head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.rs-board__title { margin: 0; color: var(--rs-on-dark); font-size: 1.25rem; font-weight: 800; line-height: 1.25; }

.rs-icon-tile {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: none;
    border-radius: 12px;
    background: var(--rs-orange-wash);
    color: var(--rs-orange);
}

.rs-board__form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }

/* Four figures: values share one baseline, labels one top line (subgrid). */
.rs-board__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: 1fr auto;
}
.rs-stat {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    grid-row: span 2;
    padding: clamp(24px, 2.6vw, 34px) clamp(16px, 1.8vw, 26px);
    border-left: 1px solid var(--rs-line-dark);
}
@supports (grid-template-rows: subgrid) {
    .rs-stat { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; align-content: end; }
    .rs-stat__value { align-self: end; }
}
.rs-stat__value {
    color: var(--rs-on-dark);
    font-size: clamp(1.75rem, 2.6vw, 2.5rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
    white-space: nowrap;
}
.rs-stat__label {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--rs-line-dark);
    color: var(--rs-on-dark-3);
    font-size: .8125rem;
    line-height: 1.45;
}

/* --------------------------------------------------------- inputs ------- */

.rs-input {
    width: 100%;
    min-height: 50px;
    padding: 13px 14px;
    background: var(--rs-paper);
    border: 1px solid var(--rs-line);
    border-radius: var(--rs-r-sm);
    color: var(--rs-text);
    font-size: .9375rem;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.rs-input::placeholder { color: var(--rs-text-3); }
.rs-input:hover { border-color: #BFC8C5; }
.rs-input:focus {
    outline: none;
    background: var(--rs-white);
    border-color: var(--rs-ink);
    box-shadow: 0 0 0 3px rgba(255, 100, 54, .25);
}
.rs-input--dark {
    background: var(--rs-ink);
    border-color: var(--rs-line-dark-2);
    color: var(--rs-on-dark);
}
.rs-input--dark::placeholder { color: var(--rs-on-dark-3); }
.rs-input--dark:hover { border-color: rgba(154, 171, 178, .5); }
.rs-input--dark:focus { background: var(--rs-ink); border-color: var(--rs-orange); box-shadow: 0 0 0 3px rgba(255, 100, 54, .22); }

.rs-select {
    appearance: none;
    padding-right: 38px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2346555C' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    cursor: pointer;
}
.rs-textarea { min-height: 124px; resize: vertical; }

.rs-label { display: block; margin-bottom: 8px; color: var(--rs-text); font-size: .8125rem; font-weight: 700; }

.rs-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.rs-phone { display: flex; gap: 8px; }
.rs-phone__code { width: 112px; flex: none; padding-left: 10px; }

.rs-form-status { margin: 0; font-size: .8125rem; font-weight: 600; }
.rs-form-status[data-state] { padding: 12px 14px; border-left: 3px solid; border-radius: var(--rs-r-sm); }
.rs-form-status[data-state="pending"] { background: var(--rs-paper); border-color: var(--rs-line); }
.rs-form-status[data-state="success"] { background: #FFF0EA; border-color: var(--rs-orange); color: var(--rs-ink); }
.rs-form-status[data-state="error"]   { background: #FDF1F0; border-color: #C0392B; color: #8E2A1E; }

/* --------------------------------------------------------- ticker ------- */

.rs-ticker {
    position: relative;
    width: 100%;
    padding: 14px 0;
    background: var(--rs-ink-2);
    border-block: 1px solid var(--rs-line-dark);
    color: var(--rs-on-dark-2);
}
.rs-ticker__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 34px;
    font-size: .8125rem;
    font-weight: 600;
    white-space: nowrap;
}
.rs-ticker__item svg { color: var(--rs-orange); }

/* --------------------------------------------------------- sections ----- */

.rs-section { padding-block: var(--rs-section); }
.rs-section--paper { background: var(--rs-paper); }
.rs-section--white { background: var(--rs-white); border-block: 1px solid var(--rs-line); }
.rs-section--ink {
    position: relative;
    background: var(--rs-ink) var(--rs-tex-dots);
    color: var(--rs-on-dark);
    --rs-text: var(--rs-on-dark);
    --rs-text-2: var(--rs-on-dark-2);
    --rs-orange-ink: var(--rs-orange);
}

.rs-split-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
    gap: clamp(32px, 5vw, 72px);
    align-items: end;
    margin-bottom: clamp(36px, 4.5vw, 56px);
}
.rs-split-head .rs-head { margin-bottom: 0; }

.rs-photo { margin: 0; border-radius: var(--rs-r-lg); overflow: hidden; background: var(--rs-paper-2); }
.rs-photo img { width: 100%; height: 100%; object-fit: cover; }
.rs-photo--wide { aspect-ratio: 16 / 10; }

/* cards */
.rs-cards { display: grid; gap: clamp(14px, 1.6vw, 20px); }
.rs-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rs-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rs-card {
    position: relative;
    padding: clamp(24px, 2.8vw, 36px);
    background: var(--rs-white);
    border: 1px solid var(--rs-line);
    border-radius: var(--rs-r-lg);
    transition: border-color .35s ease, box-shadow .35s ease;
}
.rs-card::before {
    content: '';
    position: absolute;
    top: -1px; left: 28px; right: 28px;
    height: 2px;
    border-radius: 2px;
    background: var(--rs-orange);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s var(--rs-ease);
}
.rs-card:hover { border-color: rgba(255, 100, 54, .45); }
.rs-card:hover::before { transform: scaleX(1); }

.rs-card__icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 24px;
    border-radius: 14px;
    background: var(--rs-ink);
    color: var(--rs-orange);
    transition: background-color .35s ease, color .35s ease;
}
.rs-card:hover .rs-card__icon { background: var(--rs-orange); color: var(--rs-ink); }
.rs-card__title { margin: 0 0 10px; color: var(--rs-text); font-size: 1.1875rem; font-weight: 700; line-height: 1.35; }
.rs-card__text { margin: 0; color: var(--rs-text-2); font-size: .9375rem; line-height: 1.75; }

.rs-card--stock { padding: 22px 22px 26px; }
.rs-card--stock .rs-card__title { font-size: 1.0625rem; }
.rs-card--stock .rs-card__text { font-size: .875rem; }
.rs-card__art {
    margin: -6px -6px 20px;
    padding: 18px 14px 10px;
    border-radius: var(--rs-r-md);
    background: var(--rs-paper);
}

/* --------------------------------------------------------- corridor ----- */

.rs-corridor {
    position: relative;
    padding: clamp(24px, 3.5vw, 44px) clamp(12px, 2.5vw, 32px);
    background: var(--rs-ink-2);
    border: 1px solid var(--rs-line-dark);
    border-radius: var(--rs-r-lg);
}
.rs-corridor__scroll { overflow-x: auto; }
.rs-corridor__svg { display: block; width: 100%; min-width: 720px; height: auto; }

.rs-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: clamp(28px, 3.5vw, 40px);
}
.rs-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid var(--rs-line-dark-2);
    border-radius: 999px;
    color: var(--rs-on-dark);
    font-size: .875rem;
    font-weight: 600;
    transition: border-color .25s ease, background-color .25s ease, color .25s ease;
}
.rs-chip svg { color: var(--rs-orange); transition: transform .3s var(--rs-ease); }
.rs-chip:hover { border-color: var(--rs-orange); background: var(--rs-orange-wash); }
.rs-chip:hover svg { transform: translate(2px, -2px); }

/* --------------------------------------------------------- process ------ */

.rs-process { max-width: 64rem; }
.rs-process__head { margin-inline: auto; text-align: center; }
.rs-process__head .rs-eyebrow { justify-content: center; }
.rs-process__rail { position: relative; display: flex; gap: clamp(16px, 3vw, 32px); }
.rs-process__svg { width: 40px; height: auto; flex: none; }
.rs-process__list { flex: 1; margin: 0; padding: 0; list-style: none; }
.rs-process__step {
    display: flex;
    align-items: center;
    gap: clamp(14px, 2vw, 24px);
    height: 100px;
    border-bottom: 1px solid var(--rs-line);
}
.rs-process__step:last-child { border-bottom: 0; }
.rs-process__num {
    min-width: 2.6em;
    color: var(--rs-orange-ink);
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 800;
    letter-spacing: -.02em;
}
.rs-process__text { color: var(--rs-text); font-size: clamp(1rem, 1.4vw, 1.125rem); font-weight: 600; line-height: 1.4; }

/* --------------------------------------------------------- break -------- */

.rs-break {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(300px, 34vw, 440px);
    overflow: hidden;
    background: var(--rs-ink);
    isolation: isolate;
}
.rs-break__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.rs-break::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(16, 25, 29, .92) 0%, rgba(16, 25, 29, .7) 45%, rgba(16, 25, 29, .35) 100%);
}
.rs-break__inner { position: relative; }
.rs-break__title {
    max-width: 18ch;
    margin: 0;
    color: var(--rs-on-dark);
    font-size: clamp(2rem, 4.6vw, 3.75rem);
    line-height: 1.1;
}
.rs-break__title span { display: block; color: var(--rs-orange); }

/* --------------------------------------------------------- contact ------ */

.rs-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
    gap: clamp(40px, 6vw, 88px);
    align-items: center;
}
.rs-contact__info { display: flex; flex-direction: column; }
.rs-contact__info .rs-lead { max-width: 30rem; }

.rs-details { display: grid; gap: 10px; margin-top: clamp(28px, 3.5vw, 40px); }
.rs-detail {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px 14px 14px;
    background: var(--rs-white);
    border: 1px solid var(--rs-line);
    border-radius: var(--rs-r-md);
    transition: border-color .3s ease, transform .3s var(--rs-ease);
}
.rs-detail:hover { border-color: var(--rs-orange); }
.rs-detail__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 12px;
    background: var(--rs-ink);
    color: var(--rs-orange);
}
.rs-detail__label { margin: 0 0 2px; color: var(--rs-text-3); font-size: .75rem; font-weight: 600; }
.rs-detail__value { color: var(--rs-text); font-size: 1rem; font-weight: 700; overflow-wrap: anywhere; transition: color .2s ease; }
.rs-detail__value:hover { color: var(--rs-orange-ink); }

/* transparent wagon — always whole, never cropped */
.rs-contact__wagon {
    width: 100%;
    max-width: 400px;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    margin: clamp(8px, 2vw, 20px) auto 0;
    filter: drop-shadow(0 24px 24px rgba(16, 25, 29, .16));
}

.rs-formcard {
    position: relative;
    padding: clamp(24px, 3.4vw, 44px);
    background: var(--rs-white);
    border: 1px solid var(--rs-line);
    border-radius: var(--rs-r-lg);
    box-shadow: var(--rs-shadow-lift);
}
.rs-formcard::before {
    content: '';
    position: absolute;
    top: -1px; left: 32px; right: 32px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: var(--rs-orange);
}

/* --------------------------------------------------------- footer ------- */

.rs-footer {
    position: relative;
    padding: clamp(56px, 6vw, 88px) 0 32px;
    background: var(--rs-ink);
    color: var(--rs-on-dark-2);
}
.rs-footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--rs-orange) 0 18%, var(--rs-line-dark) 18%);
}
.rs-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, 1fr));
    gap: clamp(28px, 4vw, 56px);
    padding-bottom: clamp(36px, 5vw, 56px);
}
.rs-footer__desc { max-width: 22rem; margin: 20px 0 0; color: var(--rs-on-dark-3); font-size: .875rem; line-height: 1.7; }
.rs-footer__title { margin: 0 0 18px; color: var(--rs-orange); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
:lang(ka) .rs-footer__title { letter-spacing: .03em; }
.rs-footer__list { display: grid; gap: 12px; font-size: .875rem; }
.rs-footer__list a { color: var(--rs-on-dark-2); overflow-wrap: anywhere; transition: color .2s ease; }
.rs-footer__list a:hover { color: var(--rs-orange); }
.rs-footer__list--strong a { color: var(--rs-on-dark); font-weight: 600; }
.rs-footer__legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 12px 24px;
    padding-top: 24px;
    border-top: 1px solid var(--rs-line-dark);
    color: var(--rs-on-dark-3);
    font-size: .8125rem;
}
.rs-footer__legal p { margin: 0; }
.rs-footer__legal-links { display: flex; gap: 20px; }
.rs-footer__legal-links a:hover { color: var(--rs-on-dark); }

/* --------------------------------------------------------- responsive --- */

@media (max-width: 1180px) {
    .rs-board { grid-template-columns: minmax(0, 1fr); }
    .rs-board__stats { border-top: 1px solid var(--rs-line-dark); }
    .rs-board__stats .rs-stat:first-child { border-left: 0; }
    .rs-board::before { background: linear-gradient(90deg, var(--rs-orange) 0 24%, rgba(255, 100, 54, 0) 60%); }
    .rs-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
    .rs-hero__copy { max-width: 36rem; }
    .rs-hero__media img { object-position: 90% 50%; }
    .rs-hero__scrim {
        background:
            linear-gradient(90deg, rgba(16, 25, 29, .92) 0%, rgba(16, 25, 29, .64) 55%, rgba(16, 25, 29, .22) 100%),
            linear-gradient(0deg, var(--rs-ink) 0%, rgba(16, 25, 29, .5) 14%, rgba(16, 25, 29, 0) 36%);
    }
    .rs-board { margin-top: -80px; }
    .rs-split-head { grid-template-columns: minmax(0, 1fr); align-items: start; }
    .rs-contact { grid-template-columns: minmax(0, 1fr); }
    .rs-contact__wagon { max-width: 340px; }
    .rs-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rs-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
    .rs-cards--2 { grid-template-columns: minmax(0, 1fr); }
    .rs-board__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
    .rs-stat,
    .rs-stat:nth-child(n) { display: flex; grid-row: auto; border-left: 0; }
    .rs-stat__value { align-self: auto; }
    .rs-stat:nth-child(even) { border-left: 1px solid var(--rs-line-dark); }
    .rs-stat:nth-child(n + 3) { border-top: 1px solid var(--rs-line-dark); }
}

/* Phone: the portrait photograph keeps its own proportions (never cropped).
   Badge and headline sit in the empty sky; lead and actions follow below
   so the locomotive stays uncovered. */
@media (max-width: 640px) {
    .rs-hero__stage {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto 1fr auto;
        min-height: 0;
        padding: 0;
    }
    .rs-hero__inner, .rs-hero__copy { display: contents; }
    .rs-hero__media { position: relative; inset: auto; grid-row: 1 / 4; grid-column: 1; height: auto; z-index: 0; }
    .rs-hero__media img { position: static; width: 100%; height: auto; aspect-ratio: 941 / 1672; object-fit: contain; }
    .rs-hero__scrim {
        position: relative;
        inset: auto;
        grid-row: 1 / 4;
        grid-column: 1;
        z-index: 1;
        background:
            linear-gradient(180deg, rgba(16, 25, 29, .8) 0%, rgba(16, 25, 29, .42) 30%, rgba(16, 25, 29, 0) 46%),
            linear-gradient(0deg, var(--rs-ink) 0%, rgba(16, 25, 29, 0) 14%);
    }
    .rs-badge, .rs-hero__title, .rs-hero__body { grid-column: 1; z-index: 2; margin-inline: var(--rs-gutter); }
    .rs-badge { grid-row: 1; justify-self: start; margin-top: 22px; margin-bottom: 14px; }
    .rs-hero__title { grid-row: 2; font-size: clamp(1.75rem, 8.4vw, 2.5rem); }
    .rs-hero__body { grid-row: 4; margin-top: 4px; padding-bottom: 56px; }
    .rs-hero__ctas { flex-direction: column; align-items: stretch; }
    .rs-hero__ctas .rs-btn { white-space: normal; }

    .rs-board { margin-top: -20px; border-radius: var(--rs-r-md); }
    .rs-board__form { grid-template-columns: minmax(0, 1fr); }
    .rs-stat { padding: 18px 16px; }

    .rs-cards--4 { grid-template-columns: minmax(0, 1fr); }
    .rs-form-row { grid-template-columns: minmax(0, 1fr); }
    .rs-footer__grid { grid-template-columns: minmax(0, 1fr); }
    .rs-process__step { height: 100px; }
}

/* --------------------------------------------------------- motion off --- */

@media (prefers-reduced-motion: reduce) {
    .rs-btn, .rs-card, .rs-detail, .rs-chip svg, .rs-btn__arrow { transition: none !important; }
    .rs-btn:hover, .rs-btn--primary:hover { transform: none; }
}

/* BPG Nino Mtavruli has no Latin/Cyrillic glyphs; in EN/RU the display
   fallback needs extra weight to hold the same hierarchy. */
:lang(en) .font-display, :lang(ru) .font-display { font-weight: 700; letter-spacing: -.015em; }

/* --------------------------------------------------------- install (PWA) */
/* Header button: graphite pill, orange ring and icon, so it reads as an
   action without competing with the filled orange registration button.
   A soft shine crosses it twice after load. Hidden inside the installed app. */

.rs-install {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: none;
    height: 42px;
    padding: 0 16px 0 13px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 100, 54, .1);
    box-shadow: inset 0 0 0 1.5px var(--rs-orange), 0 8px 22px -12px rgba(255, 100, 54, .8);
    color: var(--rs-on-dark);
    font-size: .8125rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .22s ease, color .22s ease, transform .3s var(--rs-ease);
}
.rs-install__icon { color: var(--rs-orange); flex: none; transition: color .22s ease, transform .3s var(--rs-ease); }
.rs-install:hover { background: var(--rs-orange); color: var(--rs-ink); transform: translateY(-1px); }
.rs-install:hover .rs-install__icon { color: var(--rs-ink); transform: translateY(1px); }
.rs-install:active { transform: scale(.97); }
.rs-install::after {
    content: '';
    position: absolute;
    inset: -40% auto -40% -60%;
    width: 45%;
    z-index: -1;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
    transform: skewX(-20deg) translateX(0);
    animation: rs-install-shine 1.4s 1.2s ease-in-out 2 both;
}
@keyframes rs-install-shine { from { left: -60%; } to { left: 130%; } }

.rs-install__long { display: none; }
@media (min-width: 1360px) {
    .rs-install--nav .rs-install__short { display: none; }
    .rs-install--nav .rs-install__long { display: inline; }
}
.rs-install--mobile { height: 38px; padding: 0 12px 0 10px; font-size: .75rem; gap: 6px; }
@media (max-width: 360px) {
    .rs-install--mobile { width: 38px; padding: 0; }
    .rs-install--mobile .rs-install__short { display: none; }
}

@media (display-mode: standalone) { .rs-install { display: none !important; } }
.pwa-installed .rs-install { display: none !important; }

/* How-to sheet: bottom sheet on phones, centred card from 640px. */
.rs-pwa { position: fixed; inset: 0; z-index: 90; display: flex; align-items: flex-end; justify-content: center; }
.rs-pwa[hidden] { display: none; }
.rs-pwa__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 25, 29, .6);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity .22s ease;
    cursor: default;
}
.rs-pwa__panel {
    position: relative;
    width: 100%;
    max-width: 460px;
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    padding: 26px 22px max(22px, env(safe-area-inset-bottom));
    background: var(--rs-white);
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -20px 60px -20px rgba(0, 0, 0, .5);
    color: var(--rs-text);
    transform: translateY(40px);
    opacity: 0;
    transition: transform .32s var(--rs-ease), opacity .22s ease;
}
.rs-pwa__panel::before {
    content: '';
    position: absolute;
    top: 0; left: 28px; right: 28px;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: var(--rs-orange);
}
.rs-pwa.is-open .rs-pwa__backdrop { opacity: 1; }
.rs-pwa.is-open .rs-pwa__panel { transform: none; opacity: 1; }
.pwa-sheet-open { overflow: hidden; }

.rs-pwa__head { display: flex; align-items: flex-start; gap: 14px; }
.rs-pwa__app-icon { width: 56px; height: 56px; flex: none; border-radius: 14px; box-shadow: 0 6px 16px -8px rgba(16, 25, 29, .6); }
.rs-pwa__title { margin: 2px 0 6px; color: var(--rs-text); font-size: 1.125rem; font-weight: 800; line-height: 1.3; }
.rs-pwa__lead { margin: 0; color: var(--rs-text-2); font-size: .875rem; line-height: 1.6; }

.rs-pwa__steps { display: grid; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.rs-pwa__steps[hidden] { display: none; }
.rs-pwa__step {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    border-radius: var(--rs-r-md);
    background: var(--rs-paper);
    font-size: .9rem;
    line-height: 1.55;
}
.rs-pwa__step > span:last-child { padding-top: 5px; }
.rs-pwa__step-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: 10px;
    background: var(--rs-ink);
    color: var(--rs-orange);
}

.rs-pwa__actions { display: flex; gap: 10px; margin-top: 20px; }
.rs-pwa__ok { flex: 1; }
.rs-pwa__dismiss { background: var(--rs-paper); color: var(--rs-text); border-color: var(--rs-line); }
.rs-pwa__dismiss:hover { border-color: var(--rs-ink); }

@media (min-width: 640px) {
    .rs-pwa { align-items: center; padding: 24px; }
    .rs-pwa__panel { border-radius: 22px; padding-bottom: 24px; transform: translateY(16px) scale(.98); }
}

@media (prefers-reduced-motion: reduce) {
    .rs-install::after { animation: none; display: none; }
    .rs-install, .rs-pwa__panel, .rs-pwa__backdrop { transition: none; }
}
@media (max-width: 340px) {
    .rs-nav__mobile .rs-lang { padding: 6px 3px; font-size: .625rem; }
    .rs-nav__logo img { height: 30px; }
}

/* Mobile menu: full-width install row, so the action is obvious on phones too. */
.rs-install--panel {
    width: 100%;
    height: 52px;
    margin-top: 10px;
    justify-content: flex-start;
    padding: 0 18px;
    border-radius: var(--rs-r-md);
    font-size: .9375rem;
}
.rs-install--panel .rs-install__short { display: none; }
.rs-install--panel .rs-install__long { display: inline; }
.rs-install--panel::before {
    content: "";
    position: absolute;
    right: 18px;
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .7;
}
/* Phone header: the logo mark alone up to 520px; RU label is too long for it. */
@media (max-width: 520px) { .rs-nav__wordmark { display: none; } }
:lang(ru) .rs-install--mobile { width: 38px; padding: 0; }
:lang(ru) .rs-install--mobile .rs-install__short { display: none; }
