:root{
    --blue:#2A7FFF;
    --blue2:#AFCBFF;
    --bg:#F7FAFF;
    --text:#0f172a;
    --muted:rgba(15,23,42,0.68);
    --muted2:rgba(15,23,42,0.52);
    --glass:rgba(255,255,255,0.62);
    --glass-2:rgba(255,255,255,0.76);
    --line:rgba(42,127,255,0.18);
    --shadow:0 28px 70px rgba(14, 60, 160, 0.14);
    --shadow2:0 14px 38px rgba(14, 60, 160, 0.12);
    --radius:22px;
    --radius2:16px;
    --container:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(1200px 600px at 10% 0%, rgba(42,127,255,0.14), transparent 55%),
        radial-gradient(1000px 520px at 90% 5%, rgba(175,203,255,0.18), transparent 60%),
        linear-gradient(180deg, #ffffff 0%, var(--bg) 55%, #ffffff 100%);
}

img{display:block;max-width:100%}
a{color:inherit}

.container{
    width:100%;
    max-width:var(--container);
    margin:0 auto;
    padding:0 18px;
}

.skip-link{
    position:absolute;
    left:-999px;
    top:auto;
    width:1px;
    height:1px;
    overflow:hidden;
}
.skip-link:focus{
    left:18px;
    top:18px;
    width:auto;
    height:auto;
    z-index:2000;
    background:#fff;
    padding:10px 12px;
    border-radius:14px;
    border:1px solid var(--line);
    box-shadow:var(--shadow2);
}

.h2{
    margin:0;
    font-size:34px;
    letter-spacing:-0.03em;
    line-height:1.12;
    font-weight:900;
}

.muted{color:var(--muted)}
.blue{color:var(--blue)}
.section{
    padding:72px 0;
}
.section--soft{
    background:
        radial-gradient(900px 420px at 15% 0%, rgba(42,127,255,0.08), transparent 60%),
        radial-gradient(900px 420px at 85% 10%, rgba(175,203,255,0.12), transparent 65%),
        rgba(42,127,255,0.03);
    border-top:1px solid rgba(42,127,255,0.10);
    border-bottom:1px solid rgba(42,127,255,0.10);
}
.section-head{margin-bottom:26px}
.section-head--center{margin-bottom:30px;text-align:center}
.section-subtitle{
    margin:14px 0 0;
    max-width:720px;
    color:var(--muted);
    line-height:1.7;
    font-weight:550;
    font-size:16px;
}

/* Topbar */
.topbar{
    position:sticky;
    top:0;
    z-index:100;
    backdrop-filter:saturate(180%) blur(12px);
    background:rgba(247,250,255,0.7);
    border-bottom:1px solid rgba(42,127,255,0.10);
}
.topbar__inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:14px 0;
}
.brand{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
}
.brand__mark{
    width:40px;
    height:40px;
    border-radius:16px;
    background:
        linear-gradient(135deg, rgba(42,127,255,0.22), rgba(42,127,255,0.08));
    border:1px solid rgba(42,127,255,0.30);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:950;
    color:var(--blue);
    box-shadow:0 10px 30px rgba(42,127,255,0.18);
    overflow:hidden;
}
.brand__mark img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.brand__name{
    font-size:16px;
    font-weight:900;
    letter-spacing:0.02em;
}

.nav{display:none;gap:22px;align-items:center}
.nav__link{
    text-decoration:none;
    font-size:14px;
    font-weight:650;
    color:rgba(15,23,42,0.72);
    position:relative;
    padding:10px 0;
}
.nav__link::after{
    content:"";
    position:absolute;
    left:0;
    bottom:6px;
    width:100%;
    height:2px;
    background:linear-gradient(90deg, var(--blue), rgba(175,203,255,0.65));
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .22s ease;
    border-radius:2px;
}
.nav__link:hover::after{transform:scaleX(1)}

.topbar__actions{
    display:flex;
    gap:10px;
    align-items:center;
}

/* Buttons */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border-radius:16px;
    padding:13px 18px;
    border:1px solid transparent;
    text-decoration:none;
    font-weight:800;
    letter-spacing:-0.01em;
    transition:transform .12s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
    user-select:none;
    white-space:nowrap;
}
.btn:active{transform:translateY(1px)}
.btn--sm{padding:10px 14px;border-radius:14px;font-size:14px}
.btn--lg{padding:16px 22px;border-radius:18px;font-size:15px}
.btn--full{width:100%}
.btn__icon{display:inline-flex}

.btn--primary{
    color:#fff;
    background:linear-gradient(135deg, var(--blue), #79B0FF);
    box-shadow:0 20px 55px rgba(42,127,255,0.25);
    border-color:rgba(42,127,255,0.22);
}
.btn--primary:hover{
    box-shadow:0 26px 64px rgba(42,127,255,0.30);
}

.btn--soft{
    background:rgba(42,127,255,0.10);
    border-color:rgba(42,127,255,0.18);
    color:var(--blue);
}
.btn--soft:hover{
    background:rgba(42,127,255,0.14);
    border-color:rgba(42,127,255,0.26);
}

.btn--ghost{
    background:rgba(255,255,255,0.42);
    border-color:rgba(42,127,255,0.18);
    color:rgba(42,127,255,0.95);
}
.btn--ghost:hover{
    background:rgba(255,255,255,0.62);
}

/* Hero */
.hero{
    padding:54px 0 34px;
    overflow:hidden;
}
.hero__inner{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
    align-items:center;
}
.hero__copy{position:relative}
.pill{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(42,127,255,0.18);
    background:rgba(255,255,255,0.58);
    box-shadow:0 14px 40px rgba(42,127,255,0.10);
    font-weight:750;
    color:rgba(15,23,42,0.72);
    font-size:13px;
}
.pill__dot{
    width:10px;height:10px;border-radius:50%;
    background:linear-gradient(180deg, var(--blue), #79B0FF);
    box-shadow:0 0 0 7px rgba(42,127,255,0.12);
}
.hero__title{
    margin:18px 0 0;
    font-size:46px;
    line-height:1.04;
    letter-spacing:-0.05em;
    font-weight:950;
}
.hero__subtitle{
    margin:14px 0 0;
    max-width:640px;
    color:var(--muted);
    line-height:1.7;
    font-size:16px;
    font-weight:580;
}
.hero__cta{
    margin-top:22px;
    display:flex;
    flex-direction:column;
    gap:12px;
    max-width:420px;
}
.hero__trust{
    margin-top:20px;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
}
.trust{
    display:flex;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    border-radius:18px;
    border:1px solid rgba(42,127,255,0.14);
    background:rgba(255,255,255,0.55);
    backdrop-filter: blur(10px);
}
.trust__icon{
    width:42px;height:42px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(42,127,255,0.10);
    border:1px solid rgba(42,127,255,0.16);
    color:var(--blue);
    flex:0 0 auto;
}
.trust__text{
    font-weight:850;
    letter-spacing:-0.01em;
    color:rgba(15,23,42,0.86);
    font-size:14px;
}

.hero__visual{
    position:relative;
    min-height:420px;
}

.visual-card{
    position:relative;
    border-radius:var(--radius);
    border:1px solid rgba(42,127,255,0.20);
    background:linear-gradient(180deg, rgba(255,255,255,0.74), rgba(255,255,255,0.50));
    box-shadow:var(--shadow);
    padding:18px;
    overflow:hidden;
    backdrop-filter: blur(14px);
}
.visual-card::before{
    content:"";
    position:absolute;
    inset:-2px;
    background:radial-gradient(600px 250px at 10% 0%, rgba(42,127,255,0.26), transparent 55%);
    pointer-events:none;
}
.visual-card__top{position:relative;display:flex;justify-content:flex-end}
.tag{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(42,127,255,0.18);
    background:rgba(255,255,255,0.60);
    font-weight:900;
    color:rgba(15,23,42,0.78);
    font-size:13px;
}
.tag__spark{
    width:10px;height:10px;border-radius:50%;
    background:linear-gradient(180deg, var(--blue), rgba(175,203,255,0.9));
    box-shadow:0 0 0 7px rgba(42,127,255,0.12);
}

.visual-card__center{
    position:relative;
    margin-top:22px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:18px 6px 14px;
}
.orb{
    width:190px;height:190px;border-radius:50%;
    background:
        radial-gradient(circle at 30% 30%, rgba(42,127,255,0.40), rgba(42,127,255,0) 56%),
        radial-gradient(circle at 75% 82%, rgba(175,203,255,0.40), rgba(175,203,255,0) 58%),
        linear-gradient(180deg, rgba(42,127,255,0.20), rgba(255,255,255,0));
    border:1px solid rgba(42,127,255,0.22);
    box-shadow:0 18px 55px rgba(42,127,255,0.18);
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.orb::after{
    content:"";
    position:absolute;
    inset:18px;
    border-radius:50%;
    border:1px dashed rgba(42,127,255,0.30);
}
.orb__logo{
    position:relative;
    z-index:2;
    width:100%;
    height:100%;
    padding:0;
    border-radius:50%;
    border:none;
    background:transparent;
    box-shadow:none;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.orb__logo img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:50%;
    display:block;
}
.visual-card__label{
    font-weight:950;
    font-size:18px;
    letter-spacing:-0.02em;
    color:rgba(15,23,42,0.88);
}
.visual-card__labelSub{
    display:block;
    margin-top:4px;
    color:rgba(42,127,255,0.95);
    font-size:14px;
    font-weight:950;
}
.visual-card__bottom{
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:10px;
}
.metric{
    border-radius:18px;
    border:1px solid rgba(42,127,255,0.16);
    background:rgba(255,255,255,0.56);
    padding:12px 12px;
}
.metric__value{
    font-weight:1000;
    font-size:22px;
    letter-spacing:-0.02em;
    color:var(--blue);
}
.metric__label{
    margin-top:2px;
    color:rgba(15,23,42,0.62);
    font-weight:750;
    font-size:13px;
}

/* Cards */
.glass-card{
    background:var(--glass);
    border:1px solid rgba(42,127,255,0.16);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
}
.grid{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}
.grid--services{gap:14px}
.card{
    border-radius:var(--radius);
    padding:18px;
}
.card__icon{
    width:46px;height:46px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(42,127,255,0.10);
    border:1px solid rgba(42,127,255,0.16);
    color:var(--blue);
    margin-bottom:10px;
}
.card__title{
    margin:0;
    font-weight:950;
    letter-spacing:-0.02em;
    font-size:16px;
}
.card__text{
    margin:8px 0 0;
    color:rgba(15,23,42,0.70);
    font-weight:610;
    line-height:1.6;
}
.glass-card{
    transition:transform .18s ease, border-color .22s ease, box-shadow .25s ease, background .25s ease;
}
.glass-card:hover{
    transform:translateY(-3px);
    border-color:rgba(42,127,255,0.26);
    box-shadow:0 22px 60px rgba(42,127,255,0.18);
    background:var(--glass-2);
}

.section--tight{padding-top:40px}

/* About */
.about{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    align-items:start;
}
.photo-card{
    border-radius:var(--radius);
    padding:16px;
    background:linear-gradient(180deg, rgba(255,255,255,0.70), rgba(255,255,255,0.42));
    border:1px solid rgba(42,127,255,0.16);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
}
.photo-card__frame{
    border-radius:22px;
    overflow:hidden;
    border:1px solid rgba(42,127,255,0.16);
    background:
        radial-gradient(500px 240px at 20% 0%, rgba(42,127,255,0.20), transparent 60%),
        rgba(255,255,255,0.42);
    padding:10px;
}
.photo{
    width:100%;
    height:270px;
    border-radius:18px;
    background:
        linear-gradient(135deg, rgba(42,127,255,0.16), rgba(175,203,255,0.22)),
        radial-gradient(400px 250px at 20% 20%, rgba(255,255,255,0.70), transparent 62%);
    position:relative;
}
.photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 28%;
    display:block;
    border-radius:18px;
}
.photo::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(700px 260px at 40% 0%, rgba(255,255,255,0.55), transparent 60%);
}
.photo-card__meta{
    margin-top:12px;
}
.photo-card__name{
    font-size:18px;
    font-weight:1000;
    letter-spacing:-0.02em;
}
.photo-card__role{
    margin-top:6px;
    color:var(--muted);
    font-weight:650;
    line-height:1.5;
    font-size:14px;
}

.about__right{display:flex;flex-direction:column;gap:14px}

.glass-list{
    border-radius:var(--radius);
    border:1px solid rgba(42,127,255,0.16);
    background:rgba(255,255,255,0.54);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
    padding:14px;
}
.glass-list__item{
    display:flex;
    gap:12px;
    padding:12px 10px;
    border-radius:18px;
}
.glass-list__item + .glass-list__item{
    border-top:1px solid rgba(42,127,255,0.10);
}
.icon-badge{
    width:42px;height:42px;border-radius:16px;
    background:rgba(42,127,255,0.10);
    border:1px solid rgba(42,127,255,0.16);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--blue);
    flex:0 0 auto;
    margin-top:2px;
}
.muted{color:var(--muted)}
.glass-list__item strong{font-weight:1000;letter-spacing:-0.02em}

.quote{
    border-radius:var(--radius);
    border:1px solid rgba(42,127,255,0.18);
    background:
        radial-gradient(900px 340px at 10% 0%, rgba(42,127,255,0.12), transparent 55%),
        rgba(255,255,255,0.56);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
    padding:18px;
    position:relative;
}
.quote__mark{
    position:absolute;
    top:-6px;left:16px;
    font-size:58px;
    color:rgba(42,127,255,0.22);
    font-weight:1000;
}
.quote__text{
    margin-top:12px;
    font-size:18px;
    font-weight:950;
    letter-spacing:-0.02em;
    line-height:1.4;
}
.quote__author{
    margin-top:10px;
    color:var(--muted);
    font-weight:800;
}

.awards{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
}
.award{
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding:14px;
    border-radius:var(--radius);
    border:1px solid rgba(42,127,255,0.16);
    background:rgba(255,255,255,0.52);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
}
.award__icon{
    width:42px;height:42px;border-radius:16px;
    display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(42,127,255,0.16);
    background:rgba(42,127,255,0.10);
    color:var(--blue);
    flex:0 0 auto;
}
.award .muted{margin-top:4px}

/* Advantages */
.grid--advantages{gap:14px}
.advantage{padding:18px}
.advantage__icon{
    width:46px;height:46px;border-radius:18px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(42,127,255,0.10);
    border:1px solid rgba(42,127,255,0.16);
    color:var(--blue);
    margin-bottom:10px;
}
.advantage__title{
    margin:0;
    font-weight:1000;
    letter-spacing:-0.02em;
    font-size:16px;
}
.advantage__text{
    margin:8px 0 0;
    color:rgba(15,23,42,0.70);
    font-weight:610;
    line-height:1.6;
}

/* Gallery */
.grid--gallery{
    grid-template-columns:repeat(1, 1fr);
    gap:14px;
}
.gallery-item{
    border-radius:var(--radius);
    overflow:hidden;
    border:1px solid rgba(42,127,255,0.16);
    box-shadow:var(--shadow2);
    background:rgba(255,255,255,0.50);
    backdrop-filter: blur(14px);
    transition:transform .18s ease, box-shadow .25s ease, border-color .25s ease;
}
.gallery-item:hover{
    transform:translateY(-3px);
    border-color:rgba(42,127,255,0.26);
    box-shadow:0 22px 60px rgba(42,127,255,0.18);
}
.gallery-item img{
    width:100%;
    height:240px;
    object-fit:contain;
    object-position:center;
    background:#ffffff;
    padding:8px;
}

/* Reviews */
.grid--reviews{gap:14px}
.review__top{
    display:flex;
    gap:12px;
    align-items:center;
}
.avatar{
    width:46px;height:46px;border-radius:18px;
    border:1px solid rgba(42,127,255,0.18);
    background:rgba(42,127,255,0.10);
    display:flex;align-items:center;justify-content:center;
    color:var(--blue);
    font-weight:1000;
}
.review__name{
    font-weight:1000;
    letter-spacing:-0.02em;
}
.stars{
    margin-top:3px;
    letter-spacing:0.02em;
    color:rgba(42,127,255,0.95);
    font-weight:950;
    font-size:14px;
}
.review__text{
    margin:12px 0 0;
    color:rgba(15,23,42,0.70);
    font-weight:610;
    line-height:1.7;
}

.reviews-actions{
    display:flex;
    justify-content:flex-end;
    margin-bottom:14px;
}

/* CTA section */
.cta{
    padding:78px 0;
    position:relative;
    overflow:hidden;
}
.cta::before{
    content:"";
    position:absolute;
    inset:-2px;
    background:
        radial-gradient(900px 420px at 15% 0%, rgba(42,127,255,0.20), transparent 55%),
        radial-gradient(900px 420px at 85% 10%, rgba(175,203,255,0.22), transparent 62%),
        linear-gradient(135deg, rgba(42,127,255,0.10), rgba(255,255,255,0.0));
    pointer-events:none;
}
.cta__inner{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    align-items:start;
}
.cta__left{
    border-radius:var(--radius);
    padding:18px;
    border:1px solid rgba(42,127,255,0.18);
    background:rgba(255,255,255,0.56);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
}
.cta__kicker{
    color:rgba(42,127,255,0.95);
    font-weight:1000;
    letter-spacing:0.02em;
    text-transform:uppercase;
    font-size:12px;
}
.cta__title{
    margin:10px 0 0;
    font-size:30px;
    letter-spacing:-0.03em;
    line-height:1.18;
    font-weight:1000;
}
.cta__text{
    margin:12px 0 0;
    color:var(--muted);
    line-height:1.7;
    font-weight:600;
    font-size:15px;
}

.form{
    border-radius:var(--radius);
    padding:16px;
    border:1px solid rgba(42,127,255,0.18);
    background:rgba(255,255,255,0.56);
    box-shadow:var(--shadow2);
    backdrop-filter: blur(14px);
}
.field{
    margin-bottom:14px;
}
.label{
    display:block;
    font-weight:900;
    letter-spacing:-0.01em;
    margin-bottom:8px;
    color:rgba(15,23,42,0.84);
    font-size:14px;
}
.input{
    width:100%;
    border-radius:16px;
    border:1px solid rgba(42,127,255,0.18);
    background:rgba(255,255,255,0.65);
    padding:13px 14px;
    outline:none;
    font-size:14px;
    font-weight:650;
    color:rgba(15,23,42,0.92);
    transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.input:focus{
    border-color:rgba(42,127,255,0.45);
    box-shadow:0 0 0 6px rgba(42,127,255,0.12);
    background:#fff;
}
.input--textarea{resize:vertical;min-height:110px}
.error{
    margin-top:8px;
    min-height:18px;
    color:#b00020;
    font-weight:900;
    font-size:13px;
}
.hint{
    margin-top:8px;
    color:var(--muted2);
    font-size:12.5px;
    font-weight:600;
    line-height:1.4;
}
.privacy{
    margin-top:10px;
    color:var(--muted2);
    font-weight:600;
    font-size:12.5px;
    line-height:1.4;
}

.btn--full{width:100%}

/* Contacts */
.contacts{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}
.contact-card{padding:16px}
.contact-row{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin-bottom:12px;
}
.contact-icon{
    width:42px;height:42px;border-radius:16px;
    display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(42,127,255,0.16);
    background:rgba(42,127,255,0.10);
    color:var(--blue);
    flex:0 0 auto;
    margin-top:1px;
}
.contact-label{
    color:var(--muted2);
    font-weight:800;
    font-size:12.5px;
    letter-spacing:0.01em;
    text-transform:uppercase;
}
.contact-value{font-weight:950;letter-spacing:-0.02em}
.contact-value--links{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.link{
    text-decoration:none;
    font-weight:900;
    color:rgba(15,23,42,0.90);
    transition:color .18s ease;
}
.link:hover{color:var(--blue)}
.contact-actions{
    margin-top:14px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.map{
    padding:16px;
}
.map__head{margin-bottom:12px}
.map__title{
    font-weight:1000;
    letter-spacing:-0.02em;
    font-size:16px;
}
.map__iframe{
    width:100%;
    height:340px;
    border:0;
    border-radius:16px;
    overflow:hidden;
}

/* Footer */
.footer{
    padding:34px 0;
    border-top:1px solid rgba(42,127,255,0.10);
    background:rgba(247,250,255,0.7);
}
.footer__inner{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.footer__right{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    align-items:center;
    justify-content:flex-start;
}
.footer__link{
    text-decoration:none;
    font-weight:900;
    color:rgba(15,23,42,0.72);
    padding:10px 12px;
    border-radius:14px;
    border:1px solid rgba(42,127,255,0.12);
    background:rgba(255,255,255,0.46);
}
.footer__link:hover{
    color:rgba(42,127,255,0.95);
    border-color:rgba(42,127,255,0.24);
}

/* Brand block */
.brand-block{
    border-radius:var(--radius);
    padding:20px;
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}
.brand-block__kicker{
    font-size:12px;
    letter-spacing:.08em;
    font-weight:900;
    color:var(--blue);
    text-transform:uppercase;
}
.brand-block__title{
    margin-top:8px;
}
.brand-block__subtitle{
    margin-top:8px;
}
.brand-block__right{
    display:flex;
    flex-direction:column;
    gap:10px;
}

/* Internal pages */
.page-hero{
    padding:56px 0 24px;
}
.page-hero__content{
    border-radius:var(--radius);
    padding:20px;
}
.content-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}
.content-grid--two{
    margin-bottom:26px;
}
.content-card{
    padding:18px;
}
.content-card + .section-head{
    margin-top:24px;
}
.content-card .card__text + .card__text{
    margin-top:10px;
}
.h3{
    margin:16px 0 8px;
    font-size:19px;
    font-weight:800;
    letter-spacing:-0.02em;
    color:#0f244d;
}
.list{
    margin:10px 0 0;
    padding:0;
    list-style:none;
    display:grid;
    gap:10px;
}
.list li{
    position:relative;
    padding-left:18px;
    color:rgba(15,23,42,0.82);
    line-height:1.66;
    font-weight:540;
}
.list li::before{
    content:"";
    position:absolute;
    left:0;
    top:11px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:linear-gradient(135deg, #2a7fff, #afcbff);
    box-shadow:0 0 0 4px rgba(42,127,255,0.08);
}
.h2--sm{
    font-size:24px;
}
.feature-list{
    margin:12px 0 0;
    padding-left:18px;
    color:rgba(15,23,42,0.74);
    font-weight:600;
    line-height:1.65;
}
.feature-list li + li{
    margin-top:6px;
}
.section-cta{
    margin-top:20px;
    border-radius:var(--radius);
    padding:20px;
}
.section-cta__title{
    margin:0;
    font-size:24px;
    letter-spacing:-0.02em;
}
.section-cta__text{
    margin:10px 0 0;
    color:var(--muted);
    line-height:1.6;
}
.section-cta__actions{
    margin-top:14px;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.grid--tools{
    grid-template-columns:1fr;
}
.tool-card{
    border-radius:var(--radius);
    padding:14px;
    transition:transform .26s ease, box-shadow .26s ease;
}
.tool-card__img{
    width:100%;
    height:170px;
    object-fit:cover;
    display:block;
    border-radius:16px;
    border:1px solid rgba(42,127,255,0.14);
    background:
        linear-gradient(135deg, rgba(42,127,255,0.12), rgba(175,203,255,0.2)),
        radial-gradient(500px 200px at 20% 0, rgba(255,255,255,0.55), transparent 60%);
}
.tool-card__name{
    margin-top:10px;
    font-weight:850;
    letter-spacing:-0.01em;
}
.tool-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 32px rgba(43,78,138,0.12);
}

/* Modal reviews */
.modal{
    position:fixed;
    inset:0;
    z-index:300;
    display:none;
}
.modal.is-open{
    display:block;
}
.modal__overlay{
    position:absolute;
    inset:0;
    background:rgba(9, 22, 53, 0.42);
    backdrop-filter: blur(4px);
}
.modal__dialog{
    position:relative;
    width:min(620px, calc(100% - 28px));
    margin:5vh auto 0;
    padding:18px;
    border-radius:var(--radius);
}
.modal__close{
    position:absolute;
    top:10px;
    right:10px;
    width:34px;
    height:34px;
    border-radius:12px;
    border:1px solid rgba(42,127,255,0.2);
    background:rgba(255,255,255,0.72);
    font-size:24px;
    line-height:1;
    cursor:pointer;
}
.modal__title{
    margin:0;
    font-size:26px;
    letter-spacing:-0.02em;
}
.modal__subtitle{
    margin:8px 0 0;
    color:var(--muted);
}
.form--compact{
    margin-top:14px;
    padding:0;
    border:none;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
}
.rating{
    display:flex;
    align-items:center;
    gap:8px;
}
.rating__star{
    appearance:none;
    border:none;
    background:transparent;
    font-size:28px;
    line-height:1;
    color:#b7c9ea;
    cursor:pointer;
    padding:0;
}
.rating__star.is-active{
    color:#2A7FFF;
}

/* Reveal */
.reveal{
    opacity:0;
    transform:translateY(12px);
    transition:opacity .7s ease, transform .7s ease;
}
.reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* Responsive */
@media (min-width: 768px){
    .nav{display:flex}
    .hero__inner{grid-template-columns:1.05fr .95fr}
    .hero__cta{flex-direction:row;max-width:none}
    .hero__trust{grid-template-columns:1fr 1fr 1fr}
    .grid--services{grid-template-columns:repeat(2, 1fr)}
    .grid--advantages{grid-template-columns:repeat(2, 1fr)}
    .about{grid-template-columns:0.95fr 1.05fr}
    .awards{grid-template-columns:1fr 1fr}
    .grid--gallery{grid-template-columns:repeat(2, 1fr)}
    .grid--reviews{grid-template-columns:repeat(2, 1fr)}
    .cta__inner{grid-template-columns:1fr 1.1fr}
    .contacts{grid-template-columns:1.1fr .9fr}
    .footer__inner{flex-direction:row; align-items:flex-start; justify-content:space-between}
    .brand-block{
        grid-template-columns:1.15fr .85fr;
        align-items:center;
    }
    .brand-block__right{
        align-items:flex-end;
    }
    .content-grid{
        grid-template-columns:1fr 1fr;
    }
    .section-cta__actions{
        flex-direction:row;
    }
    .grid--tools{
        grid-template-columns:1fr 1fr;
    }
    .photo{
        height:300px;
    }
}

@media (min-width: 1024px){
    .grid--services{grid-template-columns:repeat(3, 1fr)}
    .grid--advantages{grid-template-columns:repeat(4, 1fr)}
    .grid--gallery{grid-template-columns:repeat(3, 1fr)}
    .grid--reviews{grid-template-columns:repeat(4, 1fr)}
    .grid--tools{grid-template-columns:repeat(3, 1fr)}
    .hero__title{font-size:56px}
    .h2{font-size:38px}
}

@media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto}
    .glass-card, .gallery-item, .btn, .reveal{transition:none !important}
    .reveal{opacity:1;transform:none}
}

/* PHP flash-сообщения (успех / ошибка формы) */
.flash{
    position:sticky;
    top:0;
    z-index:200;
    padding:14px 0;
    border-bottom:1px solid rgba(42,127,255,0.16);
    backdrop-filter:saturate(180%) blur(10px);
}
.flash__inner{
    font-weight:800;
    font-size:14px;
    line-height:1.45;
    letter-spacing:-0.01em;
}
.flash--success{
    background:rgba(220,252,231,0.92);
    color:#14532d;
}
.flash--error{
    background:rgba(254,226,226,0.92);
    color:#7f1d1d;
}

