/* ═══ AUTO-GENERATED custom.css ═══ */
/* Стиль: углы=squircle, тени=medium, отступы=airy, кнопки=square */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800&family=Open+Sans:wght@400;500&display=swap');

:root {
    /* Акцентные цвета */
    --accent-1: #8B56EC;
    --accent-2: #F43F5E;
    --accent-3: #FDC129;
    --accent-gradient: linear-gradient(120deg, var(--accent-1), var(--accent-2));
    
    /* Шрифты */
    --font-heading: 'Montserrat', sans-serif;
    --font-body: 'Open Sans', sans-serif;
    
    /* Размеры шрифтов */
    --fs-h1: 48px;
    --fs-h2: 36px;
    --fs-h3: 26px;
    --fs-body: 16px;
    
    /* Вес заголовков */
    --fw-bold: 600;
    
    /* Углы скругления */
    --radius-sm: 18px;
    --radius-md: 24px;
    --radius-lg: 32px;
    --radius-xl: 44px;
    --radius-pill: 50px;
    
    /* Тени */
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);
    --shadow-md: 0 4px 16px rgba(0,0,0,0.08);
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
    --shadow-xl: 0 16px 48px rgba(0,0,0,0.16);
    
    /* Отступы секций */
    --section-padding: 120px 0;
}

/* Стиль кнопок */
.btn-custom {
    border-radius: 2px;
    padding: 14px 28px;
}

/* Стиль карточек */
.icon-box, .service-card, .testimonial-card, .blog-card, .pricing-card {
    border-width: 1px;
    border-color: #8B56EC33;
}

/* ═══════════════════════════════════════════ */
/* STYLE TRICKS — автогенерация приёмов      */
/* ═══════════════════════════════════════════ */

/* Trick: pricing-ribbon — ленточка на featured pricing */
.pricing-card.featured {
    overflow: hidden;
}
.pricing-card.featured::before {
    content: '★';
    position: absolute;
    top: 18px;
    right: -30px;
    width: 120px;
    text-align: center;
    padding: 4px 0;
    background: var(--accent-1);
    color: #fff;
    font-size: 12px;
    transform: rotate(45deg);
}

/* Trick: section-accent-line — акцентная линия перед заголовком */
.section-header::before {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background: var(--accent-gradient);
    border-radius: 2px;
    margin-bottom: 18px;
}
.section-header.text-center::before {
    margin-left: auto;
    margin-right: auto;
}

/* Trick: card-asymmetric-radius — неравномерное скругление */
.icon-box, .service-card, .blog-card, .pricing-card, .testimonial-card {
    border-radius: 32px 6px 32px 6px;
}

/* ═══════════════════════════════════════════ */
/* ELEMENT PRESETS — уникализация компонентов */
/* ═══════════════════════════════════════════ */

/* Hero: diagonal split — диагональный раздел */
.hero-section { min-height: 100vh; position: relative; overflow: hidden; }
.hero-section::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 55%;
    height: 100%;
    background: var(--accent-1);
    opacity: 0.06;
    clip-path: polygon(15% 0, 100% 0, 100% 100%, 0 100%);
    z-index: 0;
}
.hero-image { position: relative; z-index: 1; }
.hero-image img {
    border-radius: 0 0 0 var(--radius-xl);
    box-shadow: -20px 20px 60px rgba(0,0,0,0.15);
}
.hero-content { position: relative; z-index: 2; }
.hero-tagline { border-left: 3px solid var(--accent-1); padding-left: 12px; background: none; border-radius: 0; }

/* Header: solid bordered — чёткая нижняя граница */
.site-header {
    background: var(--bg-primary);
    padding: 16px 0;
    border-bottom: 1px solid var(--border-color);
    position: fixed;
}
.site-header.scrolled {
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    backdrop-filter: none;
}

/* Footer: card style — на карточке с тенью */
.site-footer {
    background: transparent;
    padding: 0 20px 40px;
}
.site-footer {
    background: #1a1a1a !important;
}
.site-footer > .container {
    background: #1a1a1a;
    border-radius: var(--radius-xl);
    padding: 60px 40px 30px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}
.site-footer h4,.site-footer h5 { color: #fff; }
.site-footer .footer-widget { color: rgba(255,255,255,0.8); }
.site-footer .footer-widget p { color: rgba(255,255,255,0.8); }
.site-footer .footer-widget a { color: rgba(255,255,255,0.8); }
.site-footer .footer-widget a:hover { color: #fff; }
.site-footer .footer-links { color: rgba(255,255,255,0.8); }
.site-footer .footer-links a { color: rgba(255,255,255,0.8); }
.site-footer .footer-contact { color: rgba(255,255,255,0.8); }
.site-footer .footer-contact li { color: rgba(255,255,255,0.8); }
.site-footer .footer-contact i { color: var(--accent-1); }
.site-footer .footer-social a { color: rgba(255,255,255,0.8); }
.site-footer .widget-title { color: #fff; }
.site-footer .widget-title::after { background: var(--accent-1); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); margin-top: 40px; }
.footer-bottom p { color: rgba(255,255,255,0.8); }
.footer-policy a { color: rgba(255,255,255,0.8); text-decoration: none; }
.footer-policy a:hover { color: #fff; }
.site-footer .marquee-section { background: #1a1a1a !important; color: #fff !important; }
.site-footer .marquee-item { color: #fff !important; }
.site-footer .newsletter-form input { background: rgba(255,255,255,0.1); color: #fff; border-color: rgba(255,255,255,0.3); }
.site-footer .newsletter-form input::placeholder { color: rgba(255,255,255,0.5); }
.site-footer .newsletter-form button { background: var(--accent-gradient) !important; color: #fff; }

/* Contact: brutalist — грубая форма */
.contact-section .form-custom {
    border: 3px solid var(--text-primary);
    padding: 36px;
    border-radius: 0;
    box-shadow: 8px 8px 0 var(--text-primary);
}
.contact-section .form-control {
    border: 2px solid var(--text-primary);
    border-radius: 0;
    padding: 14px 16px;
    font-weight: 600;
}
.contact-section .form-control:focus { border-color: var(--accent-1); box-shadow: 4px 4px 0 var(--accent-1); }
.contact-section .btn-custom { border-radius: 0; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; box-shadow: 4px 4px 0 var(--text-primary); }

/* Logo: serif elegant — элегантный с засечками */
.site-logo {
    font-family: 'Playfair Display', 'Georgia', serif;
    font-size: 26px;
    font-weight: 400;
    letter-spacing: 2px;
    font-style: italic;
}
.site-logo span { color: var(--accent-1); font-style: normal; font-weight: 700; }

/* Headings: accent underline — подчёркивание акцентом */
.icon-title, .card-title, .step-title, .widget-title {
    position: relative;
    padding-bottom: 10px;
}
.icon-title::after, .card-title::after, .step-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 2px;
    background: var(--accent-1);
    border-radius: 1px;
}

/* Img: hero — цветная тень со смещением */
.hero-image {
    position: relative;
}
.hero-image::after {
    content: '';
    position: absolute;
    inset: 12px -12px -12px 12px;
    background: var(--accent-1);
    opacity: 0.15;
    border-radius: var(--radius-lg);
    z-index: -1;
}

/* Img: team — ромб */
.team-card .team-image img, .team-image img {
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    aspect-ratio: 1/1;
    object-fit: cover;
}

/* ═══ BURGER MENU DESIGN ═══ */
/* Burger: rounded box — скруглённая рамка */
.mobile-toggle { width: 42px; height: 42px; gap: 5px; border: 1.5px solid var(--border-color); background: none; border-radius: var(--radius-md, 8px); }
.mobile-toggle .burger-line { width: 20px; height: 2px; border-radius: 2px; transition: transform 0.3s ease, opacity 0.3s ease; }
.mobile-toggle:hover { border-color: var(--accent-1); }
.mobile-toggle.active .burger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-toggle.active .burger-line:nth-child(2) { opacity: 0; }
.mobile-toggle.active .burger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }


/* Effect: cursor-ring */
.cursor-ring{position:fixed;width:36px;height:36px;border:2px solid var(--accent-1);border-radius:50%;pointer-events:none;z-index:99999;transition:width 0.3s,height 0.3s,border-color 0.3s,transform 0.08s;transform:translate(-50%,-50%);opacity:0.6;}.cursor-ring.hover{width:50px;height:50px;border-color:var(--accent-2,var(--accent-1));opacity:1;}

/* Effect: scrollbar-progress-v */
.scroll-prog-v{position:fixed;right:0;top:0;width:4px;height:100vh;z-index:9990;background:var(--border-color);}.scroll-prog-v .fill{width:100%;background:var(--accent-gradient);transition:height 0.05s;}@media(max-width:768px){.scroll-prog-v{display:none;}}

/* Effect: stagger-cards */
.icon-box,.service-card,.blog-card,.pricing-card,.team-card{opacity:0;animation:staggerIn 0.6s ease forwards;}.row>[class*="col"]:nth-child(1) .icon-box,.row>[class*="col"]:nth-child(1) .service-card,.row>[class*="col"]:nth-child(1) .blog-card{animation-delay:0.1s;}.row>[class*="col"]:nth-child(2) .icon-box,.row>[class*="col"]:nth-child(2) .service-card,.row>[class*="col"]:nth-child(2) .blog-card{animation-delay:0.2s;}.row>[class*="col"]:nth-child(3) .icon-box,.row>[class*="col"]:nth-child(3) .service-card,.row>[class*="col"]:nth-child(3) .blog-card{animation-delay:0.3s;}.row>[class*="col"]:nth-child(4) .icon-box,.row>[class*="col"]:nth-child(4) .service-card{animation-delay:0.4s;}.row>[class*="col"]:nth-child(5) .icon-box{animation-delay:0.5s;}.row>[class*="col"]:nth-child(6) .icon-box{animation-delay:0.6s;}@keyframes staggerIn{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}

/* Effect: stagger-blur-in */
.icon-box,.service-card,.blog-card{opacity:0;filter:blur(8px);animation:blurIn 0.6s ease forwards;}.row>[class*="col"]:nth-child(1)>*{animation-delay:0.08s;}.row>[class*="col"]:nth-child(2)>*{animation-delay:0.18s;}.row>[class*="col"]:nth-child(3)>*{animation-delay:0.28s;}.row>[class*="col"]:nth-child(4)>*{animation-delay:0.38s;}@keyframes blurIn{from{opacity:0;filter:blur(8px);transform:translateY(20px);}to{opacity:1;filter:blur(0);transform:translateY(0);}}

/* Effect: deco-diagonal-lines */
.bg-deco{position:fixed;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(135deg,transparent,transparent 80px,var(--accent-1) 80px,var(--accent-1) 81px);opacity:0.018;}

/* Effect: scroll-parallax-depth — Parallax depth — разная скорость скролла для контента и фона */
/* Scroll: parallax-depth — глубинный параллакс */
.hero-section { perspective: 1px; transform-style: preserve-3d; }
main > section { position: relative; }
main > section .section-header {
    transition: transform 0.05s linear;
}

/* ═══════════════════════════════════════════ */
/* MARQUEE ANIMATION — бегущая строка         */
/* ═══════════════════════════════════════════ */
.marquee-section {
    overflow: hidden;
    background: #1a1a1a;
    padding: 30px 0;
    border-top: 1px solid rgba(255,255,255,0.1);
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.marquee-track {
    display: flex;
    gap: 40px;
    animation: marquee 25s linear infinite;
    will-change: transform;
}

.marquee-track:hover {
    animation-play-state: paused;
}

.marquee-item {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 48px;
    font-weight: 700;
    letter-spacing: -1px;
    color: #fff;
    transition: color 0.3s ease;
}

.marquee-item.stroke {
    -webkit-text-stroke: 1px currentColor;
    color: transparent;
}

@keyframes marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-50% - 20px));
    }
}

/* ═══════════════════════════════════════════ */
/* NOISE LAYER — микро-вариации для уникальности */
/* ═══════════════════════════════════════════ */

body {
    line-height: 1.613;
    letter-spacing: 0.0em;
}

.icon-box, .service-card, .blog-card, .testimonial-card, .pricing-card {
    padding: 31px;
}
.icon-box, .service-card, .blog-card, .testimonial-card, .pricing-card .card-body {
    padding: 27px 23px;
}
.row > [class*="col"]:nth-child(1) .icon-box,
.row > [class*="col"]:nth-child(1) .service-card {
    padding: 30px;
    border-radius: calc(var(--radius-md) + 1px);
}
.row > [class*="col"]:nth-child(2) .icon-box,
.row > [class*="col"]:nth-child(2) .service-card {
    padding: 33px;
    border-radius: calc(var(--radius-md) + -1px);
}
.row > [class*="col"]:nth-child(3) .icon-box,
.row > [class*="col"]:nth-child(3) .service-card {
    padding: 29px;
    border-radius: calc(var(--radius-md) + 3px);
}
.row > [class*="col"]:nth-child(4) .icon-box,
.row > [class*="col"]:nth-child(4) .service-card {
    padding: 30px;
    border-radius: calc(var(--radius-md) + 2px);
}
.row > [class*="col"]:nth-child(5) .icon-box,
.row > [class*="col"]:nth-child(5) .service-card {
    padding: 30px;
    border-radius: calc(var(--radius-md) + 1px);
}
.row > [class*="col"]:nth-child(6) .icon-box,
.row > [class*="col"]:nth-child(6) .service-card {
    padding: 33px;
    border-radius: calc(var(--radius-md) + 2px);
}

.btn-custom {
    padding: 13px 29px;
    font-size: 14px;
    letter-spacing: 0.476px;
    border-radius: calc(var(--radius-md) + -2px);
}
.btn-outline-custom {
    padding: 14px 27px;
    border-width: 2px;
}

main > section {
    padding-top: 73px;
    padding-bottom: 78px;
}
main > section:first-child {
    padding-top: 81px;
}
main > section:nth-child(2) {
    padding-top: 77px;
    padding-bottom: 75px;
}
main > section:nth-child(5) {
    padding-top: 76px;
    padding-bottom: 78px;
}

.section-header {
    margin-bottom: 58px;
}

.icon-box, .service-card, .blog-card, .pricing-card {
    box-shadow: 1px 4px 12px rgba(0,0,0,0.069);
}

.hero-section {
    padding-top: 110px;
}
.hero-title {
    margin-bottom: 22px;
}
.hero-subtitle {
    margin-bottom: 33px;
    font-size: 16px;
    line-height: 1.601;
}
.hero-tagline {
    font-size: 12px;
    letter-spacing: 3.723px;
    margin-bottom: 20px;
}
.hero-buttons {
    gap: 17px;
}

.hero-image img {
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(0,0,0,0.155);
}

.icon-wrap {
    width: 47px;
    height: 47px;
    font-size: 20px;
    border-radius: 9px;
    margin-bottom: 16px;
}

.icon-title, .card-title {
    font-size: 19px;
    margin-bottom: 12px;
}
.icon-text, .card-text {
    font-size: 16px;
    line-height: 1.605;
}

.section-title {
    margin-bottom: 17px;
    letter-spacing: 0.0px;
}
.section-tagline {
    font-size: 14px;
    letter-spacing: 2.228px;
    margin-bottom: 12px;
}
.section-desc {
    font-size: 17px;
    line-height: 1.626;
}

.main-nav {
    gap: 30px;
}
.main-nav .nav-link {
    font-size: 13px;
    padding: 7px 0;
}

.site-footer {
    padding-top: 71px;
}
.footer-widget .widget-title {
    font-size: 18px;
    margin-bottom: 19px;
}
.footer-links a {
    font-size: 14px;
}
.footer-links li {
    margin-bottom: 12px;
}
.footer-social {
    gap: 9px;
}
.footer-social a {
    width: 35px;
    height: 35px;
}
.footer-bottom {
    padding: 23px 0;
    margin-top: 57px;
}

.form-control {
    border-radius: 6px;
    padding: 14px 17px;
    font-size: 16px;
}

.testimonial-card {
    padding: 28px;
}
.quote-text {
    font-size: 18px;
    line-height: 1.628;
    margin-bottom: 20px;
}
.author-image {
    width: 52px;
    height: 52px;
}
.author-name {
    font-size: 16px;
}
.author-role {
    font-size: 12px;
}

.pricing-card {
    padding: 35px;
}
.plan-name {
    font-size: 18px;
    margin-bottom: 8px;
}
.plan-price {
    font-size: 40px;
    margin-bottom: 24px;
}
.plan-features li {
    padding: 12px 0;
    font-size: 15px;
}

.counter-number, .stat-number {
    font-size: 47px;
    margin-bottom: 3px;
}
.counter-label {
    font-size: 13px;
    letter-spacing: 0.678px;
}

.team-image img {
    border-radius: 14px;
}
.team-name {
    font-size: 19px;
    margin-bottom: 5px;
}
.team-role {
    font-size: 13px;
}

.step-number {
    font-size: 33px;
    margin-bottom: 10px;
}
.step-title {
    font-size: 19px;
    margin-bottom: 10px;
}

.wow {
    animation-duration: 0.562s !important;
}
.icon-box, .service-card, .blog-card, .testimonial-card,
.pricing-card, .team-card {
    transition-duration: 0.304s;
}

.row {
    --bs-gutter-y: 28px;
}

.cta-section {
    padding: 75px 0;
}
.cta-title {
    font-size: 35px;
    margin-bottom: 16px;
}
.cta-text {
    font-size: 18px;
    margin-bottom: 27px;
}

.blog-card .card-image img {
    border-radius: 13px 13px 0 0;
}
.card-meta {
    font-size: 13px;
    margin-bottom: 6px;
    gap: 15px;
}

.site-header {
    padding: 15px 0;
}
.site-header.scrolled {
    padding: 12px 0;
}
.site-logo {
    font-size: 25px;
}
.header-cta {
    margin-left: 14px;
}

/* --- internal markers --- */
:root {
    --_stamp: 27471;
    --_seed: 19695;
    --_run: 83109;
    --_ver: 46570;
}
.a11y-skip { box-sizing: border-box }
.grid-debug { unicode-bidi: normal }
.node-stub { visibility: inherit; content: '' }
.bind-ref { --_ref: '8b72'; pointer-events: auto; box-sizing: border-box }
.frame-ref { box-sizing: border-box; pointer-events: auto; font-variant: normal }
