﻿/* ============================================
   Masters161 — Светлая тема, конверсионный дизайн
   https://masters161.ru/
   ============================================ */

:root {
    --white: #ffffff;
    --bg: #f8f9fb;
    --bg-warm: #f1f4f9;
    --surface: #ffffff;
    --surface-alt: #f4f6fa;
    --text: #1a2b4a;
    --text-secondary: #4a5e80;
    --text-muted: #8494ad;
    --border: #e2e8f2;
    --border-light: #eef1f6;
    --accent: #2563eb;
    --accent-hover: #1d4ed8;
    --accent-light: #dbeafe;
    --accent-glow: rgba(37, 99, 235, 0.08);
    --cta: #ea580c;
    --cta-hover: #dc4a04;
    --cta-light: #fff7ed;
    --green: #16a34a;
    --green-light: #dcfce7;
    --gold: #d97706;
    --gold-light: #fef3c7;
    --radius: 16px;
    --radius-sm: 10px;
    --radius-xs: 6px;
    --shadow-sm: 0 1px 3px rgba(26,43,74,.04), 0 1px 2px rgba(26,43,74,.06);
    --shadow: 0 4px 16px rgba(26,43,74,.06), 0 1px 3px rgba(26,43,74,.04);
    --shadow-lg: 0 12px 40px rgba(26,43,74,.08), 0 4px 12px rgba(26,43,74,.04);
    --shadow-xl: 0 20px 60px rgba(26,43,74,.1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }

body {
    font-family: 'Nunito Sans', sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }
button { font-family:inherit; }

::-webkit-scrollbar { width:7px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--accent); border-radius:4px; }

/* === LAYOUT === */
.container { max-width:1200px; margin:0 auto; padding:0 24px; }

.section-label {
    font-family: 'DM Sans', sans-serif;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 10px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--accent-light);
    padding: 6px 16px;
    border-radius: 100px;
}

.section-title {
    font-family: 'DM Sans', sans-serif;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 14px;
    color: var(--text);
}

.section-title span { color: var(--accent); }

.section-subtitle {
    font-size: 1.02rem;
    color: var(--text-secondary);
    max-width: 540px;
    line-height: 1.7;
}

/* ========== HEADER ========== */
.header {
    position: fixed; top:0; left:0; right:0; z-index:1000;
    padding: 10px 0;
    background: rgba(255,255,255,.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid transparent;
    transition: all .35s;
}

.header.scrolled {
    background: rgba(255,255,255,.96);
    border-bottom-color: var(--border-light);
    box-shadow: 0 1px 8px rgba(26,43,74,.04);
}

.header .container { display:flex; align-items:center; justify-content:space-between; }

.logo {
    font-family: 'DM Sans', sans-serif;
    font-size: 1.3rem; font-weight: 800;
    color: var(--text);
    display: flex; align-items: center; gap: 10px;
}

.logo-icon {
    width:42px; height:42px;
    background: var(--accent);
    border-radius: 12px;
    display:flex; align-items:center; justify-content:center;
    color: var(--white); font-size: 1.15rem;
    box-shadow: 0 4px 12px rgba(37,99,235,.25);
}

.logo-text-sub {
    font-size:.58rem; font-weight:600;
    color: var(--text-muted);
    letter-spacing:.5px; display:block;
    margin-top:-2px;
}

.logo-accent {
    color: var(--accent);
}

#header {
    top: 41px;
}

.nav { display:flex; align-items:center; gap:28px; }
.nav a { color:var(--text-secondary); font-size:.87rem; font-weight:600; transition:color .25s; }
.nav a:hover { color:var(--accent); }

.header-cta { display:flex; align-items:center; gap:14px; }

.header-phone {
    display:flex; align-items:center; gap:8px;
    color:var(--text); font-weight:700; font-size:.95rem;
    transition:color .25s;
}

.header-phone:hover { color:var(--accent); }

.header-phone-icon {
    width:36px; height:36px;
    background:var(--cta); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--white); flex-shrink:0;
    position:relative;
    isolation:isolate; /* Создаём новый stacking context */
}

/* Пульсирующий эффект через псевдоэлемент - GPU-ускоренная анимация */
.header-phone-icon::before {
    content:'';
    position:absolute;
    top:0; left:0; right:0; bottom:0;
    border-radius:50%;
    background:var(--cta);
    opacity:0.35;
    animation:phonePulse 2.5s infinite;
    will-change:transform,opacity; /* Создаём композитный слой */
    pointer-events:none;
}

@keyframes phonePulse {
    0% { transform:scale(1); opacity:0.35; }
    50% { transform:scale(1.4); opacity:0; }
    100% { transform:scale(1); opacity:0; }
}

.header-btn {
    padding:10px 22px;
    background:var(--accent); color:var(--white);
    font-weight:700; font-size:.84rem;
    border-radius:10px; border:none; cursor:pointer;
    transition:all .25s; white-space:nowrap;
}

.header-btn:hover {
    background:var(--accent-hover);
    transform:translateY(-1px);
    box-shadow:0 4px 16px rgba(37,99,235,.3);
}

/* Burger */
.burger {
    display:none; flex-direction:column; gap:5px;
    cursor:pointer; padding:8px; z-index:1001;
    background:none; border:none;
}

.burger span {
    width:24px; height:2.5px;
    background:var(--text); border-radius:2px;
    transition:all .3s; display:block;
}

.burger.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.burger.active span:nth-child(2) { opacity:0; }
.burger.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* Mobile menu */
.mobile-menu {
    display:none; position:fixed;
    top:0; left:0; right:0; bottom:0;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(20px);
    z-index:999; flex-direction:column;
    align-items:center; justify-content:center; gap:24px;
}

.mobile-menu.active { display:flex; }
.mobile-menu a { font-family:'DM Sans',sans-serif; font-size:1.2rem; color:var(--text); font-weight:700; }
.mobile-menu a:last-child { color:var(--cta); }

/* ========== BUTTONS ========== */
.btn-cta {
    display:inline-flex; align-items:center; gap:10px;
    padding:16px 36px;
    background:var(--cta); color:#000000;
    font-weight:700; font-size:1rem;
    border-radius:14px; border:none; cursor:pointer;
    transition:all .3s;
    box-shadow:0 4px 20px rgba(234,88,12,.25);
    font-family:'Nunito Sans',sans-serif;
}

.btn-cta:hover {
    background:var(--cta-hover);
    transform:translateY(-2px);
    box-shadow:0 8px 28px rgba(234,88,12,.35);
}

.btn-cta svg { flex-shrink:0; }

.btn-secondary {
    display:inline-flex; align-items:center; gap:10px;
    padding:16px 32px;
    background:var(--white); color:var(--text);
    font-weight:700; font-size:1rem;
    border-radius:14px;
    border:1.5px solid var(--border);
    cursor:pointer; transition:all .3s;
    font-family:'Nunito Sans',sans-serif;
}

.btn-secondary:hover {
    border-color:var(--accent); color:var(--accent);
    background:var(--accent-light);
}

/* ========== URGENCY BAR ========== */
.urgency-bar {
    background:linear-gradient(135deg,var(--accent) 0%,#1d4ed8 100%);
    color:var(--white); padding:13px 0;
    text-align:center; font-size:.88rem; font-weight:600;
    position:relative; overflow:hidden;
}

.urgency-bar::before {
    content:''; position:absolute;
    top:0; left:-100%; width:200%; height:100%;
    background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.07) 50%,transparent 75%);
    animation:shimmer 3s infinite;
}

@keyframes shimmer { to { transform:translateX(50%); } }

.urgency-bar .container {
    display:flex; align-items:center;
    justify-content:center; gap:10px;
    flex-wrap:wrap; position:relative; z-index:1;
}

.urgency-bar strong { color:#fbbf24; }

/* ========== HERO ========== */
.hero {
    position:relative; padding:180px 0 90px;
    overflow:hidden; background:var(--white);
}

.hero-bg-pattern {
    position:absolute; inset:0;
    background-image:
        radial-gradient(circle at 20% 30%,rgba(37,99,235,.04) 0%,transparent 50%),
        radial-gradient(circle at 80% 70%,rgba(234,88,12,.03) 0%,transparent 50%);
    pointer-events:none;
}

.hero-dots {
    position:absolute; inset:0;
    background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);
    background-size:32px 32px; opacity:.5;
    mask-image:radial-gradient(ellipse 70% 50% at 50% 50%,black 20%,transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse 70% 50% at 50% 50%,black 20%,transparent 100%);
    pointer-events:none;
}

.hero .container {
    position:relative; z-index:1;
    display:grid; grid-template-columns:1fr 1fr;
    gap:60px; align-items:center;
}

.hero-content { animation:fadeUp .7s ease-out; }

@keyframes fadeUp {
    from { opacity:0; transform:translateY(30px); }
    to { opacity:1; transform:translateY(0); }
}

.hero-badge {
    display:inline-flex; align-items:center; gap:8px;
    background:var(--green-light);
    border:1px solid rgba(22,163,74,.25);
    border-radius:100px; padding:7px 16px;
    font-size:.8rem; font-weight:700; color:var(--text);
    margin-bottom:24px;
}

.hero-badge-dot {
    width:8px; height:8px;
    background:var(--green); border-radius:50%;
    animation:blink 1.5s infinite;
}

@keyframes blink {
    0%,100% { opacity:1; }
    50% { opacity:.3; }
}

.hero h1 {
    font-family:'DM Sans',sans-serif;
    font-size:clamp(2rem,4.5vw,3.1rem);
    font-weight:800; line-height:1.15;
    margin-bottom:20px;
}

.hero h1 .highlight {
    color:var(--accent); position:relative;
}

.hero h1 .highlight::after {
    content:''; position:absolute;
    bottom:2px; left:0; right:0;
    height:8px; background:rgba(37,99,235,.12);
    border-radius:4px; z-index:-1;
}

.hero-desc {
    font-size:1.06rem; color:var(--text-secondary);
    max-width:480px; margin-bottom:28px; line-height:1.75;
}

.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:28px; }

/* Trust line under CTA */
.hero-trust {
    display:flex; gap:20px; flex-wrap:wrap;
    margin-bottom:36px;
}

.hero-trust-item {
    display:flex; align-items:center; gap:7px;
    font-size:.83rem; font-weight:600; color:var(--text-secondary);
}

.hero-trust-icon {
    width:26px; height:26px; border-radius:7px;
    display:flex; align-items:center; justify-content:center;
    font-size:.8rem; flex-shrink:0;
}

.hero-trust-icon.blue { background:var(--accent-light); }
.hero-trust-icon.green { background:var(--green-light); }
.hero-trust-icon.gold { background:var(--gold-light); }

.hero-stats {
    display:flex; gap:32px;
    padding:22px 0; border-top:1px solid var(--border-light);
}

.hero-stat-value {
    font-family:'DM Sans',sans-serif;
    font-size:1.65rem; font-weight:800;
}

.hero-stat-value span { color:var(--accent); }

.hero-stat-label {
    font-size:.77rem; color:var(--text-muted);
    margin-top:2px; font-weight:500;
}

/* ========== HERO VISUAL ========== */
.hero-visual { position:relative; animation:fadeUp .7s ease-out .15s both; }

.hero-card-stack { position:relative; width:100%; max-width:460px; margin:0 auto; }

.hero-main-card {
    background:var(--white); border:1px solid var(--border);
    border-radius:20px; padding:32px;
    box-shadow:var(--shadow-lg); position:relative; z-index:2;
}

.card-header { display:flex; align-items:center; gap:14px; margin-bottom:22px; }

.card-icon-wrap {
    width:50px; height:50px;
    background:var(--accent); border-radius:14px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.35rem;
    box-shadow:0 4px 12px rgba(37,99,235,.2);
}

.card-header-text h3 {
    font-family:'DM Sans',sans-serif;
    font-size:1rem; font-weight:800; color:var(--text);
}

.card-header-text p { font-size:.78rem; color:var(--text-muted); font-weight:500; }

.card-services { display:flex; flex-direction:column; gap:8px; }

.card-service-item {
    display:flex; justify-content:space-between; align-items:center;
    padding:13px 16px; background:var(--surface-alt);
    border-radius:var(--radius-sm); transition:all .25s;
    border:1px solid transparent;
}

.card-service-item:hover {
    background:var(--accent-light);
    border-color:rgba(37,99,235,.15);
    transform:translateX(3px);
}

.card-service-name { font-size:.87rem; font-weight:600; color:var(--text); }

.card-service-price {
    font-family:'DM Sans',sans-serif;
    font-size:.87rem; font-weight:800; color:var(--accent);
    white-space:nowrap;
}

/* Float cards */
.hero-float-card {
    position:absolute; z-index:3;
    background:var(--white); border:1px solid var(--border);
    border-radius:14px; padding:12px 16px;
    display:flex; align-items:center; gap:10px;
    box-shadow:var(--shadow-lg);
    animation:floatBounce 3.5s ease-in-out infinite;
}

.hero-float-card.warranty { top:-12px; right:-16px; }
.hero-float-card.rating { bottom:-12px; left:-16px; animation-delay:1.7s; }

@keyframes floatBounce {
    0%,100% { transform:translateY(0); }
    50% { transform:translateY(-7px); }
}

.float-icon {
    width:36px; height:36px; border-radius:9px;
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; flex-shrink:0;
}

.float-icon.green { background:var(--green-light); }
.float-icon.gold { background:var(--gold-light); }

.float-text strong { display:block; font-size:.8rem; font-weight:700; color:var(--text); }
.float-text span { font-size:.7rem; color:var(--text-muted); font-weight:500; }

/* ========== ADVANTAGES ========== */
.advantages { padding:90px 0; background:var(--white); }

.advantages-grid {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:18px; margin-top:40px;
}

.adv-card {
    background:var(--surface-alt); border:1px solid var(--border-light);
    border-radius:var(--radius); padding:30px 24px;
    transition:all .35s; position:relative; overflow:hidden;
}

.adv-card::before {
    content:''; position:absolute;
    top:0; left:0; right:0; height:3px;
    background:var(--accent);
    transform:scaleX(0); transform-origin:left;
    transition:transform .35s;
}

.adv-card:hover::before { transform:scaleX(1); }

.adv-card:hover {
    background:var(--white);
    border-color:rgba(37,99,235,.15);
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
}

.adv-icon {
    width:50px; height:50px;
    background:var(--accent-light); border-radius:14px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem; margin-bottom:16px;
}

.adv-card h3 {
    font-family:'DM Sans',sans-serif;
    font-size:.95rem; font-weight:800;
    margin-bottom:7px; color:var(--text);
}

.adv-card p { font-size:.86rem; color:var(--text-secondary); line-height:1.65; }

/* ========== SERVICES ========== */
.services { padding:90px 0; background:var(--bg); }

.services-header {
    display:flex; justify-content:space-between;
    align-items:flex-end; margin-bottom:36px;
    flex-wrap:wrap; gap:20px;
}

.services-filter { display:flex; gap:6px; flex-wrap:wrap; }

.filter-btn {
    padding:9px 20px;
    background:var(--white); border:1.5px solid var(--border);
    border-radius:100px; color:var(--text-secondary);
    font-size:.83rem; font-weight:600; cursor:pointer;
    transition:all .25s; font-family:'Nunito Sans',sans-serif;
}

.filter-btn:hover { border-color:var(--accent); color:var(--accent); }

.filter-btn.active {
    background:var(--accent); color:var(--white);
    border-color:var(--accent);
}

.services-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
    gap:10px;
}

.service-card {
    display:flex; justify-content:space-between; align-items:center;
    padding:17px 22px;
    background:var(--white); border:1px solid var(--border-light);
    border-radius:var(--radius-sm); transition:all .25s; cursor:default;
}

.service-card:hover {
    border-color:rgba(37,99,235,.2);
    box-shadow:var(--shadow-sm);
    transform:translateX(3px);
}

.service-card.hidden { display:none; }

.service-name { font-size:.89rem; font-weight:600; color:var(--text); }

.service-price {
    font-family:'DM Sans',sans-serif;
    font-size:.89rem; font-weight:800; color:var(--accent);
    white-space:nowrap; margin-left:16px;
}

.service-price.negotiable {
    font-family:'Nunito Sans',sans-serif;
    font-size:.8rem; font-weight:700; color:var(--gold);
}

/* Services CTA */
.services-cta {
    margin-top:36px; text-align:center;
    padding:32px; background:var(--white);
    border:2px dashed var(--border);
    border-radius:var(--radius);
}

.services-cta p { font-size:.98rem; color:var(--text-secondary); margin-bottom:16px; font-weight:500; }

/* ========== PROCESS ========== */
.process { padding:90px 0; background:var(--white); }
.process-center { text-align:center; }

.process-steps {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:20px; margin-top:44px; position:relative;
}

.process-steps::before {
    content:''; position:absolute;
    top:44px; left:14%; right:14%;
    height:2px;
    background:repeating-linear-gradient(
        90deg, var(--accent) 0, var(--accent) 8px, transparent 8px, transparent 16px
    );
    opacity:.25; z-index:0;
}

.step-card { position:relative; padding:0 16px; text-align:center; z-index:1; }

.step-number-wrap {
    width:60px; height:60px; margin:0 auto 18px;
    background:var(--white); border:3px solid var(--accent);
    border-radius:50%; display:flex;
    align-items:center; justify-content:center;
    box-shadow:0 4px 16px rgba(37,99,235,.12);
}

.step-number {
    font-family:'DM Sans',sans-serif;
    font-size:1.2rem; font-weight:800; color:var(--accent);
}

.step-card h3 {
    font-family:'DM Sans',sans-serif;
    font-size:.93rem; font-weight:800;
    margin-bottom:7px; color:var(--text);
}

.step-card p { font-size:.84rem; color:var(--text-secondary); line-height:1.6; }

/* ========== ABOUT ========== */
.about { padding:90px 0; background:var(--bg); }

.about-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:56px; align-items:center; margin-top:40px;
}

.about-text p { font-size:.98rem; color:var(--text-secondary); line-height:1.8; margin-bottom:16px; }

.about-features { display:flex; flex-direction:column; gap:10px; margin-top:22px; }

.about-feature {
    display:flex; align-items:center; gap:12px;
    padding:14px 18px;
    background:var(--white); border-radius:var(--radius-sm);
    border:1px solid var(--border-light);
    border-left:3px solid var(--accent);
    transition:all .25s;
}

.about-feature:hover { box-shadow:var(--shadow-sm); transform:translateX(3px); }

.about-feature-icon { font-size:1.15rem; flex-shrink:0; }
.about-feature span { font-size:.88rem; font-weight:600; color:var(--text); }

.about-visual { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.about-stat-card {
    background:var(--white); border:1px solid var(--border-light);
    border-radius:var(--radius); padding:26px 20px;
    text-align:center; transition:all .3s;
}

.about-stat-card:hover {
    border-color:rgba(37,99,235,.15);
    transform:translateY(-4px);
    box-shadow:var(--shadow);
}

.about-stat-card:nth-child(2) { margin-top:18px; }
.about-stat-card:nth-child(3) { margin-top:-18px; }

.about-stat-icon { font-size:1.7rem; margin-bottom:8px; }

.about-stat-num {
    font-family:'DM Sans',sans-serif;
    font-size:1.85rem; font-weight:800; color:var(--accent);
}

.about-stat-text { font-size:.78rem; color:var(--text-muted); margin-top:4px; font-weight:500; }

/* ========== CTA SECTION ========== */
.cta { padding:90px 0; background:var(--white); }

.cta-block {
    position:relative;
    background:linear-gradient(135deg,#1e3a5f 0%,#1a2b4a 100%);
    border-radius:24px; padding:60px; text-align:center;
    overflow:hidden; color:#fff;
}

.cta-block::before {
    content:''; position:absolute;
    top:-50%; left:-50%; width:200%; height:200%;
    background:
        radial-gradient(circle at 30% 50%,rgba(37,99,235,.15) 0%,transparent 50%),
        radial-gradient(circle at 70% 50%,rgba(234,88,12,.08) 0%,transparent 50%);
    pointer-events:none;
}

.cta-block > * { position:relative; z-index:1; }

.cta-label {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.15);
    border-radius:100px; padding:6px 16px;
    font-size:.76rem; font-weight:700;
    letter-spacing:1.5px; text-transform:uppercase;
    color:rgba(255,255,255,.8); margin-bottom:18px;
}

.cta-block h2 {
    font-family:'DM Sans',sans-serif;
    font-size:clamp(1.5rem,3.5vw,2.3rem);
    font-weight:800; margin-bottom:14px;
}

.cta-block .cta-desc {
    font-size:1.02rem; color:rgba(255,255,255,.7);
    max-width:520px; margin:0 auto 28px; line-height:1.7;
}

.cta-block .btn-cta { font-size:1.08rem; padding:18px 40px; }

.cta-contacts {
    display:flex; justify-content:center; gap:24px;
    flex-wrap:wrap; margin-top:28px;
}

.cta-contact {
    display:flex; align-items:center; gap:8px;
    font-size:.86rem; color:rgba(255,255,255,.65);
}

.cta-contact svg { width:17px; height:17px; opacity:.7; flex-shrink:0; }
.cta-contact a { color:rgba(255,255,255,.65); transition:color .25s; }
.cta-contact a:hover { color:#fff; }

/* ========== FOOTER ========== */
.footer {
    padding:40px 0 24px;
    background:var(--bg);
    border-top:1px solid var(--border-light);
}

.footer .container {
    display:flex; justify-content:space-between;
    align-items:center; flex-wrap:wrap; gap:18px;
}

.footer-left { display:flex; align-items:center; gap:28px; }
.footer-copy { font-size:.82rem; color:var(--text-secondary); }
.footer-links { display:flex; gap:20px; }
.footer-links a { color:var(--text-secondary); font-size:.83rem; font-weight:600; transition:color .25s; }
.footer-links a:hover { color:var(--accent); }
.footer-address { font-size:.82rem; color:var(--text-secondary); }

/* CTA link inside contacts for MAX */
.cta-contacts .cta-max {
    display:inline-flex; align-items:center; gap:8px;
    padding:8px 10px; border-radius:10px;
    background: linear-gradient(90deg,#2563eb 0%,#7c3aed 100%);
    color:var(--white); font-weight:700; font-family:'DM Sans',sans-serif;
    text-decoration:none;
}

.cta-contacts .cta-max svg { filter: brightness(0) invert(1); }


    /* ========== SCROLL ANIMATIONS ========== */
.reveal {
    opacity:1; transform:translateY(0);
    transition:all .6s cubic-bezier(.16,1,.3,1);
}

/* Скрываем только если JS успешно загружен */
.js-loaded .reveal:not(.visible) {
    opacity:0; transform:translateY(24px);
}

.reveal.visible { opacity:1; transform:translateY(0); }

/* ========== 404 PAGE ========== */
.page-404 {
    min-height:100vh; display:flex;
    align-items:center; justify-content:center;
    text-align:center; background:var(--white);
    position:relative; overflow:hidden;
}

.page-404-bg {
    position:absolute; inset:0;
    background:radial-gradient(circle at 50% 40%,var(--accent-light) 0%,transparent 60%);
    pointer-events:none; opacity:.5;
}

.page-404-content { position:relative; z-index:1; padding:24px; }

.page-404-code {
    font-family:'DM Sans',sans-serif;
    font-size:clamp(6rem,18vw,11rem);
    font-weight:800; line-height:1;
    color:var(--accent); opacity:.12; margin-bottom:8px;
}

.page-404 h1 {
    font-family:'DM Sans',sans-serif;
    font-size:clamp(1.4rem,3vw,2rem);
    font-weight:800; margin-bottom:14px; color:var(--text);
}

.page-404 p {
    font-size:1.02rem; color:var(--text-secondary);
    max-width:440px; margin:0 auto 30px; line-height:1.7;
}

/* ========== RESPONSIVE ========== */
@media (max-width:1024px) {
    .hero .container { grid-template-columns:1fr; gap:48px; }
    .hero-visual { max-width:480px; margin:0 auto; }
    .advantages-grid { grid-template-columns:repeat(2,1fr); }
    .process-steps { grid-template-columns:repeat(2,1fr); }
    .process-steps::before { display:none; }
    .about-grid { grid-template-columns:1fr; }
    .about-visual { max-width:380px; }
}

@media (max-width:768px) {
    .nav { display:none; }
    .header-phone span { display:none; }
    .header-btn { display:none; }
    .burger { display:flex; }
    .hero { padding:120px 0 70px; }
    .hero h1 { font-size:1.7rem; }
    .hero-stats { gap:20px; }
    .hero-stat-value { font-size:1.3rem; }
    .advantages-grid { grid-template-columns:1fr; }
    .services-grid { grid-template-columns:1fr; }
    .process-steps { grid-template-columns:1fr; gap:12px; }
    .cta-block { padding:36px 24px; }
    .hero-float-card.warranty { right:0; top:-8px; }
    .hero-float-card.rating { left:0; bottom:-8px; }
    .footer .container { flex-direction:column; text-align:center; }
    .footer-left { flex-direction:column; gap:14px; }
    .services-filter { justify-content:center; }
}
@media (max-width:480px) {
    .hero-actions { flex-direction:column; }
    .btn-cta,.btn-secondary { width:100%; justify-content:center; }
    .hero-float-card { padding:9px 12px; }
    .float-text strong { font-size:.74rem; }
    .float-text span { font-size:.64rem; }
    .hero-trust { gap:10px; }
    .hero-stats { flex-wrap:wrap; gap:16px; }
}
/* ==============================
   INNER PAGES (Services)
   ============================== */

.inner-page .hero {
    padding: 140px 0 60px;
    background: var(--white);
}

.inner-page .hero h1 {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    margin-bottom: 14px;
}

.inner-page .hero-desc {
    max-width: 640px;
    font-size: 1.05rem;
}

.inner-page section {
    padding: 70px 0;
}

.inner-page ul,
.inner-page ol {
    margin-left: 20px;
}

.inner-page li {
    margin-bottom: 8px;
}

/* Price table */
.inner-page .price-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

.inner-page .price-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
}

.inner-page .price-table td:last-child {
    font-weight: 800;
    color: var(--accent);
    white-space: nowrap;
}

/* Text blocks */
.inner-page .text-block {
    max-width: 820px;
}

.inner-page .text-block p {
    font-size: .98rem;
    line-height: 1.8;
    color: var(--text-secondary);
    margin-bottom: 14px;
}

/* FAQ */
.inner-page .faq-item {
    padding: 18px 22px;
    background: var(--surface-alt);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-light);
    margin-bottom: 12px;
}

.inner-page .faq-item strong {
    display: block;
    margin-bottom: 6px;
    font-weight: 800;
}

/* CTA on inner pages */
.inner-page .cta {
    padding: 80px 0;
}

/* Breadcrumbs (optional) */
.breadcrumbs {
    font-size: .78rem;
    color: var(--text-muted);
    margin-bottom: 16px;
}

.breadcrumbs a {
    color: var(--text-muted);
}

.breadcrumbs a:hover {
    color: var(--accent);
}

/* ========== QUICK LINKS ========== */
.services-quicklinks {
    font-size: 0.9rem;
}

.services-quicklinks strong {
    color: var(--text-secondary);
    font-weight: 600;
}

.quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
}

.quicklinks a {
    display: inline-block;
    padding: 6px 14px;
    background: var(--accent-light);
    color: var(--accent);
    border-radius: var(--radius-xs);
    font-weight: 500;
    font-size: 0.85rem;
    transition: all 0.2s ease;
}

.quicklinks a:hover {
    background: var(--accent);
    color: white;
    transform: translateY(-2px);
}

/* ========== TESTIMONIALS ========== */
.testimonials {
    background: var(--surface-alt);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
    margin-top: 20px;
}

.testi-card {
    padding: 24px;
    background: var(--surface);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-light);
    box-shadow: var(--shadow-sm);
    transition: all 0.3s ease;
}

.testi-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
}

.testi-card p {
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: 12px;
    font-style: italic;
}

.testi-author {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--accent);
    text-align: right;
}

/* ========== FAQ ========== */
.faq {
    background: var(--surface);
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    padding: 0;
    background: var(--surface);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-light);
    overflow: hidden;
    transition: all 0.2s ease;
}

.faq-item:hover {
    border-color: var(--accent);
    box-shadow: var(--shadow-sm);
}

.faq-item summary {
    padding: 18px 22px;
    cursor: pointer;
    user-select: none;
    font-weight: 600;
    color: var(--text);
    background: var(--surface);
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.faq-item summary::after {
    content: '▼';
    font-size: 0.7rem;
    margin-left: auto;
    transition: transform 0.3s ease;
}

.faq-item[open] summary::after {
    transform: rotate(-180deg);
}

.faq-item[open] summary {
    background: var(--accent-light);
    color: var(--accent);
}

.faq-a {
    padding: 0 22px 16px 22px;
    color: var(--text-secondary);
    line-height: 1.7;
    font-size: 0.95rem;
}

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
    .quicklinks {
        gap: 6px;
    }

    .quicklinks a {
        padding: 5px 10px;
        font-size: 0.78rem;
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    .testi-card {
        padding: 18px;
    }

    .faq-item summary {
        padding: 14px 16px;
    }

    .faq-a {
        padding: 0 16px 12px 16px;
    }
}

