/* Mobile reading layout. Loaded after the individual section styles. */
@media (max-width: 800px) {
    html { scroll-padding-top: 88px; }
    .site-header { padding-top: max(10px, env(safe-area-inset-top)); }
    .site-header.is-scrolled { padding-top: max(10px, env(safe-area-inset-top)); }
    .section { scroll-margin-top: 88px; }
    .reveal {
        transform: translateY(10px);
        transition-duration: .28s;
        transition-timing-function: ease-out;
        transition-delay: 0s;
    }
    .h2 .h2-char { transform: none; transition: none; }
    .hero-title.is-in .line-inner {
        transition-duration: .35s;
        transition-delay: 0s;
    }
    .catalog-cta { min-height: 44px; }
    .case-modal { height: 100dvh; max-height: 100dvh; }
    .case-modal-inner { overscroll-behavior-y: contain; transform: none; transition: opacity .2s ease-out; }
    .case-modal-bar { padding-top: max(10px, env(safe-area-inset-top)); }
    .case-modal-close { min-height: 44px; }
    .case-modal-content { padding-bottom: calc(48px + env(safe-area-inset-bottom)); }
    .case-modal-title { font-size: clamp(27px, 8.2vw, 38px); line-height: 1.05; }
    .case-modal-lead, .case-modal-meta p { font-size: 16px; line-height: 1.6; }
    .case-list li, .case-decisions li, .case-block p, .case-callout p { font-size: 15px; line-height: 1.6; }
    /* Information stays visible while scrolling; no delayed stroke/label drawing. */
    .case-viz svg path, .case-viz svg line, .case-viz svg polyline,
    .case-viz svg polygon, .case-viz svg rect, .case-viz svg circle,
    .case-viz svg text {
        opacity: 1 !important;
        stroke-dasharray: var(--viz-dash, none) !important;
        stroke-dashoffset: 0 !important;
        transition: none !important;
    }
    .contacts--ribbon { padding-bottom: 64px; }
    .contacts--ribbon .ribbon-scene { height: 96px; }
    .contacts-meta li { align-items: flex-start; }
    .contact-row { min-height: 80px; }
    .contact-meta { min-width: 0; }
    .contact-value { overflow-wrap: anywhere; }
    .foot-nav a, .foot-link, .foot-nav button { min-height: 44px; }
}
@media (max-width: 700px) {
    .case-viz-growth .viz-frame { overflow-x: auto; }
    .case-viz-growth .viz-svg { min-width: 720px; }
    .case-viz-growth .viz-axis { font-size: 12px; }
    .case-viz-growth .viz-cap::after {
        content: 'График можно прокрутить по горизонтали';
        display: block;
        color: var(--c-muted-d);
        font-size: 12px;
        line-height: 1.5;
    }
    .catalog-card + .catalog-card {
        padding-top: 28px;
        border-top: 1px solid var(--c-line-soft);
    }
    .result-head { padding-bottom: 24px; }
    .result-heading { font-size: clamp(32px, 9vw, 52px); }
    .result-stack { padding-left: 16px; }
    .result-card { gap: 16px; padding: 20px 0; }
    .result-card-head { grid-template-columns: 64px minmax(0, 1fr); gap: 16px; min-height: 46px; }
    .result-number { font-size: 48px; }
    .result-title { font-size: clamp(20px, 5.4vw, 25px); line-height: 1.15; }
    .result-title::before { display: none; }
    .result-card::before { left: -24px; top: 44px; }
    .result-text { font-size: 16px; line-height: 1.6; }
    .result-stack.is-stacked .result-card { overflow: hidden; }
    .result-stack.is-stacked .result-card-head {
        height: 46px;
        transform: translateY(calc(-18px * var(--cover)));
        grid-template-columns: calc(64px - 30px * var(--cover)) minmax(0, 1fr);
        gap: 16px;
    }
    .result-stack.is-stacked .result-number {
        font-size: calc(48px - 22px * var(--cover));
        transform: none;
    }
    .result-stack.is-stacked .result-title {
        font-size: calc(20px - 6px * var(--cover));
        line-height: 1.12;
        transform: none;
    }
    .result-stack.is-stacked .result-card::before { top: calc(43px - 18px * var(--cover)); }
    .catalog-grid { row-gap: 28px; }
    .catalog-controls:not([hidden]) {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-top: 16px;
        padding-top: 12px;
        border-top: 1px solid var(--c-line-soft);
    }
    .catalog-position { font: 500 11px/1.4 var(--f-mono); white-space: nowrap; }
    .catalog-position { margin-right: auto; }
}
@media (max-width: 360px) {
    .result-title { font-size: 18px; }
    .result-stack.is-stacked .result-title { font-size: calc(18px - 4px * var(--cover)); }
}
@media (prefers-reduced-motion: reduce) {
    .reveal { transform: none; opacity: 1; transition: none; }
    .hero-title.is-in .line-inner { transition: none; }
}

/* Compact mobile footer: contacts already provide navigation and location. */
@media (max-width: 800px) {
    .site-footer { padding: 12px 0 calc(8px + env(safe-area-inset-bottom)); }
    .footer-inner { gap: 4px; padding-bottom: 0; }
    .site-footer .foot-col-end,
    .site-footer .foot-nav a[href^="#"],
    .site-footer .foot-nav a[href^="https://t.me/"] { display: none; }
    .site-footer .foot-nav { justify-content: flex-start; gap: 20px; }
}



/* Mobile case cards: complete cover, editorial body, no navigation arrows. */
@media (max-width: 700px) {
    .case-catalog { padding-top: 32px; padding-bottom: 24px; }
    .case-catalog .catalog-header { margin-bottom: 24px; padding-bottom: 16px; }
    .case-catalog .catalog-eyebrow { display: none; }
    .case-catalog .catalog-heading { font-size: 44px; margin-bottom: 10px; }
    .case-catalog .catalog-intro { font-size: 15px; line-height: 1.45; }
    .case-catalog .catalog-card {
        padding: 0;
        border: 1px solid rgba(10, 10, 10, .3);
        background: #f3f0e7;
    }
    .case-catalog .catalog-body { padding: 20px; }
    .case-catalog .catalog-category { font-size: 10px; margin-bottom: 16px; gap: 10px; }
    .case-catalog .catalog-category::before { width: 24px; }
    .case-catalog .catalog-card-title { font-size: clamp(24px, 6.7vw, 28px); line-height: 1.1; margin-bottom: 16px; }
    .case-catalog .catalog-summary { font-size: 16px; line-height: 1.5; margin-bottom: 24px; }
    .case-catalog .catalog-cta {
        align-self: stretch;
        justify-content: space-between;
        min-height: 44px;
        padding: 12px 0 0;
        border-bottom: 0;
        border-top: 1px solid rgba(10, 10, 10, .25);
        font-size: 16px;
    }
    .case-catalog .catalog-cta span { color: var(--c-ink); font-size: 24px; line-height: 1; }
    .catalog-controls:not([hidden]) {
        gap: 16px;
        margin-top: 16px;
        padding-top: 0;
        border: 0;
    }
    .catalog-position { margin: 0; font-size: 10px; color: #49463f; }
    .catalog-controls::after {
        content: '';
        flex: 1;
        height: 2px;
        background: linear-gradient(to right, var(--c-ink) calc(25% + 75% * var(--catalog-progress, 0)), rgba(10, 10, 10, .15) 0);
    }
}

@media (max-width: 700px) and (max-height: 760px) {
    .case-catalog .catalog-body { padding: 18px; }
    .case-catalog .catalog-category { margin-bottom: 12px; }
    .case-catalog .catalog-card-title { font-size: 24px; margin-bottom: 12px; }
    .case-catalog .catalog-summary { font-size: 15px; margin-bottom: 16px; }
    .case-catalog .catalog-cta { padding-top: 10px; }
}


/* One sticky stage prevents the title, cover and progress from separating. */
@media (max-width: 700px) {
    .case-catalog.is-horizontal .catalog-rail { position: sticky; top: var(--catalog-top); }
    .case-catalog.is-horizontal .catalog-header {
        position: static; margin-bottom: 12px; padding-bottom: 8px;
        background: var(--c-paper);
    }
    .case-catalog.is-horizontal .catalog-heading { font-size: 32px; margin-bottom: 0; }
    .case-catalog.is-horizontal .catalog-intro { display: none; }
    .case-catalog.is-horizontal .catalog-viewport { overflow: hidden; }
    .case-catalog.is-horizontal .catalog-grid {
        display: flex; gap: 16px; align-items: stretch;
        transform: translate3d(calc(-1 * var(--catalog-offset, 0px)), 0, 0);
        transition: transform .28s ease-out;
    }
    .case-catalog.is-horizontal .catalog-card {
        flex: 0 0 calc(100% - 16px); padding: 0;
        border: 1px solid rgba(10, 10, 10, .3);
        opacity: 1; transform: none;
    }
}
@media (max-width: 700px) and (max-height: 760px) {
    .case-catalog.is-horizontal .catalog-header { margin-bottom: 8px; }
    .case-catalog.is-horizontal .catalog-heading { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
    .case-catalog .catalog-grid { transition: none; }
}
