@font-face {
    font-family: 'Onest';
    src: url('../fonts/Onest-Variable.woff2') format('woff2');
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Onest';
    src: url('../fonts/Onest-Latin.woff2') format('woff2');
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    unicode-range: U+0000-024F, U+1E00-1EFF;
}

:root {
    --paper: #f7f3ee;
    --paper-deep: #efe9e2;
    --white: #fffdf9;
    --ink: #073b34;
    --ink-soft: #41605c;
    --coral: #f15b49;
    --coral-soft: #f3c9c0;
    --line: rgba(7, 59, 52, .16);
    --shadow: 0 24px 64px rgba(30, 43, 39, .16);
    --radius: 24px;
}

* { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    background: var(--paper);
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: 'Onest', sans-serif;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
em { font-style: normal; color: var(--coral); }

.skip-link {
    position: fixed;
    z-index: 100;
    top: 12px;
    left: 12px;
    padding: 10px 16px;
    border-radius: 10px;
    color: var(--white);
    background: var(--ink);
    transform: translateY(-160%);
}

.skip-link:focus { transform: none; }

.brand {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    width: max-content;
    font-size: 28px;
    font-weight: 520;
    letter-spacing: .16em;
    line-height: 1;
}

.brand i {
    width: 2px;
    height: 31px;
    background: var(--coral);
}

.hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: 54.2% 45.8%;
    min-height: max(820px, 100svh, var(--chat-required-height, 0px));
    overflow: hidden;
    background: var(--paper);
    transition: min-height .48s cubic-bezier(.22, 1, .36, 1);
}

.hero-copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 50px 7.4vw 64px 3.8vw;
}

.hero-brand { flex: 0 0 auto; }

.hero h1 {
    max-width: 720px;
    margin: clamp(82px, 10vh, 116px) 0 22px;
    font-size: clamp(50px, 4.25vw, 72px);
    font-weight: 660;
    letter-spacing: -.035em;
    line-height: 1.1;
    text-transform: uppercase;
}

.hero-subtitle {
    margin: 0;
    font-size: clamp(21px, 1.65vw, 29px);
    font-weight: 480;
    letter-spacing: -.025em;
}

.hero-lead {
    max-width: 620px;
    margin: 16px 0 36px;
    color: #68716f;
    font-size: clamp(17px, 1.22vw, 21px);
    line-height: 1.55;
}

.button {
    border: 0;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.button-primary {
    min-width: 336px;
    min-height: 88px;
    padding: 20px 34px;
    border-radius: 7px;
    color: var(--white);
    background: var(--coral);
    box-shadow: 0 14px 34px rgba(241, 91, 73, .18);
    font-size: 21px;
    font-weight: 480;
}

.button-primary:hover,
.button-primary:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(241, 91, 73, .26);
}

.hero-actions {
    display: flex;
    align-items: center;
    align-self: stretch;
}

.hero-button-line {
    position: relative;
    flex: 0 1 310px;
    width: min(19vw, 310px);
    height: 1px;
    background: var(--coral);
    transform-origin: left center;
}

.hero-button-line::after {
    content: '';
    position: absolute;
    top: -6px;
    right: 1px;
    width: 11px;
    height: 11px;
    border-top: 2px solid var(--coral);
    border-right: 2px solid var(--coral);
    transform: rotate(45deg);
}

.hero-note {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: auto 0 0;
    color: #66716f;
    font-size: 16px;
}

.lock-icon {
    position: relative;
    width: 19px;
    height: 19px;
    border: 1.5px solid var(--coral);
    border-radius: 2px;
}

.lock-icon::before {
    content: '';
    position: absolute;
    left: 4px;
    top: -10px;
    width: 9px;
    height: 10px;
    border: 1.5px solid var(--coral);
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
}

.lock-icon::after {
    content: '';
    position: absolute;
    left: 8px;
    top: 7px;
    width: 2px;
    height: 5px;
    background: var(--coral);
    border-radius: 2px;
}

.hero-curve {
    position: absolute;
    z-index: 2;
    top: -8px;
    left: 41.25%;
    width: 12.5%;
    height: 53%;
    overflow: visible;
    pointer-events: none;
}

.hero-curve path {
    fill: none;
    stroke: var(--coral);
    stroke-width: 1.35;
    vector-effect: non-scaling-stroke;
    stroke-dasharray: 720;
    stroke-dashoffset: 720;
}

.hero-photo {
    position: relative;
    z-index: 1;
    min-width: 0;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
    background: #d9d3ca;
}

.hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 51% 49%;
}

.chat-card {
    position: absolute;
    z-index: 5;
    top: 46%;
    left: 43.2%;
    width: min(426px, 33vw);
    min-height: 430px;
    border: 1px solid rgba(241, 91, 73, .16);
    border-radius: 24px;
    overflow: hidden;
    color: var(--ink);
    background: rgba(255, 253, 249, .975);
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
}

.hero.is-chat-expanded .chat-card {
    top: var(--chat-anchor-top, 46%);
}

.chat-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 94px;
    padding: 17px 22px;
    border-bottom: 1px solid rgba(241, 91, 73, .16);
}

.chat-topline > div {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 12px;
}

.chat-topline strong {
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
}

.bot-mark {
    display: grid;
    place-items: center;
    flex: 0 0 55px;
    width: 55px;
    height: 55px;
    border-radius: 50%;
    color: var(--white);
    background: var(--ink);
}

.bot-mark svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.online-dot {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #a7cb74;
    box-shadow: 0 0 0 4px rgba(167, 203, 116, .13);
}

.chat-progress {
    color: var(--ink-soft);
    font-size: 12px;
    font-weight: 650;
}

.chat-history {
    display: none;
    max-height: 72px;
    overflow: auto;
    padding: 10px 24px 0;
}

.chat-history:not(:empty) { display: block; }

.chat-card.is-expanded .chat-history {
    max-height: none;
    overflow: visible;
}

.chat-history-row {
    overflow: hidden;
    color: #70807d;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-step {
    min-height: 272px;
    padding: 28px 25px 22px;
}

.chat-prompt { animation: step-in .38s ease both; }

.chat-kicker {
    margin: 0 0 8px;
    color: var(--coral);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.chat-prompt h2,
.chat-complete h2 {
    max-width: 340px;
    margin: 0 0 24px;
    font-size: clamp(25px, 2vw, 31px);
    font-weight: 510;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.chat-explain {
    margin: -10px 0 18px;
    color: #687774;
    font-size: 13px;
    line-height: 1.5;
}

.chat-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.chat-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 148px;
    padding: 16px 12px;
    border: 1px solid rgba(241, 91, 73, .24);
    border-radius: 16px;
    cursor: pointer;
    color: var(--ink);
    background: rgba(255, 255, 255, .22);
    font-size: 17px;
    font-weight: 480;
    line-height: 1.2;
    text-align: center;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

.chat-option:hover,
.chat-option:focus-visible {
    border-color: var(--coral);
    background: rgba(241, 91, 73, .05);
    transform: translateY(-3px);
}

.chat-option-icon {
    display: grid;
    place-items: center;
    width: 45px;
    height: 45px;
    color: var(--coral);
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.45;
}

.chat-form label {
    display: block;
    margin-bottom: 7px;
    color: var(--ink-soft);
    font-size: 12px;
    font-weight: 650;
}

.chat-input {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    outline: 0;
    color: var(--ink);
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}

textarea.chat-input { min-height: 92px; resize: vertical; }
.chat-input:focus { border-color: var(--coral); box-shadow: 0 0 0 3px rgba(241, 91, 73, .09); }

.chat-next,
.chat-restart {
    width: 100%;
    min-height: 48px;
    margin-top: 12px;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    color: var(--white);
    background: var(--ink);
    font-weight: 600;
}

.chat-review {
    display: grid;
    gap: 7px;
    padding: 12px;
    border-radius: 12px;
    background: var(--paper);
    color: var(--ink-soft);
    font-size: 12px;
}

.chat-consent {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 8px;
    align-items: start;
    margin-top: 12px;
    color: var(--ink-soft);
    font-size: 11px;
    line-height: 1.4;
}

.chat-error { min-height: 18px; margin: 7px 0 0; color: #b5372a; font-size: 12px; }
.chat-complete { text-align: center; animation: step-in .4s ease both; }

.chat-complete-mark {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 15px;
    border-radius: 50%;
    color: var(--white);
    background: var(--coral);
}

.chat-footer {
    display: flex;
    justify-content: space-between;
    min-height: 45px;
    padding: 0 25px 18px;
}

.chat-back {
    padding: 0;
    border: 0;
    cursor: pointer;
    color: var(--ink-soft);
    background: none;
    font-size: 12px;
}

.trust-strip {
    display: flex;
    justify-content: center;
    gap: clamp(28px, 5vw, 78px);
    padding: 24px clamp(28px, 5.5vw, 92px);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--paper-deep);
}

.trust-strip p {
    position: relative;
    margin: 0;
    padding-left: 17px;
    color: var(--ink-soft);
    font-size: 14px;
    white-space: nowrap;
}

.trust-strip p::before {
    content: '';
    position: absolute;
    top: .62em;
    left: 0;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--coral);
}

.section {
    padding: 112px clamp(28px, 5.5vw, 92px);
}

.section-heading { max-width: 900px; margin-bottom: 58px; }
.section-heading.compact { max-width: 680px; }

.section-index,
.card-kicker {
    margin: 0 0 15px;
    color: var(--coral);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
}

.section-index.light { color: #f3a296; }

.section h2,
.final-cta h2 {
    margin: 0;
    font-size: clamp(38px, 5vw, 72px);
    font-weight: 560;
    letter-spacing: -.045em;
    line-height: 1.06;
}

.direction-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.direction-card {
    position: relative;
    min-height: 430px;
    padding: 40px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}

.direction-card::before {
    content: '';
    position: absolute;
    top: -205px;
    right: -110px;
    width: 330px;
    height: 330px;
    border: 1px solid var(--coral);
    border-radius: 44% 56% 56% 44%;
    transform: rotate(28deg);
    opacity: .72;
    pointer-events: none;
}
.direction-card-dark { color: var(--white); background: var(--ink); }
.direction-card-dark::before { border-color: rgba(244,91,73,.72); }
.direction-card-light { background: var(--white); box-shadow: 0 24px 55px rgba(9,61,54,.06); }
.direction-card h3 { max-width: 500px; margin: 65px 0 18px; font-size: clamp(29px, 3vw, 44px); line-height: 1.1; }
.direction-card p { max-width: 570px; color: inherit; opacity: .76; }
.direction-card ul { margin: 26px 0 0; padding: 0; list-style: none; }
.direction-card li { position: relative; margin-top: 10px; padding-left: 18px; opacity: .78; }
.direction-card li::before { content: '·'; position: absolute; left: 0; color: var(--coral); }
.direction-card button {
    position: absolute;
    right: 34px;
    bottom: 32px;
    left: 34px;
    display: flex;
    justify-content: space-between;
    padding: 17px 0;
    border: 0;
    border-top: 1px solid currentColor;
    cursor: pointer;
    color: inherit;
    background: none;
    text-align: left;
}

.card-number { position: absolute; top: 26px; right: 32px; color: var(--coral); font-size: 14px; }

.situations { background: var(--paper-deep); }
.situation-list { border-top: 1px solid var(--line); }
.situation-list article {
    position: relative;
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr) minmax(300px, 480px) 32px;
    gap: 24px;
    align-items: center;
    min-height: 108px;
    padding-right: 34px;
    border-bottom: 1px solid var(--line);
    transition: padding-left .35s ease, background-color .35s ease;
}
.situation-list article::after { content: '↗'; color: var(--coral); font-size: 21px; opacity: 0; transform: translateX(-8px); transition: opacity .3s ease, transform .3s ease; }
.situation-list article:hover { padding-left: 18px; background: rgba(255,255,255,.48); }
.situation-list article:hover::after { opacity: 1; transform: none; }
.situation-list span { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(244,91,73,.45); border-radius: 50%; color: var(--coral); font-size: 12px; }
.situation-list h3 { margin: 0; font-size: clamp(20px, 2vw, 28px); font-weight: 520; }
.situation-list p { max-width: 480px; margin: 0; color: var(--ink-soft); }

.process {
    position: relative;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 70px;
    overflow: hidden;
    color: var(--white);
    background: var(--ink);
}
.process::before {
    content: '';
    position: absolute;
    bottom: -380px;
    left: -245px;
    width: 610px;
    height: 610px;
    border: 1px solid rgba(244,91,73,.58);
    border-radius: 48% 52% 42% 58%;
    transform: rotate(-17deg);
}
.process > * { position: relative; z-index: 1; }
.process-list { margin: 0; padding: 0; list-style: none; counter-reset: work; }
.process-list li {
    position: relative;
    min-height: 150px;
    padding: 28px 0 28px 82px;
    border-top: 1px solid rgba(255,255,255,.18);
    counter-increment: work;
}
.process-list li::before { content: '0' counter(work); position: absolute; left: 0; top: 26px; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(243,162,150,.55); border-radius: 50%; color: #f3a296; font-size: 12px; }
.process-list li::after { content: ''; position: absolute; top: 70px; bottom: -1px; left: 21px; width: 1px; background: rgba(243,162,150,.38); }
.process-list li:last-child::after { display: none; }
.process-list li > span { display: none; }
.process-list h3 { margin: 0 0 8px; font-size: 25px; }
.process-list p { max-width: 600px; margin: 0; color: rgba(255,255,255,.66); }

.formats { position: relative; overflow: hidden; }
.formats::after {
    content: '';
    position: absolute;
    top: 88px;
    right: -150px;
    width: 360px;
    height: 220px;
    border: 1px solid rgba(244,91,73,.6);
    border-radius: 50%;
    transform: rotate(-14deg);
    pointer-events: none;
}
.formats > * { position: relative; z-index: 1; }
.format-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 20px; }
.format-grid article {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 320px;
    padding: 34px 36px 32px;
    border: 1px solid var(--line);
    border-radius: 28px;
    background: var(--white);
    overflow: hidden;
    box-shadow: 0 22px 55px rgba(9,61,54,.055);
}
.format-grid article:nth-child(2) { background: var(--paper-deep); }
.format-grid article:nth-child(3) { grid-column: 1 / -1; min-height: 290px; padding-right: 42%; }
.format-grid article::after {
    content: '';
    position: absolute;
    top: 0;
    left: 34px;
    width: 92px;
    height: 1px;
    background: var(--coral);
}
.format-grid span { position: absolute; top: 22px; right: 28px; color: rgba(244,91,73,.15); font-size: 112px; font-weight: 520; line-height: 1; }
.format-grid h3 { position: relative; max-width: 520px; margin: 84px 0 14px; font-size: clamp(28px, 3vw, 42px); font-weight: 540; line-height: 1.08; letter-spacing: -.03em; }
.format-grid article:nth-child(3) h3 { margin-top: 44px; }
.format-grid p { max-width: 570px; color: var(--ink-soft); line-height: 1.55; }
.format-grid button {
    position: relative;
    width: 100%;
    margin-top: auto;
    padding: 15px 0;
    border: 0;
    border-top: 1px solid var(--line);
    color: var(--ink);
    background: transparent;
    text-align: left;
    cursor: pointer;
}
.format-grid button::after { content: '↗'; float: right; color: var(--coral); font-size: 18px; transition: transform .25s ease; }
.format-grid button:hover::after { transform: translate(3px,-3px); }

.handoff {
    position: relative;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 72px;
    overflow: hidden;
    color: var(--white);
    background: #0d4941;
}
.handoff::before {
    content: '';
    position: absolute;
    top: -370px;
    left: 35%;
    width: 670px;
    height: 670px;
    border: 1px solid rgba(244,91,73,.7);
    border-radius: 44% 56% 51% 49%;
    transform: rotate(31deg);
}
.handoff > * { position: relative; z-index: 1; }
.handoff h2 { max-width: 820px; }
.handoff-note {
    position: relative;
    padding: 42px 42px 38px;
    border-radius: 28px;
    color: var(--ink);
    background: var(--paper);
    box-shadow: 0 28px 70px rgba(0,24,21,.24);
}
.handoff-note::before { content: 'ВВОДНАЯ / 01'; display: block; margin-bottom: 25px; color: var(--coral); font-size: 11px; font-weight: 700; letter-spacing: .16em; }
.handoff-note::after { content: ''; position: absolute; top: 0; right: 0; width: 74px; height: 74px; border-bottom: 1px solid rgba(244,91,73,.4); border-left: 1px solid rgba(244,91,73,.4); border-radius: 0 28px 0 74px; }
.handoff-note dl { margin: 0 0 30px; }
.handoff-note dl div { display: grid; grid-template-columns: .9fr 1.1fr; gap: 22px; padding: 15px 0; border-top: 1px solid var(--line); }
.handoff-note dt { color: var(--ink-soft); font-size: 13px; }
.handoff-note dd { margin: 0; font-weight: 540; line-height: 1.35; }
.button-coral { padding: 17px 22px; border: 0; border-radius: 10px; color: var(--white); background: var(--coral); box-shadow: 0 12px 28px rgba(244,91,73,.2); }

.faq { display: grid; grid-template-columns: .58fr 1fr; gap: 78px; background: var(--paper-deep); }
.faq .section-heading { margin: 0; }
.accordion { max-width: 920px; border-top: 1px solid var(--line); }
.accordion details { border-bottom: 1px solid var(--line); }
.accordion summary { position: relative; padding: 25px 52px 25px 0; cursor: pointer; font-size: 20px; font-weight: 520; list-style: none; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after { content: '+'; position: absolute; top: 18px; right: 0; display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(244,91,73,.5); border-radius: 50%; color: var(--coral); font-size: 23px; font-weight: 350; transition: transform .3s ease; }
.accordion details[open] summary::after { transform: rotate(45deg); }
.accordion p { max-width: 740px; margin: 0; padding: 0 0 25px; color: var(--ink-soft); }

.final-cta { position: relative; overflow: hidden; padding: 105px clamp(28px, 5.5vw, 92px); color: var(--white); background: var(--ink); text-align: center; }
.final-cta::before { content: ''; position: absolute; top: -190px; left: 50%; width: 620px; height: 340px; border: 1px solid rgba(244,91,73,.62); border-radius: 50%; transform: translateX(-50%) rotate(-8deg); }
.final-cta > * { position: relative; z-index: 1; }
.final-cta h2 { margin-bottom: 36px; }

.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: center;
    padding: 34px clamp(28px, 5.5vw, 92px);
    color: rgba(255,255,255,.65);
    background: #052e29;
}
.brand-light { color: var(--white); font-size: 18px; }
.brand-light i { height: 21px; }
.site-footer p { margin: 0; }

.reveal-item { transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1); }
.reveal-ready .reveal-item:not(.is-visible) { opacity: 0; transform: translateY(24px); }

@keyframes copy-arrive {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}

@keyframes photo-arrive {
    from { opacity: .35; transform: scale(1.045); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes curve-draw { to { stroke-dashoffset: 0; } }

@keyframes chat-arrive {
    from { opacity: 0; transform: translateY(34px) scale(.975); }
    to { opacity: 1; transform: none; }
}

@keyframes line-arrive {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

@keyframes step-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
    .hero-brand,
    .hero h1,
    .hero-subtitle,
    .hero-lead,
    .button-primary,
    .hero-note { animation: copy-arrive .72s cubic-bezier(.22,1,.36,1) both; }
    .hero h1 { animation-delay: .08s; }
    .hero-subtitle { animation-delay: .16s; }
    .hero-lead { animation-delay: .22s; }
    .button-primary { animation-delay: .28s; }
    .hero-note { animation-delay: .42s; }
    .hero-photo img { animation: photo-arrive 1.35s cubic-bezier(.22,1,.36,1) both; }
    .hero-curve path { animation: curve-draw 1.15s .35s ease-out forwards; }
    .hero-button-line { animation: line-arrive .75s .6s ease-out both; }
    .chat-card { animation: chat-arrive .8s .34s cubic-bezier(.22,1,.36,1) both; }
}

@media (max-width: 1180px) {
    .hero { grid-template-columns: 57% 43%; }
    .hero-copy { padding-right: 8vw; }
    .hero h1 { font-size: clamp(45px, 5vw, 60px); }
    .chat-card { left: 48%; width: min(410px, 40vw); }
    .hero-curve { left: 44%; }
    .button-primary { min-width: 290px; }
}

@media (max-width: 820px) {
    .hero { display: flex; flex-direction: column; min-height: 0; overflow: visible; }
    .hero-copy { min-height: 710px; padding: 32px 24px 58px; }
    .brand { font-size: 20px; gap: 10px; }
    .brand i { height: 23px; }
    .hero h1 { margin-top: 72px; font-size: clamp(39px, 11vw, 58px); }
    .hero-subtitle { font-size: 21px; }
    .hero-lead { max-width: 540px; font-size: 16px; }
    .hero-actions { align-self: auto; width: min(100%, 340px); }
    .button-primary { min-width: 0; width: min(100%, 340px); min-height: 68px; }
    .hero-button-line { display: none; }
    .hero-note { margin-top: 42px; }
    .hero-photo { height: 66svh; min-height: 530px; }
    .hero-photo img { object-position: 51% 50%; }
    .hero-curve { top: 560px; left: 56%; width: 30%; height: 270px; transform: rotate(15deg); }
    .chat-card { position: relative; top: auto; left: auto; width: calc(100% - 32px); min-height: 420px; margin: -132px auto 40px; }
    .trust-strip { flex-wrap: wrap; justify-content: flex-start; gap: 15px 30px; }
    .trust-strip p { width: calc(50% - 15px); white-space: normal; }
    .section { padding-block: 80px; }
    .direction-grid,
    .process,
    .handoff,
    .faq { grid-template-columns: 1fr; }
    .format-grid { grid-template-columns: 1fr; }
    .format-grid article:nth-child(3) { grid-column: auto; min-height: 320px; padding-right: 36px; }
    .format-grid article:nth-child(3) h3 { margin-top: 84px; }
    .situation-list article { grid-template-columns: 48px 1fr; padding: 20px 0; }
    .situation-list p { grid-column: 2; }
    .situation-list article::after { display: none; }
    .handoff::before { left: 12%; }
    .faq { gap: 38px; }
    .site-footer { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 480px) {
    .hero-copy { min-height: 650px; }
    .hero h1 { margin-top: 58px; font-size: 36px; line-height: 1.12; }
    .hero-subtitle { font-size: 19px; }
    .hero-photo { height: 560px; min-height: 0; }
    .chat-card { margin-top: -112px; }
    .chat-topline { min-height: 78px; padding: 13px 16px; }
    .bot-mark { flex-basis: 46px; width: 46px; height: 46px; }
    .chat-topline strong { font-size: 13px; }
    .chat-step { padding: 24px 17px 18px; }
    .chat-options { gap: 9px; }
    .chat-option { min-height: 136px; padding-inline: 8px; font-size: 15px; }
    .section h2,
    .final-cta h2 { font-size: 37px; }
    .direction-card { min-height: 390px; padding: 28px; }
    .direction-card button { right: 26px; left: 26px; }
    .trust-strip { display: grid; grid-template-columns: 1fr; }
    .trust-strip p { width: auto; }
    .format-grid article,
    .format-grid article:nth-child(3) { min-height: 300px; padding: 28px; }
    .format-grid h3,
    .format-grid article:nth-child(3) h3 { margin-top: 76px; }
    .format-grid button { width: 100%; }
    .handoff { gap: 42px; }
    .handoff-note { padding: 34px 24px 28px; }
    .handoff-note dl div { grid-template-columns: 1fr; gap: 4px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .hero-curve path { stroke-dashoffset: 0; }
}
