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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    overflow-x: hidden;
    overflow-x: clip;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--dark);
    background: var(--white);
    line-height: 1.6;
    overflow-x: hidden;
    overflow-x: clip;
    width: 100%;
    max-width: 100%;
    position: relative;
}

img,
video,
canvas,
svg {
    max-width: 100%;
    height: auto;
}

/* Контейнеры не растягивают страницу шире экрана */
:where(.header-inner, .section-inner, .hero-inner, .cta-inner, .footer-inner, .video-inner, .store-inner, .page-banner-inner, .news-inner, .order-inner) {
    min-width: 0;
    max-width: 100%;
}

/* Горизонтальные полосы прокрутки — только внутри блока, не на всей странице */
:where(.store-categories, .order-steps-nav, .progress-steps) {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}

:where(.section-title, .cta-inner h2, .hero-content h1, .page-title) {
    overflow-wrap: break-word;
    word-wrap: break-word;
}

/* iPhone / iOS Safari */
@supports (-webkit-touch-callout: none) {
    html,
    body {
        overscroll-behavior-x: none;
        -webkit-overflow-scrolling: touch;
    }

    body {
        touch-action: pan-y pinch-zoom;
    }

    :where(.store-categories, .order-steps-nav, .progress-steps) {
        touch-action: pan-x pan-y;
    }

    .contact-modal-overlay:not(.active),
    .modal-overlay:not(.active),
    .sidebar-overlay:not(.active) {
        pointer-events: none;
        visibility: hidden;
    }
}

body.page-light {
    background: var(--light);
}

.fade-up {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes modalIn {
    from { opacity: 0; transform: scale(0.95) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes successPop {
    0% { transform: scale(0); }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); }
}

@keyframes playPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(229,57,53,0.4); }
    50% { box-shadow: 0 0 0 18px rgba(229,57,53,0); }
}

@keyframes playPulseBlue {
    0%, 100% { box-shadow: 0 0 0 0 rgba(21,101,192,0.4); }
    50% { box-shadow: 0 0 0 18px rgba(21,101,192,0); }
}

@keyframes playPulseGreen {
    0%, 100% { box-shadow: 0 0 0 0 rgba(46,125,50,0.4); }
    50% { box-shadow: 0 0 0 18px rgba(46,125,50,0); }
}
