/* =========================================================
   Public site styles
   Project: 3D Studio
   Style direction: Light Industrial Premium
   Optimized: consolidated duplicate rules, removed obsolete patches
   ========================================================= */

:root {
    --bg: #f5f7fb;
    --bg-soft: #ffffff;
    --text: #101827;
    --text-soft: #263244;
    --muted: #64748b;
    --muted-light: #8492a6;
    --line: #dde5ef;
    --line-strong: #c9d6e5;
    --accent: #2563eb;
    --accent-2: #0ea5e9;
    --accent-soft: #dbeafe;
    --white: #ffffff;
    --graphite: #111827;
    --warm: #d6a85a;
    --shadow: 0 24px 70px rgba(15, 23, 42, 0.08);
    --shadow-soft: 0 14px 40px rgba(15, 23, 42, 0.06);
    --radius-xl: 34px;
    --radius-lg: 26px;
    --radius-md: 18px;
    --radius-sm: 12px;
    --content-max: 1520px;
    --content-gutter: clamp(18px, 4vw, 72px);
    --header-height: 78px;
}

* {
    box-sizing: border-box;
}

*::before {
    box-sizing: border-box;
}

*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    min-width: 320px;
    overflow-x: hidden;
    font-family: Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;
    color: var(--text);
    background: var(--bg);
    line-height: 1.6;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

svg {
    display: block;
    max-width: 100%;
}

.icon-svg {
    display: block;
    width: 1.15em;
    height: 1.15em;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.icon-svg [fill="currentColor"] {
    fill: currentColor;
}

.icon-svg [stroke="none"] {
    stroke: none;
}

video {
    display: block;
    max-width: 100%;
}

canvas {
    display: block;
    max-width: 100%;
}

button {
    font: inherit;
    cursor: pointer;
}

input {
    font: inherit;
    width: 100%;
    min-height: 52px;
    padding: 14px 15px;
    border: 1px solid var(--line);
    border-radius: 15px;
    outline: none;
    color: var(--text);
    background: #fbfdff;
    transition: border-color 160ms ease,
        box-shadow 160ms ease,
        background 160ms ease;
}

textarea {
    font: inherit;
    width: 100%;
    min-height: 140px;
    padding: 14px 15px;
    border: 1px solid var(--line);
    border-radius: 15px;
    outline: none;
    color: var(--text);
    background: #fbfdff;
    transition: border-color 160ms ease,
        box-shadow 160ms ease,
        background 160ms ease;
    resize: vertical;
}

select {
    font: inherit;
    width: 100%;
    min-height: 52px;
    padding: 14px 15px;
    border: 1px solid var(--line);
    border-radius: 15px;
    outline: none;
    color: var(--text);
    background: #fbfdff;
    transition: border-color 160ms ease,
        box-shadow 160ms ease,
        background 160ms ease;
}

a {
    color: inherit;
    text-decoration: none;
}

p {
    margin: 0;
    color: var(--muted);
}

ul {
    margin: 0;
    padding: 0;
}

ol {
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

h1 {
    margin: 0;
    color: var(--text);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
    font-size: clamp(42px, 5vw, 76px);
}

h2 {
    margin: 0;
    color: var(--text);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
    font-size: clamp(32px, 3.6vw, 56px);
}

h3 {
    margin: 0;
    color: var(--text);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
    font-size: clamp(22px, 2vw, 30px);
}

h4 {
    margin: 0;
    color: var(--text);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
}

h5 {
    margin: 0;
    color: var(--text);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
}

h6 {
    margin: 0;
    color: var(--text);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -0.045em;
}

strong {
    color: var(--text);
}

.container {
    width: min(var(--content-max), calc(100% - var(--content-gutter) * 2));
    margin-inline: auto;
}

.site-main {
    min-height: 60vh;
}

.section {
    padding: clamp(64px, 8vw, 112px) 0;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
    transition: transform 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease,
        background 180ms ease,
        color 180ms ease;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary {
    color: var(--white);
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 18px 44px rgba(37, 99, 235, 0.24);
}

.btn-primary:hover {
    box-shadow: 0 22px 54px rgba(37, 99, 235, 0.30);
}

.btn-secondary {
    color: var(--text);
    background: rgba(255, 255, 255, 0.88);
    border-color: var(--line);
    box-shadow: var(--shadow-soft);
}

.btn-secondary:hover {
    border-color: rgba(37, 99, 235, 0.34);
}

.btn-small {
    min-height: 42px;
    padding-inline: 18px;
    font-size: 14px;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--accent);
    font-weight: 900;
}

input:focus {
    border-color: rgba(37, 99, 235, 0.54);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.10);
    background: var(--white);
}

textarea:focus {
    border-color: rgba(37, 99, 235, 0.54);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.10);
    background: var(--white);
}

select:focus {
    border-color: rgba(37, 99, 235, 0.54);
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.10);
    background: var(--white);
}

input[type="file"] {
    padding: 12px;
    color: var(--muted);
}

label {
    color: var(--text-soft);
    font-size: 14px;
    font-weight: 850;
}

.form-group {
    display: grid;
    gap: 8px;
}

.form-hint {
    color: var(--muted-light);
    font-size: 12px;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid rgba(201, 214, 229, 0.72);
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(18px);
    transition: background 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease;
}

.site-header.is-scrolled {
    border-color: rgba(201, 214, 229, 0.92);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.07);
}

.header-inner {
    min-height: var(--header-height);
    display: grid;
    grid-template-columns: minmax(220px, auto) minmax(360px, 1fr) minmax(360px, auto);
    align-items: center;
    gap: clamp(16px, 2vw, 30px);
}

.logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    justify-self: start;
    min-width: 0;
    color: var(--text);
}

.logo-mark {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    padding: 6px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 15px;
    color: var(--accent);
    background:
        radial-gradient(circle at 32% 22%, rgba(14, 165, 233, 0.12), transparent 58%),
        linear-gradient(145deg, #ffffff 0%, #f8fbff 54%, #eef6ff 100%);
    font-size: 14px;
    font-weight: 950;
    letter-spacing: -0.06em;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.92),
        0 0 0 4px rgba(37, 99, 235, 0.06),
        0 16px 36px rgba(15, 23, 42, 0.12);
}

.logo-mark__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter:
        drop-shadow(0 0 5px rgba(14, 165, 233, 0.22))
        drop-shadow(0 1px 0 rgba(15, 23, 42, 0.16));
    transform: scale(1.1);
    transform-origin: center;
}

.logo-text {
    display: grid;
    gap: 2px;
    min-width: 0;
    line-height: 1.05;
}

.logo-text strong {
    color: var(--text);
    font-size: 14px;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.logo-text small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.02em;
}

.nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(14px, 1.45vw, 26px);
    min-width: 0;
}

.nav a {
    position: relative;
    color: var(--text-soft);
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
    transition: color 160ms ease;
}

.nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -8px;
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 180ms ease;
}

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

.nav a:hover::after {
    transform: scaleX(1);
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    min-width: 0;
}

.header-socials {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}

.header-social-link {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 12px;
    color: var(--text-soft);
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.055);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: -0.04em;
    transition: transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease;
}

.header-social-link svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-social-link .icon-svg {
    width: 18px;
    height: 18px;
}

.header-social-link:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.34);
    color: var(--accent);
    background: var(--white);
    box-shadow: 0 14px 30px rgba(37, 99, 235, 0.12);
}

.header-social-link--whatsapp:hover {
    color: #16a34a;
    border-color: rgba(22, 163, 74, 0.28);
    box-shadow: 0 14px 30px rgba(22, 163, 74, 0.12);
}

.header-social-link--telegram:hover {
    color: #0ea5e9;
    border-color: rgba(14, 165, 233, 0.30);
}

.header-social-link--vk:hover {
    color: #2563eb;
}

.header-social-link--max:hover {
    color: #2563eb;
}

.header-social-link--tiktok:hover {
    color: var(--graphite);
}

.header-social-link--email:hover {
    color: var(--warm);
    border-color: rgba(214, 168, 90, 0.38);
}

.header-contacts {
    display: grid;
    gap: 3px;
    min-width: 0;
    line-height: 1.08;
}

.header-phone,
.header-email {
    max-width: 190px;
    overflow: hidden;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: color 160ms ease;
}

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

.header-mobile-contacts {
    display: none;
}

.burger {
    display: none;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--white);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
    cursor: pointer;
}

.burger span {
    display: block;
    width: 20px;
    height: 2px;
    margin: 5px auto;
    border-radius: 2px;
    background: var(--text);
    transition: transform 180ms ease,
        opacity 180ms ease;
}

.burger.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.burger.is-active span:nth-child(2) {
    opacity: 0;
}

.burger.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.hero {
    position: relative;
    overflow: hidden;
    padding: clamp(42px, 5vw, 72px) 0 clamp(70px, 8vw, 120px);
    background: radial-gradient(circle at 78% 24%, rgba(37, 99, 235, 0.12), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, var(--bg) 100%);
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.055) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 18%, #000 72%, transparent 100%);
    pointer-events: none;
}

.hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(420px, 0.98fr);
    align-items: center;
    gap: clamp(22px, 2.4vw, 40px);
}

.hero-content {
    max-width: 780px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
    padding: 8px 12px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.68);
    font-size: 12px;
    font-weight: 850;
}

.hero-badge span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.12);
}

.hero h1 {
    max-width: 640px;
    margin: 0;
    color: var(--text);
    font-size: clamp(38px, 4.2vw, 62px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.055em;
}

.hero-text {
    max-width: 560px;
    margin: 22px 0 0;
    color: var(--text-soft);
    font-size: clamp(16px, 1.25vw, 19px);
    line-height: 1.55;
    font-weight: 550;
}

/* Content toggle: reusable disclosure for short expandable explanations */
.content-toggle {
    max-width: 670px;
    margin-top: 18px;
}

.content-toggle__trigger {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    color: var(--accent);
    background: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    list-style: none;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.055);
    transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}

.content-toggle__trigger::-webkit-details-marker {
    display: none;
}

.content-toggle__trigger::marker {
    content: "";
}

.content-toggle__trigger:hover,
.content-toggle__trigger:focus-visible {
    border-color: rgba(37, 99, 235, 0.34);
    background: #ffffff;
    transform: translateY(-1px);
}

.content-toggle__label--open {
    display: none;
}

.content-toggle[open] .content-toggle__label--closed {
    display: none;
}

.content-toggle[open] .content-toggle__label--open {
    display: inline;
}

.content-toggle__icon {
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform 180ms ease;
}

.content-toggle[open] .content-toggle__icon {
    transform: rotate(225deg) translateY(-2px);
}

.content-toggle__body {
    margin-top: 14px;
}

.content-toggle .content-toggle__body {
    margin: 14px 0 0;
}

.home-section-head--center .content-toggle {
    margin-right: auto;
    margin-left: auto;
}

.home-section-head--center .content-toggle__trigger {
    margin-right: auto;
    margin-left: auto;
}

.content-toggle--compact {
    margin-top: 12px;
}

.content-toggle--compact .content-toggle__trigger {
    min-height: 36px;
    padding-inline: 12px;
    font-size: 12px;
}

.content-toggle--card {
    max-width: none;
    margin-top: 12px;
}


.content-toggle__body p {
    margin: 0 0 10px;
}

.content-toggle__body p:last-child {
    margin-bottom: 0;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.hero-actions .btn {
    min-height: 50px;
    padding: 0 24px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 900;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.10);
}

.hero-actions .btn-primary {
    border-color: rgba(37, 99, 235, 0.22);
}

.hero-actions .btn-secondary {
    border-color: rgba(148, 163, 184, 0.42);
    background: rgba(255, 255, 255, 0.96);
}

.hero-actions .btn::after {
    content: "";
    width: 9px;
    height: 9px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 180ms ease;
}

.hero-actions .btn:hover::after {
    transform: translateX(3px) rotate(45deg);
}

.hero-proof {
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 390px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.hero-proof strong {
    color: var(--text);
    font-size: 28px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -0.06em;
}

.hero-proof span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 650;
}

.hero-visual {
    position: relative;
    min-height: 560px;
}

.page-hero {
    position: relative;
    overflow: hidden;
    padding: calc(var(--header-height) + 72px) 0 54px;
    background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(239,246,255,.82)),
        radial-gradient(circle at 86% 20%, rgba(37,99,235,.14), transparent 34%);
    border-bottom: 1px solid var(--line);
}

.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37,99,235,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37,99,235,.055) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000, transparent 86%);
    pointer-events: none;
}

.page-hero .container {
    position: relative;
    max-width: 980px;
}

.page-hero h1 {
    margin-top: 14px;
    max-width: 820px;
}

.page-hero p {
    max-width: 760px;
    margin-top: 18px;
    color: var(--muted);
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.65;
}

.nav a.is-active {
    color: var(--accent);
}

.compact-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: clamp(30px, 5vw, 58px);
}

.compact-head h2 {
    max-width: 760px;
    font-size: clamp(30px, 3.1vw, 48px);
    font-weight: 950;
}

.compact-head--center {
    justify-content: center;
    text-align: center;
}

.why {
    background: #ffffff;
}

.portfolio {
    background: #ffffff;
}

.why-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(360px, 0.9fr) minmax(280px, 0.62fr);
    gap: 18px;
    align-items: stretch;
}

.why-content {
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
    padding: 24px;
}

.why-list {
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
    display: grid;
    gap: 0;
    padding: 10px;
}

.why-image {
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.why-content h2 {
    margin-bottom: 14px;
    font-size: clamp(32px, 3vw, 48px);
}

.why-content p {
    color: var(--text-soft);
    font-size: 15px;
    line-height: 1.65;
}

.why-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 34px;
}

.why-stats div {
    display: grid;
    gap: 4px;
}

.why-stats strong {
    color: var(--accent);
    font-size: 28px;
    font-weight: 950;
}

.why-stats span {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 750;
}

.why-image img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.why-list article {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 4px 12px;
    padding: 14px;
    border-radius: 14px;
}

.why-list article + article {
    border-top: 1px solid rgba(201, 214, 229, 0.72);
}

.why-list span {
    grid-row: span 2;
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    color: var(--accent);
    background: var(--accent-soft);
    font-size: 12px;
    font-weight: 950;
}

.why-list strong {
    font-size: 14px;
    font-weight: 950;
}

.why-list p {
    font-size: 12px;
    line-height: 1.45;
}

.materials {
    background: var(--bg);
}

.materials-row {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.material-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 4px 12px;
    align-items: center;
    min-height: 82px;
    padding: 14px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.045);
}

.material-card span {
    grid-row: span 2;
    width: 34px;
    height: 42px;
    border-radius: 10px 10px 14px 14px;
    background: linear-gradient(90deg, transparent 44%, rgba(15, 23, 42, 0.12) 45%, rgba(15, 23, 42, 0.12) 55%, transparent 56%),
        linear-gradient(180deg, #dfe7ef, #aebdcc);
    box-shadow: inset 0 5px 0 rgba(255, 255, 255, 0.6), 0 8px 18px rgba(15, 23, 42, 0.1);
}

.material-card strong {
    font-size: 14px;
    line-height: 1.2;
}

.material-card small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.material-card--more {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.portfolio-card a {
    display: block;
}

.portfolio-card img {
    width: 100%;
    aspect-ratio: 1 / 0.88;
    object-fit: cover;
    border-radius: 16px;
    background: #eef3f8;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.08);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.portfolio-card a:hover img {
    transform: translateY(-3px);
    box-shadow: 0 22px 52px rgba(15, 23, 42, 0.12);
}

.portfolio-card span {
    display: block;
    margin-top: 10px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.portfolio-card strong {
    display: block;
    margin-top: 2px;
    font-size: 15px;
    font-weight: 950;
}

.process {
    background: radial-gradient(circle at 88% 12%, rgba(37, 99, 235, 0.08), transparent 28rem),
        var(--bg);
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.process-grid article {
    padding: 22px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.05);
}

.process-grid span {
    display: inline-flex;
    margin-bottom: 44px;
    color: var(--accent);
    font-size: 13px;
    font-weight: 950;
}

.process-grid strong {
    display: block;
    margin-bottom: 8px;
    font-size: 18px;
    font-weight: 950;
}

.process-grid p {
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.55;
}

.request-modal {
    position: fixed;
    inset: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100dvh;
    padding: 22px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 180ms ease,
        visibility 180ms ease;
}

.request-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.request-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(18px);
}

.request-modal__dialog {
    position: relative;
    z-index: 1;
    overflow: hidden;
    width: min(1040px, 100%);
    max-height: calc(100dvh - 44px);
    border: 1px solid rgba(255, 255, 255, 0.64);
    border-radius: var(--radius-xl);
    background: radial-gradient(circle at 12% 12%, rgba(37, 99, 235, 0.12), transparent 24rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 247, 251, 0.98));
    box-shadow: 0 34px 110px rgba(15, 23, 42, 0.34);
    transform: translateY(12px) scale(0.985);
    transition: transform 180ms ease;
}

.request-modal.is-open .request-modal__dialog {
    transform: translateY(0) scale(1);
}

.request-modal__dialog::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px);
    background-size: 38px 38px;
    mask-image: linear-gradient(90deg, #000 0%, #000 56%, transparent 100%);
    pointer-events: none;
}

.request-modal__close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--text);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow-soft);
    cursor: pointer;
    transition: background 160ms ease,
        transform 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.request-modal__close span {
    position: absolute;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: var(--text);
    pointer-events: none;
    transition: background 160ms ease,
        transform 160ms ease;
}

.request-modal__close span:first-child {
    transform: rotate(45deg);
}

.request-modal__close span:last-child {
    transform: rotate(-45deg);
}

.request-modal__close:hover {
    border-color: rgba(37, 99, 235, 0.28);
    background: var(--white);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.12);
    transform: rotate(4deg);
}

.request-modal__close:hover span {
    background: var(--accent);
}

.request-modal__content {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    gap: clamp(28px, 4vw, 56px);
    max-height: calc(100dvh - 44px);
    overflow-y: auto;
    padding: clamp(28px, 4vw, 54px);
}

.request-modal__intro {
    display: flex;
    flex-direction: column;
    align-self: center;
    padding-right: clamp(0px, 2vw, 22px);
}

.request-modal__kicker {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 18px;
    padding: 8px 12px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.7);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.request-modal__intro h2 {
    max-width: 500px;
    font-size: clamp(30px, 3.2vw, 48px);
    font-weight: 950;
    letter-spacing: -0.055em;
}

.request-modal__intro p {
    max-width: 460px;
    margin-top: 18px;
    color: var(--text-soft);
    font-size: 16px;
    line-height: 1.64;
    font-weight: 550;
}

.request-modal__points {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    order: 5;
    margin-top: 18px;
}

.request-modal__points span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid rgba(201, 214, 229, 0.8);
    border-radius: 999px;
    color: var(--text-soft);
    background: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-weight: 850;
}

.request-modal__points span::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent);
}

.request-modal__contacts {
    order: 4;
    max-width: 460px;
    margin-top: 22px;
    padding: 13px;
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.86)),
        rgba(255, 255, 255, 0.9);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.12);
}

.request-modal__contacts-head {
    display: grid;
    gap: 4px;
    margin-bottom: 10px;
}

.request-modal__contacts-head span {
    color: var(--accent);
    font-size: 11px;
    font-weight: 950;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.request-modal__contacts-head strong {
    color: var(--text);
    font-size: 16px;
    line-height: 1.22;
    letter-spacing: -0.02em;
}

.request-modal__contact-primary {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 56px;
    margin-bottom: 9px;
    padding: 9px 11px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 20px;
    color: var(--white);
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 18px 44px rgba(37, 99, 235, 0.24);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.request-modal__contact-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 24px 58px rgba(37, 99, 235, 0.3);
}

.request-modal__contact-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.18);
    color: var(--white);
    font-size: 22px;
    font-weight: 950;
}

.request-modal__contact-primary strong {
    display: block;
    font-size: 15px;
    font-weight: 950;
}

.request-modal__contact-primary small {
    display: block;
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 13px;
    font-weight: 750;
}

.request-modal__contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
    gap: 10px;
}

.request-modal__contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    gap: 7px;
    min-height: 42px;
    padding: 7px 8px;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 18px;
    color: var(--text);
    background: rgba(255, 255, 255, 0.88);
    font-size: 13px;
    font-weight: 850;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.request-modal__contact-btn:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.34);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.1);
}

.request-modal__contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.7);
    color: currentColor;
    font-size: 11px;
    font-weight: 950;
}

.request-modal__contact-icon .icon-svg,
.request-modal__contact-mark .icon-svg {
    width: 16px;
    height: 16px;
}

.request-modal__contact-btn strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.request-modal__contact-btn small {
    display: none;
}

.request-modal__contact-btn--max {
    color: #ffffff;
    background: #111827;
}

.request-modal__contact-btn--whatsapp {
    color: #052e16;
    background: #dcfce7;
}

.request-modal__contact-btn--telegram {
    color: #075985;
    background: #e0f2fe;
}

.request-modal__contact-btn--email {
    color: #1e3a8a;
    background: #dbeafe;
}

.request-modal__form {
    display: grid;
    gap: 16px;
    padding: clamp(20px, 2.4vw, 30px);
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.86);
    box-shadow: var(--shadow-soft);
}

.request-modal__form textarea {
    min-height: 132px;
}

.request-modal__submit {
    width: 100%;
    min-height: 54px;
    border-radius: 16px;
}

.request-modal__privacy {
    color: var(--muted-light);
    font-size: 12px;
    line-height: 1.45;
    text-align: center;
}

.request-modal__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

body.is-request-modal-open {
    overflow: hidden;
}

.message-card {
    max-width: 760px;
    margin-inline: auto;
    padding: clamp(28px, 4vw, 46px);
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-soft);
}

.message-card h1 {
    margin-bottom: 16px;
    font-size: clamp(34px, 4vw, 52px);
}

.message-card p + p {
    margin-top: 18px;
}

.message-card ul + p {
    margin-top: 18px;
}

.request-preview {
    margin-top: 18px;
    display: grid;
    gap: 8px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #fbfdff;
}

.message-card ul {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding-left: 20px;
}

.message-card li {
    list-style: disc;
    color: var(--muted);
}

.request-preview p {
    color: var(--text-soft);
}


.site-footer {
    position: relative;
    overflow: hidden;
    padding: clamp(64px, 7vw, 104px) 0 34px;
    color: rgba(255, 255, 255, 0.78);
    background: radial-gradient(circle at 14% 12%, rgba(37, 99, 235, 0.22), transparent 22rem),
        radial-gradient(circle at 82% 0%, rgba(14, 165, 233, 0.16), transparent 26rem),
        linear-gradient(135deg, #070b14 0%, #0f172a 42%, #111827 100%);
    isolation: isolate;
}

.site-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: 0.24;
    background-image: linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.85), transparent 78%);
}

.site-footer::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    z-index: -1;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(147, 197, 253, 0.5), transparent);
}

.site-footer__glow {
    position: absolute;
    right: -12%;
    bottom: -32%;
    z-index: -1;
    width: min(640px, 72vw);
    aspect-ratio: 1;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.22), transparent 64%);
    filter: blur(10px);
    pointer-events: none;
}

.site-footer__inner {
    display: grid;
    gap: clamp(28px, 4vw, 52px);
}

.site-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.72fr);
    gap: clamp(22px, 3vw, 42px);
    align-items: stretch;
}

.footer-brand-card,
.footer-contact-panel,
.footer-columns {
    border: 1px solid rgba(148, 163, 184, 0.20);
    background: rgba(255, 255, 255, 0.055);
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.20),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(18px);
}

.footer-brand-card {
    min-height: 100%;
    padding: clamp(24px, 3vw, 36px);
    border-radius: 30px;
}

.footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    max-width: 680px;
}

.footer-logo__mark {
    display: inline-grid;
    place-items: center;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 18px;
    color: var(--white);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.92), rgba(14, 165, 233, 0.86));
    font-size: 16px;
    font-weight: 950;
    letter-spacing: -0.06em;
    box-shadow: 0 18px 42px rgba(37, 99, 235, 0.26);
}

.footer-logo__text {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.footer-logo__text strong {
    color: var(--white);
    font-size: clamp(22px, 2.1vw, 34px);
    font-weight: 950;
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.footer-logo__text small,
.footer-panel-kicker {
    color: #93c5fd;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.footer-brand-card__description {
    max-width: 760px;
    margin-top: 22px;
    color: rgba(226, 232, 240, 0.78);
    font-size: clamp(15px, 1.2vw, 17px);
}

.footer-tech-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
}

.footer-tech-pill {
    display: grid;
    gap: 5px;
    min-height: 90px;
    padding: 18px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 20px;
    background: rgba(15, 23, 42, 0.42);
}

.footer-tech-pill strong {
    color: var(--white);
    font-size: 22px;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.footer-tech-pill span {
    color: rgba(203, 213, 225, 0.72);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.25;
}

.footer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 30px;
}

.footer-cta {
    width: fit-content;
    min-height: 50px;
    padding-inline: 22px;
    border-radius: 16px;
}

.footer-outline-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 20px;
    border: 1px solid rgba(147, 197, 253, 0.24);
    border-radius: 16px;
    color: rgba(239, 246, 255, 0.94);
    font-size: 14px;
    font-weight: 900;
    background: rgba(255, 255, 255, 0.045);
    transition: transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease,
        color 180ms ease;
}

.footer-outline-link:hover {
    transform: translateY(-2px);
    border-color: rgba(147, 197, 253, 0.42);
    color: var(--white);
    background: rgba(255, 255, 255, 0.08);
}

.footer-contact-panel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 22px;
    padding: clamp(24px, 3vw, 34px);
    border-radius: 30px;
}

.footer-contact-panel h2 {
    max-width: 500px;
    color: var(--white);
    font-size: clamp(26px, 2.4vw, 40px);
    letter-spacing: -0.05em;
}

.footer-contact-panel p {
    color: rgba(203, 213, 225, 0.76);
}

.footer-contact-list {
    display: grid;
    gap: 0;
}

.footer-contact-item {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.42);
    transition: transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease;
}

.footer-contact-item:hover {
    transform: translateY(-2px);
    border-color: rgba(147, 197, 253, 0.34);
    background: rgba(15, 23, 42, 0.62);
}

.footer-contact-item__icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 14px;
    color: var(--white);
    background: rgba(37, 99, 235, 0.18);
    font-weight: 950;
}

.footer-contact-item__icon .icon-svg {
    width: 20px;
    height: 20px;
}

.footer-contact-item span:last-child {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.footer-contact-item small {
    color: rgba(203, 213, 225, 0.62);
    font-size: 12px;
    font-weight: 850;
}

.footer-contact-item strong {
    overflow: hidden;
    color: var(--white);
    font-size: 15px;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.footer-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.footer-social-link {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(148, 163, 184, 0.20);
    border-radius: 15px;
    color: rgba(239, 246, 255, 0.88);
    background: rgba(255, 255, 255, 0.06);
    font-size: 12px;
    font-weight: 950;
    transition: transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease,
        color 180ms ease;
}

.footer-social-link svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.footer-social-link .icon-svg {
    width: 19px;
    height: 19px;
}

.footer-social-link:hover {
    transform: translateY(-2px);
    border-color: rgba(147, 197, 253, 0.42);
    color: var(--white);
    background: rgba(255, 255, 255, 0.11);
}

.footer-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(170px, 1fr)) minmax(260px, 1.32fr);
    gap: clamp(18px, 2.4vw, 34px);
    padding: clamp(22px, 2.7vw, 32px);
    border-radius: 30px;
}

.footer-column {
    display: grid;
    align-content: start;
    gap: 11px;
    min-width: 0;
}

.footer-column h3 {
    margin-bottom: 5px;
    color: var(--white);
    font-size: 15px;
    font-weight: 950;
    letter-spacing: -0.02em;
}

.footer-column a {
    width: fit-content;
    color: rgba(203, 213, 225, 0.78);
    font-size: 14px;
    font-weight: 760;
    line-height: 1.25;
    transition: color 160ms ease,
        transform 160ms ease;
}

.footer-column a:hover {
    color: #93c5fd;
    transform: translateX(3px);
}

.footer-column p {
    max-width: 360px;
    color: rgba(203, 213, 225, 0.68);
    font-size: 14px;
}

.footer-materials {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.footer-materials a {
    padding: 8px 10px;
    border: 1px solid rgba(147, 197, 253, 0.20);
    border-radius: 999px;
    color: rgba(239, 246, 255, 0.90);
    background: rgba(255, 255, 255, 0.055);
    font-size: 12px;
    font-weight: 950;
}

.footer-materials a:hover {
    transform: translateY(-1px);
    color: var(--white);
    background: rgba(37, 99, 235, 0.18);
}

.footer-process-list {
    display: grid;
    gap: 10px;
    counter-reset: footer-process;
}

.footer-process-list li {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    color: rgba(226, 232, 240, 0.78);
    font-size: 14px;
    line-height: 1.42;
}

.footer-process-list span {
    display: inline-grid;
    place-items: center;
    min-height: 28px;
    border: 1px solid rgba(147, 197, 253, 0.22);
    border-radius: 999px;
    color: #bfdbfe;
    background: rgba(37, 99, 235, 0.12);
    font-size: 11px;
    font-weight: 950;
}

.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-top: 8px;
    color: rgba(203, 213, 225, 0.62);
    font-size: 13px;
}

.site-footer__bottom p {
    color: rgba(203, 213, 225, 0.62);
    font-size: 13px;
}

.footer-bottom-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px 16px;
}

.footer-bottom-links span {
    color: rgba(203, 213, 225, 0.62);
}

.footer-bottom-links a {
    color: rgba(239, 246, 255, 0.86);
    font-weight: 850;
}

.footer-bottom-links a:hover {
    color: #93c5fd;
}


@media (max-width: 1180px) {
    .site-footer__top {
        grid-template-columns: 1fr;
    }

    .footer-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .site-footer {
        padding-top: 54px;
    }

    .footer-brand-card,
    .footer-contact-panel,
    .footer-columns {
        border-radius: 24px;
    }

    .footer-logo {
        align-items: flex-start;
    }

    .footer-logo__mark {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
        border-radius: 16px;
    }

    .footer-tech-strip,
    .footer-columns {
        grid-template-columns: 1fr;
    }

    .footer-tech-pill {
        min-height: auto;
    }

    .footer-actions,
    .site-footer__bottom,
    .footer-bottom-links {
        align-items: stretch;
        justify-content: flex-start;
    }

    .footer-actions,
    .site-footer__bottom {
        flex-direction: column;
    }

    .footer-cta,
    .footer-outline-link {
        width: 100%;
    }

    .footer-contact-item strong {
        white-space: normal;
    }
}

@media (max-width: 420px) {
    .footer-logo__text strong {
        font-size: 20px;
    }

    .footer-contact-panel h2 {
        font-size: 24px;
    }

    .footer-process-list li {
        grid-template-columns: 38px minmax(0, 1fr);
    }
}

.is-hidden {
    display: none !important;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.project-start {
    position: relative;
    overflow: hidden;
    padding: clamp(72px, 8vw, 128px) 0;
    background: #ffffff;
}

.project-start::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(180deg, transparent 0%, #000 18%, #000 72%, transparent 100%);
    pointer-events: none;
}

.project-start .container {
    position: relative;
    z-index: 1;
}

.hero--inner {
    min-height: auto;
    padding: calc(var(--header-height) + 72px) 0 72px;
}

.hero--services {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 82% 20%, rgba(37, 99, 235, 0.18), transparent 34rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.86));
    border-bottom: 1px solid var(--line);
}

.hero--services::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.055) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(to bottom, #000, transparent 86%);
    pointer-events: none;
}

.hero--services .hero-inner {
    position: relative;
    z-index: 1;
}

.services {
    position: relative;
    overflow: hidden;
    background: var(--bg);
}

.services::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 12% 14%, rgba(14, 165, 233, 0.08), transparent 30rem),
        radial-gradient(circle at 86% 70%, rgba(37, 99, 235, 0.08), transparent 28rem);
    pointer-events: none;
}

.services .container {
    position: relative;
    z-index: 1;
}

.services-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: clamp(30px, 5vw, 58px);
}

.services-head h2 {
    max-width: 760px;
}

.services-head p {
    max-width: 620px;
    color: var(--text-soft);
    font-size: 17px;
    line-height: 1.72;
    font-weight: 520;
}

.compact-head p {
    max-width: 620px;
    color: var(--text-soft);
    font-size: 17px;
    line-height: 1.72;
    font-weight: 520;
}

.services-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 20px;
    align-items: start;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    min-height: 0;
    padding: 14px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.92));
    box-shadow: var(--shadow-soft);
    transition: transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

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

.service-card--primary {
    color: var(--white);
    background: radial-gradient(circle at 82% 18%, rgba(14, 165, 233, 0.24), transparent 18rem),
        linear-gradient(145deg, rgba(17, 24, 39, 0.97), rgba(30, 41, 59, 0.96));
    border-color: rgba(255, 255, 255, 0.12);
}

.service-card__number {
    position: absolute;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 18px;
    border-radius: 13px;
    color: var(--accent);
    background: rgba(255, 255, 255, 0.88);
    font-size: 13px;
    font-weight: 950;
    top: 24px;
    left: 24px;
    margin: 0;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
}

.service-card--primary .service-card__number {
    color: var(--white);
    background: rgba(255, 255, 255, 0.16);
    box-shadow: none;
}

.service-card__image {
    display: block;
    width: 100%;
    height: 132px;
    margin-bottom: 16px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(201, 214, 229, 0.72);
    background: #eef4fb;
}

.service-card--primary .service-card__image {
    border-color: rgba(255, 255, 255, 0.12);
    opacity: 0.92;
}

.service-card h3 {
    margin-bottom: 10px;
    font-size: clamp(19px, 1.35vw, 23px);
    font-weight: 950;
    letter-spacing: -0.04em;
    min-height: 56px;
    padding-right: 6px;
    line-height: 1.12;
}

.service-card p {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 520;
}

.service-card--primary h3 {
    color: var(--white);
}

.service-card--primary p {
    color: rgba(255, 255, 255, 0.76);
}

.service-card ul {
    display: grid;
    gap: 7px;
    margin-top: 16px;
}

.service-card li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.28;
    font-weight: 760;
}

.service-card li::before {
    content: "";
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    margin-top: 5px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.09);
}

.service-card--primary li {
    color: rgba(255, 255, 255, 0.84);
}

.service-card--primary li::before {
    background: var(--accent-2);
    box-shadow: 0 0 0 6px rgba(14, 165, 233, 0.16);
}

/* Numbered service-detail cards: keep the absolute number badge from overlapping titles. */
.services-grid--numbered .service-card {
    padding: 74px 24px 24px;
}

.services-grid--numbered .service-card h3 {
    min-height: 0;
    margin-bottom: 14px;
    padding-right: 0;
}

.services-grid--numbered .service-card p {
    margin: 0;
}

@media (max-width: 640px) {
    .services-grid--numbered .service-card {
        padding: 66px 18px 20px;
    }

    .services-grid--numbered .service-card__number {
        top: 18px;
        left: 18px;
    }
}

.services-note {
    position: sticky;
    top: calc(var(--header-height) + 24px);
    padding: 22px;
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow);
    backdrop-filter: blur(18px);
}

.services-note__top span {
    display: inline-flex;
    margin-bottom: 16px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.services-note__top strong {
    display: block;
    margin-bottom: 16px;
    color: var(--text);
    font-size: 23px;
    line-height: 1.12;
    font-weight: 950;
    letter-spacing: -0.045em;
}

.services-note p {
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.6;
    font-weight: 520;
}

.services-note__steps {
    display: grid;
    gap: 8px;
    margin: 20px 0;
}

.services-note__steps span {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 13px;
    color: var(--text-soft);
    background: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    font-weight: 850;
}

.services-note__steps span::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.1);
}

.services-note .btn {
    width: 100%;
}

.services-head--premium {
    align-items: stretch;
    gap: clamp(22px, 4vw, 44px);
    margin-bottom: clamp(34px, 5vw, 64px);
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: var(--radius-xl);
    background: radial-gradient(circle at 92% 18%, rgba(37, 99, 235, 0.12), transparent 20rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.72));
    box-shadow: var(--shadow-soft);
}

.services-head--premium .services-head__main {
    max-width: 760px;
}

.services-head--premium h2 {
    max-width: 760px;
    margin-bottom: 18px;
}

.services-head--premium .services-head__main p {
    max-width: 690px;
    color: var(--text-soft);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.68;
    font-weight: 560;
}

.services-head__panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: min(100%, 520px);
    gap: 10px;
    align-self: center;
}

.services-head__panel div {
    position: relative;
    overflow: hidden;
    min-height: 148px;
    padding: 18px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.78);
}

.services-head__panel div::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
    opacity: 0.9;
}

.services-head__panel span {
    display: inline-flex;
    margin-bottom: 26px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
}

.services-head__panel strong {
    display: block;
    margin-bottom: 8px;
    color: var(--text);
    font-size: 18px;
    line-height: 1.1;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.services-head__panel p {
    max-width: 150px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
}

.services-head--premium .section-kicker {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 22px;
    padding: 12px 18px 12px 14px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 16px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.96), rgba(255, 255, 255, 0.84));
    box-shadow: 0 14px 34px rgba(37, 99, 235, 0.1),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.services-head--premium .section-kicker::before {
    content: "";
    width: 24px;
    height: 24px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 50%;
    background:
        radial-gradient(circle, var(--accent) 0 3px, transparent 3.5px),
        rgba(255, 255, 255, 0.78);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    transform: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--accent);
}

.services-head--premium .section-kicker::after {
    content: "";
    position: absolute;
    left: calc(100% + 14px);
    top: 50%;
    width: clamp(42px, 8vw, 110px);
    height: 1px;
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.38), transparent);
    display: none;
}

.project-start--premium {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 12% 18%, rgba(14, 165, 233, 0.08), transparent 30rem),
        linear-gradient(180deg, #ffffff, #f5f7fb);
}

.project-start--premium::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 78%, transparent);
    pointer-events: none;
}

.project-start--premium .container {
    position: relative;
    z-index: 1;
}

.project-start-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: clamp(24px, 5vw, 58px);
    align-items: stretch;
    margin-bottom: 22px;
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: var(--radius-xl);
    background: radial-gradient(circle at 92% 16%, rgba(37, 99, 235, 0.12), transparent 22rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.72));
    box-shadow: var(--shadow-soft);
}

.project-start-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 22px;
    padding: 12px 18px 12px 14px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 16px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.96), rgba(255, 255, 255, 0.84));
    box-shadow: 0 14px 34px rgba(37, 99, 235, 0.1),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.project-start-badge span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 50%;
    color: var(--accent);
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 16px;
    line-height: 1;
}

.project-start-panel h2 {
    max-width: 760px;
    margin-bottom: 18px;
}

.project-start-panel__content p {
    max-width: 780px;
    color: var(--text-soft);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.68;
    font-weight: 560;
}

.project-start-panel__meta {
    display: grid;
    gap: 12px;
}

.project-start-panel__meta div {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 150px;
    padding: 22px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.78);
}

.project-start-badge .icon-svg {
    width: 14px;
    height: 14px;
}

.project-start-panel__meta div::before {
    content: "";
    position: absolute;
    right: -52px;
    top: -52px;
    width: 130px;
    height: 130px;
    border: 1px solid rgba(37, 99, 235, 0.13);
    border-radius: 50%;
    box-shadow: inset 0 0 0 20px rgba(37, 99, 235, 0.04);
}

.project-start-panel__meta strong {
    position: relative;
    display: block;
    margin-bottom: 8px;
    color: var(--accent);
    font-size: 46px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -0.08em;
}

.project-start-panel__meta span {
    position: relative;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.35;
    font-weight: 780;
}

.project-start-route {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.project-route-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 16px;
    min-height: 154px;
    padding: 20px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--shadow-soft);
    transition: transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.project-route-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
    opacity: 0;
    transition: opacity 180ms ease;
}

.project-route-card:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.26);
    box-shadow: var(--shadow);
}

.project-route-card:hover::before {
    opacity: 1;
}

.project-route-card--accent::before {
    opacity: 1;
}

.project-route-card--accent {
    color: var(--white);
    background: radial-gradient(circle at 86% 18%, rgba(14, 165, 233, 0.22), transparent 18rem),
        linear-gradient(145deg, rgba(17, 24, 39, 0.97), rgba(30, 41, 59, 0.96));
    border-color: rgba(255, 255, 255, 0.12);
}

.project-route-card__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.86);
    font-size: 13px;
    font-weight: 950;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72);
}

.project-route-card--accent .project-route-card__number {
    color: var(--white);
    background: rgba(255, 255, 255, 0.14);
}

.project-route-card h3 {
    margin-bottom: 9px;
    color: var(--text);
    font-size: clamp(18px, 1.3vw, 22px);
    line-height: 1.16;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.project-route-card p {
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 520;
}

.project-route-card--accent h3 {
    color: var(--white);
}

.project-route-card--accent p {
    color: rgba(255, 255, 255, 0.76);
}

.project-start-panel--aligned {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
}

.project-start-panel--aligned .project-start-badge {
    gap: 10px;
}

.project-start-panel--aligned .project-start-badge span {
    font-size: 14px;
}

.project-start-panel__meta--inline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-self: center;
}

.project-start-panel__meta--inline div {
    min-height: 148px;
}

.project-start-panel__meta--inline strong {
    font-size: 46px;
}

.project-start-panel__meta--inline span {
    max-width: 170px;
}

.materials--premium {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 88% 18%, rgba(37, 99, 235, 0.09), transparent 30rem),
        linear-gradient(180deg, #f5f7fb, #ffffff);
}

.materials--premium::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.042) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.042) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 78%, transparent);
    pointer-events: none;
}

.materials--premium .container {
    position: relative;
    z-index: 1;
}

.materials-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 560px);
    gap: clamp(24px, 5vw, 58px);
    align-items: stretch;
    margin-bottom: 22px;
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: var(--radius-xl);
    background: radial-gradient(circle at 92% 16%, rgba(37, 99, 235, 0.12), transparent 22rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.72));
    box-shadow: var(--shadow-soft);
}

.materials-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 22px;
    padding: 12px 18px 12px 14px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 16px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.96), rgba(255, 255, 255, 0.84));
    box-shadow: 0 14px 34px rgba(37, 99, 235, 0.1),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.materials-badge span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 50%;
    color: var(--accent);
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 14px;
    line-height: 1;
}

.materials-badge .icon-svg {
    width: 14px;
    height: 14px;
}

.materials-panel h2 {
    max-width: 760px;
    margin-bottom: 18px;
}

.materials-panel__content p {
    max-width: 780px;
    color: var(--text-soft);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.68;
    font-weight: 560;
}

.materials-panel__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-self: center;
}

.materials-panel__meta div {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 148px;
    padding: 18px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.78);
}

.materials-panel__meta div::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
}

.materials-panel__meta strong {
    position: relative;
    display: block;
    margin-bottom: 8px;
    color: var(--accent);
    font-size: 42px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -0.08em;
}

.materials-panel__meta span {
    position: relative;
    max-width: 150px;
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 780;
}

.materials-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.material-preview-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.92));
    box-shadow: var(--shadow-soft);
    transition: transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.material-preview-card:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.28);
    box-shadow: var(--shadow);
}

.material-preview-card--accent {
    color: var(--white);
    background: radial-gradient(circle at 86% 18%, rgba(14, 165, 233, 0.22), transparent 18rem),
        linear-gradient(145deg, rgba(17, 24, 39, 0.97), rgba(30, 41, 59, 0.96));
    border-color: rgba(255, 255, 255, 0.12);
}

.material-preview-card__image {
    position: relative;
    overflow: hidden;
    height: 170px;
    margin: 14px 14px 0;
    border-radius: 18px;
    background: #eef4fb;
}

.material-preview-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 260ms ease;
}

.material-preview-card:hover .material-preview-card__image img {
    transform: scale(1.045);
}

.material-preview-card__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.02), rgba(15, 23, 42, 0.34));
    pointer-events: none;
}

.material-preview-card__image span {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    color: var(--white);
    background: rgba(15, 23, 42, 0.52);
    backdrop-filter: blur(12px);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: 0.08em;
}

.material-preview-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px;
}

.material-preview-card__body h3 {
    min-height: 52px;
    margin-bottom: 10px;
    font-size: clamp(19px, 1.35vw, 23px);
    line-height: 1.12;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.material-preview-card__body p {
    min-height: 66px;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 520;
}

.material-preview-card--accent .material-preview-card__body h3 {
    color: var(--white);
}

.material-preview-card--accent .material-preview-card__body p {
    color: rgba(255, 255, 255, 0.76);
}

.material-preview-card__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    color: var(--accent);
    font-size: 13px;
    font-weight: 900;
}

.material-preview-card__link::after {
    content: "";
    width: 8px;
    height: 8px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 180ms ease;
}

.material-preview-card:hover .material-preview-card__link::after {
    transform: translateX(3px) rotate(45deg);
}

.material-preview-card--accent .material-preview-card__link {
    color: #bfdbfe;
}

.material-preview-card__link--strength,
.material-preview-card__link--prep,
.material-preview-card__link--check,
.material-preview-card__link--time {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--impact-border, rgba(37, 99, 235, 0.18));
    border-radius: 999px;
    background: var(--impact-bg, rgba(37, 99, 235, 0.08));
    color: var(--impact-color, var(--accent));
    letter-spacing: 0.01em;
}

.material-preview-card__link--strength {
    --impact-bg: rgba(37, 99, 235, 0.10);
    --impact-border: rgba(37, 99, 235, 0.24);
    --impact-color: #1d4ed8;
}

.material-preview-card__link--prep {
    --impact-bg: rgba(14, 165, 233, 0.11);
    --impact-border: rgba(14, 165, 233, 0.26);
    --impact-color: #0369a1;
}

.material-preview-card__link--check {
    --impact-bg: rgba(214, 168, 90, 0.16);
    --impact-border: rgba(214, 168, 90, 0.34);
    --impact-color: #9a6700;
}

.material-preview-card__link--time {
    --impact-bg: rgba(16, 185, 129, 0.12);
    --impact-border: rgba(16, 185, 129, 0.28);
    --impact-color: #047857;
}

.material-preview-card--accent .material-preview-card__link--strength {
    --impact-bg: rgba(96, 165, 250, 0.16);
    --impact-border: rgba(147, 197, 253, 0.24);
    --impact-color: #bfdbfe;
}

.service-contact--premium {
    position: relative;
    overflow: hidden;
    padding-top: 0;
    background: radial-gradient(circle at 12% 18%, rgba(14, 165, 233, 0.08), transparent 28rem),
        linear-gradient(180deg, #ffffff, #f5f7fb);
}

.service-contact--premium::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.042) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.042) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 78%, transparent);
    pointer-events: none;
}

.service-contact--premium .container {
    position: relative;
    z-index: 1;
}

.service-contact-box {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(480px, 1.08fr);
    gap: clamp(24px, 5vw, 64px);
    align-items: stretch;
    overflow: hidden;
    padding: clamp(24px, 4vw, 44px);
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: var(--radius-xl);
    color: var(--white);
    background: radial-gradient(circle at 86% 18%, rgba(14, 165, 233, 0.34), transparent 28rem),
        radial-gradient(circle at 12% 88%, rgba(37, 99, 235, 0.22), transparent 24rem),
        linear-gradient(145deg, #111827, #1e293b);
    box-shadow: 0 34px 100px rgba(15, 23, 42, 0.26);
}

.service-contact-content {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.service-contact-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 22px;
    padding: 12px 18px 12px 14px;
    border: 1px solid rgba(191, 219, 254, 0.22);
    border-radius: 16px;
    color: #bfdbfe;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 14px 34px rgba(2, 6, 23, 0.16),
        inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.service-contact-badge span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(191, 219, 254, 0.24);
    border-radius: 50%;
    color: #bfdbfe;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 0 0 5px rgba(59, 130, 246, 0.12);
    font-size: 14px;
    line-height: 1;
}

.service-contact-content h2 {
    max-width: 760px;
    margin-bottom: 20px;
    color: var(--white);
    font-size: clamp(34px, 3.8vw, 58px);
}

.service-contact-content > p {
    max-width: 760px;
    color: rgba(255, 255, 255, 0.76);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.68;
    font-weight: 540;
}

.service-contact-points {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 30px;
}

.service-contact-points div {
    min-height: 132px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.06);
}

.service-contact-points strong {
    display: inline-flex;
    margin-bottom: 24px;
    color: #93c5fd;
    font-size: 13px;
    font-weight: 950;
}

.service-contact-points span {
    display: block;
    color: rgba(255, 255, 255, 0.82);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 760;
}

.service-contact-cooperation {
    margin-top: 16px;
    padding: 20px;
    border: 1px solid rgba(191, 219, 254, 0.16);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.16), rgba(14, 165, 233, 0.08));
}

.service-contact-cooperation strong {
    display: block;
    margin-bottom: 8px;
    color: var(--white);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.service-contact-cooperation p {
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
    line-height: 1.6;
}

.service-contact-actions {
    padding: clamp(18px, 2.5vw, 28px);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.045));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.service-contact-actions__head {
    display: grid;
    gap: 6px;
    margin-bottom: 16px;
}

.service-contact-actions__head span {
    color: #93c5fd;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.service-contact-actions__head strong {
    color: var(--white);
    font-size: clamp(21px, 1.8vw, 28px);
    line-height: 1.14;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.service-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.service-contact-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 4px 14px;
    align-items: center;
    min-height: 92px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 22px;
    color: var(--white);
    background: rgba(255, 255, 255, 0.065);
    transition: transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease;
}

.service-contact-card:hover {
    transform: translateY(-3px);
    border-color: rgba(147, 197, 253, 0.28);
    background: rgba(255, 255, 255, 0.1);
}

.service-contact-card__icon {
    grid-row: span 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 17px;
    color: var(--white);
    background: rgba(255, 255, 255, 0.12);
    font-size: 19px;
    font-weight: 950;
}

.service-contact-badge .icon-svg {
    width: 14px;
    height: 14px;
}

.service-contact-card__icon .icon-svg {
    width: 22px;
    height: 22px;
}

.service-contact-card strong {
    overflow: hidden;
    color: var(--white);
    font-size: 15px;
    line-height: 1.2;
    font-weight: 950;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.service-contact-card small {
    overflow: hidden;
    color: rgba(255, 255, 255, 0.62);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 720;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.service-contact-card--primary {
    grid-column: 1 / -1;
    min-height: 104px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 22px 54px rgba(37, 99, 235, 0.26);
}

.service-contact-card--primary .service-contact-card__icon {
    background: rgba(255, 255, 255, 0.18);
}

.service-contact-card--whatsapp .service-contact-card__icon {
    background: linear-gradient(135deg, #25d366, #12b55b);
}

.service-contact-card--telegram .service-contact-card__icon {
    background: linear-gradient(135deg, #2aa8eb, #168acd);
}

.service-contact-card--max .service-contact-card__icon {
    background: linear-gradient(135deg, #7c3aed, #2563eb);
}

.service-contact-card--phone .service-contact-card__icon {
    background: rgba(255, 255, 255, 0.12);
}

.service-contact-card--email .service-contact-card__icon {
    background: rgba(255, 255, 255, 0.12);
}

.service-contact-hint {
    display: grid;
    gap: 6px;
    margin-top: 14px;
    padding: 16px;
    border: 1px solid rgba(191, 219, 254, 0.14);
    border-radius: 20px;
    background: rgba(15, 23, 42, 0.18);
}

.service-contact-hint span {
    color: #93c5fd;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.service-contact-hint strong {
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 760;
}

@media (min-width: 1680px) {
    :root {
        --content-max: 1680px;
    }
}

@media (max-width: 1320px) {
    .header-inner {
        grid-template-columns: minmax(210px, auto) minmax(340px, 1fr) auto;
    }

    .header-contacts,
    .header-request-btn {
        display: none;
    }

    .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portfolio-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .materials-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .why-layout {
        grid-template-columns: 1fr;
    }

    .why-image img {
        max-height: 420px;
    }

.services-layout {
        grid-template-columns: 1fr;
    }

    .services-note {
        position: relative;
        top: auto;
    }

    .services-head--premium {
        flex-direction: column;
    }

    .services-head__panel {
        width: 100%;
        min-width: 0;
    }

    .project-start-panel {
        grid-template-columns: 1fr;
    }

    .project-start-panel__meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-start-route {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-start-panel--aligned {
        grid-template-columns: 1fr;
    }

    .project-start-panel__meta--inline {
        width: 100%;
    }

    .materials-panel {
        grid-template-columns: 1fr;
    }

    .materials-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .service-contact-box {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1240px) {
    .services-layout {
        grid-template-columns: 1fr;
    }

    .services-note {
        min-height: 0;
    }
}

@media (max-width: 1100px) {
    .hero-inner {
        grid-template-columns: 1fr;
    }

    .hero-content {
        max-width: 860px;
    }

    .services-head {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .compact-head {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portfolio-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .why-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-visual {
        min-height: 500px;
    }
}

@media (max-width: 900px) {
    :root {
        --content-gutter: 22px;
        --header-height: 72px;
    }

    .request-modal {
        padding: 14px;
    }

    .request-modal__dialog {
        max-height: calc(100dvh - 28px);
    }

    .request-modal__content {
        max-height: calc(100dvh - 28px);
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 26px;
    }

    .request-modal__intro {
        padding-right: 48px;
    }

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

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

    .materials-row {
        grid-template-columns: 1fr;
    }

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

.service-card {
        min-height: 0;
    }

    .service-card--primary {
        min-height: 0;
    }

    .header-inner {
        grid-template-columns: minmax(0, auto) auto;
        gap: 14px;
    }

    .header-actions {
        justify-self: end;
    }

    .header-actions > .header-socials,
    .header-contacts,
    .header-request-btn {
        display: none;
    }

    .nav {
        position: fixed;
        left: var(--content-gutter);
        right: var(--content-gutter);
        top: calc(var(--header-height) + 10px);
        z-index: 120;
        display: grid;
        gap: 4px;
        margin-left: 0;
        padding: 12px;
        border: 1px solid var(--line);
        border-radius: 22px;
        background: rgba(255, 255, 255, 0.97);
        box-shadow: var(--shadow);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-8px);
        transition: opacity 180ms ease,
            visibility 180ms ease,
            transform 180ms ease;
    }

    .nav.is-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .nav a {
        padding: 14px 12px;
        border-radius: 14px;
    }

    .nav a::after {
        display: none;
    }

    .nav a:hover {
        background: var(--accent-soft);
    }

    .header-mobile-contacts {
        display: grid;
        gap: 8px;
        margin-top: 8px;
        padding: 12px 4px 4px;
        border-top: 1px solid var(--line);
    }

    .header-mobile-contact {
        padding: 11px 12px;
        border: 1px solid rgba(201, 214, 229, 0.72);
        border-radius: 14px;
        background: #f8fbff;
        color: var(--text-soft);
        font-size: 13px;
        font-weight: 850;
    }

    .header-socials--mobile {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding: 2px 0 0;
    }

    .header-socials--mobile .header-social-link {
        width: 40px;
        height: 40px;
        padding: 0;
    }

    .header-socials--mobile .header-social-link::after {
        display: none;
    }

    .burger {
        display: block;
        margin-left: auto;
    }
}

@media (max-width: 680px) {
    :root {
        --content-gutter: 18px;
    }

    .request-modal {
        align-items: stretch;
        padding: 10px;
    }

    .request-modal__dialog {
        max-height: calc(100dvh - 20px);
        width: 100%;
        border-radius: 26px;
    }

    .request-modal__content {
        max-height: calc(100dvh - 20px);
        padding: 22px;
    }

    .request-modal__close {
        top: 14px;
        right: 14px;
        width: 40px;
        height: 40px;
    }

    .request-modal__intro {
        padding-right: 44px;
    }

    .request-modal__form {
        padding: 18px;
        border-radius: 22px;
    }

    .request-modal__contact-grid {
        grid-template-columns: 1fr;
    }

    .services-head {
        margin-bottom: 26px;
    }

    .service-card {
        padding: 22px;
        border-radius: 22px;
    }

h1 {
        font-size: clamp(38px, 12vw, 54px);
    }

    h2 {
        font-size: clamp(30px, 9vw, 42px);
    }

    .logo-text {
        max-width: 170px;
        white-space: normal;
        line-height: 1.05;
    }

    .hero {
        padding: 36px 0 68px;
    }

    .hero h1 {
        font-size: clamp(34px, 10vw, 48px);
        line-height: 1.06;
        letter-spacing: -0.055em;
    }

    .hero-actions {
        display: grid;
    }

    .hero-actions .btn {
        width: 100%;
        min-height: 50px;
        padding-inline: 18px;
        border-radius: 14px;
        font-size: 14px;
    }

    .hero-proof {
        align-items: flex-start;
    }

    .hero-visual {
        min-height: 420px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

@media (max-width: 420px) {
    .logo-mark {
        width: 40px;
        height: 40px;
        border-radius: 13px;
        font-size: 12px;
    }

    .logo-text strong {
        font-size: 13px;
    }

    .logo-text small {
        font-size: 11px;
    }

    .hero-badge {
        font-size: 12px;
    }

    .hero-proof strong {
        font-size: 26px;
    }

    .hero-proof span {
        font-size: 13px;
    }

    .hero-visual {
        min-height: 380px;
    }
}

@media (max-width: 920px) {
    .services-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .compact-head {
        align-items: flex-start;
        flex-direction: column;
    }

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

@media (max-width: 760px) {
    .hero--inner {
        padding: calc(var(--header-height) + 44px) 0 52px;
    }

    .service-card {
        min-height: 0;
        padding: 20px;
        border-radius: 22px;
    }

    .service-card__image {
        height: 168px;
        border-radius: 18px;
    }

    .services-note {
        padding: 22px;
        border-radius: 22px;
    }

}

@media (max-width: 1280px) {
    .services-layout {
        grid-template-columns: 1fr;
    }

    .services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .services-note {
        position: relative;
        top: auto;
    }
}

@media (max-width: 980px) {
    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .services-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        padding: 14px;
        border-radius: 20px;
    }

    .service-card__image {
        height: 154px;
    }

    .service-card h3 {
        min-height: auto;
    }
}

@media (max-width: 720px) {
    .services-head--premium {
        padding: 22px;
        border-radius: 24px;
    }

    .services-head__panel {
        grid-template-columns: 1fr;
    }

    .services-head__panel div {
        min-height: 0;
        padding: 16px;
    }

    .services-head__panel span {
        margin-bottom: 16px;
    }

    .services-head--premium .section-kicker {
        margin-bottom: 18px;
        padding: 11px 15px 11px 13px;
        border-radius: 14px;
        font-size: 12px;
        letter-spacing: 0.1em;
    }

    .services-head--premium .section-kicker::after {
        display: none;
    }

    .project-start-panel {
        padding: 22px;
        border-radius: 24px;
    }

    .project-start-badge {
        margin-bottom: 18px;
        padding: 11px 15px 11px 13px;
        border-radius: 14px;
        font-size: 12px;
        letter-spacing: 0.1em;
    }

    .project-start-panel__meta {
        grid-template-columns: 1fr;
    }

    .project-start-route {
        grid-template-columns: 1fr;
    }

    .project-start-panel__meta div {
        min-height: 120px;
        padding: 18px;
    }

    .project-route-card {
        grid-template-columns: 46px minmax(0, 1fr);
        min-height: 0;
        padding: 18px;
        border-radius: 22px;
    }

    .project-route-card__number {
        width: 42px;
        height: 42px;
        border-radius: 14px;
    }

    .project-start-panel__meta--inline {
        grid-template-columns: 1fr;
    }

    .project-start-panel__meta--inline div {
        min-height: 112px;
    }

    .materials-panel {
        padding: 22px;
        border-radius: 24px;
    }

    .materials-badge {
        margin-bottom: 18px;
        padding: 11px 15px 11px 13px;
        border-radius: 14px;
        font-size: 12px;
        letter-spacing: 0.1em;
    }

    .materials-panel__meta {
        grid-template-columns: 1fr;
    }

    .materials-cards {
        grid-template-columns: 1fr;
    }

    .materials-panel__meta div {
        min-height: 112px;
    }

    .material-preview-card__image {
        height: 184px;
    }

    .material-preview-card__body h3 {
        min-height: 0;
    }

    .material-preview-card__body p {
        min-height: 0;
    }

    .service-contact-box {
        padding: 22px;
        border-radius: 24px;
    }

    .service-contact-points {
        grid-template-columns: 1fr;
    }

    .service-contact-grid {
        grid-template-columns: 1fr;
    }

    .service-contact-card--primary {
        grid-column: auto;
    }

    .service-contact-card {
        min-height: 86px;
        border-radius: 20px;
    }

    .service-contact-content h2 {
        font-size: clamp(30px, 9vw, 42px);
    }
}

/* =========================================================
   WORKS PAGE — CONSOLIDATED STYLES
   Единый минималистичный слой страницы «Работы».
   Стили ниже отфильтрованы по реальным классам works.php и partials.
   Временные патчи, дубли и старые варианты блоков удалены.
   ========================================================= */

:root {
    --works-case-thumb-height: 78px; /* Миниатюры инженерных кейсов: 74–90px. */
}

.works-page-v2 {
    overflow: hidden;
}

.works-project-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.works-project-card__placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    font-weight: 800;
    letter-spacing: -0.08em;
    color: rgba(37, 99, 235, 0.3);
    background: linear-gradient(135deg, #edf5ff, #ffffff);
}

.works-project-card__meta span,
.works-method-steps span {
    color: var(--accent, #2563eb);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.works-direction-section,
.works-gallery-section,
.works-method-section,
.works-contact-section {
    padding: clamp(54px, 7vw, 96px) 0;
}

.works-direction-panel {
    position: relative;
    padding: clamp(28px, 5vw, 60px);
    border: 1px solid rgba(201, 214, 229, 0.95);
    border-radius: var(--radius-xl, 34px);
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.15), transparent 32%),
        linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,250,255,0.92));
    box-shadow: var(--shadow-soft, 0 14px 40px rgba(15, 23, 42, 0.06));
    overflow: hidden;
}

.works-direction-panel::after {
    content: "";
    position: absolute;
    right: -70px;
    bottom: -90px;
    width: 280px;
    height: 280px;
    border: 48px solid rgba(37, 99, 235, 0.06);
    border-radius: 50%;
}

.works-method-content h2 {
    margin: 10px 0 16px;
    font-size: clamp(32px, 4vw, 56px);
    line-height: 1;
    letter-spacing: -0.055em;
    color: var(--text, #101827);
}

.works-method-content p {
    margin: 0;
    color: var(--muted, #64748b);
    font-size: 17px;
    line-height: 1.7;
}

.works-direction-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 36px;
}

.works-direction-grid article {
    padding: 24px;
    min-height: 210px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.72);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.works-direction-grid article:hover {
    transform: translateY(-6px);
    border-color: rgba(37, 99, 235, 0.35);
    box-shadow: 0 24px 58px rgba(15, 23, 42, 0.08);
}

.works-direction-grid span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 28px;
    border-radius: 14px;
    background: var(--accent-soft, #dbeafe);
    color: var(--accent, #2563eb);
    font-weight: 800;
}

.works-direction-grid h3,
.works-method-steps h3 {
    margin: 0 0 10px;
    font-size: 22px;
    line-height: 1.12;
    letter-spacing: -0.035em;
    color: var(--text, #101827);
}

.works-direction-grid p,
.works-method-steps p {
    margin: 0;
    color: var(--muted, #64748b);
    line-height: 1.65;
}

.works-showcase-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.works-project-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.055);
    overflow: hidden;
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.works-project-card:hover {
    transform: translateY(-5px);
    border-color: rgba(37, 99, 235, 0.28);
    box-shadow: 0 28px 68px rgba(15, 23, 42, 0.09);
}

.works-project-card--featured {
    grid-column: auto;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border-radius: 28px;
    border-color: rgba(37, 99, 235, 0.24);
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.06), transparent 34%),
        linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,250,255,0.94));
}

.works-project-card__media {
    position: relative;
    display: block;
    height: 236px;
    background: #eef5ff;
    overflow: hidden;
}

.works-project-card--featured .works-project-card__media {
    height: 236px;
    min-height: 0;
}

.works-project-card__media img {
    transition: transform 0.5s ease;
}

.works-project-card:hover .works-project-card__media img {
    transform: scale(1.045);
}

.works-project-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 44%, rgba(15, 23, 42, 0.34));
    opacity: 0.58;
    pointer-events: none;
}

.works-project-card__number {
    position: absolute;
    left: 16px;
    top: 16px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.86);
    color: var(--accent, #2563eb);
    font-weight: 900;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(12px);
}

.works-project-card--featured .works-project-card__number {
    width: 44px;
    height: 44px;
    border-radius: 15px;
}

.works-project-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 22px;
}

.works-project-card--featured .works-project-card__body {
    justify-content: flex-start;
    padding: 22px;
}

.works-project-card__meta {
    margin-bottom: 12px;
}

.works-project-card h3 {
    margin: 0 0 12px;
    font-size: clamp(21px, 1.55vw, 25px);
    line-height: 1.1;
    letter-spacing: -0.04em;
    color: var(--text, #101827);
}

.works-project-card:not(.works-project-card--featured) h3 {
    font-size: 22px;
}

.works-project-card h3 a {
    color: inherit;
    text-decoration: none;
}

.works-project-card p {
    display: -webkit-box;
    margin: 0 0 18px;
    color: var(--muted, #64748b);
    line-height: 1.65;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.works-project-card--featured p {
    font-size: inherit;
    line-height: 1.65;
    -webkit-line-clamp: 3;
}

.works-project-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: fit-content;
    margin-top: auto;
    padding: 12px 16px;
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 999px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(219,234,254,0.62));
    color: var(--accent, #2563eb);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.92), 0 12px 28px rgba(37, 99, 235, 0.08);
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.works-project-card__link {
    align-self: flex-start;
}

.works-project-card__link::after {
    content: "";
    width: 7px;
    height: 7px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.works-project-card:hover .works-project-card__link {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.42);
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    color: var(--white, #ffffff);
    box-shadow: 0 16px 34px rgba(37, 99, 235, 0.22);
}

.works-project-card:hover .works-project-card__link::after {
    transform: translateX(4px) rotate(45deg);
}

/* Service cards use the same premium pill link, but are pinned to the lower-left corner for a cleaner grid. */
.service-card .works-project-card__link {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 46px;
    max-width: 100%;
    margin-top: auto;
    margin-left: 0;
    margin-bottom: 0;
    padding: 0 18px;
    line-height: 1;
    white-space: nowrap;
    text-align: center;
}

.service-card > .works-project-card__link {
    margin-top: auto;
}

.service-card > p + .works-project-card__link,
.service-card > ul + .works-project-card__link,
.service-card > .service-card__image + .works-project-card__link,
.service-card > h3 + .works-project-card__link {
    margin-top: auto;
}

.service-card > p:last-of-type {
    margin-bottom: 18px;
}

.service-card .works-project-card__link::after {
    flex: 0 0 auto;
    margin-left: 0;
    transform: translateY(-1px) rotate(45deg);
}

.service-card:hover .works-project-card__link::after {
    transform: translate(4px, -1px) rotate(45deg);
}

.works-method-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(28px, 5vw, 68px);
    align-items: start;
}

.works-method-content {
    position: sticky;
    top: calc(var(--header-height, 78px) + 28px);
}

.works-method-steps {
    display: grid;
    gap: 16px;
}

.works-method-steps article {
    position: relative;
    padding: 28px 28px 28px 34px;
    border: 1px solid rgba(201, 214, 229, 0.95);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 16px 44px rgba(15, 23, 42, 0.045);
}

.works-method-steps article::before {
    content: "";
    position: absolute;
    left: 0;
    top: 28px;
    bottom: 28px;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
}

.works-method-steps h3 {
    margin-top: 9px;
}

.works-empty-state {
    padding: 54px 28px;
    border: 1px dashed rgba(37, 99, 235, 0.35);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.75);
    text-align: center;
}

.works-empty-state span {
    display: block;
    font-size: 54px;
    color: var(--accent, #2563eb);
}

.works-empty-state h3 {
    margin: 10px 0;
    font-size: 28px;
    letter-spacing: -0.04em;
}

.works-empty-state p {
    max-width: 560px;
    margin: 0 auto 24px;
    color: var(--muted, #64748b);
    line-height: 1.7;
}

@media (max-width: 1180px) {
.works-method-grid {
        grid-template-columns: 1fr;
    }

    .works-direction-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .works-method-content {
        position: static;
    }
}

@media (max-width: 1180px) {
    .works-showcase-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .works-project-card--featured {
        grid-column: auto;
    }
}

@media (max-width: 900px) {
    .works-showcase-grid {
        grid-template-columns: 1fr;
    }

    .works-project-card--featured {
        display: flex;
        min-height: 100%;
    }

    .works-project-card__media,
    .works-project-card--featured .works-project-card__media {
        height: clamp(190px, 44vw, 240px);
        min-height: 0;
    }

    .works-project-card--featured .works-project-card__body {
        padding: 20px;
    }
}

@media (max-width: 680px) {

    .works-direction-grid {
        grid-template-columns: 1fr;
    }

    .works-direction-grid article {
        min-height: auto;
    }

    .works-direction-panel {
        border-radius: 26px;
    }
}


/* Works page: unified section headers use Services premium heading style. */
.works-page-v2 .services-head--premium,
.works-ba-section--light .services-head--premium,
.engineering-cases-section .services-head--premium,
.works-materials-premium .services-head--premium {
    margin-bottom: clamp(28px, 4vw, 44px);
}

.works-method-steps--grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1180px) {
    .works-method-steps--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .works-method-steps--grid {
        grid-template-columns: 1fr;
    }
}

.works-contact-section--service {
    padding-top: clamp(40px, 6vw, 82px);
}


.works-story-section,
.works-application-section {
    position: relative;
    padding: clamp(64px, 8vw, 112px) 0;
}

.works-story-section,
.works-application-section {
    background:
        radial-gradient(circle at 8% 8%, rgba(37, 99, 235, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(248, 251, 255, 0.96), rgba(255, 255, 255, 1));
}

.works-story-timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(28px, 4vw, 46px);
}

.works-story-timeline::before {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    top: 38px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(37, 99, 235, 0.34), transparent);
}

.works-story-timeline article {
    position: relative;
    min-height: 250px;
    padding: 28px;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 30px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(241, 247, 255, 0.88)),
        repeating-linear-gradient(135deg, rgba(37, 99, 235, 0.045) 0 1px, transparent 1px 18px);
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.07);
    overflow: hidden;
}

.works-story-timeline article::after {
    content: "";
    position: absolute;
    right: -12px;
    bottom: -22px;
    width: 92px;
    height: 92px;
    border: 12px solid rgba(37, 99, 235, 0.08);
    border-radius: 50%;
    box-shadow: inset 0 0 0 14px rgba(37, 99, 235, 0.04);
}

.works-story-timeline span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent, #2563eb);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.works-story-timeline h3 {
    margin: 22px 0 10px;
    color: var(--dark, #0f172a);
    font-size: clamp(21px, 2vw, 28px);
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.works-story-timeline p,
.works-application-grid small {
    color: var(--muted, #64748b);
    line-height: 1.65;
}

.works-materials-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(24px, 5vw, 64px);
    align-items: start;
}

.works-application-grid article {
    position: relative;
    min-height: 150px;
    padding: 24px;
    border: 1px solid rgba(201, 214, 229, 0.95);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 54px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.works-application-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(28px, 4vw, 46px);
}

.works-application-grid article {
    min-height: 180px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.works-application-grid article:hover {
    transform: translateY(-4px);
    box-shadow: 0 26px 70px rgba(15, 23, 42, 0.1);
}

.works-application-grid span {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: rgba(37, 99, 235, 0.08);
    font-size: 28px;
}

.works-application-grid span .icon-svg {
    width: 26px;
    height: 26px;
}

.works-application-grid strong {
    display: block;
    margin-top: 26px;
    color: var(--dark, #0f172a);
    font-size: 22px;
    letter-spacing: -0.04em;
}

.works-application-grid small {
    display: block;
    margin-top: 8px;
    font-size: 14px;
}

@media (max-width: 1080px) {
    .works-story-timeline,
.works-application-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .works-materials-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .works-story-timeline,
.works-application-grid {
        grid-template-columns: 1fr;
    }

    .works-story-timeline::before {
        display: none;
    }
}

.works-ba-section--light {
    position: relative;
    padding: clamp(72px, 8vw, 118px) 0;
    overflow: hidden;
    color: var(--text, #111827);
    background:
        radial-gradient(circle at 83% 7%, rgba(37, 99, 235, 0.13), transparent 34%),
        radial-gradient(circle at 8% 92%, rgba(14, 165, 233, 0.10), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f6f9fd 48%, #eef5ff 100%);
}

.works-ba-section--light::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.72;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.075) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.075) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at 76% 6%, #000 0%, transparent 50%);
}

.works-ba-section--light::after {
    content: "";
    position: absolute;
    width: 440px;
    height: 440px;
    top: -116px;
    right: 3vw;
    opacity: 0.12;
    background:
        radial-gradient(circle, transparent 0 28%, #0f4fb8 29% 31%, transparent 32% 47%, #0f4fb8 48% 50%, transparent 51%),
        conic-gradient(from 0deg, transparent 0 8deg, #0f4fb8 8deg 14deg, transparent 14deg 30deg);
    border-radius: 50%;
    filter: drop-shadow(0 18px 38px rgba(37, 99, 235, 0.20));
}

.works-ba-section--light .container {
    position: relative;
    z-index: 2;
}.works-ba-section--light .section-kicker {
    color: var(--primary, #0f4fb8);
    border-color: rgba(15, 79, 184, 0.16);
    background: rgba(37, 99, 235, 0.07);
}.works-ba-section--light .works-ba-list {
    display: grid;
    gap: 14px;
}

.works-ba-section--light .works-ba-case {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) minmax(210px, 1.2fr) 42px minmax(210px, 1.2fr) minmax(220px, 1fr) minmax(156px, 0.76fr);
    gap: 22px;
    align-items: center;
    padding: 22px;
    border: 1px solid rgba(15, 79, 184, 0.12);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(247,250,255,0.94)),
        radial-gradient(circle at 18% 0%, rgba(37, 99, 235, 0.10), transparent 38%);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.08);
}

.works-ba-section--light .works-ba-info {
    min-width: 0;
}

.works-ba-section--light .works-ba-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    color: #fff;
    font-size: 25px;
    border-radius: 18px;
    background: linear-gradient(135deg, #0f4fb8, #1d6df2);
    box-shadow: 0 16px 34px rgba(37, 99, 235, 0.24);
}

.works-ba-section--light .works-ba-icon .icon-svg {
    width: 25px;
    height: 25px;
}

.works-ba-section--light .works-ba-info h3 {
    margin: 0 0 12px;
    color: var(--text, #111827);
    font-size: clamp(21px, 2vw, 27px);
    line-height: 1.16;
    letter-spacing: -0.03em;
}

.works-ba-section--light .works-ba-info p {
    margin: 0;
    color: var(--muted, #5f6b7a);
    font-size: 15px;
    line-height: 1.62;
}

.works-ba-section--light .works-ba-photo {
    position: relative;
    min-width: 0;
    text-align: center;
}

.works-ba-section--light .works-ba-photo span {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 9px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(30, 41, 59, 0.84);
    border: 1px solid rgba(255,255,255,0.44);
    backdrop-filter: blur(8px);
}

.works-ba-section--light .works-ba-photo--after span {
    background: linear-gradient(135deg, #0f4fb8, #1d6df2);
    border-color: rgba(255,255,255,0.52);
}

.works-ba-section--light .works-ba-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1.52 / 1;
    object-fit: cover;
    border-radius: 14px;
    background: #eef4fb;
    border: 1px solid rgba(15, 79, 184, 0.12);
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.12);
}

.works-ba-section--light .works-ba-photo small {
    display: block;
    margin-top: 9px;
    color: var(--text, #111827);
    font-size: 13px;
}

.works-ba-section--light .works-ba-arrow {
    display: grid;
    place-items: center;
    color: var(--primary, #0f4fb8);
    font-size: 42px;
    line-height: 1;
    text-shadow: 0 12px 26px rgba(37, 99, 235, 0.22);
}

.works-ba-section--light .works-ba-arrow .icon-svg {
    width: 24px;
    height: 24px;
}

.works-ba-section--light .works-ba-steps h4 {
    margin: 0 0 14px;
    color: var(--text, #111827);
    font-size: 17px;
    letter-spacing: -0.02em;
}

.works-ba-section--light .works-ba-steps ul {
    display: grid;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.works-ba-section--light .works-ba-steps li {
    position: relative;
    padding-left: 24px;
    color: var(--muted, #5f6b7a);
    font-size: 14px;
    line-height: 1.35;
}

.works-ba-section--light .works-ba-steps li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 3px;
    width: 7px;
    height: 11px;
    border-right: 2px solid var(--primary, #0f4fb8);
    border-bottom: 2px solid var(--primary, #0f4fb8);
    transform: rotate(42deg);
}

.works-ba-section--light .works-ba-specs {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-radius: 18px;
    background: linear-gradient(180deg, #f8fbff, #eef5ff);
    border: 1px solid rgba(15, 79, 184, 0.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
}

.works-ba-section--light .works-ba-specs div {
    display: grid;
    gap: 3px;
    padding-left: 18px;
    border-left: 2px solid rgba(15, 79, 184, 0.58);
}

.works-ba-section--light .works-ba-specs span {
    color: var(--muted, #5f6b7a);
    font-size: 12px;
}

.works-ba-section--light .works-ba-specs strong {
    color: var(--primary, #0f4fb8);
    font-size: 15px;
    line-height: 1.2;
}

.works-ba-section--light .works-ba-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    max-width: 1120px;
    margin: 18px auto 0;
    padding: 14px 16px 14px 20px;
    border-radius: 18px;
    border: 1px solid rgba(15, 79, 184, 0.14);
    background: rgba(255,255,255,0.84);
    box-shadow: 0 18px 54px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(10px);
}

.works-ba-section--light .works-ba-bottom p {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    color: var(--muted, #5f6b7a);
    font-size: 14px;
    line-height: 1.45;
}

.works-ba-section--light .works-ba-bottom p span {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    color: var(--primary, #0f4fb8);
    border: 1px solid rgba(15, 79, 184, 0.20);
    border-radius: 10px;
    background: #f4f8ff;
}

@media (max-width: 1180px) {
    .works-ba-section--light .works-ba-case {
        grid-template-columns: 1fr 1fr;
    }

    .works-ba-section--light .works-ba-info,
.works-ba-section--light .works-ba-steps,
.works-ba-section--light .works-ba-specs {
        grid-column: auto;
    }

    .works-ba-section--light .works-ba-arrow {
        display: none;
    }
}

@media (max-width: 760px) {.works-ba-section--light .works-ba-case {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .works-ba-section--light .works-ba-bottom {
        align-items: stretch;
        flex-direction: column;
    }

    .works-ba-section--light .works-ba-bottom .btn {
        width: 100%;
        justify-content: center;
    }
}

.engineering-cases-section {
    position: relative;
    overflow: hidden;
    padding: clamp(70px, 8vw, 120px) 0;
    background:
        radial-gradient(circle at 86% 4%, rgba(21, 94, 199, 0.12), transparent 34%),
        linear-gradient(180deg, #f8fbff 0%, #ffffff 46%, #f5f8fc 100%);
}

.engineering-cases-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .5;
    background-image:
        linear-gradient(rgba(15, 79, 164, .08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15, 79, 164, .08) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at 84% 12%, #000 0%, transparent 46%);
}.engineering-cases-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.engineering-case-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 18px;
    border: 1px solid rgba(136, 156, 184, .28);
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.86)),
        radial-gradient(circle at top right, rgba(22, 101, 216, .10), transparent 42%);
    box-shadow: 0 22px 60px rgba(17, 38, 71, .08);
    overflow: hidden;
}

.engineering-case-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255,255,255,.8), transparent 30%, rgba(20, 94, 205, .06));
}

.engineering-case-card > * {
    position: relative;
    z-index: 1;
}

.engineering-case-card__top {
    min-height: 78px;
}

.engineering-case-card__badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 12px;
    border-radius: 9px;
    color: #fff;
    background: linear-gradient(135deg, #0d4faf, #1767db);
    box-shadow: 0 12px 22px rgba(17, 92, 207, .24);
    font-size: 13px;
    font-weight: 800;
}

.engineering-case-card h3 {
    margin: 12px 0 0;
    color: #111827;
    font-size: clamp(20px, 2vw, 25px);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.engineering-case-card__media {
    height: 220px;
    margin-top: 14px;
    border-radius: 16px;
    overflow: hidden;
    background: #eef3f8;
    border: 1px solid rgba(136, 156, 184, .22);
}

.engineering-case-card__media img,
.engineering-case-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.engineering-case-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-top: 12px;
}

.engineering-case-thumb {
    height: 80px;
    border-radius: 10px;
    overflow: hidden;
    background: #eef4fb;
    border: 1px solid rgba(24, 92, 179, .16);
}

.engineering-case-story {
    display: grid;
    gap: 0;
    margin-top: 18px;
    border: 1px solid rgba(136, 156, 184, .20);
    border-radius: 16px;
    overflow: hidden;
    background: rgba(255,255,255,.62);
}

.engineering-case-story__item {
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 12px;
    padding: 14px 14px;
    border-bottom: 1px solid rgba(136, 156, 184, .18);
}

.engineering-case-story__item:last-child {
    border-bottom: 0;
}

.engineering-case-story__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    color: #0d57c4;
    background: #eef5ff;
    border: 1px solid rgba(17, 92, 207, .22);
    font-weight: 900;
}

.engineering-case-story__icon .icon-svg {
    width: 19px;
    height: 19px;
}

.engineering-case-story strong,
.engineering-case-checks li {
    color: #0f172a;
    font-weight: 800;
}

.engineering-case-story p {
    margin: 4px 0 0;
    color: #465466;
    font-size: 14px;
    line-height: 1.55;
}

.engineering-case-checks {
    display: grid;
    gap: 14px;
    margin: 22px 0 0;
    padding: 0 10px;
    list-style: none;
}

.engineering-case-checks li {
    position: relative;
    padding-left: 34px;
    font-size: 15px;
    line-height: 1.45;
}

.engineering-case-checks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: -1px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    color: #0d57c4;
    border: 1px solid rgba(17, 92, 207, .42);
    font-size: 13px;
    font-weight: 900;
}

.engineering-case-checks li::after {
    content: "";
    position: absolute;
    left: 8px;
    top: 5px;
    width: 7px;
    height: 11px;
    border-right: 2px solid #0d57c4;
    border-bottom: 2px solid #0d57c4;
    transform: rotate(42deg);
}

.engineering-case-specs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-top: auto;
    padding-top: 22px;
}

.engineering-case-spec {
    min-height: 62px;
    padding: 10px 10px;
    background: linear-gradient(180deg, #f4f8ff, #edf4ff);
    border-right: 1px solid rgba(17, 92, 207, .12);
}

.engineering-case-spec:first-child {
    border-radius: 14px 0 0 14px;
}

.engineering-case-spec:last-child {
    border-radius: 0 14px 14px 0;
    border-right: 0;
}

.engineering-case-spec span {
    display: block;
    color: #637083;
    font-size: 12px;
    line-height: 1.2;
}

.engineering-case-spec strong {
    display: block;
    margin-top: 4px;
    color: #0d57c4;
    font-size: 14px;
    line-height: 1.15;
}

.engineering-cases-note {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
    margin-top: 26px;
    padding: 20px 26px;
    border: 1px solid rgba(17, 92, 207, .20);
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(239,246,255,.94));
    box-shadow: 0 20px 50px rgba(17, 38, 71, .07);
}

.engineering-cases-note__icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    color: #0d57c4;
    border: 1px solid rgba(17, 92, 207, .26);
    background: #fff;
    font-weight: 900;
}

.engineering-cases-note__icon .icon-svg {
    width: 22px;
    height: 22px;
}

.engineering-cases-note strong {
    color: #1f2a37;
    font-size: 17px;
}

.engineering-cases-note p {
    margin: 4px 0 0;
    color: #596579;
}

.engineering-cases-note a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 54px;
    padding: 0 28px;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, #0d4faf, #1767db);
    text-decoration: none;
    font-weight: 800;
    box-shadow: 0 16px 34px rgba(17, 92, 207, .22);
}

.engineering-cases-note a span {
    font-size: 22px;
    line-height: 1;
}

.engineering-cases-note a span .icon-svg {
    width: 18px;
    height: 18px;
}

@media (max-width: 1180px) {.engineering-cases-grid {
        grid-template-columns: 1fr;
    }

    .engineering-case-card {
        max-width: 760px;
    }
}

@media (max-width: 720px) {
    .engineering-cases-section {
        padding: 56px 0;
    }

    .engineering-case-card {
        padding: 14px;
        border-radius: 20px;
    }

    .engineering-case-card__media {
        height: 190px;
    }

    .engineering-case-thumbs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .engineering-case-thumb {
        height: 76px;
    }

    .engineering-case-specs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .engineering-case-spec,
.engineering-case-spec:first-child,
.engineering-case-spec:last-child {
        border-radius: 12px;
        border-right: 0;
    }

    .engineering-cases-note {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .engineering-cases-note a {
        width: 100%;
    }
}

.works-materials-premium {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 4%, rgba(31, 119, 255, .10), transparent 34%),
        linear-gradient(180deg, #f8fbff 0%, #ffffff 48%, #f6f9fd 100%);
}

.works-materials-premium::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(35, 111, 204, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(35, 111, 204, .055) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%);
    opacity: .65;
}

.works-materials-premium .container {
    position: relative;
    z-index: 1;
}.works-materials-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.works-material-card {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 20px;
    min-height: 258px;
    padding: 18px;
    border: 1px solid rgba(21, 77, 143, .13);
    border-radius: 20px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 18px 50px rgba(15, 44, 84, .07);
    backdrop-filter: blur(10px);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.works-material-card:hover {
    transform: translateY(-4px);
    border-color: rgba(10, 91, 211, .28);
    box-shadow: 0 24px 70px rgba(15, 44, 84, .12);
}

.works-material-card__image {
    overflow: hidden;
    min-height: 220px;
    border-radius: 14px;
    background:
        linear-gradient(135deg, rgba(238, 244, 252, .92), rgba(255,255,255,.96));
    border: 1px solid rgba(21, 77, 143, .09);
}

.works-material-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.works-material-card__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.works-material-card__body h3 {
    margin: 4px 0 8px;
    color: #101827;
    font-size: 30px;
    line-height: 1;
    letter-spacing: -.045em;
}

.works-material-card__body p {
    margin: 0;
    min-height: 54px;
    color: #3a4657;
    font-size: 16px;
    line-height: 1.5;
}

.works-material-card__features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 26px 0 18px;
}

.works-material-feature {
    text-align: center;
}

.works-material-feature span {
    display: inline-grid;
    width: 42px;
    height: 42px;
    place-items: center;
    margin-bottom: 8px;
    border-radius: 50%;
    color: #075bd8;
    font-size: 20px;
    background: linear-gradient(180deg, #f7fbff, #edf5ff);
    border: 1px solid rgba(7, 91, 216, .12);
    box-shadow: inset 0 0 0 4px rgba(7, 91, 216, .025);
}

.works-material-feature span .icon-svg {
    width: 20px;
    height: 20px;
}

.works-material-feature small {
    display: block;
    color: #354153;
    font-size: 12px;
    line-height: 1.28;
}

.works-material-card__note {
    margin-top: auto;
    padding: 12px 14px;
    border-radius: 10px;
    color: #075bd8;
    text-align: center;
    font-weight: 700;
    background: linear-gradient(180deg, #f3f8ff, #eaf3ff);
    border: 1px solid rgba(7, 91, 216, .08);
}

.works-materials-cta {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    margin-top: 20px;
    padding: 22px 28px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(239,246,255,.86));
    border: 1px solid rgba(21, 77, 143, .13);
    box-shadow: 0 18px 46px rgba(15, 44, 84, .06);
}

.works-materials-cta__icon {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 16px;
    color: #075bd8;
    font-size: 28px;
    background: #fff;
    border: 1px solid rgba(7, 91, 216, .18);
}

.works-materials-cta__icon .icon-svg {
    width: 26px;
    height: 26px;
}

.works-materials-cta strong {
    display: block;
    margin-bottom: 4px;
    color: #183254;
    font-size: 19px;
}

.works-materials-cta p {
    margin: 0;
    color: #506177;
    font-size: 16px;
}

.works-materials-cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-width: 290px;
    padding: 17px 28px;
    border-radius: 10px;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    background: linear-gradient(135deg, #075bd8, #1177ff);
    box-shadow: 0 14px 30px rgba(7, 91, 216, .24);
}

.works-materials-cta a span {
    font-size: 24px;
    line-height: 1;
}

.works-materials-cta a span .icon-svg {
    width: 18px;
    height: 18px;
}

@media (max-width: 1180px) {
    .works-materials-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .works-material-card {
        grid-template-columns: 150px minmax(0, 1fr);
    }
}

@media (max-width: 900px) {.works-materials-cta {
        grid-template-columns: 1fr;
    }

    .works-materials-cta a {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 720px) {
    .works-materials-grid {
        grid-template-columns: 1fr;
    }

    .works-material-card {
        grid-template-columns: 1fr;
    }

    .works-material-card__image {
        min-height: 260px;
    }

    .works-material-card__body p {
        min-height: 0;
    }
}

@media (max-width: 520px) {.works-material-card__features {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .works-material-feature {
        display: flex;
        align-items: center;
        gap: 10px;
        text-align: left;
    }

    .works-material-feature span {
        margin: 0;
        flex: 0 0 auto;
    }
}

@media (max-width: 900px) {
.works-ba-section--light,
.engineering-cases-section,
.works-materials-premium {
        overflow: hidden;
    }
.works-ba-section--light .container,
.engineering-cases-section .container,
.works-materials-premium .container {
        width: min(100% - 28px, var(--container, 1200px));
    }.works-ba-section--light .works-ba-case {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 18px;
        border-radius: 24px;
    }

    .works-ba-section--light .works-ba-info {
        display: grid;
        grid-template-columns: 58px 1fr;
        gap: 14px;
        align-items: start;
    }

    .works-ba-section--light .works-ba-icon {
        width: 58px;
        height: 58px;
        border-radius: 18px;
    }

    .works-ba-section--light .works-ba-info h3 {
        margin-top: 0;
        font-size: 22px;
    }

    .works-ba-section--light .works-ba-photo {
        min-height: 230px;
        border-radius: 18px;
    }

    .works-ba-section--light .works-ba-arrow {
        display: grid;
        transform: rotate(90deg);
        font-size: 34px;
        margin: -4px 0;
    }

    .works-ba-section--light .works-ba-steps,
.works-ba-section--light .works-ba-specs {
        border-radius: 18px;
    }

    .works-ba-section--light .works-ba-specs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .engineering-cases-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .engineering-case-card {
        max-width: none;
        padding: 16px;
        border-radius: 24px;
    }

    .engineering-case-card h3 {
        font-size: 22px;
        line-height: 1.15;
    }

    .engineering-case-card__media {
        height: 250px;
        border-radius: 18px;
    }

    .engineering-case-thumbs {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 8px;
    }

    .engineering-case-thumb {
        height: 78px;
        border-radius: 12px;
    }

    .engineering-case-story {
        margin-top: 16px;
        border-radius: 18px;
    }

    .engineering-case-story__item {
        grid-template-columns: 42px 1fr;
        gap: 12px;
        padding: 14px;
    }

    .engineering-case-specs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding-top: 16px;
    }

    .engineering-case-spec,
.engineering-case-spec:first-child,
.engineering-case-spec:last-child {
        border-radius: 13px;
        border-right: 0;
    }

    .engineering-cases-note {
        grid-template-columns: auto 1fr;
        gap: 14px;
        padding: 18px;
        border-radius: 18px;
    }

    .engineering-cases-note a {
        grid-column: 1 / -1;
        width: 100%;
    }.works-materials-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .works-material-card {
        grid-template-columns: 150px 1fr;
        gap: 18px;
        padding: 14px;
        border-radius: 22px;
    }

    .works-material-card__image {
        min-height: 210px;
        border-radius: 18px;
    }

    .works-material-card__body h3 {
        font-size: 28px;
    }

    .works-material-card__features {
        margin: 18px 0 14px;
        gap: 6px;
    }

    .works-material-feature span {
        width: 38px;
        height: 38px;
        font-size: 18px;
    }

    .works-materials-cta {
        grid-template-columns: auto 1fr;
        padding: 18px;
        border-radius: 18px;
    }

    .works-materials-cta a {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 560px) {
    .works-ba-section--light,
.engineering-cases-section,
.works-materials-premium {
        padding: 48px 0;
    }

    .section-kicker {
        font-size: 13px;
    }.works-ba-section--light .works-ba-case {
        padding: 14px;
        border-radius: 20px;
    }

    .works-ba-section--light .works-ba-info {
        grid-template-columns: 1fr;
    }

    .works-ba-section--light .works-ba-photo {
        min-height: 210px;
    }

    .works-ba-section--light .works-ba-specs {
        grid-template-columns: 1fr;
    }

    .works-ba-section--light .works-ba-bottom {
        padding: 14px;
        border-radius: 18px;
    }

    .engineering-case-card {
        padding: 14px;
        border-radius: 20px;
    }

    .engineering-case-card__media {
        height: 220px;
    }

    .engineering-case-thumbs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .engineering-case-thumb {
        height: 96px;
    }

    .engineering-case-story__item {
        grid-template-columns: 1fr;
    }

    .engineering-case-story__icon {
        width: 42px;
        height: 42px;
    }

    .engineering-case-specs {
        grid-template-columns: 1fr;
    }

    .engineering-cases-note {
        grid-template-columns: 1fr;
    }.works-material-card {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .works-material-card__image {
        min-height: 250px;
    }

    .works-material-card__features {
        grid-template-columns: 1fr;
    }

    .works-material-feature {
        display: flex;
        align-items: center;
        gap: 10px;
        text-align: left;
        padding: 8px 10px;
        border-radius: 12px;
        background: #f7fbff;
        border: 1px solid rgba(7, 91, 216, .08);
    }

    .works-material-feature span {
        margin: 0;
        flex: 0 0 auto;
    }

    .works-materials-cta {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 380px) {
    .engineering-case-thumb {
        height: 84px;
    }

    .works-material-card__image {
        min-height: 220px;
    }
}

/* Настройка размера миниатюр в инженерных кейсах. */
.engineering-case-thumb {
    height: var(--works-case-thumb-height);
}


/*
   Certificates page
   Галерея документов с увеличением и листанием.
*/

.certificates-section {
    position: relative;
}

.certificates-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: clamp(18px, 2vw, 28px);
    margin-top: clamp(28px, 4vw, 46px);
}

.certificate-card {
    position: relative;
    display: grid;
    gap: 16px;
    width: 100%;
    padding: 14px;
    border: 1px solid rgba(201, 214, 229, .92);
    border-radius: 26px;
    color: inherit;
    text-align: left;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: var(--shadow-soft);
    cursor: pointer;
    transition: transform 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease;
}

.certificate-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(135deg, rgba(37, 99, 235, .10), transparent 45%);
    opacity: 0;
    transition: opacity 180ms ease;
}

.certificate-card:hover,
.certificate-card.is-active {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, .34);
    box-shadow: 0 24px 68px rgba(15, 23, 42, .10);
}

.certificate-card:hover::before,
.certificate-card.is-active::before {
    opacity: 1;
}

.certificate-card:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .24);
    outline-offset: 4px;
}

.certificate-card__media {
    display: grid;
    place-items: center;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    border: 1px solid rgba(37, 99, 235, .10);
    border-radius: 20px;
    background: #ffffff;
}

.certificate-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 10px;
    user-select: none;
    pointer-events: none;
}

.certificate-card__body {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 5px;
}

.certificate-card__body strong {
    font-size: 16px;
    font-weight: 900;
    letter-spacing: -0.025em;
}

.certificate-card__body span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
}

.certificates-empty {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 20px;
    align-items: start;
    margin-top: clamp(28px, 4vw, 46px);
    padding: clamp(24px, 4vw, 36px);
    border: 1px dashed rgba(37, 99, 235, .32);
    border-radius: 28px;
    background: linear-gradient(135deg, #ffffff 0%, #f3f8ff 100%);
    box-shadow: var(--shadow-soft);
}

.certificates-empty__icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: var(--accent-soft);
    font-size: 26px;
}

.certificates-empty h3 {
    margin-bottom: 8px;
    font-size: clamp(24px, 2.2vw, 34px);
}

.certificates-empty p {
    max-width: 760px;
    line-height: 1.75;
}

@media (max-width: 720px) {
    .certificates-grid {
        grid-template-columns: 1fr;
    }

    .certificate-card {
        padding: 12px;
        border-radius: 22px;
    }

    .certificate-card__media {
        border-radius: 17px;
    }

    .certificates-empty {
        grid-template-columns: 1fr;
    }
}

/*
   Universal image carousel
   Чистая карусель только для изображений.
   Изображение занимает всю площадь блока.
*/

.studio-image-carousel {
    position: relative;
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
}

.studio-image-carousel__viewport {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 460px;
    aspect-ratio: 16 / 10;
    border: 1px solid rgba(37, 99, 235, .14);
    border-radius: 34px;
    background: #eef4fb;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .11);
    isolation: isolate;
    contain: layout paint;
    touch-action: pan-y;
}

.studio-image-carousel__slide {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    pointer-events: none;
    z-index: 1;
    opacity: 0;
    visibility: hidden;
    transform: scale(1.015);
    transition: opacity .42s ease, visibility .42s ease, transform .7s ease;
    will-change: opacity, transform;
}

.studio-image-carousel__slide.is-active {
    pointer-events: auto;
    z-index: 3;
    opacity: 1;
    visibility: visible;
    transform: scale(1);
}

.studio-image-carousel__slide:focus-visible,
.studio-image-carousel__arrow:focus-visible,
.studio-image-carousel__dot:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .38);
    outline-offset: 4px;
}

.studio-image-carousel__slide img,
.studio-image-carousel__slide video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}

.studio-image-carousel__viewport::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    z-index: 2;
    height: 34%;
    background: linear-gradient(to top, rgba(15, 23, 42, .34), rgba(15, 23, 42, 0));
    pointer-events: none;
}

.studio-image-carousel__arrow {
    position: absolute;
    top: 50%;
    z-index: 12;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 999px;
    background: rgba(255, 255, 255, .9);
    color: var(--accent);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 16px 36px rgba(15, 23, 42, .16);
    transform: translateY(-50%);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.studio-image-carousel__arrow .icon-svg {
    width: 24px;
    height: 24px;
}

.studio-image-carousel__arrow:hover {
    background: #fff;
    box-shadow: 0 20px 44px rgba(15, 23, 42, .2);
    transform: translateY(-50%) scale(1.04);
}

.studio-image-carousel__arrow--prev {
    left: 18px;
}

.studio-image-carousel__arrow--next {
    right: 18px;
}

.studio-image-carousel__controls {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 18px;
    z-index: 13;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    pointer-events: none;
}

.studio-image-carousel__counter {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    min-width: 74px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    background: rgba(255, 255, 255, .88);
    color: var(--muted);
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .14);
    backdrop-filter: blur(14px);
}

.studio-image-carousel__counter strong {
    color: var(--accent);
    font-size: 20px;
    line-height: 1;
}

.studio-image-carousel__dots {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .14);
    backdrop-filter: blur(14px);
    pointer-events: auto;
}

.studio-image-carousel__dot {
    width: 9px;
    height: 9px;
    border: 0;
    border-radius: 999px;
    background: rgba(37, 99, 235, .28);
    cursor: pointer;
    transition: width .2s ease, background .2s ease;
}

.studio-image-carousel__dot.is-active {
    width: 30px;
    background: var(--accent);
}

.studio-image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99990;
    display: grid;
    place-items: center;
    padding: 36px;
    background: rgba(15, 23, 42, .78);
    backdrop-filter: blur(12px);
    pointer-events: auto;
}

.studio-image-lightbox__image {
    position: relative;
    z-index: 99991;
    display: block;
    max-width: min(1120px, 92vw);
    max-height: 84vh;
    object-fit: contain;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 32px 90px rgba(0, 0, 0, .35);
    pointer-events: none;
}

.studio-image-lightbox__close,
.studio-image-lightbox__nav {
    position: fixed;
    z-index: 99992;
    pointer-events: auto;
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: var(--graphite);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .24);
}

.studio-image-lightbox__icon {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.studio-image-lightbox__close {
    top: 24px;
    right: 24px;
}

.studio-image-lightbox__nav--prev {
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
}

.studio-image-lightbox__nav--next {
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
}

.studio-image-lightbox__counter {
    position: fixed;
    left: 50%;
    bottom: 24px;
    z-index: 99992;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 10px 16px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: var(--graphite);
    box-shadow: 0 18px 42px rgba(0, 0, 0, .24);
    pointer-events: none;
}

.studio-image-lightbox__counter strong {
    font-size: 18px;
    line-height: 1;
}

.studio-image-lightbox__counter span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.studio-image-lightbox__close:hover,
.studio-image-lightbox__nav:hover,
.studio-image-lightbox__close:focus-visible,
.studio-image-lightbox__nav:focus-visible {
    background: #ffffff;
    transform: scale(1.04);
}

.studio-image-lightbox__nav--prev:hover,
.studio-image-lightbox__nav--prev:focus-visible {
    transform: translateY(-50%) scale(1.04);
}

.studio-image-lightbox__nav--next:hover,
.studio-image-lightbox__nav--next:focus-visible {
    transform: translateY(-50%) scale(1.04);
}

body.is-studio-image-lightbox-open {
    overflow: hidden;
}

@media (max-width: 980px) {
    .studio-image-carousel__viewport {
        min-height: 390px;
        border-radius: 28px;
    }
}

@media (max-width: 640px) {
    .studio-image-carousel {
        max-width: 100%;
    }

    .studio-image-carousel__viewport {
        min-height: 285px;
        aspect-ratio: 4 / 3;
        border-radius: 24px;
    }

    .studio-image-carousel__arrow {
        display: grid;
        width: 42px;
        height: 42px;
        font-size: 20px;
    }

    .studio-image-carousel__arrow--prev {
        left: 10px;
    }

    .studio-image-carousel__arrow--next {
        right: 10px;
    }

    .studio-image-carousel__controls {
        left: 12px;
        right: 12px;
        bottom: 12px;
        gap: 10px;
    }

    .studio-image-carousel__counter {
        min-width: 58px;
        padding: 9px 11px;
        font-size: 12px;
    }

    .studio-image-carousel__counter strong {
        font-size: 18px;
    }

    .studio-image-carousel__dots {
        gap: 7px;
        padding: 10px 12px;
    }

    .studio-image-carousel__dot {
        width: 8px;
        height: 8px;
    }

    .studio-image-carousel__dot.is-active {
        width: 24px;
    }

    .studio-image-lightbox {
        padding: 18px;
    }

    .studio-image-lightbox__image {
        max-width: 94vw;
        max-height: 78vh;
        border-radius: 18px;
    }

    .studio-image-lightbox__close,
    .studio-image-lightbox__nav {
        width: 46px;
        height: 46px;
        font-size: 24px;
    }

    .studio-image-lightbox__nav--prev {
        left: 14px;
    }

    .studio-image-lightbox__nav--next {
        right: 14px;
    }


    .studio-image-lightbox__counter {
        bottom: 16px;
        padding: 9px 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .studio-image-carousel__slide {
        transition: opacity .01s linear, visibility .01s linear;
    }
}

/* --------------------------------------------------------------------------
   Work detail page
   -------------------------------------------------------------------------- */

.work-detail-page {
    position: relative;
    overflow: hidden;
    background: radial-gradient(circle at 8% 2%, rgba(37, 99, 235, 0.07), transparent 26rem),
        linear-gradient(180deg, #f8fafc 0%, #ffffff 38%, #f5f7fb 100%);
}

.work-detail-page::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(37, 99, 235, 0.038) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.038) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, #000, transparent 72%);
    pointer-events: none;
}

.work-detail-page > * {
    position: relative;
    z-index: 1;
}

.work-detail-hero {
    padding-top: clamp(48px, 7vw, 92px);
    padding-bottom: clamp(42px, 7vw, 92px);
}

.work-detail-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-bottom: 24px;
    color: var(--accent);
    font-size: 14px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
    transition: transform 180ms ease, color 180ms ease;
}

.work-detail-back:hover {
    transform: translateX(-4px);
    color: var(--accent-2);
}

.work-detail-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(460px, 1.1fr);
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
}

.work-detail-hero__content {
    position: relative;
}

.work-detail-hero__content h1 {
    max-width: 840px;
    margin-top: 18px;
    color: var(--text);
    font-size: clamp(42px, 5.2vw, 78px);
    line-height: 0.94;
    letter-spacing: -0.075em;
}

.work-detail-hero__lead {
    max-width: 720px;
    margin-top: 24px;
    color: var(--text-soft);
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.72;
    font-weight: 540;
}

.work-detail-hero__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 32px;
}

.work-detail-hero__meta div {
    position: relative;
    overflow: hidden;
    min-height: 116px;
    padding: 18px;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.8);
    box-shadow: var(--shadow-soft);
}

.work-detail-hero__meta div::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--accent), var(--accent-2));
}

.work-detail-hero__meta span {
    display: block;
    margin-bottom: 16px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.work-detail-hero__meta strong {
    display: block;
    color: var(--text);
    font-size: clamp(14px, 1vw, 16px);
    line-height: 1.35;
    font-weight: 950;
    letter-spacing: -0.03em;
}

.work-detail-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 34px;
}

.work-detail-gallery {
    position: relative;
    display: grid;
    gap: 14px;
    min-width: 0;
}

.work-detail-gallery.studio-image-carousel {
    max-width: none;
    margin: 0;
}

.work-detail-gallery__viewport {
    min-height: clamp(380px, 42vw, 650px);
    border-radius: clamp(28px, 3vw, 42px);
    box-shadow: 0 36px 100px rgba(15, 23, 42, 0.14);
}

.work-detail-gallery__viewport::before {
    content: "Галерея проекта";
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 14;
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, 0.52);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    backdrop-filter: blur(14px);
}

.work-detail-gallery__hint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: fit-content;
    margin: 4px auto 0;
    padding: 10px 14px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.84);
    color: var(--text-soft);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: 0.01em;
    text-align: center;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88), 0 10px 24px rgba(15, 23, 42, 0.05);
}

.work-detail-gallery__hint span {
    position: relative;
    width: 16px;
    height: 16px;
    border: 1.8px solid currentColor;
    border-radius: 999px;
    opacity: 0.86;
}

.work-detail-gallery__hint span::after {
    content: "";
    position: absolute;
    right: -4px;
    bottom: -3px;
    width: 7px;
    height: 1.8px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(45deg);
}

.work-detail-kicker {
    position: relative;
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(219, 234, 254, 0.68));
    color: var(--accent);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 12px 28px rgba(37, 99, 235, 0.08);
}

.work-detail-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.work-detail-gallery__main,
.work-detail-gallery__thumb {
    cursor: zoom-in;
    appearance: none;
    padding: 0;
    border: 0;
    color: inherit;
    font: inherit;
    background: none;
}

.work-detail-gallery__main {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: clamp(380px, 42vw, 650px);
    border: 1px solid rgba(201, 214, 229, 0.94);
    border-radius: clamp(28px, 3vw, 42px);
    background: linear-gradient(135deg, #e8eef7, #ffffff);
    box-shadow: 0 36px 100px rgba(15, 23, 42, 0.14);
}

.work-detail-gallery__main::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, transparent 52%, rgba(15, 23, 42, 0.62));
    opacity: 0.92;
    pointer-events: none;
}

.work-detail-gallery__main img,
.work-detail-gallery__thumb img,
.work-detail-related-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.work-detail-gallery__main > span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 15px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    color: var(--white);
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(12px);
    font-size: 12px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.work-detail-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.work-detail-gallery__thumb {
    overflow: hidden;
    height: clamp(74px, 7vw, 110px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 18px;
    background: #eef4fb;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.work-detail-gallery__thumb:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.34);
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.11);
}

.work-detail-summary,
.work-detail-process,
.work-detail-focus,
.work-detail-related {
    padding-top: clamp(34px, 5vw, 74px);
    padding-bottom: clamp(34px, 5vw, 74px);
}

.work-detail-summary__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 28px;
}

.work-detail-card {
    position: relative;
    overflow: hidden;
    min-height: 320px;
    padding: clamp(24px, 2.5vw, 34px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow-soft);
}

.work-detail-card::before {
    content: "";
    position: absolute;
    top: -90px;
    right: -90px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.12), transparent 68%);
}

.work-detail-card--accent {
    color: var(--white);
    background: radial-gradient(circle at 92% 10%, rgba(14, 165, 233, 0.36), transparent 22rem),
        linear-gradient(145deg, #111827, #1e293b);
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.22);
}

.work-detail-card__number {
    display: inline-flex;
    margin-bottom: 44px;
    color: var(--accent);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: 0.14em;
}

.work-detail-card--accent .work-detail-card__number {
    color: #93c5fd;
}

.work-detail-card h3 {
    position: relative;
    margin-bottom: 16px;
    color: var(--text);
    font-size: clamp(25px, 2.1vw, 34px);
    line-height: 1.05;
    letter-spacing: -0.06em;
}

.work-detail-card--accent h3 {
    color: var(--white);
}

.work-detail-card p {
    position: relative;
    color: var(--text-soft);
    font-size: 15px;
    line-height: 1.72;
    font-weight: 560;
}

.work-detail-card--accent p {
    color: rgba(255, 255, 255, 0.76);
}

.work-detail-timeline {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin-top: 22px;
}

.work-detail-step {
    position: relative;
    min-height: 230px;
    padding: 22px;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: var(--shadow-soft);
}

.work-detail-step::after {
    content: "";
    position: absolute;
    top: 38px;
    right: -12px;
    width: 22px;
    height: 1px;
    background: rgba(37, 99, 235, 0.28);
}

.work-detail-step:last-child::after {
    display: none;
}

.work-detail-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 28px;
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 15px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.78);
    font-size: 12px;
    font-weight: 950;
}

.work-detail-step h3 {
    margin-bottom: 10px;
    color: var(--text);
    font-size: 20px;
    line-height: 1.15;
    letter-spacing: -0.04em;
}

.work-detail-step p,
.work-detail-focus-card p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.62;
    font-weight: 560;
}

.work-detail-focus__head {
    margin-bottom: 20px;
}

.work-detail-focus__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.work-detail-focus-card {
    min-height: 178px;
    padding: 22px;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: var(--shadow-soft);
}

.work-detail-focus-card strong {
    display: block;
    margin-bottom: 12px;
    color: var(--text);
    font-size: 20px;
    line-height: 1.15;
    font-weight: 950;
    letter-spacing: -0.045em;
}

.work-detail-note {
    align-self: stretch;
}

.work-detail-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
}

.work-detail-related-card {
    overflow: hidden;
    display: grid;
    min-height: 360px;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 30px;
    color: inherit;
    background: var(--white);
    box-shadow: var(--shadow-soft);
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.work-detail-related-card:hover {
    transform: translateY(-5px);
    border-color: rgba(37, 99, 235, 0.26);
    box-shadow: var(--shadow);
}

.work-detail-related-card img {
    height: 230px;
}

.work-detail-related-card span {
    margin: 18px 20px 8px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.work-detail-related-card strong {
    margin: 0 20px 22px;
    color: var(--text);
    font-size: 21px;
    line-height: 1.15;
    font-weight: 950;
    letter-spacing: -0.045em;
}

.work-detail-cta.service-contact-box {
    grid-template-columns: minmax(0, 1fr) minmax(380px, 0.72fr);
}

.work-not-found-card {
    max-width: 760px;
    padding: clamp(28px, 5vw, 54px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: var(--radius-xl);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow);
}

.work-not-found-card h1 {
    margin-top: 18px;
    margin-bottom: 16px;
    font-size: clamp(38px, 5vw, 68px);
    line-height: 0.98;
    letter-spacing: -0.07em;
}

.work-not-found-card p {
    max-width: 560px;
    margin-bottom: 26px;
    color: var(--muted);
    font-size: 17px;
    line-height: 1.65;
}

@media (max-width: 1180px) {
    .work-detail-hero__grid,
    .work-detail-cta.service-contact-box {
        grid-template-columns: 1fr;
    }

    .work-detail-timeline {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .work-detail-step:nth-child(3n)::after {
        display: none;
    }
}

@media (max-width: 920px) {
    .work-detail-hero__meta,
    .work-detail-summary__grid,
    .work-detail-related__grid {
        grid-template-columns: 1fr;
    }

    .work-detail-card {
        min-height: auto;
    }

    .work-detail-timeline,
    .work-detail-focus__grid {
        grid-template-columns: 1fr;
    }

    .work-detail-step {
        min-height: auto;
    }

    .work-detail-step::after {
        display: none;
    }
}

@media (max-width: 640px) {
    .work-detail-hero {
        padding-top: 32px;
    }

    .work-detail-hero__content h1 {
        font-size: clamp(34px, 13vw, 50px);
        letter-spacing: -0.065em;
    }

    .work-detail-hero__lead {
        font-size: 15px;
    }

    .work-detail-hero__actions {
        display: grid;
    }

    .work-detail-hero__actions .btn {
        width: 100%;
    }

    .work-detail-gallery__main {
        min-height: 320px;
        border-radius: 26px;
    }

    .work-detail-gallery__thumbs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .work-detail-gallery__thumb {
        height: 72px;
        border-radius: 14px;
    }

    .work-detail-hero__meta div,
    .work-detail-card,
    .work-detail-step,
    .work-detail-focus-card {
        border-radius: 22px;
    }

    .work-detail-card__number {
        margin-bottom: 28px;
    }

    .work-detail-related-card {
        min-height: auto;
        border-radius: 24px;
    }

    .work-detail-related-card img {
        height: 210px;
    }
}


@media (max-width: 640px) {
    .work-detail-gallery__viewport {
        min-height: 320px;
        border-radius: 26px;
    }

    .work-detail-gallery__hint {
        width: 100%;
        border-radius: 18px;
    }
}

/* Unified contact cards: additional channels */
.service-contact-card--vk .service-contact-card__icon {
    background: linear-gradient(135deg, #2787f5, #1d4ed8);
}

.service-contact-card--tiktok .service-contact-card__icon {
    background: linear-gradient(135deg, #111827, #475569);
}

.service-contact-card--portfolio .service-contact-card__icon {
    background: rgba(255, 255, 255, 0.12);
}

.request-modal__contact-btn--vk {
    color: #1d4ed8;
    background: #dbeafe;
}

.request-modal__contact-btn--tiktok {
    color: #ffffff;
    background: #111827;
}

/* =========================================================
   Home page — engineering premium layout
   ========================================================= */

.home-hero {
    padding: clamp(46px, 5vw, 78px) 0 clamp(76px, 8vw, 124px);
    background:
        radial-gradient(circle at 82% 18%, rgba(37, 99, 235, 0.16), transparent 34%),
        radial-gradient(circle at 8% 92%, rgba(14, 165, 233, 0.10), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f4f8fd 58%, #eef5ff 100%);
}

.home-hero::after {
    content: "";
    position: absolute;
    right: -170px;
    bottom: -210px;
    width: 520px;
    height: 520px;
    opacity: 0.10;
    border-radius: 50%;
    background:
        radial-gradient(circle, transparent 0 29%, #2563eb 30% 31%, transparent 32% 46%, #2563eb 47% 49%, transparent 50%),
        conic-gradient(from 0deg, transparent 0 9deg, #2563eb 9deg 14deg, transparent 14deg 28deg);
    pointer-events: none;
}


.home-hero__visual {
    min-height: 600px;
}

.home-section-head {
    display: grid;
    gap: 14px;
    margin-bottom: clamp(30px, 5vw, 56px);
}

.home-section-head h2 {
    max-width: 900px;
    margin: 0;
    color: var(--text);
    font-size: clamp(31px, 3.1vw, 52px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.055em;
}

.home-section-head p {
    max-width: 760px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(15px, 1.25vw, 18px);
    line-height: 1.65;
    font-weight: 550;
}


.home-section-head--center {
    justify-items: center;
    text-align: center;
}

.home-section-head--center h2,
.home-section-head--center p {
    margin-inline: auto;
}

.home-solutions::before,
.home-quality::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.048) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.048) 1px, transparent 1px);
    background-size: 44px 44px;
    mask-image: radial-gradient(circle at 82% 8%, #000 0%, transparent 44%);
}

.home-solutions .container,
.home-quality .container {
    position: relative;
    z-index: 2;
}


.home-works-showcase {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 0%, rgba(37, 99, 235, 0.10), transparent 28rem),
        linear-gradient(180deg, #f7fbff 0%, #eef5ff 100%);
}


.studio-image-carousel__caption {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 72px;
    z-index: 3;
    display: grid;
    gap: 7px;
    max-width: min(82%, 460px);
    padding: 16px 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 22px;
    background: rgba(15, 23, 42, 0.54);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(12px);
}

.studio-image-carousel__caption span {
    color: rgba(191, 219, 254, 0.94);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.studio-image-carousel__caption strong {
    color: #ffffff;
    font-size: clamp(18px, 2vw, 26px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.studio-image-carousel__caption p {
    margin: 0;
    color: rgba(226, 232, 240, 0.95);
    font-size: 13px;
    line-height: 1.56;
    font-weight: 650;
}


.home-solutions {
    position: relative;
    overflow: hidden;
    background: var(--bg);
}


.home-quality {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 9% 14%, rgba(14, 165, 233, 0.10), transparent 28rem),
        var(--bg);
}

.home-quality-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);
    gap: 16px;
    align-items: stretch;
}

.home-quality-main,
.home-quality-list {
    border: 1px solid rgba(201, 214, 229, 0.84);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 20px 58px rgba(15, 23, 42, 0.065);
}

.home-quality-main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 430px;
    padding: clamp(24px, 4vw, 46px);
}

.home-quality-main h2 {
    margin: 12px 0 0;
    font-size: clamp(31px, 3vw, 50px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.055em;
}

.home-quality-main p {
    margin: 20px 0 0;
    color: var(--text-soft);
    font-size: 16px;
    line-height: 1.75;
}

.home-quality-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
}

.home-quality-list article {
    min-height: 214px;
    padding: 26px;
    border-right: 1px solid rgba(201, 214, 229, 0.78);
    border-bottom: 1px solid rgba(201, 214, 229, 0.78);
}

.home-quality-list article:nth-child(2n) {
    border-right: 0;
}

.home-quality-list article:nth-last-child(-n+2) {
    border-bottom: 0;
}

.home-quality-list strong {
    display: block;
    color: var(--text);
    font-size: 21px;
    line-height: 1.16;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.home-quality-list span {
    display: block;
    margin-top: 12px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.6;
    font-weight: 650;
}

@media (max-width: 1180px) {
    .home-quality-layout {
        grid-template-columns: 1fr;
    }


    .home-hero__visual {
        min-height: auto;
    }


}

@media (max-width: 900px) {


    .studio-image-carousel__caption {
        left: 16px;
        right: 16px;
        bottom: 66px;
        max-width: none;
        padding: 14px 16px;
    }


    .home-quality-list {
        grid-template-columns: 1fr;
    }

    .home-quality-list article,
    .home-quality-list article:nth-child(2n),
    .home-quality-list article:nth-last-child(-n+2) {
        border-right: 0;
        border-bottom: 1px solid rgba(201, 214, 229, 0.78);
    }

    .home-quality-list article:last-child {
        border-bottom: 0;
    }

}

@media (max-width: 640px) {
    .home-hero {
        padding-top: 34px;
    }

    .home-section-head h2,
    .home-quality-main h2 {
        letter-spacing: -0.045em;
    }


    .home-quality-main,
.home-quality-list {
        border-radius: 24px;
    }

}


.home-quality-main h3 {
    margin: 12px 0 0;
    color: var(--text);
    font-size: clamp(26px, 2.5vw, 42px);
    line-height: 1.09;
    font-weight: 950;
    letter-spacing: -0.05em;
}

.home-quality-list span {
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.62;
}


@media (max-width: 640px) {


    .studio-image-carousel__caption {
        bottom: 60px;
        border-radius: 18px;
    }

    .studio-image-carousel__caption strong {
        font-size: 18px;
    }

    .studio-image-carousel__caption p {
        font-size: 12px;
    }


    .home-quality-main h3 {
        letter-spacing: -0.04em;
    }
}


/* Home page premium conversion update — 2026-06-26 */
.home-proof-strip {
    position: relative;
    z-index: 3;
    margin-top: -52px;
    padding: 0 0 clamp(58px, 7vw, 92px);
}

.home-proof-strip__inner {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.home-proof-strip article {
    min-height: 158px;
    padding: 20px;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 22px 62px rgba(15, 23, 42, 0.095);
    backdrop-filter: blur(16px);
}

.home-proof-strip span,
.home-faq__grid span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 18px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 14px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.76);
    font-size: 12px;
    font-weight: 950;
}

.home-proof-strip strong {
    display: block;
    color: var(--text);
    font-size: 17px;
    line-height: 1.18;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.home-proof-strip p {
    margin-top: 9px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.48;
    font-weight: 650;
}


.home-faq {
    background:
        radial-gradient(circle at 82% 12%, rgba(37, 99, 235, 0.09), transparent 28rem),
        #ffffff;
}

.home-faq__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.home-faq__grid article {
    min-height: 270px;
    padding: 22px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.94));
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
}

.home-faq__grid h3 {
    margin: 0;
    color: var(--text);
    font-size: 20px;
    line-height: 1.16;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.home-faq__grid p {
    margin-top: 12px;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.62;
    font-weight: 560;
}

@media (max-width: 1180px) {
    .home-proof-strip__inner,
    .home-faq__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 720px) {
    .home-proof-strip {
        margin-top: -34px;
        padding-bottom: 48px;
    }

    .home-proof-strip__inner,
    .home-faq__grid {
        grid-template-columns: 1fr;
    }

    .home-proof-strip article,
    .home-faq__grid article {
        min-height: auto;
    }


}


/* Premium home section markers and team cards — 2026-06-26 */
.section-kicker--premium,
.services-head--premium .section-kicker {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 22px;
    padding: 12px 18px 12px 14px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 16px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.96), rgba(255, 255, 255, 0.84));
    box-shadow: 0 14px 34px rgba(37, 99, 235, 0.1),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.section-kicker--premium::before,
.services-head--premium .section-kicker::before {
    content: "";
    width: 24px;
    height: 24px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 50%;
    background:
        radial-gradient(circle, var(--accent) 0 3px, transparent 3.5px),
        rgba(255, 255, 255, 0.78);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08),
        inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    transform: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: var(--accent);
    font-size: 14px;
    line-height: 1;
}

.section-kicker--premium::after,
.services-head--premium .section-kicker::after {
    content: "";
    position: absolute;
    left: calc(100% + 14px);
    top: 50%;
    width: clamp(42px, 8vw, 110px);
    height: 1px;
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.38), transparent);
    display: none;
}

.home-section-head--center .section-kicker--premium::after {
    display: none;
}


.team-panel {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 14px;
    width: min(100%, 520px);
    min-width: min(100%, 500px);
    align-self: center;
    padding: 16px;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 28px;
    background: radial-gradient(circle at 88% 0%, rgba(37, 99, 235, 0.13), transparent 15rem),
        rgba(255, 255, 255, 0.74);
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.07);
}

.team-panel::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
    opacity: 0.85;
}

.team-panel__head {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 6px;
    padding: 2px 4px 0;
}

.team-panel__head span,
.team-person__role {
    color: var(--accent);
    font-size: 10px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.team-panel__head strong {
    max-width: 360px;
    color: var(--text);
    font-size: clamp(18px, 1.2vw, 22px);
    line-height: 1.12;
    font-weight: 950;
    letter-spacing: -0.045em;
}

.team-panel__list {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 10px;
}

.team-person {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 94px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 116px;
    padding: 10px 14px 10px 10px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.84);
}

.team-person--dark {
    border-color: rgba(255, 255, 255, 0.14);
    background: radial-gradient(circle at 92% 10%, rgba(14, 165, 233, 0.18), transparent 12rem),
        linear-gradient(145deg, rgba(17, 24, 39, 0.98), rgba(30, 41, 59, 0.96));
    color: var(--white);
}

.team-person__photo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 94px;
    height: 96px;
    overflow: hidden;
    padding: 0;
    border: 1px dashed rgba(37, 99, 235, 0.28);
    border-radius: 18px;
    background: radial-gradient(circle at 50% 15%, rgba(37, 99, 235, 0.13), transparent 7rem),
        linear-gradient(135deg, rgba(239, 246, 255, 0.94), rgba(255, 255, 255, 0.72));
    font: inherit;
}

.team-person--dark .team-person__photo {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
}

.team-person__photo--image {
    border-style: solid;
    background: #eef4fb;
    cursor: zoom-in;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.team-person__photo--image:hover,
.team-person__photo--image:focus-visible {
    border-color: rgba(37, 99, 235, 0.42);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
    transform: translateY(-1px);
    outline: none;
}

.team-person__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: inherit;
}

.team-person__photo span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 18px;
    color: var(--accent);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12);
    font-size: 17px;
    font-weight: 950;
    letter-spacing: 0.04em;
}

.team-person--dark .team-person__photo span {
    color: var(--white);
    background: rgba(255, 255, 255, 0.14);
    box-shadow: none;
}

.team-person__body {
    min-width: 0;
}

.team-person__role {
    display: inline-flex;
    margin-bottom: 7px;
}

.team-person--dark .team-person__role {
    color: rgba(191, 219, 254, 0.96);
}

.team-person strong {
    display: block;
    margin-bottom: 6px;
    color: var(--text);
    font-size: clamp(17px, 1.08vw, 20px);
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.team-person--dark strong {
    color: var(--white);
}

.team-person p {
    max-width: 330px;
    color: var(--text-soft);
    font-size: 12.5px;
    line-height: 1.42;
    font-weight: 600;
}

.team-person--dark p {
    color: rgba(255, 255, 255, 0.72);
}

.team-panel__actions {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.team-panel__cta {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 9px 12px 9px 10px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.86);
    color: var(--text);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.075);
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease,
        box-shadow 180ms ease;
}

.team-panel__cta::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.4), transparent 54%);
    pointer-events: none;
}

.team-panel__cta:hover,
.team-panel__cta:focus-visible {
    border-color: rgba(37, 99, 235, 0.34);
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.12);
    transform: translateY(-2px);
}

.team-panel__cta-icon {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 13px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.86);
}

.team-panel__cta-icon .icon-svg {
    width: 18px;
    height: 18px;
}

.team-panel__cta span:last-child {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 4px;
    min-width: 0;
}

.team-panel__cta strong {
    color: var(--text);
    font-size: 12px;
    line-height: 1.08;
    font-weight: 950;
    letter-spacing: -0.025em;
}

.team-panel__cta small {
    color: var(--muted);
    font-size: 10.5px;
    line-height: 1.2;
    font-weight: 750;
}

.team-panel__cta--consult {
    border-color: rgba(37, 99, 235, 0.24);
    background:
        radial-gradient(circle at 18% 12%, rgba(37, 99, 235, 0.13), transparent 46%),
        rgba(255, 255, 255, 0.9);
}

.team-panel__cta--consult .team-panel__cta-icon {
    color: #ffffff;
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.24);
}

.team-panel__cta--tech {
    border-color: rgba(14, 165, 233, 0.24);
    background:
        radial-gradient(circle at 20% 18%, rgba(14, 165, 233, 0.14), transparent 46%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(239, 246, 255, 0.86));
}

.team-panel__cta--tech .team-panel__cta-icon {
    color: #0369a1;
    background: rgba(224, 242, 254, 0.95);
    box-shadow: inset 0 0 0 1px rgba(14, 165, 233, 0.18);
}

@media (max-width: 980px) {
    .team-panel {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 640px) {
    .section-kicker--premium,
    .services-head--premium .section-kicker {
        padding: 11px 14px 11px 12px;
        font-size: 11px;
        border-radius: 14px;
    }

    .section-kicker--premium::before,
    .services-head--premium .section-kicker::before {
        width: 22px;
        height: 22px;
        font-size: 12px;
    }

    .team-panel {
        padding: 12px;
        border-radius: 24px;
    }

    .team-person {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 12px;
        min-height: 102px;
        padding: 9px;
        border-radius: 20px;
    }

    .team-person__photo {
        width: 82px;
        height: 84px;
        border-radius: 16px;
    }

    .team-person p {
        font-size: 12px;
    }

    .team-panel__actions {
        grid-template-columns: 1fr;
    }

    .team-panel__cta {
        min-height: 54px;
    }

    .team-panel__cta strong {
        font-size: 12px;
    }
}
/* Articles */
.articles-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.article-card {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 24px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 247, 251, 0.96));
    box-shadow: var(--shadow-soft);
    transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.article-card:hover {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, 0.18);
    box-shadow: 0 22px 44px rgba(15, 23, 42, 0.1);
}

.article-card__media {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: linear-gradient(180deg, rgba(219, 234, 254, 0.72), rgba(241, 245, 249, 0.92));
    aspect-ratio: 4 / 3;
    overflow: hidden;
    cursor: zoom-in;
}

.article-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.article-card:hover .article-card__media img,
.article-card__media:focus-visible img {
    transform: scale(1.035);
}

.article-card__zoom {
    position: absolute;
    right: 16px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.68);
    color: var(--white);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}

.article-card__zoom::before {
    content: "";
    width: 8px;
    height: 8px;
    border: 2px solid currentColor;
    border-radius: 999px;
    box-shadow: 4px 4px 0 -2px currentColor;
    transform: translateY(-1px);
}

.article-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px;
}

.article-card__category,
.article-detail__meta span {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    color: #0f4c81;
    background: rgba(56, 189, 248, 0.14);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.article-card h3 {
    margin: 16px 0 12px;
    font-size: clamp(20px, 1.5vw, 24px);
    line-height: 1.28;
}

.article-card h3 a {
    color: var(--text);
    text-decoration: none;
}

.article-card p {
    margin: 0;
    color: var(--text-soft);
    font-size: 15px;
    line-height: 1.72;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.article-card__footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-top: auto;
    padding-top: 22px;
    flex-wrap: wrap;
}

.article-card__footer small {
    color: var(--text-soft);
    font-size: 13px;
}

.article-card__readtime {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88);
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

.article-card__readtime::before {
    content: "";
    width: 14px;
    height: 14px;
    border: 1.8px solid currentColor;
    border-radius: 999px;
    opacity: 0.82;
    box-sizing: border-box;
    background:
        linear-gradient(currentColor, currentColor) 50% 30% / 1.5px 4px no-repeat,
        linear-gradient(currentColor, currentColor) 68% 52% / 3.5px 1.5px no-repeat;
}

.article-card__readtime-label {
    color: var(--muted);
    font-weight: 700;
}

.article-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    flex: 0 0 auto;
    min-height: 42px;
    width: auto;
    margin-top: 0;
    padding: 0 13px 0 16px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(219, 234, 254, 0.72));
    color: var(--accent, #2563eb);
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0.025em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.94),
        0 12px 26px rgba(37, 99, 235, 0.10);
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease;
}

.article-card__link::after {
    content: "›";
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: currentColor;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    transform: none;
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease;
}

.article-card:hover .article-card__link,
.article-card__link:hover,
.article-card__link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.42);
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    color: var(--white, #ffffff);
    box-shadow: 0 16px 34px rgba(37, 99, 235, 0.22);
}

.article-card:hover .article-card__link::after,
.article-card__link:hover::after,
.article-card__link:focus-visible::after {
    transform: translateX(2px);
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.18);
}

.article-card__media:focus-visible,
.article-card__link:focus-visible {
    outline: none;
}

.article-card__media:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(14, 165, 233, 0.78);
}


.article-detail--premium {
    overflow: hidden;
}

.article-detail-hero {
    position: relative;
    padding-top: clamp(54px, 7vw, 96px);
    padding-bottom: clamp(44px, 6vw, 82px);
}

.article-detail-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 16% 14%, rgba(37, 99, 235, 0.12), transparent 34%),
        radial-gradient(circle at 84% 8%, rgba(14, 165, 233, 0.12), transparent 32%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(245, 247, 251, 0));
    pointer-events: none;
}

.article-detail-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.94fr) minmax(420px, 0.86fr);
    gap: clamp(34px, 5vw, 74px);
    align-items: center;
}

.article-detail-hero__content {
    min-width: 0;
}

.article-detail__header {
    margin-top: 28px;
}

.article-detail__kicker,
.article-detail-nav__kicker {
    position: relative;
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(219, 234, 254, 0.68));
    color: var(--accent);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 12px 28px rgba(37, 99, 235, 0.08);
}

.article-detail__kicker::before,
.article-detail-nav__kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.article-detail-nav__kicker {
    border-color: rgba(214, 168, 90, 0.28);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 247, 230, 0.76));
    color: #9a6a1f;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 12px 28px rgba(214, 168, 90, 0.09);
}

.article-detail-nav__kicker::before {
    background: linear-gradient(135deg, var(--warm), #f59e0b);
    box-shadow: 0 0 0 5px rgba(214, 168, 90, 0.14);
}


.article-detail__header h1 {
    max-width: 900px;
    margin: 18px 0;
    font-size: clamp(38px, 5vw, 78px);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.article-detail__header p {
    max-width: 760px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(18px, 1.8vw, 22px);
    line-height: 1.72;
}

.article-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.article-detail__meta span {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 999px;
    color: #0f4c81;
    background: rgba(56, 189, 248, 0.12);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.article-detail__readtime {
    gap: 7px;
    color: var(--text-soft) !important;
    background: rgba(255, 255, 255, 0.9) !important;
}

.article-detail__readtime::before {
    content: "";
    width: 14px;
    height: 14px;
    border: 1.8px solid currentColor;
    border-radius: 999px;
    opacity: 0.8;
    box-sizing: border-box;
    background:
        linear-gradient(currentColor, currentColor) 50% 30% / 1.5px 4px no-repeat,
        linear-gradient(currentColor, currentColor) 68% 52% / 3.5px 1.5px no-repeat;
}

.article-detail__readtime span {
    min-height: 0;
    padding: 0;
    border: 0;
    color: var(--muted);
    background: transparent;
    font-size: inherit;
    font-weight: 700;
}

.article-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.article-detail-gallery {
    max-width: none;
    margin: 0;
}

.article-detail-gallery__viewport {
    min-height: clamp(330px, 34vw, 560px);
    border-radius: 34px;
    box-shadow: 0 30px 90px rgba(15, 23, 42, 0.14);
}

.article-detail-gallery__viewport::before {
    content: "Фото статьи";
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 14;
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, 0.52);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    backdrop-filter: blur(14px);
}

.article-detail-gallery__hint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: fit-content;
    margin: 16px auto 0;
    padding: 10px 14px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.84);
    color: var(--text-soft);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: 0.01em;
    text-align: center;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88), 0 10px 24px rgba(15, 23, 42, 0.05);
}

.article-detail-gallery__hint span {
    position: relative;
    width: 16px;
    height: 16px;
    border: 1.8px solid currentColor;
    border-radius: 999px;
    opacity: 0.86;
}

.article-detail-gallery__hint span::after {
    content: "";
    position: absolute;
    right: -4px;
    bottom: -3px;
    width: 7px;
    height: 1.8px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(45deg);
}

.article-detail-content {
    padding-top: 0;
}

.article-detail-content__grid {
    display: grid;
    grid-template-columns: minmax(0, 1040px) minmax(280px, 320px);
    justify-content: center;
    gap: clamp(24px, 3.6vw, 48px);
    align-items: start;
}

/* Article detail reading card refresh — 2026-07-05 */
/* Article detail width and spacing tune — 2026-07-05 */
.article-detail__body {
    counter-reset: article-section;
    position: relative;
    display: block;
    padding: clamp(28px, 3.2vw, 46px);
    border: 1px solid rgba(178, 199, 226, 0.86);
    border-radius: 36px;
    background:
        radial-gradient(circle at 8% 0%, rgba(37, 99, 235, 0.09), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 255, 0.94));
    box-shadow: 0 28px 78px rgba(15, 23, 42, 0.09), inset 0 1px 0 rgba(255, 255, 255, 0.94);
    color: var(--text);
    font-size: clamp(17px, 1.25vw, 19px);
    line-height: 1.82;
}

.article-detail__body > * {
    max-width: min(100%, 92ch);
}

.article-detail__body > * + * {
    margin-top: 16px;
}

.article-detail__body h2,
.article-detail__body h3 {
    color: var(--text);
    text-wrap: balance;
}

.article-detail__body h2 {
    counter-increment: article-section;
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    max-width: none;
    margin: clamp(30px, 4vw, 46px) 0 12px;
    padding-top: clamp(18px, 2.1vw, 24px);
    border-top: 1px solid rgba(178, 199, 226, 0.7);
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.article-detail__body h2:first-child {
    margin-top: 0;
    padding: clamp(18px, 2.2vw, 24px) clamp(20px, 2.8vw, 30px);
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 26px;
    background:
        linear-gradient(135deg, rgba(239, 246, 255, 0.98), rgba(255, 255, 255, 0.94)),
        radial-gradient(circle at 12% 16%, rgba(14, 165, 233, 0.18), transparent 36%);
    box-shadow: 0 18px 42px rgba(37, 99, 235, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.98);
}

.article-detail__body h2::before {
    content: counter(article-section, decimal-leading-zero);
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 16px;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    color: var(--white, #ffffff);
    font-size: 13px;
    font-weight: 950;
    letter-spacing: 0.05em;
    box-shadow: 0 14px 30px rgba(37, 99, 235, 0.18);
}

.article-detail__body h3 {
    margin: 28px 0 10px;
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.12;
    letter-spacing: -0.035em;
}

.article-detail__body p {
    margin: 0;
    color: var(--text-soft);
}

.article-detail__body h2:first-child + p,
.article-detail__body h2:first-child + p + p {
    max-width: none;
    padding: clamp(16px, 1.8vw, 19px) clamp(18px, 2.2vw, 26px);
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-left: 4px solid var(--accent, #2563eb);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
    color: var(--text);
}

.article-detail__body strong,
.article-detail__body b {
    color: #071225;
    font-weight: 950;
}

.article-detail__body ul,
.article-detail__body ol {
    display: grid;
    gap: 10px;
    max-width: none;
    margin: 16px 0 4px;
    padding: 0;
}

.article-detail__body li {
    position: relative;
    list-style: none;
    min-height: 48px;
    padding: 12px 16px 12px 46px;
    border: 1px solid rgba(201, 214, 229, 0.78);
    border-radius: 17px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(239, 246, 255, 0.62));
    color: var(--text);
    font-weight: 720;
    line-height: 1.45;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.article-detail__body ul li::before,
.article-detail__body ol li::before {
    position: absolute;
    left: 16px;
    top: 17px;
    display: inline-grid;
    place-items: center;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.08);
    color: var(--white, #ffffff);
}

.article-detail__body ul li::before {
    content: "";
}

.article-detail__body ol {
    counter-reset: article-list;
}

.article-detail__body ol li {
    counter-increment: article-list;
}

.article-detail__body ol li::before {
    content: counter(article-list);
    top: 13px;
    width: 22px;
    height: 22px;
    font-size: 11px;
    font-weight: 950;
}

.article-detail__lead {
    position: relative;
    padding-left: 22px;
    color: var(--text);
    font-size: 1.08em;
    font-weight: 650;
}

.article-detail__lead::before {
    content: "";
    position: absolute;
    top: 0.42em;
    bottom: 0.42em;
    left: 0;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--accent), var(--accent-2));
}

.article-detail-nav {
    position: sticky;
    top: calc(var(--header-height) + 22px);
    padding: 24px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 247, 251, 0.96));
    box-shadow: var(--shadow-soft);
}

.article-detail-nav h2 {
    margin: 12px 0 10px;
    font-size: clamp(23px, 2vw, 31px);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.article-detail-nav p {
    margin: 0;
    color: var(--muted);
    line-height: 1.72;
}

.article-detail-nav__links {
    display: grid;
    gap: 10px;
    margin-top: 20px;
}

.article-detail-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 50px;
    padding: 12px 14px 12px 16px;
    border: 1px solid rgba(37, 99, 235, 0.14);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.76);
    color: var(--text);
    font-size: 14px;
    font-weight: 850;
    text-decoration: none;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.article-detail-nav__link .icon-svg {
    color: var(--accent);
    transition: transform 0.2s ease;
}

.article-detail-nav__link:hover,
.article-detail-nav__link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.34);
    background: rgba(219, 234, 254, 0.6);
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.08);
}

.article-detail-nav__link:hover .icon-svg,
.article-detail-nav__link:focus-visible .icon-svg {
    transform: translateX(3px);
}

.article-detail-nav__link--primary {
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: var(--white);
    box-shadow: 0 18px 36px rgba(37, 99, 235, 0.2);
}

.article-detail-nav__link--primary .icon-svg {
    color: var(--white);
}

.article-detail-nav__link--primary:hover,
.article-detail-nav__link--primary:focus-visible {
    background: linear-gradient(135deg, #1d4ed8, var(--accent));
    color: var(--white);
}


.article-detail-nav__link[target="_blank"] .icon-svg {
    margin-left: 0;
}

@media (max-width: 1100px) {
    .article-detail-hero__grid,
    .article-detail-content__grid {
        grid-template-columns: 1fr;
    }

    .article-detail-nav {
        position: relative;
        top: auto;
    }
}

@media (max-width: 980px) {
    .articles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .article-detail-gallery__viewport {
        min-height: clamp(280px, 56vw, 460px);
    }
}

@media (max-width: 680px) {
    .articles-grid {
        grid-template-columns: 1fr;
    }

    .article-detail-hero {
        padding-top: 40px;
    }

    .article-detail__header h1 {
        font-size: clamp(34px, 13vw, 48px);
    }

    .article-detail__body {
        padding: 18px;
        border-radius: 24px;
        font-size: 16px;
        line-height: 1.72;
    }

    .article-detail__body h2 {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 34px;
        font-size: clamp(25px, 8vw, 34px);
        letter-spacing: -0.04em;
    }

    .article-detail__body h2::before {
        width: 38px;
        height: 38px;
        border-radius: 14px;
    }

    .article-detail__body h2:first-child {
        padding: 16px;
        border-radius: 20px;
    }

    .article-detail__body li {
        padding: 11px 13px 11px 40px;
        border-radius: 15px;
        font-size: 15px;
    }

    .article-detail-gallery__viewport {
        min-height: 250px;
        border-radius: 24px;
    }

    .article-detail-actions {
        display: grid;
    }

    .article-detail-actions .btn {
        width: 100%;
    }

    .article-detail-nav {
        padding: 20px;
        border-radius: 22px;
    }
}


.works-project-card__link:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.24);
    outline-offset: 3px;
}


/* =========================================================
   Photo gallery page
   ========================================================= */

.photo-gallery-page {
    overflow: hidden;
}

.photo-gallery-hero .hero-text {
    max-width: 760px;
}

.photo-gallery-hero__visual {
    min-width: 0;
}

.photo-gallery-feature-card {
    position: relative;
    overflow: hidden;
    min-height: clamp(420px, 42vw, 650px);
    border: 1px solid rgba(201, 214, 229, 0.94);
    border-radius: clamp(30px, 3vw, 44px);
    background: #eef4fb;
    box-shadow: 0 36px 100px rgba(15, 23, 42, 0.14);
}

.photo-gallery-feature-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.02) 42%, rgba(15, 23, 42, 0.72));
    pointer-events: none;
}

.photo-gallery-feature-card img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.photo-gallery-feature-card > div {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    z-index: 2;
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 26px;
    background: rgba(15, 23, 42, 0.62);
    color: var(--white);
    backdrop-filter: blur(16px);
}

.photo-gallery-feature-card span {
    display: inline-flex;
    margin-bottom: 12px;
    color: #93c5fd;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.photo-gallery-feature-card strong {
    display: block;
    margin-bottom: 10px;
    font-size: clamp(24px, 2vw, 34px);
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.photo-gallery-feature-card p {
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    line-height: 1.62;
}

.photo-gallery-kicker {
    position: relative;
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(219, 234, 254, 0.68));
    color: var(--accent);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 12px 28px rgba(37, 99, 235, 0.08);
}

.photo-gallery-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.photo-gallery-section {
    padding-top: clamp(34px, 5vw, 78px);
}

.photo-gallery-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.photo-gallery-head h2 {
    max-width: 760px;
    margin-top: 12px;
    font-size: clamp(34px, 4vw, 62px);
    line-height: 0.98;
    letter-spacing: -0.06em;
}

.photo-gallery-head p {
    max-width: 360px;
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.photo-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.photo-gallery-card {
    overflow: hidden;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-soft);
    transition: transform 0.24s ease, border-color 0.24s ease, box-shadow 0.24s ease;
}

.photo-gallery-card:hover {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, 0.2);
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.11);
}

.photo-gallery-card--featured {
    grid-column: span 2;
}

.photo-gallery-card__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    padding: 0;
    border: 0;
    background: #eef4fb;
    cursor: zoom-in;
    overflow: hidden;
}

.photo-gallery-card--featured .photo-gallery-card__media {
    aspect-ratio: 16 / 9;
}

.photo-gallery-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.36s ease;
}

.photo-gallery-card:hover .photo-gallery-card__media img,
.photo-gallery-card__media:focus-visible img {
    transform: scale(1.035);
}

.photo-gallery-card__zoom {
    position: absolute;
    right: 16px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.68);
    color: var(--white);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    backdrop-filter: blur(12px);
}

.photo-gallery-card__zoom::before {
    content: "";
    width: 8px;
    height: 8px;
    border: 2px solid currentColor;
    border-radius: 999px;
    box-shadow: 4px 4px 0 -2px currentColor;
    transform: translateY(-1px);
}

.photo-gallery-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px;
}

.photo-gallery-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.photo-gallery-card__meta span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 0 10px;
    border-radius: 999px;
    color: #0f4c81;
    background: rgba(56, 189, 248, 0.14);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0.04em;
}

.photo-gallery-card__meta small {
    color: var(--muted-light);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.photo-gallery-card h3 {
    margin: 0 0 12px;
    font-size: clamp(21px, 1.7vw, 27px);
    line-height: 1.16;
    letter-spacing: -0.035em;
}

.photo-gallery-card p {
    margin: 0;
    color: var(--text-soft);
    line-height: 1.68;
}

@media (max-width: 1100px) {
    .photo-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .photo-gallery-card--featured {
        grid-column: auto;
    }
}

@media (max-width: 760px) {
    .photo-gallery-head {
        display: grid;
    }

    .photo-gallery-grid {
        grid-template-columns: 1fr;
    }

    .photo-gallery-feature-card {
        min-height: 360px;
    }

    .photo-gallery-feature-card > div {
        left: 16px;
        right: 16px;
        bottom: 16px;
        padding: 18px;
        border-radius: 22px;
    }
}


/* =========================================================
   Photo gallery — Compact Premium Gallery
   ========================================================= */

.photo-gallery-page--compact {
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 8%, rgba(37, 99, 235, 0.055), transparent 30rem),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 44%, #ffffff 100%);
}

.photo-gallery-hero-compact {
    position: relative;
    padding: clamp(42px, 5vw, 78px) 0 clamp(46px, 6vw, 82px);
    border-bottom: 1px solid rgba(201, 214, 229, 0.72);
    background:
        repeating-linear-gradient(135deg, rgba(15, 23, 42, 0.018) 0 1px, transparent 1px 9px),
        linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.88));
}

.photo-gallery-hero-compact::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 76% 16%, rgba(37, 99, 235, 0.08), transparent 30%),
        radial-gradient(circle at 92% 78%, rgba(14, 165, 233, 0.07), transparent 28%);
    pointer-events: none;
}

.photo-gallery-hero-compact__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.98fr) minmax(430px, 0.82fr);
    gap: clamp(30px, 5vw, 72px);
    align-items: center;
}

.photo-gallery-breadcrumbs {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 26px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.photo-gallery-breadcrumbs a {
    color: var(--accent);
    text-decoration: none;
}

.photo-gallery-hero-compact__badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(37, 99, 235, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 10px 24px rgba(37, 99, 235, 0.06);
}

.photo-gallery-hero-compact__badge span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.photo-gallery-hero-compact h1 {
    max-width: 800px;
    margin: 22px 0 18px;
    color: var(--text);
    font-size: clamp(42px, 5vw, 76px);
    line-height: 0.98;
    letter-spacing: -0.065em;
}

.photo-gallery-hero-compact__content > p {
    max-width: 650px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(17px, 1.45vw, 20px);
    line-height: 1.7;
    font-weight: 540;
}

.photo-gallery-hero-compact__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.photo-gallery-recommend-card {
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(190px, 0.8fr);
    gap: 20px;
    align-items: center;
    min-height: 282px;
    padding: 18px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 28px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94));
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.1);
}

.photo-gallery-recommend-card__content {
    min-width: 0;
    padding: 8px 0 8px 6px;
}

.photo-gallery-recommend-card__badge {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    margin-bottom: 16px;
    padding: 0 10px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: var(--white);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
}

.photo-gallery-recommend-card strong {
    display: block;
    margin-bottom: 14px;
    color: var(--text);
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.photo-gallery-recommend-card ul {
    display: grid;
    gap: 10px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}

.photo-gallery-recommend-card li {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 10px;
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.45;
}

.photo-gallery-recommend-card li span {
    color: var(--muted);
    font-weight: 800;
}

.photo-gallery-recommend-card a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--accent);
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.photo-gallery-recommend-card__image {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: 224px;
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: #eef4fb;
    cursor: zoom-in;
}

.photo-gallery-recommend-card__image img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    transition: transform 0.34s ease;
}

.photo-gallery-recommend-card__image:hover img,
.photo-gallery-recommend-card__image:focus-visible img {
    transform: scale(1.035);
}

.photo-gallery-compact-section {
    padding-top: clamp(34px, 4vw, 58px);
}

.photo-gallery-filterbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    margin-bottom: 28px;
}

.photo-gallery-filterbar__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--text-soft);
    background: transparent;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
    transition: transform 0.18s ease, border-color 0.18s ease, color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.photo-gallery-filterbar__item:hover,
.photo-gallery-filterbar__item:focus-visible,
.photo-gallery-filterbar__item.is-active {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.18);
    color: var(--accent);
    background: rgba(219, 234, 254, 0.42);
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.06);
}

.photo-gallery-compact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    align-items: stretch;
}

.photo-gallery-compact-card {
    overflow: hidden;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 16px 42px rgba(15, 23, 42, 0.055);
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.photo-gallery-compact-card:hover {
    transform: translateY(-4px);
    border-color: rgba(37, 99, 235, 0.2);
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.1);
}

.photo-gallery-compact-card__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    padding: 0;
    border: 0;
    background: #eef4fb;
    cursor: zoom-in;
    overflow: hidden;
}

.photo-gallery-compact-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.34s ease;
}

.photo-gallery-compact-card:hover .photo-gallery-compact-card__media img,
.photo-gallery-compact-card__media:focus-visible img {
    transform: scale(1.035);
}

.photo-gallery-compact-card__zoom {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: calc(100% - 24px);
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.72);
    color: var(--white);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.01em;
    backdrop-filter: blur(10px);
}

.photo-gallery-compact-card__zoom::before {
    content: "";
    width: 8px;
    height: 8px;
    border: 1.8px solid currentColor;
    border-radius: 999px;
    box-shadow: 4px 4px 0 -2px currentColor;
    transform: translateY(-1px);
}

.photo-gallery-compact-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px;
}

.photo-gallery-compact-card__category {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 26px;
    margin-bottom: 12px;
    padding: 0 9px;
    border-radius: 8px;
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.04em;
}

.photo-gallery-compact-card h3 {
    margin: 0 0 9px;
    color: var(--text);
    font-size: clamp(19px, 1.45vw, 23px);
    line-height: 1.18;
    letter-spacing: -0.035em;
}

.photo-gallery-compact-card p {
    display: -webkit-box;
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.62;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.photo-gallery-compact-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 18px;
}

.photo-gallery-compact-card__footer span {
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.photo-gallery-compact-card__footer small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

@media (max-width: 1180px) {
    .photo-gallery-hero-compact__grid {
        grid-template-columns: 1fr;
    }

    .photo-gallery-recommend-card {
        max-width: 760px;
    }

    .photo-gallery-compact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .photo-gallery-hero-compact {
        padding-top: 34px;
    }

    .photo-gallery-hero-compact h1 {
        font-size: clamp(36px, 12vw, 52px);
    }

    .photo-gallery-hero-compact__actions {
        display: grid;
    }

    .photo-gallery-hero-compact__actions .btn {
        width: 100%;
    }

    .photo-gallery-recommend-card,
    .photo-gallery-compact-grid {
        grid-template-columns: 1fr;
    }

    .photo-gallery-recommend-card {
        padding: 14px;
        border-radius: 24px;
    }

    .photo-gallery-recommend-card__image {
        min-height: 220px;
        order: -1;
    }

    .photo-gallery-filterbar {
        gap: 8px;
    }

    .photo-gallery-filterbar__item {
        min-height: 36px;
        padding: 0 12px;
    }
}


/* Photo gallery — refined hero focus card */
.photo-gallery-hero-compact__content {
    padding-top: 0;
}

.photo-gallery-recommend-card--refined {
    grid-template-columns: minmax(210px, 0.9fr) minmax(0, 1fr);
    gap: 18px;
    padding: 16px;
}

.photo-gallery-recommend-card--refined .photo-gallery-recommend-card__image {
    min-height: 248px;
    order: 0;
}

.photo-gallery-recommend-card__zoom {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.68);
    color: var(--white);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}

.photo-gallery-recommend-card__zoom::before {
    content: "";
    width: 8px;
    height: 8px;
    border: 1.8px solid currentColor;
    border-radius: 999px;
    box-shadow: 4px 4px 0 -2px currentColor;
    transform: translateY(-1px);
}

.photo-gallery-recommend-card--refined .photo-gallery-recommend-card__content {
    display: flex;
    min-height: 248px;
    flex-direction: column;
    justify-content: center;
    padding: 12px 10px 12px 2px;
}

.photo-gallery-recommend-card--refined .photo-gallery-recommend-card__badge {
    width: fit-content;
    margin-bottom: 14px;
    background: rgba(219, 234, 254, 0.86);
    color: var(--accent);
}

.photo-gallery-recommend-card--refined strong {
    margin-bottom: 12px;
}

.photo-gallery-recommend-card--refined p {
    display: -webkit-box;
    margin: 0 0 18px;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.62;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.photo-gallery-compact-section {
    padding-top: clamp(30px, 4vw, 56px);
}

@media (max-width: 760px) {
    .photo-gallery-recommend-card--refined {
        grid-template-columns: 1fr;
    }

    .photo-gallery-recommend-card--refined .photo-gallery-recommend-card__content {
        min-height: auto;
        padding: 6px 4px 8px;
    }
}


/* Photo gallery — video hero block + 5-column compact grid */
.photo-gallery-video-card {
    display: grid;
    grid-template-columns: minmax(210px, 0.9fr) minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
    min-height: 282px;
    padding: 16px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 28px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94));
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.1);
}

.photo-gallery-video-card__media {
    position: relative;
    overflow: hidden;
    min-height: 248px;
    border-radius: 22px;
    background: #0f172a;
}

.photo-gallery-video-card__media video,
.photo-gallery-video-card__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.photo-gallery-video-card__placeholder {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: inherit;
    color: var(--white);
}

.photo-gallery-video-card__placeholder::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.04), rgba(15, 23, 42, 0.74));
    pointer-events: none;
}

.photo-gallery-video-card__placeholder > div {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 16px;
    z-index: 3;
}

.photo-gallery-video-card__placeholder strong {
    display: block;
    margin-bottom: 4px;
    color: var(--white);
    font-size: 17px;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.photo-gallery-video-card__placeholder p {
    margin: 0;
    color: rgba(255, 255, 255, 0.74);
    font-size: 12px;
    line-height: 1.45;
}

.photo-gallery-video-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    width: 62px;
    height: 62px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
    transform: translate(-50%, -50%);
    backdrop-filter: blur(12px);
}

.photo-gallery-video-card__play::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 52%;
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    border-left: 15px solid var(--accent);
    transform: translate(-50%, -50%);
}

.photo-gallery-video-card__content {
    display: flex;
    min-height: 248px;
    flex-direction: column;
    justify-content: center;
    padding: 12px 10px 12px 2px;
}

.photo-gallery-video-card__content span {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 27px;
    margin-bottom: 14px;
    padding: 0 10px;
    border-radius: 9px;
    background: rgba(219, 234, 254, 0.86);
    color: var(--accent);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
}

.photo-gallery-video-card__content strong {
    display: block;
    margin-bottom: 12px;
    color: var(--text);
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.photo-gallery-video-card__content p {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.62;
}

.photo-gallery-compact-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.photo-gallery-compact-card {
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.048);
}

.photo-gallery-compact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.085);
}

.photo-gallery-compact-card__media {
    aspect-ratio: 4 / 3;
}

.photo-gallery-compact-card__zoom {
    top: 9px;
    left: 9px;
    padding: 6px 8px;
    font-size: 10px;
}

.photo-gallery-compact-card__body {
    padding: 13px;
}

.photo-gallery-compact-card__category {
    min-height: 23px;
    margin-bottom: 9px;
    padding: 0 8px;
    border-radius: 7px;
    font-size: 10px;
}

.photo-gallery-compact-card h3 {
    margin-bottom: 7px;
    font-size: clamp(16px, 1.15vw, 19px);
    line-height: 1.16;
}

.photo-gallery-compact-card p {
    font-size: 12.5px;
    line-height: 1.52;
    -webkit-line-clamp: 2;
}

.photo-gallery-compact-card__footer {
    padding-top: 13px;
}

.photo-gallery-compact-card__footer span,
.photo-gallery-compact-card__footer small {
    font-size: 10.5px;
}

@media (max-width: 1380px) {
    .photo-gallery-compact-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .photo-gallery-compact-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .photo-gallery-video-card {
        grid-template-columns: 1fr;
    }

    .photo-gallery-video-card__content {
        min-height: auto;
        padding: 6px 4px 8px;
    }

    .photo-gallery-compact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (max-width: 480px) {
    .photo-gallery-compact-grid {
        grid-template-columns: 1fr;
    }
}


/* Photo gallery — full-width autoplay video hero */
.photo-gallery-video-card--full {
    display: block;
    min-height: 282px;
    padding: 16px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media {
    width: 100%;
    height: 100%;
    min-height: 282px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media video,
.photo-gallery-video-card--full .photo-gallery-video-card__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
    min-height: 282px;
}

@media (max-width: 760px) {
    .photo-gallery-video-card--full,
    .photo-gallery-video-card--full .photo-gallery-video-card__media,
    .photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
        min-height: 260px;
    }
}


/* Photo gallery — reduced hero video height */
.photo-gallery-video-card--full {
    min-height: 150px;
    padding: 12px;
    border-radius: 24px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media {
    height: clamp(140px, 16vw, 160px);
    min-height: 140px;
    border-radius: 18px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media video,
.photo-gallery-video-card--full .photo-gallery-video-card__media img {
    min-height: 140px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
    min-height: 140px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__play {
    width: 50px;
    height: 50px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder > div {
    left: 14px;
    right: 14px;
    bottom: 14px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder strong {
    font-size: 15px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder p {
    max-width: 360px;
    font-size: 11px;
}

@media (max-width: 760px) {
    .photo-gallery-video-card--full,
    .photo-gallery-video-card--full .photo-gallery-video-card__media,
    .photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
        min-height: 170px;
    }

    .photo-gallery-video-card--full .photo-gallery-video-card__media {
        height: 170px;
    }
}


/* Photo gallery — balanced hero video height */
.photo-gallery-video-card--full {
    min-height: 230px;
    padding: 14px;
    border-radius: 26px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media {
    height: clamp(220px, 22vw, 250px);
    min-height: 220px;
    border-radius: 20px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media video,
.photo-gallery-video-card--full .photo-gallery-video-card__media img {
    min-height: 220px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
    min-height: 220px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__play {
    width: 58px;
    height: 58px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder > div {
    left: 16px;
    right: 16px;
    bottom: 16px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder strong {
    font-size: 17px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder p {
    max-width: 430px;
    font-size: 12px;
}

@media (max-width: 760px) {
    .photo-gallery-video-card--full,
    .photo-gallery-video-card--full .photo-gallery-video-card__media,
    .photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
        min-height: 220px;
    }

    .photo-gallery-video-card--full .photo-gallery-video-card__media {
        height: 220px;
    }
}


/* Photo gallery — fixed 320px hero video height */
.photo-gallery-video-card--full {
    min-height: 320px;
    padding: 14px;
    border-radius: 26px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media {
    height: 320px;
    min-height: 320px;
    border-radius: 20px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media video,
.photo-gallery-video-card--full .photo-gallery-video-card__media img {
    min-height: 320px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
    min-height: 320px;
}

@media (max-width: 760px) {
    .photo-gallery-video-card--full,
    .photo-gallery-video-card--full .photo-gallery-video-card__media,
    .photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
        min-height: 260px;
    }

    .photo-gallery-video-card--full .photo-gallery-video-card__media {
        height: 260px;
    }
}


/* Photo gallery — fixed 500px hero video height */
.photo-gallery-video-card--full {
    min-height: 500px;
    padding: 14px;
    border-radius: 26px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media {
    height: 500px;
    min-height: 500px;
    border-radius: 20px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__media video,
.photo-gallery-video-card--full .photo-gallery-video-card__media img {
    min-height: 500px;
}

.photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
    min-height: 500px;
}

@media (max-width: 760px) {
    .photo-gallery-video-card--full,
    .photo-gallery-video-card--full .photo-gallery-video-card__media,
    .photo-gallery-video-card--full .photo-gallery-video-card__placeholder {
        min-height: 300px;
    }

    .photo-gallery-video-card--full .photo-gallery-video-card__media {
        height: 300px;
    }
}


/* =========================================================
   Video gallery page
   ========================================================= */

.video-gallery-page {
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 8%, rgba(37, 99, 235, 0.055), transparent 30rem),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 44%, #ffffff 100%);
}

.video-gallery-hero {
    position: relative;
    padding: clamp(42px, 5vw, 78px) 0 clamp(46px, 6vw, 82px);
    border-bottom: 1px solid rgba(201, 214, 229, 0.72);
    background:
        repeating-linear-gradient(135deg, rgba(15, 23, 42, 0.018) 0 1px, transparent 1px 9px),
        linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.88));
}

.video-gallery-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 76% 16%, rgba(37, 99, 235, 0.08), transparent 30%),
        radial-gradient(circle at 92% 78%, rgba(14, 165, 233, 0.07), transparent 28%);
    pointer-events: none;
}

.video-gallery-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.98fr) minmax(430px, 0.82fr);
    gap: clamp(30px, 5vw, 72px);
    align-items: center;
}

.video-gallery-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(37, 99, 235, 0.14);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 10px 24px rgba(37, 99, 235, 0.06);
}

.video-gallery-hero__badge span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.video-gallery-hero h1 {
    max-width: 800px;
    margin: 22px 0 18px;
    color: var(--text);
    font-size: clamp(42px, 5vw, 76px);
    line-height: 0.98;
    letter-spacing: -0.065em;
}

.video-gallery-hero__content > p {
    max-width: 650px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(17px, 1.45vw, 20px);
    line-height: 1.7;
    font-weight: 540;
}

.video-gallery-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.video-gallery-hero-card {
    display: block;
    min-height: 620px;
    padding: 14px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 26px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94));
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.1);
}

.video-gallery-hero-card__media {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 620px;
    min-height: 620px;
    border-radius: 20px;
    background: #0f172a;
}

.video-gallery-hero-card__media video,
.video-gallery-hero-card__media img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: contain;
}

.video-gallery-hero-card__placeholder {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: inherit;
    color: var(--white);
}

.video-gallery-hero-card__placeholder::before,
.video-gallery-card__placeholder::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.04), rgba(15, 23, 42, 0.74));
    pointer-events: none;
}

.video-gallery-hero-card__placeholder > div {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 3;
}

.video-gallery-hero-card__placeholder strong {
    display: block;
    margin-bottom: 5px;
    color: var(--white);
    font-size: 20px;
    line-height: 1.15;
    letter-spacing: -0.03em;
}

.video-gallery-hero-card__placeholder p {
    max-width: 440px;
    margin: 0;
    color: rgba(255, 255, 255, 0.74);
    font-size: 13px;
    line-height: 1.5;
}

.video-gallery-section {
    padding-top: clamp(30px, 4vw, 56px);
}

.video-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.video-gallery-card {
    overflow: hidden;
    display: flex;
    min-height: 100%;
    flex-direction: column;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.048);
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.video-gallery-card:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.2);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.085);
}

.video-gallery-card__media {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 9 / 16;
    background: #0f172a;
}

.video-gallery-card__media video,
.video-gallery-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.video-gallery-card__placeholder {
    position: relative;
    width: 100%;
    height: 100%;
    color: var(--white);
}

.video-gallery-play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
    transform: translate(-50%, -50%);
    backdrop-filter: blur(12px);
}

.video-gallery-play::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 52%;
    width: 0;
    height: 0;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-left: 14px solid var(--accent);
    transform: translate(-50%, -50%);
}

.video-gallery-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 13px;
}

.video-gallery-card__category {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    min-height: 23px;
    margin-bottom: 9px;
    padding: 0 8px;
    border-radius: 7px;
    background: rgba(37, 99, 235, 0.1);
    color: var(--accent);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.04em;
}

.video-gallery-card h3 {
    margin: 0 0 7px;
    color: var(--text);
    font-size: clamp(16px, 1.15vw, 19px);
    line-height: 1.16;
    letter-spacing: -0.035em;
}

.video-gallery-card p {
    display: -webkit-box;
    margin: 0;
    color: var(--text-soft);
    font-size: 12.5px;
    line-height: 1.52;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.video-gallery-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 13px;
}

.video-gallery-card__footer span {
    color: var(--accent);
    font-size: 10.5px;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.video-gallery-card__footer small {
    color: var(--muted);
    font-size: 10.5px;
    font-weight: 750;
}

@media (max-width: 1380px) {
    .video-gallery-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .video-gallery-hero__grid {
        grid-template-columns: 1fr;
    }

    .video-gallery-hero-card {
        max-width: 860px;
    }
}

@media (max-width: 1100px) {
    .video-gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .video-gallery-hero {
        padding-top: 34px;
    }

    .video-gallery-hero h1 {
        font-size: clamp(36px, 12vw, 52px);
    }

    .video-gallery-hero__actions {
        display: grid;
    }

    .video-gallery-hero__actions .btn {
        width: 100%;
    }

    .video-gallery-hero-card,
    .video-gallery-hero-card__media,
    .video-gallery-hero-card__placeholder {
        min-height: 300px;
    }

    .video-gallery-hero-card__media {
        height: clamp(420px, 75vh, 620px);
        min-height: 0;
    }

    .video-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (max-width: 480px) {
    .video-gallery-grid {
        grid-template-columns: 1fr;
    }
}


/* Home engineering note alignment */
.services-note--engineering {
    display: flex;
    flex-direction: column;
    align-self: start;
    padding: 20px;
}

.services-note--engineering .services-note__top span {
    margin-bottom: 12px;
}

.services-note--engineering .services-note__top strong {
    margin-bottom: 12px;
    font-size: 21px;
}

.services-note--engineering p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
}

.services-note--engineering .services-note__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 18px 0;
}

.services-note--engineering .services-note__steps span {
    min-height: 40px;
    padding: 8px 10px;
    border-radius: 12px;
    font-size: 12px;
    line-height: 1.15;
}

.services-note--engineering .services-note__steps span::before {
    width: 7px;
    height: 7px;
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.services-note--engineering .btn {
    margin-top: auto;
}

@media (max-width: 1180px) {
    .services-note--engineering .services-note__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .services-note--engineering .services-note__steps {
        grid-template-columns: 1fr;
    }
}


/* Services page — compact right note alignment */
.services-page .services-note--engineering,
.services-section .services-note--engineering {
    align-self: start;
}

.services-page .services-note--engineering .services-note__steps,
.services-section .services-note--engineering .services-note__steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.services-page .services-note--engineering .services-note__steps span,
.services-section .services-note--engineering .services-note__steps span {
    min-height: 34px;
    padding: 8px 10px;
    font-size: 12px;
}

.services-page .services-note--engineering p,
.services-section .services-note--engineering p {
    margin-bottom: 18px;
    font-size: 14px;
    line-height: 1.62;
}

.services-page .services-note--engineering .btn,
.services-section .services-note--engineering .btn {
    margin-top: 18px;
}

@media (max-width: 1180px) {
    .services-page .services-note--engineering .services-note__steps,
    .services-section .services-note--engineering .services-note__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .services-page .services-note--engineering .services-note__steps,
    .services-section .services-note--engineering .services-note__steps {
        grid-template-columns: 1fr;
    }
}


/* Request result page — premium confirmation */
.request-result-body {
    min-height: 100vh;
    background: #f4f7fb;
}

.request-result-page {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    padding: clamp(34px, 7vw, 86px) 0;
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 12% 18%, rgba(37, 99, 235, 0.10), transparent 26rem),
        radial-gradient(circle at 86% 0%, rgba(14, 165, 233, 0.12), transparent 28rem),
        linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
}

.request-result-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.7;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: radial-gradient(circle at 50% 44%, #000 0%, transparent 74%);
}

.request-result-container {
    position: relative;
    z-index: 1;
    width: 100%;
}

.request-result-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.86fr);
    gap: clamp(18px, 3vw, 30px);
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(18px, 2.6vw, 28px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 34px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(246, 250, 255, 0.9));
    box-shadow: 0 34px 90px rgba(15, 23, 42, 0.10);
    backdrop-filter: blur(16px);
}

.request-result-hero,
.request-result-side {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.request-result-hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 560px;
    padding: clamp(30px, 4vw, 54px);
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.11), transparent 24rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(243, 248, 255, 0.94));
}

.request-result-hero::before {
    content: "";
    position: absolute;
    right: -80px;
    top: -80px;
    width: 240px;
    height: 240px;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 50%;
    box-shadow:
        0 0 0 34px rgba(37, 99, 235, 0.045),
        0 0 0 72px rgba(14, 165, 233, 0.035);
}

.request-result-status {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 26px;
    padding: 10px 13px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.86);
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.request-result-status__icon {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.22);
}

.request-result-status__icon::before {
    content: "";
    width: 11px;
    height: 7px;
    border-left: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: translateY(-1px) rotate(-45deg);
}

.request-result-status--error {
    border-color: rgba(220, 38, 38, 0.15);
    background: rgba(254, 242, 242, 0.9);
    color: #b91c1c;
}

.request-result-status--error .request-result-status__icon {
    background: linear-gradient(135deg, #ef4444, #f97316);
    box-shadow: 0 12px 24px rgba(239, 68, 68, 0.18);
}

.request-result-status--error .request-result-status__icon::before,
.request-result-status--error .request-result-status__icon::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 2px;
    border: 0;
    border-radius: 99px;
    background: #ffffff;
    transform: rotate(45deg);
}

.request-result-status--error .request-result-status__icon::after {
    transform: rotate(-45deg);
}

.request-result-hero h1 {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 0 0 18px;
    color: var(--text);
    font-size: clamp(42px, 5vw, 78px);
    line-height: 0.94;
    letter-spacing: -0.065em;
}

.request-result-hero p {
    position: relative;
    z-index: 1;
    max-width: 680px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(16px, 1.45vw, 19px);
    line-height: 1.72;
}

.request-result-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.request-result-trust {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}

.request-result-trust span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 850;
}

.request-result-trust span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--accent);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.09);
}

.request-result-side {
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 3vw, 34px);
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.07), transparent 20rem),
        rgba(255, 255, 255, 0.92);
}

.request-result-kicker {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 12px;
    padding: 8px 11px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.8);
    color: var(--accent);
    font-size: 11px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.request-result-kicker--error {
    border-color: rgba(220, 38, 38, 0.16);
    background: rgba(254, 242, 242, 0.9);
    color: #b91c1c;
}

.request-result-side h2 {
    margin: 0 0 18px;
    color: var(--text);
    font-size: clamp(25px, 2.4vw, 34px);
    line-height: 1.04;
    letter-spacing: -0.05em;
}

.request-result-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 22px;
}

.request-result-summary__item {
    display: grid;
    gap: 6px;
    min-height: 86px;
    padding: 15px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(248, 251, 255, 0.8);
}

.request-result-summary__item--wide {
    grid-column: 1 / -1;
}

.request-result-summary__item span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.request-result-summary__item strong {
    color: var(--text);
    font-size: 14px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.request-result-next {
    display: grid;
    gap: 10px;
    margin-top: auto;
}

.request-result-next div {
    position: relative;
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 8px 12px;
    align-items: start;
    padding: 14px;
    border: 1px solid rgba(201, 214, 229, 0.78);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.84);
}

.request-result-next div > span {
    grid-row: span 2;
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.95), rgba(14, 165, 233, 0.95));
    color: #ffffff;
    font-size: 11px;
    font-weight: 950;
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.18);
}

.request-result-next strong {
    color: var(--text);
    font-size: 14px;
    line-height: 1.25;
}

.request-result-next p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.48;
}

.request-result-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    max-width: 1180px;
    margin: 18px auto 0;
    padding: 18px 20px;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.06);
}

.request-result-bottom span {
    display: block;
    margin-bottom: 4px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.request-result-bottom strong {
    display: block;
    max-width: 720px;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.45;
}

.request-result-bottom__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.request-result-bottom__actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.86);
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.request-result-bottom__actions a:hover {
    transform: translateY(-1px);
    border-color: rgba(37, 99, 235, 0.32);
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    color: #ffffff;
}

.request-result-error-list {
    display: grid;
    gap: 10px;
    margin: 0 0 18px;
    padding: 0;
}

.request-result-error-list li {
    position: relative;
    list-style: none;
    padding: 13px 14px 13px 38px;
    border: 1px solid rgba(248, 113, 113, 0.28);
    border-radius: 16px;
    background: rgba(254, 242, 242, 0.82);
    color: #991b1b;
    font-size: 14px;
    line-height: 1.45;
}

.request-result-error-list li::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 19px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #ef4444;
    box-shadow: 0 0 0 5px rgba(239, 68, 68, 0.10);
}

.request-result-hint {
    margin: auto 0 0;
    padding: 14px;
    border: 1px dashed rgba(37, 99, 235, 0.22);
    border-radius: 18px;
    background: rgba(239, 246, 255, 0.62);
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.55;
}

@media (max-width: 980px) {
    .request-result-page {
        align-items: stretch;
    }

    .request-result-shell {
        grid-template-columns: 1fr;
    }

    .request-result-hero {
        min-height: auto;
    }

    .request-result-bottom {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 640px) {
    .request-result-page {
        padding: 18px 0;
    }

    .request-result-shell {
        padding: 12px;
        border-radius: 26px;
    }

    .request-result-hero,
    .request-result-side {
        border-radius: 22px;
    }

    .request-result-hero {
        padding: 26px 20px;
    }

    .request-result-hero h1 {
        font-size: 39px;
    }

    .request-result-actions {
        flex-direction: column;
    }

    .request-result-actions .btn {
        width: 100%;
    }

    .request-result-summary {
        grid-template-columns: 1fr;
    }

    .request-result-bottom {
        border-radius: 20px;
    }
}


/* Request modal — premium Max contact badge */
.request-modal__contact-btn--max {
    color: #ffffff;
    background:
        radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.34), transparent 1.7rem),
        linear-gradient(135deg, #2563eb 0%, #0ea5e9 100%);
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.18);
}

.request-modal__contact-btn--max:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 34px rgba(37, 99, 235, 0.24);
}

.request-modal__contact-icon--max-word {
    width: 42px;
    height: 24px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
    font-size: 10px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 8px 18px rgba(15, 23, 42, 0.12);
}


/* Contacts page */
.contacts-page {
    position: relative;
    overflow: hidden;
    padding: clamp(46px, 6vw, 88px) 0 clamp(58px, 7vw, 104px);
    background:
        radial-gradient(circle at 12% 10%, rgba(37, 99, 235, 0.10), transparent 28rem),
        radial-gradient(circle at 88% 0%, rgba(14, 165, 233, 0.10), transparent 30rem),
        linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
}

.contacts-page__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.74;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, #000 0%, transparent 82%);
}

.contacts-hero,
.contacts-layout,
.contacts-note {
    position: relative;
    z-index: 1;
}

.contacts-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.78fr);
    gap: clamp(18px, 3vw, 28px);
    align-items: stretch;
    margin-bottom: 22px;
}

.contacts-hero__content,
.contacts-hero-card,
.contacts-panel,
.contacts-note {
    border: 1px solid rgba(201, 214, 229, 0.9);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.07);
    backdrop-filter: blur(16px);
}

.contacts-hero__content {
    position: relative;
    overflow: hidden;
    min-height: 560px;
    padding: clamp(30px, 4vw, 58px);
    border-radius: 34px;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.10), transparent 26rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.97), rgba(243, 248, 255, 0.92));
}

.contacts-hero__content::after {
    content: "";
    position: absolute;
    right: -90px;
    top: -90px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 50%;
    box-shadow:
        0 0 0 36px rgba(37, 99, 235, 0.045),
        0 0 0 78px rgba(14, 165, 233, 0.035);
}

.contacts-hero__badge {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-bottom: 28px;
    padding: 10px 13px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.86);
    color: var(--accent, #2563eb);
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contacts-hero__badge span {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: var(--accent, #2563eb);
    box-shadow: 0 0 0 6px rgba(37, 99, 235, 0.10);
}

.contacts-hero h1 {
    position: relative;
    z-index: 1;
    max-width: 820px;
    margin: 0 0 18px;
    color: var(--text, #101827);
    font-size: clamp(43px, 5.4vw, 84px);
    line-height: 0.93;
    letter-spacing: -0.07em;
}

.contacts-hero p {
    position: relative;
    z-index: 1;
    max-width: 690px;
    margin: 0;
    color: var(--text-soft, #263244);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.72;
}

.contacts-hero__actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.contacts-hero__chips {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}

.contacts-hero__chips span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 10px 13px;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    color: var(--text-soft, #263244);
    font-size: 13px;
    font-weight: 850;
}

.contacts-hero__chips span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--accent, #2563eb);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.09);
}

.contacts-hero-card {
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 3vw, 34px);
    border-radius: 34px;
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.08), transparent 18rem),
        rgba(255, 255, 255, 0.92);
}

.contacts-kicker {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 12px;
    padding: 8px 11px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.82);
    color: var(--accent, #2563eb);
    font-size: 11px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contacts-hero-card h2,
.contacts-panel h2 {
    margin: 0 0 14px;
    color: var(--text, #101827);
    font-size: clamp(27px, 2.5vw, 38px);
    line-height: 1.02;
    letter-spacing: -0.055em;
}

.contacts-hero-card p,
.contacts-section-head p {
    margin: 0;
    color: var(--muted, #64748b);
    font-size: 14px;
    line-height: 1.62;
}

.contacts-fast-list {
    display: grid;
    gap: 10px;
    margin-top: 24px;
}

.contacts-fast-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 12px;
    border: 1px solid rgba(201, 214, 229, 0.78);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.84);
    color: var(--text, #101827);
    text-decoration: none;
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.contacts-fast-card:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.26);
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.08);
}

.contacts-fast-card__icon {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 16px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.18);
}

.contacts-fast-card__icon .icon-svg {
    width: 18px;
    height: 18px;
}

.contacts-fast-card small {
    display: block;
    margin-bottom: 2px;
    color: var(--muted, #64748b);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.contacts-fast-card strong {
    display: block;
    color: var(--text, #101827);
    font-size: 15px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.contacts-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 0.42fr);
    gap: 22px;
    align-items: start;
}

.contacts-panel {
    border-radius: 34px;
    padding: clamp(24px, 3vw, 34px);
}

.contacts-panel--main {
    background: rgba(255, 255, 255, 0.9);
}

.contacts-panel--route {
    position: sticky;
    top: calc(var(--header-height, 78px) + 22px);
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.08), transparent 18rem),
        rgba(255, 255, 255, 0.92);
}

.contacts-section-head {
    display: grid;
    gap: 0;
    margin-bottom: 24px;
}

.contacts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.contacts-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 110px;
    padding: 16px 52px 16px 16px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(248, 251, 255, 0.84));
    color: var(--text, #101827);
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.contacts-card:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.26);
    box-shadow: 0 20px 44px rgba(15, 23, 42, 0.08);
}

.contacts-card__icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    border-radius: 19px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    box-shadow: 0 16px 30px rgba(37, 99, 235, 0.18);
}

.contacts-card__icon .icon-svg {
    width: 21px;
    height: 21px;
}

.contacts-card__max-word {
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.08em;
}

.contacts-card__body {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.contacts-card__body small {
    color: var(--muted, #64748b);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.contacts-card__body strong {
    color: var(--text, #101827);
    font-size: 18px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.contacts-card__body em {
    color: var(--muted, #64748b);
    font-size: 13px;
    font-style: normal;
    line-height: 1.35;
}

.contacts-card__arrow {
    position: absolute;
    right: 16px;
    top: 16px;
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 999px;
    color: var(--accent, #2563eb);
    background: rgba(239, 246, 255, 0.78);
}

.contacts-card__arrow .icon-svg {
    width: 14px;
    height: 14px;
}

.contacts-card--whatsapp .contacts-card__icon,
.contacts-fast-card--whatsapp .contacts-fast-card__icon {
    background: linear-gradient(135deg, #22c55e, #16a34a);
}

.contacts-card--telegram .contacts-card__icon,
.contacts-fast-card--telegram .contacts-fast-card__icon {
    background: linear-gradient(135deg, #0ea5e9, #2563eb);
}

.contacts-card--email .contacts-card__icon,
.contacts-fast-card--email .contacts-fast-card__icon {
    background: linear-gradient(135deg, #2563eb, #4f46e5);
}

.contacts-card--max .contacts-card__icon,
.contacts-fast-card--max .contacts-fast-card__icon {
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
}

.contacts-route {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.contacts-route div {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 6px 12px;
    padding: 14px;
    border: 1px solid rgba(201, 214, 229, 0.78);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.82);
}

.contacts-route div > span {
    grid-row: span 2;
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    color: #ffffff;
    font-size: 11px;
    font-weight: 950;
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.18);
}

.contacts-route strong {
    color: var(--text, #101827);
    font-size: 14px;
    line-height: 1.25;
}

.contacts-route p {
    margin: 0;
    color: var(--muted, #64748b);
    font-size: 13px;
    line-height: 1.5;
}

.contacts-route__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 54px;
    margin-top: 18px;
    padding: 14px 18px;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    color: #ffffff;
    font-size: 14px;
    font-weight: 950;
    text-decoration: none;
    box-shadow: 0 18px 40px rgba(37, 99, 235, 0.22);
}

.contacts-route__cta .icon-svg {
    width: 16px;
    height: 16px;
}

.contacts-note {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 22px;
    padding: 18px 20px;
    border-radius: 26px;
}

.contacts-note__icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 16px;
    color: var(--accent, #2563eb);
    background: rgba(239, 246, 255, 0.92);
    border: 1px solid rgba(37, 99, 235, 0.16);
}

.contacts-note__icon .icon-svg {
    width: 19px;
    height: 19px;
}

.contacts-note div {
    min-width: 0;
}

.contacts-note span {
    display: block;
    margin-bottom: 3px;
    color: var(--accent, #2563eb);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contacts-note strong {
    display: block;
    color: var(--text-soft, #263244);
    font-size: 15px;
    line-height: 1.45;
}

.contacts-note a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin-left: auto;
    min-height: 44px;
    padding: 11px 15px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.8);
    color: var(--accent, #2563eb);
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

@media (max-width: 1180px) {
    .contacts-hero,
    .contacts-layout {
        grid-template-columns: 1fr;
    }

    .contacts-hero__content {
        min-height: auto;
    }

    .contacts-panel--route {
        position: static;
    }

    .contacts-fast-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .contacts-page {
        padding-top: 28px;
    }

    .contacts-hero__content,
    .contacts-hero-card,
    .contacts-panel {
        border-radius: 26px;
    }

    .contacts-hero__content {
        padding: 26px 20px;
    }

    .contacts-hero h1 {
        font-size: 42px;
    }

    .contacts-hero__actions {
        flex-direction: column;
    }

    .contacts-hero__actions .btn {
        width: 100%;
    }

    .contacts-fast-list,
    .contacts-grid {
        grid-template-columns: 1fr;
    }

    .contacts-note {
        align-items: flex-start;
        flex-direction: column;
    }

    .contacts-note a {
        width: 100%;
        margin-left: 0;
    }
}


/* Contacts page — required business info and map */
.contacts-company-strip {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: 760px;
    margin-top: 26px;
}

.contacts-company-strip div,
.contacts-detail-card {
    display: grid;
    gap: 6px;
    padding: 15px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.78);
}

.contacts-company-strip span,
.contacts-detail-card span {
    color: var(--muted, #64748b);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.contacts-company-strip strong,
.contacts-detail-card strong {
    color: var(--text, #101827);
    font-size: 15px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.contacts-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 22px;
}

.contacts-detail-card {
    min-height: 92px;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.055), transparent 12rem),
        rgba(248, 251, 255, 0.82);
}

.contacts-detail-card em {
    color: var(--muted, #64748b);
    font-size: 13px;
    font-style: normal;
    line-height: 1.35;
}

.contacts-card--static {
    cursor: default;
}

.contacts-card--static:hover {
    transform: none;
    box-shadow: none;
}

.contacts-card--static .contacts-card__arrow {
    display: none;
}

.contacts-card--location .contacts-card__icon,
.contacts-fast-card--location .contacts-fast-card__icon {
    background: linear-gradient(135deg, #0f172a, #2563eb);
}

.contacts-map-panel {
    position: relative;
    z-index: 1;
    margin-top: 22px;
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid rgba(201, 214, 229, 0.9);
    border-radius: 34px;
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.08), transparent 22rem),
        rgba(255, 255, 255, 0.92);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.07);
    backdrop-filter: blur(16px);
}

.contacts-map-frame {
    position: relative;
    overflow: hidden;
    height: clamp(320px, 34vw, 520px);
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 26px;
    background:
        linear-gradient(135deg, rgba(239, 246, 255, 0.9), rgba(248, 251, 255, 0.92));
}

.contacts-map-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.contacts-map-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    width: fit-content;
    margin-top: 16px;
    padding: 12px 15px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.84);
    color: var(--accent, #2563eb);
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.contacts-map-link .icon-svg {
    width: 14px;
    height: 14px;
}

@media (max-width: 760px) {
    .contacts-company-strip,
    .contacts-details-grid {
        grid-template-columns: 1fr;
    }

    .contacts-map-frame {
        height: 320px;
        border-radius: 22px;
    }
}


.contacts-channel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 14px;
    padding: 14px 16px;
    border: 1px solid rgba(201, 214, 229, 0.78);
    border-radius: 20px;
    background: rgba(239, 246, 255, 0.58);
}

.contacts-channel-head span {
    color: var(--accent, #2563eb);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contacts-channel-head strong {
    color: var(--text-soft, #263244);
    font-size: 13px;
    line-height: 1.35;
    text-align: right;
}

@media (max-width: 760px) {
    .contacts-channel-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .contacts-channel-head strong {
        text-align: left;
    }
}


/* Privacy policy page */
.privacy-page {
    position: relative;
    overflow: hidden;
    padding: clamp(46px, 6vw, 88px) 0 clamp(58px, 7vw, 104px);
    background:
        radial-gradient(circle at 12% 10%, rgba(37, 99, 235, 0.10), transparent 28rem),
        radial-gradient(circle at 88% 0%, rgba(14, 165, 233, 0.10), transparent 30rem),
        linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
}

.privacy-page__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.74;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.045) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to bottom, #000 0%, transparent 82%);
}

.privacy-hero,
.privacy-layout,
.privacy-bottom {
    position: relative;
    z-index: 1;
}

.privacy-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.72fr);
    gap: clamp(18px, 3vw, 28px);
    align-items: stretch;
    margin-bottom: 22px;
}

.privacy-hero__content,
.privacy-hero-card,
.privacy-content,
.privacy-side,
.privacy-bottom {
    border: 1px solid rgba(201, 214, 229, 0.9);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.07);
    backdrop-filter: blur(16px);
}

.privacy-hero__content {
    position: relative;
    overflow: hidden;
    min-height: 500px;
    padding: clamp(30px, 4vw, 58px);
    border-radius: 34px;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.10), transparent 26rem),
        linear-gradient(145deg, rgba(255, 255, 255, 0.97), rgba(243, 248, 255, 0.92));
}

.privacy-hero__content::after {
    content: "";
    position: absolute;
    right: -90px;
    top: -90px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 50%;
    box-shadow:
        0 0 0 36px rgba(37, 99, 235, 0.045),
        0 0 0 78px rgba(14, 165, 233, 0.035);
}

.privacy-hero__badge {
    position: relative;
    z-index: 1;
}

.privacy-hero h1 {
    position: relative;
    z-index: 1;
    max-width: 820px;
    margin: 0 0 18px;
    color: var(--text, #101827);
    font-size: clamp(43px, 5vw, 78px);
    line-height: 0.93;
    letter-spacing: -0.07em;
}

.privacy-hero p {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0;
    color: var(--text-soft, #263244);
    font-size: clamp(16px, 1.35vw, 19px);
    line-height: 1.72;
}

.privacy-company-strip {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: 820px;
    margin-top: 28px;
}

.privacy-company-strip div {
    display: grid;
    gap: 6px;
    padding: 15px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.78);
}

.privacy-company-strip span {
    color: var(--muted, #64748b);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.privacy-company-strip strong {
    color: var(--text, #101827);
    font-size: 15px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.privacy-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(24px, 3vw, 34px);
    border-radius: 34px;
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.08), transparent 18rem),
        rgba(255, 255, 255, 0.92);
}

.privacy-hero-card h2,
.privacy-side h2 {
    margin: 0 0 14px;
    color: var(--text, #101827);
    font-size: clamp(27px, 2.5vw, 38px);
    line-height: 1.02;
    letter-spacing: -0.055em;
}

.privacy-hero-card p,
.privacy-side p {
    margin: 0;
    color: var(--muted, #64748b);
    font-size: 14px;
    line-height: 1.62;
}

.privacy-mini-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 24px;
}

.privacy-mini-list span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid rgba(201, 214, 229, 0.84);
    border-radius: 15px;
    background: rgba(248, 251, 255, 0.82);
    color: var(--text-soft, #263244);
    font-size: 12px;
    font-weight: 850;
}

.privacy-mini-list span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--accent, #2563eb);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.09);
}

.privacy-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.38fr);
    gap: 22px;
    align-items: start;
}

.privacy-content,
.privacy-side {
    border-radius: 34px;
    padding: clamp(24px, 3vw, 34px);
}

.privacy-content {
    display: grid;
    gap: 12px;
}

.privacy-section-card {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 16px;
    padding: 18px;
    border: 1px solid rgba(201, 214, 229, 0.82);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(248, 251, 255, 0.84));
}

.privacy-section-card > span {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    color: #ffffff;
    font-size: 12px;
    font-weight: 950;
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.18);
}

.privacy-section-card h2 {
    margin: 0 0 8px;
    color: var(--text, #101827);
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.privacy-section-card p {
    margin: 0;
    color: var(--text-soft, #263244);
    font-size: 15px;
    line-height: 1.7;
}

.privacy-side {
    position: sticky;
    top: calc(var(--header-height, 78px) + 22px);
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.08), transparent 18rem),
        rgba(255, 255, 255, 0.92);
}

.privacy-contact-box {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.privacy-contact-box a {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 12px;
    border: 1px solid rgba(201, 214, 229, 0.78);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.84);
    color: var(--text, #101827);
    text-decoration: none;
}

.privacy-contact-box .icon-svg {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    padding: 10px;
    border-radius: 14px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    box-shadow: 0 14px 26px rgba(37, 99, 235, 0.18);
}

.privacy-contact-box small {
    display: block;
    margin-bottom: 2px;
    color: var(--muted, #64748b);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.privacy-contact-box strong {
    display: block;
    color: var(--text, #101827);
    font-size: 14px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.privacy-note {
    display: grid;
    gap: 5px;
    margin-top: 18px;
    padding: 14px;
    border: 1px dashed rgba(37, 99, 235, 0.22);
    border-radius: 18px;
    background: rgba(239, 246, 255, 0.62);
}

.privacy-note span {
    color: var(--muted, #64748b);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.privacy-note strong {
    color: var(--text, #101827);
    font-size: 16px;
}

.privacy-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 22px;
    padding: 18px 20px;
    border-radius: 26px;
}

.privacy-bottom span {
    display: block;
    margin-bottom: 4px;
    color: var(--accent, #2563eb);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.privacy-bottom strong {
    display: block;
    max-width: 820px;
    color: var(--text-soft, #263244);
    font-size: 15px;
    line-height: 1.45;
}

.privacy-bottom a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 44px;
    padding: 11px 15px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    background: rgba(239, 246, 255, 0.8);
    color: var(--accent, #2563eb);
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

@media (max-width: 1180px) {
    .privacy-hero,
    .privacy-layout {
        grid-template-columns: 1fr;
    }

    .privacy-hero__content {
        min-height: auto;
    }

    .privacy-side {
        position: static;
    }
}

@media (max-width: 760px) {
    .privacy-page {
        padding-top: 28px;
    }

    .privacy-hero__content,
    .privacy-hero-card,
    .privacy-content,
    .privacy-side {
        border-radius: 26px;
    }

    .privacy-hero__content {
        padding: 26px 20px;
    }

    .privacy-hero h1 {
        font-size: 42px;
    }

    .privacy-company-strip,
    .privacy-mini-list {
        grid-template-columns: 1fr;
    }

    .privacy-section-card {
        grid-template-columns: 1fr;
    }

    .privacy-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .privacy-bottom a {
        width: 100%;
    }
}

/* Cookie notice and legal consent blocks */
.cookie-notice {
    position: fixed;
    right: clamp(16px, 3vw, 34px);
    bottom: clamp(16px, 3vw, 34px);
    z-index: 1200;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    width: min(720px, calc(100vw - 32px));
    padding: 18px;
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.12), transparent 18rem),
        rgba(255, 255, 255, 0.96);
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.16);
    backdrop-filter: blur(18px);
}

.cookie-notice[hidden] {
    display: none;
}

.cookie-notice__content {
    display: grid;
    gap: 6px;
}

.cookie-notice__content strong {
    color: var(--text, #101827);
    font-size: 14px;
    font-weight: 950;
}

.cookie-notice__content p {
    margin: 0;
    color: var(--text-soft, #263244);
    font-size: 13px;
    line-height: 1.5;
}

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

.cookie-notice__actions a {
    color: var(--accent, #2563eb);
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
}

.cookie-notice__accept,
.cookie-notice__decline {
    min-height: 42px;
    padding-inline: 18px;
}

.request-modal__legal {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid rgba(37, 99, 235, 0.16);
    border-radius: 18px;
    background: rgba(239, 246, 255, 0.72);
}

.request-modal__legal label {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 10px;
    align-items: start;
    color: var(--text-soft, #263244);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.45;
}

.request-modal__legal input {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    accent-color: var(--accent, #2563eb);
}

.request-modal__legal a {
    color: var(--accent, #2563eb);
    font-weight: 900;
    text-decoration: none;
}

.legal-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
}

.legal-list li {
    position: relative;
    list-style: none;
    padding-left: 24px;
    color: var(--text-soft, #263244);
    line-height: 1.55;
}

.legal-list li::before {
    content: "";
    position: absolute;
    top: 0.65em;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--accent, #2563eb), var(--accent-2, #0ea5e9));
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08);
}

@media (max-width: 760px) {
    .cookie-notice {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .cookie-notice__actions {
        justify-content: space-between;
    }
}

/* =========================================================
   Responsive audit layer — 2026-06-28
   Purpose: stable tablet/mobile layout after navigation growth.
   ========================================================= */

:where(.site-main, .container, .header-inner, .hero-inner, .services-layout, .service-contact-box,
    .home-quality-layout,
    .works-method-grid, .works-materials-grid, .work-detail-hero__grid,
    .article-detail-hero__grid, .article-detail-content__grid,
    .photo-gallery-hero-compact__grid, .video-gallery-hero__grid,
    .contacts-hero, .contacts-layout, .privacy-hero, .privacy-layout,
    .request-result-shell, .request-modal__content) {
    min-width: 0;
}

img,
video,
iframe,
svg {
    max-width: 100%;
}

video,
iframe {
    display: block;
}

:where(p, li, dd, blockquote, figcaption, .btn, .card, .admin-table, .request-result-card,
    .service-card, .portfolio-card, .article-card, .works-project-card,
    .contacts-card, .privacy-section-card, .footer-column) {
    overflow-wrap: anywhere;
}

.header-mobile-actions {
    display: none;
}

@media (max-width: 1240px) {
    :root {
        --header-height: 74px;
    }

    body.is-nav-open {
        overflow: hidden;
    }

    .site-header.is-nav-open {
        border-color: rgba(37, 99, 235, 0.18);
        background: rgba(255, 255, 255, 0.96);
        box-shadow: 0 16px 44px rgba(15, 23, 42, 0.10);
    }

    .header-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 14px;
    }

    .logo {
        max-width: min(100%, 360px);
    }

    .logo-text {
        max-width: min(42vw, 260px);
    }

    .logo-text strong,
    .logo-text small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .header-actions {
        justify-self: end;
        gap: 10px;
    }

    .header-actions > .header-socials,
    .header-contacts,
    .header-request-btn {
        display: none;
    }

    .burger {
        display: inline-grid;
        place-items: center;
        margin-left: auto;
    }

    .burger span {
        grid-area: 1 / 1;
        margin: 0;
    }

    .burger span:nth-child(1) {
        transform: translateY(-6px);
    }

    .burger span:nth-child(3) {
        transform: translateY(6px);
    }

    .burger.is-active span:nth-child(1) {
        transform: rotate(45deg);
    }

    .burger.is-active span:nth-child(2) {
        opacity: 0;
    }

    .burger.is-active span:nth-child(3) {
        transform: rotate(-45deg);
    }

    .nav {
        position: fixed;
        left: var(--content-gutter);
        right: var(--content-gutter);
        top: calc(var(--header-height) + 10px);
        z-index: 120;
        display: grid;
        justify-content: stretch;
        gap: 4px;
        max-height: min(72dvh, 640px);
        margin: 0;
        padding: 12px;
        overflow-y: auto;
        overscroll-behavior: contain;
        border: 1px solid rgba(201, 214, 229, 0.9);
        border-radius: 24px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 28px 80px rgba(15, 23, 42, 0.16);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-10px) scale(0.985);
        transform-origin: top right;
        transition: opacity 180ms ease,
            visibility 180ms ease,
            transform 180ms ease;
    }

    .nav.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0) scale(1);
    }

    .nav a {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 11px 13px;
        border-radius: 16px;
        font-size: 14px;
        line-height: 1.2;
    }

    .nav a::after {
        display: none;
    }

    .nav a:hover,
    .nav a.is-active {
        color: var(--accent);
        background: rgba(219, 234, 254, 0.64);
    }

    .header-mobile-contacts {
        display: grid;
        gap: 8px;
        margin-top: 8px;
        padding: 12px 4px 4px;
        border-top: 1px solid var(--line);
    }

    .header-mobile-contact {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 10px 12px;
        border: 1px solid rgba(201, 214, 229, 0.72);
        border-radius: 15px;
        background: #f8fbff;
        color: var(--text-soft);
        font-size: 13px;
        font-weight: 850;
    }

    .header-socials--mobile {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding: 2px 0 0;
    }

    .header-socials--mobile .header-social-link {
        width: 42px;
        height: 42px;
        padding: 0;
    }

    .header-socials--mobile .header-social-link::after {
        display: none;
    }

    .header-mobile-actions {
        display: grid;
        padding-top: 8px;
    }

    .header-mobile-request-btn {
        width: 100%;
        min-height: 46px;
    }
}

@media (max-width: 1180px) {
    .hero-inner,
.home-quality-layout,
.works-method-grid,
.works-materials-grid,
.work-detail-hero__grid,
.article-detail-hero__grid,
.photo-gallery-hero-compact__grid,
.video-gallery-hero__grid,
.contacts-hero,
.contacts-layout,
.privacy-hero,
.privacy-layout,
.request-result-shell {
        grid-template-columns: 1fr;
    }

    .hero-content,
.article-detail-hero__content,
.work-detail-hero__content {
        max-width: 860px;
    }

    .hero-visual,
    .home-hero__visual,
    .work-detail-hero__media,
    .article-detail-hero__media,
    .photo-gallery-hero-compact__media,
    .video-gallery-hero__media {
        width: 100%;
        min-width: 0;
    }

    .site-footer__top,
    .footer-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .home-proof-strip__inner,
    .home-faq__grid,
    .works-direction-grid,
    .works-application-grid,
    .engineering-cases-grid,
    .work-detail-related__grid,
    .articles-grid,
    .photo-gallery-grid,
    .photo-gallery-compact-grid,
    .video-gallery-grid,
    .contacts-grid,
    .contacts-company-strip,
    .privacy-company-strip,
    .privacy-mini-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .work-detail-timeline,
.work-detail-summary__grid,
.materials-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .request-modal__content {
        grid-template-columns: 1fr;
    }

    .request-modal__dialog,
    .request-modal__content {
        max-height: calc(100dvh - 28px);
    }

    .request-modal__content {
        overflow-y: auto;
    }

    .service-contact-box,
    .work-detail-cta.service-contact-box {
        grid-template-columns: 1fr;
    }

    .footer-columns,
    .site-footer__top {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    :root {
        --content-gutter: 18px;
        --header-height: 70px;
    }

    h1,
    .hero h1,
    .home-hero h1,
    .page-hero h1,
    .article-detail-hero h1,
    .work-detail-hero h1 {
        font-size: clamp(32px, 10vw, 46px);
        line-height: 1.08;
        letter-spacing: -0.045em;
    }

    h2,
    .section-title,
    .home-section-head h2 {
        font-size: clamp(26px, 8vw, 38px);
        line-height: 1.12;
    }

    .hero,
    .home-hero,
    .hero--inner {
        padding-top: calc(var(--header-height) + 34px);
        padding-bottom: 52px;
    }

    .hero-actions,
    .home-hero__actions,
    .request-result-actions,
    .contacts-actions,
    .privacy-actions {
        display: grid;
        width: 100%;
    }

    .hero-actions .btn,
    .home-hero__actions .btn,
    .request-result-actions .btn,
    .contacts-actions .btn,
    .privacy-actions .btn {
        width: 100%;
        min-height: 48px;
    }

    .home-proof-strip__inner,
.home-quality-list,
.home-faq__grid,
.works-direction-grid,
.works-showcase-grid,
.works-application-grid,
.engineering-cases-grid,
.works-materials-grid,
.work-detail-timeline,
.work-detail-summary__grid,
.work-detail-focus__grid,
.work-detail-related__grid,
.articles-grid,
.photo-gallery-grid,
.photo-gallery-compact-grid,
.video-gallery-grid,
.contacts-grid,
.contacts-fast-list,
.contacts-company-strip,
.contacts-details-grid,
.privacy-company-strip,
.privacy-mini-list,
.request-result-summary,
.footer-tech-strip {
        grid-template-columns: 1fr;
    }

    .card,
    .service-card,
    .works-project-card,
    .article-card,
    .contacts-card,
    .privacy-section-card,
    .request-result-card {
        border-radius: 22px;
    }

    .request-modal__content {
        padding: 22px;
    }

    .request-modal__intro {
        padding-right: 44px;
    }

    .request-modal__form {
        min-width: 0;
    }
}

@media (max-width: 520px) {
    :root {
        --content-gutter: 16px;
    }

    .logo {
        gap: 10px;
    }

    .logo-mark {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        border-radius: 13px;
    }

    .logo-text {
        max-width: calc(100vw - 132px);
    }

    .logo-text strong {
        font-size: 13px;
    }

    .logo-text small {
        font-size: 11px;
    }

    .nav {
        left: 10px;
        right: 10px;
        max-height: min(78dvh, 620px);
        border-radius: 20px;
    }

    .burger {
        width: 42px;
        height: 42px;
        border-radius: 13px;
    }

    .request-modal {
        padding: 8px;
    }

    .request-modal__dialog {
        width: 100%;
        border-radius: 24px;
    }

    .request-modal__content {
        padding: 18px;
    }

    .cookie-notice {
        left: 10px;
        right: 10px;
        bottom: 10px;
    }
}


@media (max-width: 420px) {
    .service-card .works-project-card__link {
        width: 100%;
        min-height: 48px;
        padding: 0 14px;
        font-size: 12px;
        white-space: normal;
        line-height: 1.15;
    }
}


/*
|--------------------------------------------------------------------------
| Mobile menu contact cards
|--------------------------------------------------------------------------
| Reworks messenger/email shortcuts inside the mobile navigation from small
| icon bubbles into readable premium contact cards with individual accents.
*/
@media (max-width: 1180px) {
    .header-socials--mobile {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 2px 0 0;
    }

    .nav .header-socials--mobile .header-social-link {
        --mobile-social-accent: var(--accent);
        --mobile-social-bg: rgba(37, 99, 235, 0.08);
        --mobile-social-border: rgba(37, 99, 235, 0.22);
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        width: 100%;
        min-height: 46px;
        height: auto;
        padding: 8px 12px;
        border: 1px solid var(--mobile-social-border);
        border-radius: 15px;
        color: var(--mobile-social-accent);
        background:
            radial-gradient(circle at 24px 18px, var(--mobile-social-bg), transparent 48px),
            linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.92));
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.055);
        font-size: 13px;
        font-weight: 900;
        letter-spacing: 0;
    }

    .nav .header-socials--mobile .header-social-link::after {
        display: none;
    }

    .nav .header-socials--mobile .header-social-link:hover,
    .nav .header-socials--mobile .header-social-link:focus-visible {
        transform: translateY(-1px);
        border-color: var(--mobile-social-border);
        color: var(--mobile-social-accent);
        background:
            radial-gradient(circle at 24px 18px, var(--mobile-social-bg), transparent 54px),
            #ffffff;
        box-shadow: 0 14px 30px rgba(15, 23, 42, 0.09);
    }

    .header-socials--mobile .header-social-link__icon {
        display: inline-grid;
        place-items: center;
        width: 32px;
        height: 32px;
        flex: 0 0 32px;
        border: 1px solid var(--mobile-social-border);
        border-radius: 12px;
        background: var(--mobile-social-bg);
        color: var(--mobile-social-accent);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.68);
    }

    .header-socials--mobile .header-social-link__icon svg,
    .header-socials--mobile .header-social-link__icon .icon-svg {
        width: 17px;
        height: 17px;
    }

    .header-socials--mobile .header-social-link__content {
        display: grid;
        gap: 2px;
        min-width: 0;
        line-height: 1.12;
    }

    .header-socials--mobile .header-social-link__title,
    .header-socials--mobile .header-social-link__small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .header-socials--mobile .header-social-link__title {
        color: var(--mobile-social-accent);
        font-size: 13px;
        font-weight: 950;
    }

    .header-socials--mobile .header-social-link__small {
        color: var(--text-soft);
        font-size: 11px;
        font-weight: 780;
    }

    .header-socials--mobile .header-social-link--telegram {
        --mobile-social-accent: #0ea5e9;
        --mobile-social-bg: rgba(14, 165, 233, 0.10);
        --mobile-social-border: rgba(14, 165, 233, 0.28);
    }

    .header-socials--mobile .header-social-link--whatsapp {
        --mobile-social-accent: #16a34a;
        --mobile-social-bg: rgba(22, 163, 74, 0.10);
        --mobile-social-border: rgba(22, 163, 74, 0.28);
    }

    .header-socials--mobile .header-social-link--email {
        --mobile-social-accent: #d97706;
        --mobile-social-bg: rgba(217, 119, 6, 0.10);
        --mobile-social-border: rgba(217, 119, 6, 0.28);
    }

    .header-socials--mobile .header-social-link--max,
    .header-socials--mobile .header-social-link--vk {
        --mobile-social-accent: #2563eb;
        --mobile-social-bg: rgba(37, 99, 235, 0.10);
        --mobile-social-border: rgba(37, 99, 235, 0.28);
    }

    .header-socials--mobile .header-social-link--tiktok {
        --mobile-social-accent: #111827;
        --mobile-social-bg: rgba(15, 23, 42, 0.08);
        --mobile-social-border: rgba(15, 23, 42, 0.20);
    }
}


/* Articles page hero carousel */
.hero--articles .hero-content {
    max-width: 680px;
}

.hero-visual--articles {
    display: grid;
    align-items: center;
    min-height: clamp(420px, 34vw, 560px);
}

.hero-visual--articles::before {
    content: "";
    position: absolute;
    inset: 7% -2% 8% 10%;
    z-index: -1;
    border: 1px solid rgba(37, 99, 235, 0.10);
    border-radius: 38px;
    background:
        radial-gradient(circle at 24% 16%, rgba(14, 165, 233, 0.15), transparent 34%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.68), rgba(239, 246, 255, 0.42));
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.06);
}

.studio-image-carousel--articles {
    max-width: min(700px, 100%);
}

.studio-image-carousel--articles .studio-image-carousel__viewport {
    min-height: clamp(390px, 30vw, 500px);
    border-color: rgba(37, 99, 235, 0.18);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.88), rgba(239, 246, 255, 0.75));
    box-shadow:
        0 28px 80px rgba(15, 23, 42, 0.12),
        inset 0 0 0 1px rgba(255, 255, 255, 0.7);
}

.studio-image-carousel--articles .studio-image-carousel__viewport::before {
    content: "Материалы";
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 8;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 999px;
    color: #1d4ed8;
    background: rgba(255, 255, 255, 0.9);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.02em;
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(14px);
}

@media (max-width: 1100px) {
    .hero--articles .hero-content {
        max-width: 860px;
    }

    .hero-visual--articles {
        min-height: 430px;
    }

    .studio-image-carousel--articles {
        max-width: 760px;
        margin-right: 0;
        margin-left: 0;
    }
}

@media (max-width: 760px) {
    .hero-visual--articles {
        min-height: 315px;
    }

    .hero-visual--articles::before {
        inset: 10% -4% 5% 5%;
        border-radius: 28px;
    }

    .studio-image-carousel--articles .studio-image-carousel__viewport {
        min-height: 295px;
    }
}


/* Header laptop adaptation — prevents logo/nav/contact overlap */
@media (min-width: 1241px) and (max-width: 1560px) {
    .header-inner {
        grid-template-columns: minmax(178px, max-content) minmax(0, 1fr) auto;
        gap: 12px;
    }

    .logo {
        gap: 9px;
        max-width: 214px;
    }

    .logo-mark {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        padding: 5px;
        border-radius: 14px;
    }

    .logo-text {
        min-width: 0;
        max-width: 154px;
    }

    .logo-text strong,
    .logo-text small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .logo-text strong {
        font-size: 13px;
        letter-spacing: -0.045em;
    }

    .logo-text small {
        font-size: 11px;
    }

    .nav {
        justify-content: center;
        gap: clamp(8px, 0.78vw, 13px);
        overflow: hidden;
    }

    .nav a {
        font-size: 12.5px;
        font-weight: 850;
        letter-spacing: -0.015em;
    }

    .header-actions {
        gap: 8px;
    }

    .header-socials {
        gap: 5px;
    }

    .header-social-link {
        width: 32px;
        height: 32px;
        border-radius: 11px;
    }

    .header-social-link svg,
    .header-social-link .icon-svg {
        width: 16px;
        height: 16px;
    }

    .header-phone,
    .header-email {
        max-width: 118px;
        font-size: 11.5px;
    }

    .header-request-btn {
        min-height: 40px;
        padding-right: 18px;
        padding-left: 18px;
        font-size: 13px;
    }
}

@media (min-width: 1241px) and (max-width: 1480px) {
    .header-actions > .header-socials {
        display: none;
    }

    .header-inner {
        grid-template-columns: minmax(178px, max-content) minmax(0, 1fr) auto;
    }
}

@media (min-width: 1241px) and (max-width: 1360px) {
    .header-contacts {
        display: none;
    }

    .header-inner {
        grid-template-columns: minmax(170px, max-content) minmax(0, 1fr) auto;
        gap: 10px;
    }

    .logo {
        max-width: 196px;
    }

    .logo-text {
        max-width: 138px;
    }

    .nav {
        gap: 8px;
    }

    .nav a {
        font-size: 12px;
    }

    .header-request-btn {
        min-height: 38px;
        padding-right: 16px;
        padding-left: 16px;
        font-size: 12.5px;
    }
}

/*
   Home works board redesign 2026-07-04
   Чистая версия публичного блока "Витрина работ".
   Старые классы витрины оставлены в проекте на случай отката/переиспользования.
*/
.home-works-board {
    position: relative;
    display: grid;
    grid-template-columns: minmax(520px, 1fr) minmax(580px, 900px);
    gap: clamp(18px, 2vw, 28px);
    align-items: stretch;
    width: 100%;
    margin: 18px auto 0;
    padding: clamp(18px, 2vw, 28px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: 32px;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.15), transparent 27%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 255, 0.94));
    box-shadow: 0 24px 72px rgba(15, 23, 42, 0.09);
    overflow: hidden;
}

.home-works-board::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0) 48%),
        radial-gradient(circle at 34% 86%, rgba(14, 165, 233, 0.08), transparent 32%);
    pointer-events: none;
}

.home-works-board::after {
    content: "";
    position: absolute;
    right: -92px;
    top: -108px;
    width: 330px;
    height: 330px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.16), rgba(37, 99, 235, 0.02) 58%, transparent 70%);
    pointer-events: none;
}

.home-works-board > * {
    position: relative;
    z-index: 1;
}

.home-works-board__copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: stretch;
    gap: clamp(12px, 1.2vw, 16px);
    min-width: 0;
    height: 100%;
    padding: clamp(12px, 1.4vw, 20px);
    border: 1px solid rgba(226, 236, 248, 0.74);
    border-radius: 26px;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.58), rgba(248, 251, 255, 0.42));
}

.home-works-board__badge {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    color: var(--accent);
    background: rgba(219, 234, 254, 0.8);
    box-shadow: 0 12px 28px rgba(37, 99, 235, 0.08);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-works-board__badge span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 7px rgba(37, 99, 235, 0.12);
}

.home-works-board__intro {
    max-width: 620px;
}

.home-works-board__intro h3 {
    margin: 0;
    color: var(--text);
    font-size: clamp(32px, 2.72vw, 48px);
    line-height: 1.02;
    font-weight: 950;
    letter-spacing: -0.056em;
}

.home-works-board__intro p {
    margin: 14px 0 0;
    max-width: 590px;
    color: var(--muted);
    font-size: clamp(14px, 1vw, 16px);
    line-height: 1.58;
    font-weight: 630;
}

.home-works-board__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.home-works-board__actions .btn {
    min-height: 48px;
    padding-inline: 20px;
    font-size: 14px;
}

.home-works-board__facts {
    display: grid;
    grid-template-columns: minmax(120px, 0.7fr) minmax(0, 1.3fr);
    gap: 10px;
}

.home-works-board__fact {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 86px;
    padding: 14px 16px;
    border: 1px solid rgba(201, 214, 229, 0.86);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.045);
}

.home-works-board__fact strong {
    display: block;
    color: var(--text);
    font-size: 15px;
    line-height: 1.18;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.home-works-board__fact--count strong {
    color: var(--accent);
    font-size: 28px;
    letter-spacing: -0.06em;
}

.home-works-board__fact span {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.4;
    font-weight: 720;
}

.home-works-board__benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    align-self: end;
}

.home-works-board__benefits article {
    position: relative;
    min-height: 104px;
    padding: 13px 12px 13px 15px;
    border: 1px solid rgba(201, 214, 229, 0.84);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.home-works-board__benefits article::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(37, 99, 235, 0.78), rgba(14, 165, 233, 0.42));
}

.home-works-board__benefits strong {
    display: block;
    color: var(--text);
    font-size: 13px;
    line-height: 1.16;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.home-works-board__benefits span {
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font-size: 11.5px;
    line-height: 1.4;
    font-weight: 700;
}

.home-works-board__media {
    align-self: stretch;
    display: grid;
    min-width: 0;
}

.studio-image-carousel--home-works-board {
    width: 100%;
    max-width: 900px;
    height: 100%;
    min-height: 390px;
    margin: 0;
    justify-self: end;
}

.studio-image-carousel--home-works-board .studio-image-carousel__viewport {
    height: 100%;
    min-height: clamp(380px, 32vw, 520px);
    aspect-ratio: auto;
    border-radius: 28px;
    border-color: rgba(37, 99, 235, 0.17);
    background: linear-gradient(145deg, rgba(255,255,255,0.94), rgba(239,246,255,0.84));
    box-shadow: 0 24px 64px rgba(15, 23, 42, 0.12);
}

.studio-image-carousel--home-works-board .studio-image-carousel__viewport::after {
    height: 38%;
    background: linear-gradient(to top, rgba(15, 23, 42, 0.62), rgba(15, 23, 42, 0.06) 70%, rgba(15, 23, 42, 0));
}

.studio-image-carousel--home-works-board .studio-image-carousel__arrow {
    width: 44px;
    height: 44px;
}

.studio-image-carousel--home-works-board .studio-image-carousel__arrow--prev {
    left: 16px;
}

.studio-image-carousel--home-works-board .studio-image-carousel__arrow--next {
    right: 16px;
}

.studio-image-carousel--home-works-board .studio-image-carousel__controls {
    left: 16px;
    right: 16px;
    bottom: 16px;
}

.studio-image-carousel--home-works-board .studio-image-carousel__caption {
    left: 18px;
    right: auto;
    bottom: 60px;
    gap: 6px;
    max-width: min(58%, 380px);
    padding: 13px 15px;
    border-radius: 20px;
    background: rgba(15, 23, 42, 0.52);
}

.studio-image-carousel--home-works-board .studio-image-carousel__caption strong {
    font-size: clamp(17px, 1.55vw, 23px);
    line-height: 1.07;
}

@media (max-width: 1280px) {
    .home-works-board {
        grid-template-columns: minmax(460px, 0.95fr) minmax(520px, 1.05fr);
    }

    .home-works-board__benefits {
        grid-template-columns: 1fr;
    }

    .home-works-board__benefits article {
        min-height: 0;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__viewport {
        min-height: 420px;
    }
}

@media (max-width: 1080px) {
    .home-works-board {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .home-works-board__copy {
        padding: 18px;
    }

    .home-works-board__intro {
        max-width: 760px;
    }

    .home-works-board__intro p {
        max-width: 720px;
    }

    .home-works-board__benefits {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .studio-image-carousel--home-works-board {
        max-width: none;
        min-height: 360px;
        justify-self: stretch;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__viewport {
        min-height: clamp(320px, 48vw, 460px);
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 760px) {
    .home-works-board {
        padding: 16px;
        border-radius: 26px;
    }

    .home-works-board__copy {
        gap: 12px;
        padding: 14px;
        border-radius: 22px;
    }

    .home-works-board__intro h3 {
        font-size: clamp(28px, 8.2vw, 38px);
    }

    .home-works-board__actions,
    .home-works-board__facts,
    .home-works-board__benefits {
        grid-template-columns: 1fr;
    }

    .home-works-board__actions {
        display: grid;
    }

    .home-works-board__actions .btn {
        width: 100%;
        justify-content: center;
    }

    .home-works-board__fact {
        min-height: 74px;
    }

    .studio-image-carousel--home-works-board {
        min-height: 300px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__viewport {
        min-height: 300px;
        border-radius: 22px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption {
        left: 14px;
        right: 14px;
        bottom: 58px;
        max-width: none;
        border-radius: 18px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption strong {
        font-size: 18px;
    }
}

@media (max-width: 430px) {
    .home-works-board {
        padding: 12px;
        border-radius: 22px;
    }

    .home-works-board__copy {
        padding: 12px;
    }

    .home-works-board__badge {
        font-size: 11px;
        padding: 8px 12px;
    }

    .home-works-board__intro h3 {
        font-size: 27px;
    }

    .home-works-board__intro p {
        font-size: 13.5px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__viewport {
        min-height: 270px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__arrow {
        width: 38px;
        height: 38px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__controls {
        left: 10px;
        right: 10px;
        bottom: 10px;
        gap: 8px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dots {
        gap: 6px;
        padding: 9px 10px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dot {
        width: 7px;
        height: 7px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dot.is-active {
        width: 22px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption {
        padding: 11px 12px;
    }
}

/*
   Home works board mobile carousel fix 2026-07-04
   Отдельные правила только для слайдера блока "Витрина работ" на узких экранах.
*/
@media (max-width: 640px) {
    .home-works-board__media {
        margin-top: 2px;
    }

    .studio-image-carousel--home-works-board {
        min-height: 0;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__viewport {
        min-height: 0;
        aspect-ratio: 16 / 10.7;
        border-radius: 20px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__slide img,
    .studio-image-carousel--home-works-board .studio-image-carousel__slide video {
        object-position: center top;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__viewport::after {
        height: 76%;
        background: linear-gradient(to top, rgba(15, 23, 42, 0.64), rgba(15, 23, 42, 0.16) 58%, rgba(15, 23, 42, 0));
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__arrow {
        top: 39%;
        width: 34px;
        height: 34px;
        font-size: 18px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__arrow .icon-svg {
        width: 18px;
        height: 18px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__arrow--prev {
        left: 10px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__arrow--next {
        right: 10px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__controls {
        left: 10px;
        right: 10px;
        bottom: 9px;
        gap: 8px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__counter {
        min-width: 58px;
        padding: 8px 10px;
        font-size: 12px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__counter strong {
        font-size: 17px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dots {
        gap: 5px;
        padding: 8px 9px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dot {
        width: 6px;
        height: 6px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dot.is-active {
        width: 20px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption {
        left: 10px;
        right: 10px;
        bottom: 46px;
        max-width: none;
        gap: 4px;
        padding: 9px 10px;
        border-radius: 15px;
        background: rgba(15, 23, 42, 0.62);
        box-shadow: 0 12px 26px rgba(15, 23, 42, 0.16);
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption span {
        font-size: 9px;
        line-height: 1;
        letter-spacing: 0.08em;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption strong {
        display: -webkit-box;
        overflow: hidden;
        color: #ffffff;
        font-size: clamp(14px, 4.15vw, 16px);
        line-height: 1.1;
        overflow-wrap: anywhere;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption p {
        display: none;
    }
}

@media (max-width: 390px) {
    .studio-image-carousel--home-works-board .studio-image-carousel__viewport {
        aspect-ratio: 16 / 11.2;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption {
        bottom: 43px;
        padding: 8px 9px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption strong {
        font-size: 14px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__dots {
        gap: 4px;
        padding: 7px 8px;
    }
}

/*
   Home works board mobile caption top 2026-07-04
   На телефонах переносим плашку "Готовая работа" в верхнюю часть слайда.
*/
@media (max-width: 640px) {
    .studio-image-carousel--home-works-board .studio-image-carousel__viewport::after {
        height: 100%;
        background:
            linear-gradient(to bottom, rgba(15, 23, 42, 0.36), rgba(15, 23, 42, 0.06) 36%, rgba(15, 23, 42, 0) 58%),
            linear-gradient(to top, rgba(15, 23, 42, 0.28), rgba(15, 23, 42, 0) 34%);
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption {
        top: 10px;
        bottom: auto;
        left: 10px;
        right: 10px;
        max-width: none;
        padding: 8px 10px;
        border-radius: 14px;
        background: rgba(15, 23, 42, 0.58);
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption span {
        font-size: 8.5px;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__caption strong {
        font-size: clamp(13px, 3.8vw, 15px);
        line-height: 1.08;
        -webkit-line-clamp: 2;
    }

    .studio-image-carousel--home-works-board .studio-image-carousel__arrow {
        top: 54%;
    }
}

@media (max-width: 390px) {
    .studio-image-carousel--home-works-board .studio-image-carousel__caption {
        top: 8px;
        padding: 7px 9px;
    }
}

/* Home process board redesign — 2026-07-04 */
.home-process-section {
    position: relative;
    background:
        radial-gradient(circle at 50% 0%, rgba(37, 99, 235, 0.07), transparent 34rem),
        linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
}

.home-process-board {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(20px, 3.2vw, 44px);
    align-items: stretch;
    overflow: hidden;
    padding: clamp(22px, 3.2vw, 38px);
    border: 1px solid rgba(180, 203, 236, 0.9);
    border-radius: clamp(26px, 3vw, 36px);
    background:
        radial-gradient(circle at 92% 8%, rgba(37, 99, 235, 0.16), transparent 28rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.78));
    box-shadow: 0 26px 74px rgba(15, 23, 42, 0.11);
}

.home-process-board::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(37, 99, 235, 0.08), transparent 32%),
        radial-gradient(circle at 15% 90%, rgba(14, 165, 233, 0.08), transparent 24rem);
}

.home-process-board__content,
.home-process-board__media {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.home-process-board__content {
    display: grid;
    align-content: start;
    gap: clamp(14px, 1.8vw, 20px);
}

.home-process-board__kicker {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 11px 16px 11px 13px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 16px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.96), rgba(255, 255, 255, 0.88));
    box-shadow: 0 14px 34px rgba(37, 99, 235, 0.1), inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.home-process-board__kicker::before {
    content: "";
    width: 22px;
    height: 22px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 50%;
    background:
        radial-gradient(circle, var(--accent) 0 3px, transparent 3.5px),
        rgba(255, 255, 255, 0.82);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.72);
}

.home-process-board h2 {
    max-width: 620px;
    margin: 0;
    color: var(--text);
    font-size: clamp(34px, 4vw, 58px);
    line-height: 0.98;
    font-weight: 950;
    letter-spacing: -0.065em;
    text-wrap: balance;
}

.home-process-board__lead {
    max-width: 610px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(15px, 1.15vw, 18px);
    line-height: 1.62;
    font-weight: 570;
}

.home-process-board__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.home-process-board__cards article,
.home-process-board__note,
.home-process-board__steps span {
    border: 1px solid rgba(190, 207, 229, 0.92);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.06);
}

.home-process-board__cards article {
    position: relative;
    overflow: hidden;
    min-height: 132px;
    padding: 16px;
    border-radius: 20px;
}

.home-process-board__cards article::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
}

.home-process-board__cards span {
    display: inline-flex;
    margin-bottom: 22px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.1em;
}

.home-process-board__cards strong {
    display: block;
    margin-bottom: 7px;
    color: var(--text);
    font-size: 17px;
    line-height: 1.1;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.home-process-board__cards p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
    font-weight: 650;
}

.home-process-board__note {
    display: grid;
    gap: 10px;
    padding: clamp(16px, 2vw, 20px);
    border-radius: 22px;
}

.home-process-board__note span {
    color: var(--accent);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.home-process-board__note strong {
    max-width: 580px;
    color: var(--text);
    font-size: clamp(18px, 1.6vw, 24px);
    line-height: 1.16;
    font-weight: 950;
    letter-spacing: -0.045em;
}

.home-process-board__note p {
    max-width: 640px;
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.58;
    font-weight: 570;
}

.home-process-board__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.home-process-board__steps span {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 14px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 850;
}

.home-process-board__steps span::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--accent);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.1);
}

.home-process-board__button {
    width: fit-content;
    min-width: 210px;
}

.home-process-board__media {
    display: flex;
    align-items: stretch;
}

.home-process-board__video {
    position: relative;
    overflow: hidden;
    width: 100%;
    min-height: clamp(420px, 38vw, 610px);
    border: 1px solid rgba(190, 207, 229, 0.95);
    border-radius: clamp(24px, 2.4vw, 32px);
    background:
        radial-gradient(circle at 20% 0%, rgba(37, 99, 235, 0.15), transparent 32rem),
        linear-gradient(145deg, #0f172a, #1e293b);
    box-shadow: 0 26px 78px rgba(15, 23, 42, 0.16);
}

.home-process-board__video img,
.home-process-board__video video {
    display: block;
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
}

.home-process-board__video::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(6, 12, 24, 0.9) 0%, rgba(15, 23, 42, 0.62) 24%, rgba(15, 23, 42, 0.12) 66%, rgba(15, 23, 42, 0.04)),
        linear-gradient(135deg, rgba(37, 99, 235, 0.22), transparent 50%);
    pointer-events: none;
}

.home-process-board__overlay {
    position: absolute;
    z-index: 2;
    left: clamp(18px, 3vw, 34px);
    right: clamp(18px, 3vw, 34px);
    bottom: clamp(18px, 3vw, 34px);
    display: grid;
    gap: 10px;
    max-width: 620px;
    color: #ffffff;
}

.home-process-board__overlay span {
    width: fit-content;
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    text-shadow: 0 1px 7px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(12px);
}

.home-process-board__overlay strong {
    max-width: 600px;
    color: #ffffff;
    font-size: clamp(25px, 3vw, 46px);
    line-height: 1.04;
    font-weight: 950;
    letter-spacing: -0.055em;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.48), 0 1px 2px rgba(0, 0, 0, 0.54);
    text-wrap: balance;
}

@media (max-width: 1280px) {
    .home-process-board {
        grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
        gap: 24px;
    }

    .home-process-board h2 {
        font-size: clamp(32px, 4.3vw, 50px);
    }

    .home-process-board__cards,
    .home-process-board__steps {
        grid-template-columns: 1fr;
    }

    .home-process-board__cards article {
        min-height: auto;
    }

    .home-process-board__cards span {
        margin-bottom: 12px;
    }
}

@media (max-width: 1080px) {
    .home-process-board {
        grid-template-columns: 1fr;
    }

    .home-process-board__content {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 0.72fr);
        column-gap: 18px;
        align-items: start;
    }

    .home-process-board__kicker,
    .home-process-board h2,
    .home-process-board__lead,
    .home-process-board__button {
        grid-column: 1;
    }

    .home-process-board__cards,
    .home-process-board__note,
    .home-process-board__steps {
        grid-column: 2;
    }

    .home-process-board__cards {
        grid-row: 1 / span 3;
    }

    .home-process-board__video {
        min-height: clamp(360px, 48vw, 520px);
    }
}

@media (max-width: 760px) {
    .home-process-section {
        background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
    }

    .home-process-board {
        gap: 16px;
        padding: 16px;
        border-radius: 26px;
    }

    .home-process-board__content {
        display: grid;
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .home-process-board__kicker,
    .home-process-board h2,
    .home-process-board__lead,
    .home-process-board__button,
    .home-process-board__cards,
    .home-process-board__note,
    .home-process-board__steps {
        grid-column: auto;
        grid-row: auto;
    }

    .home-process-board__kicker {
        padding: 10px 14px 10px 12px;
        border-radius: 14px;
        font-size: 11px;
    }

    .home-process-board h2 {
        font-size: clamp(30px, 9vw, 42px);
        line-height: 1.02;
    }

    .home-process-board__lead {
        font-size: 14px;
        line-height: 1.58;
    }

    .home-process-board__cards {
        grid-template-columns: 1fr;
    }

    .home-process-board__cards article {
        padding: 14px;
        border-radius: 18px;
    }

    .home-process-board__note {
        padding: 15px;
        border-radius: 18px;
    }

    .home-process-board__note strong {
        font-size: 19px;
    }

    .home-process-board__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-process-board__button {
        width: 100%;
        min-width: 0;
    }

    .home-process-board__video {
        height: 300px;
        min-height: 300px;
        border-radius: 22px;
    }

    .home-process-board__video img,
    .home-process-board__video video {
        min-height: 300px;
    }

    .home-process-board__overlay {
        left: 12px;
        right: 12px;
        bottom: 12px;
        gap: 7px;
        max-width: none;
    }

    .home-process-board__overlay span {
        padding: 7px 9px;
        font-size: 9px;
    }

    .home-process-board__overlay strong {
        max-width: 310px;
        font-size: 23px;
        line-height: 1.06;
    }
}

@media (max-width: 430px) {
    .home-process-board {
        padding: 14px;
        border-radius: 24px;
    }

    .home-process-board__kicker::before {
        width: 20px;
        height: 20px;
    }

    .home-process-board h2 {
        font-size: 29px;
    }

    .home-process-board__cards p,
    .home-process-board__note p,
    .home-process-board__steps span {
        font-size: 12px;
    }

    .home-process-board__steps {
        grid-template-columns: 1fr;
    }

    .home-process-board__video {
        height: 245px;
        min-height: 245px;
    }

    .home-process-board__video img,
    .home-process-board__video video {
        min-height: 245px;
    }

    .home-process-board__overlay strong {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        font-size: 20px;
    }
}

/* Home materials board redesign — 2026-07-04 */
.home-materials-section {
    position: relative;
    background:
        radial-gradient(circle at 50% 0%, rgba(37, 99, 235, 0.065), transparent 34rem),
        linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
}

.home-materials-board {
    position: relative;
    display: grid;
    grid-template-columns: minmax(320px, 0.86fr) minmax(0, 1.14fr);
    gap: clamp(16px, 2vw, 24px);
    overflow: hidden;
    padding: clamp(22px, 3vw, 38px);
    border: 1px solid rgba(180, 203, 236, 0.9);
    border-radius: clamp(26px, 3vw, 36px);
    background:
        radial-gradient(circle at 92% 10%, rgba(37, 99, 235, 0.16), transparent 26rem),
        radial-gradient(circle at 12% 90%, rgba(14, 165, 233, 0.08), transparent 26rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.78));
    box-shadow: 0 26px 74px rgba(15, 23, 42, 0.105);
}

.home-materials-board::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(37, 99, 235, 0.075), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.6), transparent 44%);
}

.home-materials-board::after {
    content: "";
    position: absolute;
    right: -120px;
    top: -150px;
    width: 360px;
    height: 360px;
    opacity: 0.09;
    border-radius: 50%;
    background:
        repeating-conic-gradient(from 0deg, var(--accent) 0 8deg, transparent 8deg 18deg),
        radial-gradient(circle, transparent 0 44%, var(--accent) 45% 47%, transparent 48%);
    pointer-events: none;
}

.home-materials-board__intro,
.home-materials-board__criteria,
.home-materials-board__decision,
.home-materials-board__cards {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.home-materials-board__intro {
    display: grid;
    align-content: start;
    gap: clamp(14px, 1.5vw, 18px);
}

.home-materials-board__badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 11px 16px 11px 13px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 16px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.96), rgba(255, 255, 255, 0.88));
    box-shadow: 0 14px 34px rgba(37, 99, 235, 0.1), inset 0 0 0 1px rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.home-materials-board__badge span {
    width: 22px;
    height: 22px;
    border: 1px solid rgba(37, 99, 235, 0.26);
    border-radius: 50%;
    background:
        radial-gradient(circle, var(--accent) 0 3px, transparent 3.5px),
        rgba(255, 255, 255, 0.82);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.72);
}

.home-materials-board h2 {
    max-width: 620px;
    margin: 0;
    color: var(--text);
    font-size: clamp(34px, 4vw, 58px);
    line-height: 0.98;
    font-weight: 950;
    letter-spacing: -0.065em;
    text-wrap: balance;
}

.home-materials-board__intro p,
.home-materials-board__decision p,
.home-materials-board__cards p,
.home-materials-board__criteria p {
    margin: 0;
}

.home-materials-board__intro > p {
    max-width: 660px;
    color: var(--text-soft);
    font-size: clamp(15px, 1.12vw, 18px);
    line-height: 1.62;
    font-weight: 570;
}

.home-materials-board__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.home-materials-board__criteria,
.home-materials-board__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.home-materials-board__criteria article,
.home-materials-board__cards article,
.home-materials-board__decision,
.home-materials-board__chips span {
    border: 1px solid rgba(190, 207, 229, 0.92);
    background: rgba(255, 255, 255, 0.84);
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.055);
}

.home-materials-board__criteria article,
.home-materials-board__cards article {
    position: relative;
    overflow: hidden;
    display: grid;
    align-content: start;
    min-height: 142px;
    padding: 16px;
    border-radius: 20px;
}

.home-materials-board__criteria article::before,
.home-materials-board__cards article::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
}

.home-materials-board__criteria span,
.home-materials-board__cards span,
.home-materials-board__decision > span {
    display: inline-flex;
    margin-bottom: 20px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.home-materials-board__criteria strong,
.home-materials-board__cards strong {
    display: block;
    margin-bottom: 7px;
    color: var(--text);
    font-size: 17px;
    line-height: 1.1;
    font-weight: 950;
    letter-spacing: -0.035em;
}

.home-materials-board__criteria p,
.home-materials-board__cards p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.48;
    font-weight: 650;
}

.home-materials-board__decision {
    display: grid;
    align-content: start;
    gap: 12px;
    padding: clamp(16px, 2vw, 22px);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(244, 248, 255, 0.88));
}

.home-materials-board__decision > span {
    margin-bottom: 0;
}

.home-materials-board__decision strong {
    max-width: 560px;
    color: var(--text);
    font-size: clamp(20px, 1.7vw, 26px);
    line-height: 1.12;
    font-weight: 950;
    letter-spacing: -0.045em;
}

.home-materials-board__decision p {
    max-width: 640px;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.58;
    font-weight: 580;
}

.home-materials-board__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 2px;
}

.home-materials-board__chips span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 9px 12px;
    border-radius: 999px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1;
    font-weight: 850;
}

.home-materials-board__chips span::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 5px rgba(37, 99, 235, 0.09);
}

.home-materials-board__cards article {
    min-height: 190px;
    padding: clamp(18px, 2vw, 22px);
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.08), transparent 9rem),
        rgba(255, 255, 255, 0.88);
}

.home-materials-board__cards strong {
    color: var(--accent);
    font-size: clamp(24px, 2vw, 34px);
    letter-spacing: -0.06em;
}

.home-materials-board__cards p {
    font-size: 13.5px;
    line-height: 1.58;
    font-weight: 700;
}

@media (max-width: 1280px) {
    .home-materials-board {
        grid-template-columns: minmax(300px, 0.95fr) minmax(0, 1.05fr);
    }

    .home-materials-board__criteria,
    .home-materials-board__cards {
        gap: 10px;
    }
}

@media (max-width: 1080px) {
    .home-materials-board {
        grid-template-columns: 1fr;
    }

    .home-materials-board__intro {
        max-width: 820px;
    }

    .home-materials-board__criteria,
    .home-materials-board__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .home-materials-board {
        padding: 20px;
        border-radius: 28px;
    }

    .home-materials-board h2 {
        font-size: clamp(30px, 9vw, 42px);
        line-height: 1;
    }

    .home-materials-board__criteria,
    .home-materials-board__cards {
        grid-template-columns: 1fr;
    }

    .home-materials-board__criteria article,
    .home-materials-board__cards article {
        min-height: auto;
    }

    .home-materials-board__cards article {
        padding: 18px;
    }

    .home-materials-board__actions {
        align-items: stretch;
    }

    .home-materials-board__actions .btn {
        justify-content: center;
        width: 100%;
    }
}

@media (max-width: 430px) {
    .home-materials-board {
        padding: 16px;
        border-radius: 24px;
    }

    .home-materials-board__badge {
        max-width: 100%;
        padding: 10px 12px 10px 10px;
        font-size: 10px;
        letter-spacing: 0.1em;
    }

    .home-materials-board h2 {
        font-size: clamp(27px, 10vw, 34px);
    }

    .home-materials-board__intro > p,
    .home-materials-board__decision p,
    .home-materials-board__cards p,
    .home-materials-board__criteria p {
        font-size: 12.5px;
        line-height: 1.52;
    }

    .home-materials-board__decision strong {
        font-size: 19px;
    }

    .home-materials-board__chips {
        gap: 6px;
    }

    .home-materials-board__chips span {
        min-height: 34px;
        padding: 8px 10px;
        font-size: 11px;
    }
}

/* Home materials carousel replacement — 2026-07-04 */
.home-materials-board {
    grid-template-columns: minmax(340px, 0.92fr) minmax(0, 1.08fr);
    align-items: start;
}

.home-materials-board__carousel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: clamp(12px, 1.4vw, 16px);
    border: 1px solid rgba(190, 207, 229, 0.92);
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.11), transparent 14rem),
        rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.065);
}

.home-materials-board__carousel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.home-materials-board__carousel-head span {
    display: inline-grid;
    min-width: 46px;
    height: 34px;
    place-items: center;
    padding: 0 12px;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 999px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.95), rgba(255, 255, 255, 0.88));
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
}

.home-materials-board__carousel-head strong {
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 850;
    text-align: right;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.studio-image-carousel--home-materials-board {
    width: 100%;
    min-width: 0;
}

.studio-image-carousel--home-materials-board .studio-image-carousel__viewport {
    height: clamp(300px, 23vw, 380px);
    min-height: 0;
    border-radius: 20px;
    background:
        linear-gradient(135deg, rgba(239, 246, 255, 0.96), rgba(255, 255, 255, 0.88));
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.08);
}

.studio-image-carousel--home-materials-board .studio-image-carousel__viewport::after {
    background: linear-gradient(180deg, transparent 36%, rgba(15, 23, 42, 0.58) 100%);
}

.studio-image-carousel--home-materials-board .studio-image-carousel__caption {
    top: 8px;
    right: auto;
    bottom: auto;
    left: 8px;
    max-width: min(270px, calc(100% - 96px));
    padding: 9px 10px 8px;
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(6px);
}

.studio-image-carousel--home-materials-board .studio-image-carousel__caption strong {
    font-size: clamp(16px, 1.18vw, 21px);
    line-height: 1.08;
}

.studio-image-carousel--home-materials-board .studio-image-carousel__caption p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.studio-image-carousel--home-materials-board .studio-image-carousel__controls {
    right: 18px;
    bottom: 18px;
}

.studio-image-carousel--home-materials-board .studio-image-carousel__arrow--prev {
    left: 16px;
}

.studio-image-carousel--home-materials-board .studio-image-carousel__arrow--next {
    right: 16px;
}

.home-materials-board__decision,
.home-materials-board__cards {
    align-self: stretch;
}

.home-materials-board__cards {
    height: 100%;
    align-items: stretch;
}

.home-materials-board__cards article {
    min-height: 168px;
    height: 100%;
}

@media (max-width: 1280px) {
    .home-materials-board {
        grid-template-columns: minmax(320px, 0.94fr) minmax(0, 1.06fr);
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__viewport {
        height: clamp(285px, 25vw, 340px);
    }
}

@media (max-width: 1080px) {
    .home-materials-board {
        grid-template-columns: 1fr;
    }

    .home-materials-board__carousel {
        order: 2;
    }

    .home-materials-board__decision {
        order: 3;
    }

    .home-materials-board__cards {
        order: 4;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__viewport {
        height: clamp(320px, 48vw, 470px);
    }
}

@media (max-width: 760px) {
    .home-materials-board__carousel {
        padding: 12px;
        border-radius: 22px;
    }

    .home-materials-board__carousel-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .home-materials-board__carousel-head strong {
        text-align: left;
        font-size: 11px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__viewport {
        height: 265px;
        border-radius: 18px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__caption {
        top: 8px;
        right: auto;
        bottom: auto;
        left: 8px;
        max-width: min(210px, calc(100% - 76px));
        padding: 8px 9px;
        border-radius: 13px;
        background: rgba(15, 23, 42, 0.16);
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__caption strong {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        font-size: 17px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__caption p {
        display: none;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__arrow {
        width: 38px;
        height: 38px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__controls {
        right: 12px;
        bottom: 12px;
        max-width: calc(100% - 24px);
    }
}

@media (max-width: 430px) {
    .studio-image-carousel--home-materials-board .studio-image-carousel__viewport {
        height: 230px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__caption {
        top: 6px;
        right: auto;
        left: 6px;
        max-width: min(180px, calc(100% - 68px));
        padding: 7px 8px;
        background: rgba(15, 23, 42, 0.14);
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__caption span {
        font-size: 8px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__caption strong {
        font-size: 15px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__counter {
        min-width: 58px;
        height: 34px;
        padding: 0 10px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__dots {
        gap: 5px;
        padding: 8px 9px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__dot {
        width: 8px;
        height: 8px;
    }

    .studio-image-carousel--home-materials-board .studio-image-carousel__dot.is-active {
        width: 24px;
    }
}

/* Unified public carousel caption style — 2026-07-04
   Applies to all public studio image carousels that render .studio-image-carousel__caption. */
.studio-image-carousel .studio-image-carousel__caption {
    top: 10px;
    right: auto;
    bottom: auto;
    left: 10px;
    max-width: min(330px, calc(100% - 96px));
    padding: 10px 12px 9px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 15px;
    background: rgba(15, 23, 42, 0.36);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.14);
    backdrop-filter: blur(8px);
}

.studio-image-carousel .studio-image-carousel__caption span {
    font-size: 9px;
    line-height: 1.1;
    letter-spacing: 0.1em;
}

.studio-image-carousel .studio-image-carousel__caption strong {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    font-size: clamp(16px, 1.2vw, 22px);
    line-height: 1.08;
}

.studio-image-carousel .studio-image-carousel__caption p {
    display: none;
}

@media (max-width: 760px) {
    .studio-image-carousel .studio-image-carousel__caption {
        top: 8px;
        left: 8px;
        max-width: min(240px, calc(100% - 82px));
        padding: 9px 10px 8px;
        border-radius: 14px;
        background: rgba(15, 23, 42, 0.34);
        backdrop-filter: blur(7px);
    }

    .studio-image-carousel .studio-image-carousel__caption strong {
        font-size: 16px;
    }
}

@media (max-width: 430px) {
    .studio-image-carousel .studio-image-carousel__caption {
        top: 6px;
        left: 6px;
        max-width: min(200px, calc(100% - 72px));
        padding: 7px 8px;
        border-radius: 12px;
        background: rgba(15, 23, 42, 0.34);
    }

    .studio-image-carousel .studio-image-carousel__caption span {
        font-size: 8px;
    }

    .studio-image-carousel .studio-image-carousel__caption strong {
        font-size: 14px;
    }
}

/* Home solutions cards-only redesign — 2026-07-04
   Rebuilds only the cards + main-benefit block. Section head and team block stay as before. */
.home-solutions-focus {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.32fr);
    gap: clamp(16px, 1.7vw, 24px);
    align-items: stretch;
    padding: clamp(18px, 2.1vw, 28px);
    border: 1px solid rgba(184, 204, 229, 0.92);
    border-radius: clamp(24px, 2vw, 32px);
    background:
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.1), transparent 18rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(244, 249, 255, 0.9));
    box-shadow: 0 24px 68px rgba(15, 23, 42, 0.075);
}

.home-solutions-focus::before {
    content: "";
    position: absolute;
    right: -4rem;
    bottom: -5rem;
    width: 16rem;
    height: 16rem;
    pointer-events: none;
    opacity: 0.22;
    background:
        repeating-conic-gradient(from 0deg, rgba(37, 99, 235, 0.16) 0 5deg, transparent 5deg 10deg);
    border-radius: 50%;
    mask-image: radial-gradient(circle, #000 0 48%, transparent 49%);
}

.home-solutions-focus__grid,
.home-solutions-start {
    position: relative;
    z-index: 1;
}

.home-solutions-focus__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, 1.35vw, 18px);
    min-width: 0;
}

.home-solution-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    gap: 12px;
    min-height: 272px;
    padding: clamp(17px, 1.65vw, 24px);
    border: 1px solid rgba(184, 204, 229, 0.92);
    border-radius: 22px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 252, 255, 0.88));
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.055);
}

.home-solution-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--accent), rgba(14, 165, 233, 0.85));
    opacity: 0;
    transition: opacity 0.18s ease;
}

.home-solution-card::after {
    content: "";
    position: absolute;
    right: -2.7rem;
    bottom: -4rem;
    width: 9rem;
    height: 9rem;
    border: 1px solid rgba(37, 99, 235, 0.14);
    border-radius: 38% 62% 43% 57%;
    transform: rotate(12deg);
}

.home-solution-card:hover::before {
    opacity: 1;
}

.home-solution-card__number {
    display: inline-grid;
    width: 50px;
    height: 50px;
    place-items: center;
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 16px;
    color: var(--accent);
    background: rgba(239, 246, 255, 0.9);
    font-size: 13px;
    font-weight: 950;
}

.home-solution-card h3 {
    position: relative;
    z-index: 1;
    margin: 8px 0 0;
    color: var(--text);
    font-size: clamp(20px, 1.35vw, 26px);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.home-solution-card p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.65;
    font-weight: 700;
}

.home-solution-card ul {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-solution-card li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 900;
}

.home-solution-card li::before,
.home-solutions-start__steps span::before {
    content: "";
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border: 4px solid rgba(37, 99, 235, 0.12);
    border-radius: 50%;
    background: var(--accent);
}

.home-solutions-start {
    display: grid;
    align-content: start;
    gap: 15px;
    min-width: 0;
    padding: clamp(18px, 1.9vw, 26px);
    border: 1px solid rgba(184, 204, 229, 0.94);
    border-top: 4px solid var(--accent);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 252, 255, 0.9));
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.075);
}

.home-solutions-start__top {
    display: grid;
    gap: 10px;
}

.home-solutions-start__top span {
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    line-height: 1.2;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.home-solutions-start__top strong {
    color: var(--text);
    font-size: clamp(22px, 1.6vw, 30px);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.home-solutions-start p {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.7;
    font-weight: 700;
}

.home-solutions-start__steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
}

.home-solutions-start__steps span {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid rgba(184, 204, 229, 0.95);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.86);
    color: var(--text);
    font-size: 13px;
    font-weight: 900;
}

.home-solutions-start .btn {
    width: 100%;
    margin-top: 4px;
}

@media (max-width: 1280px) {
    .home-solutions-focus {
        grid-template-columns: 1fr;
    }

    .home-solutions-start {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) auto;
        align-items: center;
    }

    .home-solutions-start__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-solutions-start .btn {
        align-self: stretch;
        width: auto;
        white-space: nowrap;
    }
}

@media (max-width: 1080px) {
    .home-solutions-focus__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-solutions-start {
        grid-template-columns: 1fr;
    }

    .home-solutions-start__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-solutions-start .btn {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .home-solutions-focus {
        padding: 16px;
        border-radius: 24px;
    }

    .home-solutions-focus__grid {
        grid-template-columns: 1fr;
    }

    .home-solution-card {
        min-height: 0;
        border-radius: 20px;
    }

    .home-solutions-start {
        border-radius: 20px;
    }

    .home-solutions-start__steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 430px) {
    .home-solutions-focus {
        padding: 12px;
        border-radius: 22px;
    }

    .home-solution-card,
    .home-solutions-start {
        padding: 16px;
    }

    .home-solution-card__number {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .home-solution-card p,
    .home-solutions-start p {
        font-size: 13px;
    }
}


.home-idea-section {
    position: relative;
}

.home-idea-board {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.92fr);
    gap: clamp(16px, 2vw, 28px);
    padding: clamp(22px, 3vw, 38px);
    border: 1px solid rgba(184, 204, 229, 0.94);
    border-radius: clamp(24px, 2vw, 34px);
    background:
        linear-gradient(rgba(37, 99, 235, 0.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.028) 1px, transparent 1px),
        radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.13), transparent 18rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(244, 249, 255, 0.92));
    background-size:
        32px 32px,
        32px 32px,
        auto,
        auto;
    box-shadow: 0 28px 80px rgba(15, 23, 42, 0.08);
}

.home-idea-board::before {
    content: "";
    position: absolute;
    right: -5rem;
    top: -5rem;
    width: 22rem;
    height: 22rem;
    pointer-events: none;
    opacity: 0.3;
    background: repeating-conic-gradient(from 0deg, rgba(37, 99, 235, 0.16) 0 5deg, transparent 5deg 10deg);
    border-radius: 50%;
    mask-image: radial-gradient(circle, #000 0 48%, transparent 49%);
}

.home-idea-board__anchor {
    position: absolute;
    top: 0;
    left: 0;
}

.home-idea-board__intro,
.home-idea-board__source,
.home-idea-board__principle,
.home-idea-board__steps {
    position: relative;
    z-index: 1;
}

.home-idea-board__intro {
    display: grid;
    align-content: start;
    gap: clamp(14px, 1.5vw, 20px);
    min-width: 0;
}

.home-idea-board__badge {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 9px;
    min-height: 42px;
    padding: 8px 14px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 999px;
    color: var(--accent);
    background: linear-gradient(135deg, rgba(219, 234, 254, 0.94), rgba(255, 255, 255, 0.86));
    box-shadow: 0 14px 32px rgba(37, 99, 235, 0.1);
    font-size: 12px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.home-idea-board__badge span {
    width: 18px;
    height: 18px;
    border: 5px solid rgba(37, 99, 235, 0.12);
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.18);
}

.home-idea-board__intro h2 {
    max-width: 900px;
    margin: 0;
    color: var(--text);
    font-size: clamp(38px, 4.5vw, 72px);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.home-idea-board__intro p {
    max-width: 790px;
    margin: 0;
    color: var(--text-soft);
    font-size: clamp(15px, 1vw, 18px);
    line-height: 1.72;
    font-weight: 700;
}

.home-idea-board__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 2px;
}

.home-idea-board__source,
.home-idea-board__principle {
    min-width: 0;
    border: 1px solid rgba(184, 204, 229, 0.94);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(248, 252, 255, 0.88));
    box-shadow: 0 20px 46px rgba(15, 23, 42, 0.07);
}

.home-idea-board__source {
    display: grid;
    align-content: start;
    gap: 16px;
    padding: clamp(18px, 2vw, 26px);
    border-top: 4px solid var(--accent);
    border-radius: 24px;
}

.home-idea-board__source-head {
    display: grid;
    gap: 6px;
}

.home-idea-board__source-head span,
.home-idea-board__principle span {
    color: var(--accent);
    font-size: 12px;
    font-weight: 950;
    line-height: 1.2;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.home-idea-board__source-head strong,
.home-idea-board__principle strong {
    color: var(--text);
    font-size: clamp(22px, 1.65vw, 32px);
    line-height: 1.06;
    letter-spacing: -0.035em;
}

.home-idea-board__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.home-idea-board__chips span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid rgba(184, 204, 229, 0.95);
    border-radius: 999px;
    color: var(--text);
    background: rgba(255, 255, 255, 0.9);
    font-size: 12px;
    line-height: 1;
    font-weight: 950;
}

.home-idea-board__mini-steps {
    display: grid;
    gap: 9px;
}

.home-idea-board__mini-steps span {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid rgba(184, 204, 229, 0.92);
    border-radius: 14px;
    color: var(--text);
    background: rgba(255, 255, 255, 0.82);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 850;
}

.home-idea-board__mini-steps b {
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    font-size: 12px;
    line-height: 1;
}

.home-idea-board__principle {
    display: grid;
    align-content: start;
    gap: 10px;
    padding: clamp(18px, 2vw, 24px);
    border-left: 4px solid rgba(37, 99, 235, 0.72);
    border-radius: 24px;
}

.home-idea-board__principle p {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.68;
    font-weight: 700;
}

.home-idea-board__steps {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(10px, 1.2vw, 16px);
}

.home-idea-step {
    position: relative;
    overflow: hidden;
    display: grid;
    align-content: start;
    gap: 10px;
    min-height: 190px;
    padding: clamp(16px, 1.5vw, 22px);
    border: 1px solid rgba(184, 204, 229, 0.92);
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 252, 255, 0.88));
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.055);
}

.home-idea-step::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--accent), rgba(14, 165, 233, 0.86));
    opacity: 0.78;
}

.home-idea-step--accent {
    background:
        linear-gradient(135deg, rgba(37, 99, 235, 0.94), rgba(14, 165, 233, 0.88));
    border-color: rgba(37, 99, 235, 0.35);
    color: #fff;
}

.home-idea-step span {
    display: inline-grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 14px;
    color: var(--accent);
    background: rgba(239, 246, 255, 0.9);
    font-size: 12px;
    font-weight: 950;
}

.home-idea-step--accent span {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.26);
    background: rgba(255, 255, 255, 0.16);
}

.home-idea-step h3 {
    margin: 4px 0 0;
    color: var(--text);
    font-size: clamp(18px, 1.2vw, 24px);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.home-idea-step p {
    margin: 0;
    color: var(--text-soft);
    font-size: 13px;
    line-height: 1.58;
    font-weight: 750;
}

.home-idea-step--accent h3,
.home-idea-step--accent p {
    color: #fff;
}

@media (max-width: 1360px) {
    .home-idea-board__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-idea-step {
        min-height: 178px;
    }
}

@media (max-width: 1080px) {
    .home-idea-board {
        grid-template-columns: 1fr;
    }

    .home-idea-board__principle {
        border-top: 4px solid rgba(37, 99, 235, 0.72);
        border-left-width: 1px;
    }
}

@media (max-width: 760px) {
    .home-idea-board {
        padding: 18px;
        border-radius: 26px;
    }

    .home-idea-board__intro h2 {
        font-size: clamp(34px, 11vw, 48px);
    }

    .home-idea-board__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .home-idea-board__actions .btn {
        width: 100%;
    }

    .home-idea-board__source,
    .home-idea-board__principle,
    .home-idea-step {
        border-radius: 20px;
    }

    .home-idea-board__steps {
        grid-template-columns: 1fr;
    }

    .home-idea-step {
        min-height: 0;
    }
}

@media (max-width: 430px) {
    .home-idea-board {
        padding: 14px;
        border-radius: 22px;
    }

    .home-idea-board__badge {
        min-height: 38px;
        padding: 7px 11px;
        font-size: 10px;
    }

    .home-idea-board__intro p,
    .home-idea-board__principle p,
    .home-idea-step p {
        font-size: 13px;
    }

    .home-idea-board__source,
    .home-idea-board__principle,
    .home-idea-step {
        padding: 16px;
    }

    .home-idea-board__chips span {
        min-height: 32px;
        padding: 7px 10px;
        font-size: 11px;
    }

    .home-idea-board__mini-steps span {
        align-items: flex-start;
    }
}

/* Home idea-to-detail principle inside source — 2026-07-04 */
.home-idea-board__source .home-idea-board__principle {
    margin-top: 2px;
    padding: 16px;
    border: 1px solid rgba(184, 204, 229, 0.92);
    border-left: 4px solid rgba(37, 99, 235, 0.72);
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(239, 246, 255, 0.74), rgba(255, 255, 255, 0.86));
    box-shadow: none;
}

.home-idea-board__source .home-idea-board__principle strong {
    font-size: clamp(18px, 1.25vw, 24px);
    line-height: 1.12;
}

.home-idea-board__source .home-idea-board__principle p {
    font-size: 13px;
    line-height: 1.58;
}

@media (max-width: 1080px) {
    .home-idea-board__source .home-idea-board__principle {
        border-top-width: 1px;
        border-left-width: 4px;
    }
}

@media (max-width: 430px) {
    .home-idea-board__source .home-idea-board__principle {
        padding: 14px;
        border-radius: 16px;
    }
}

/* Home process board compact video + note below — 2026-07-04 */
.home-process-board {
    grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1.02fr);
    align-items: start;
    gap: clamp(18px, 2.4vw, 34px);
}

.home-process-board__content {
    align-content: start;
}

.home-process-board__media {
    display: grid;
    align-content: start;
    gap: 14px;
}

.home-process-board__video {
    min-height: clamp(300px, 27vw, 430px);
    border-radius: clamp(20px, 2vw, 28px);
}

.home-process-board__video img,
.home-process-board__video video {
    min-height: clamp(300px, 27vw, 430px);
}

.home-process-board__overlay {
    left: clamp(16px, 2vw, 24px);
    right: clamp(16px, 2vw, 24px);
    bottom: clamp(16px, 2vw, 24px);
    max-width: 470px;
}

.home-process-board__overlay strong {
    max-width: 460px;
    font-size: clamp(23px, 2.2vw, 34px);
}

.home-process-board__note {
    align-content: start;
    gap: 11px;
    padding: clamp(16px, 1.7vw, 22px);
    border-radius: 22px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(248, 252, 255, 0.88));
}

.home-process-board__note strong {
    max-width: 100%;
    font-size: clamp(18px, 1.35vw, 22px);
}

.home-process-board__note p {
    max-width: 100%;
}

.home-process-board__note .home-process-board__steps {
    margin-top: 2px;
}

.home-process-board__note .home-process-board__button {
    margin-top: 2px;
}

@media (max-width: 1280px) {
    .home-process-board {
        grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1fr);
    }

    .home-process-board__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-process-board__cards article {
        min-height: 118px;
    }

    .home-process-board__cards span {
        margin-bottom: 14px;
    }

    .home-process-board__video {
        min-height: clamp(280px, 29vw, 390px);
    }

    .home-process-board__video img,
    .home-process-board__video video {
        min-height: clamp(280px, 29vw, 390px);
    }
}

@media (max-width: 1080px) {
    .home-process-board {
        grid-template-columns: 1fr;
    }

    .home-process-board__content {
        grid-template-columns: 1fr;
    }

    .home-process-board__kicker,
    .home-process-board h2,
    .home-process-board__lead,
    .home-process-board__cards,
    .home-process-board__note,
    .home-process-board__steps,
    .home-process-board__button {
        grid-column: auto;
        grid-row: auto;
    }

    .home-process-board__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-process-board__video {
        min-height: clamp(300px, 45vw, 460px);
    }

    .home-process-board__video img,
    .home-process-board__video video {
        min-height: clamp(300px, 45vw, 460px);
    }
}

@media (max-width: 760px) {
    .home-process-board__cards {
        grid-template-columns: 1fr;
    }

    .home-process-board__video {
        height: 270px;
        min-height: 270px;
    }

    .home-process-board__video img,
    .home-process-board__video video {
        min-height: 270px;
    }

    .home-process-board__note .home-process-board__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-process-board__note .home-process-board__button {
        width: 100%;
    }
}

@media (max-width: 430px) {
    .home-process-board__video {
        height: 225px;
        min-height: 225px;
    }

    .home-process-board__video img,
    .home-process-board__video video {
        min-height: 225px;
    }

    .home-process-board__note .home-process-board__steps {
        grid-template-columns: 1fr;
    }
}

/* Home process board correct move: steps and button in left column — 2026-07-04 */
.home-process-board__content > .home-process-board__steps {
    margin-top: 2px;
}

.home-process-board__content > .home-process-board__button {
    margin-top: 2px;
}

.home-process-board__media > .home-process-board__note {
    align-self: start;
}

@media (max-width: 1280px) {
    .home-process-board__content > .home-process-board__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .home-process-board__content > .home-process-board__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-process-board__content > .home-process-board__button {
        width: 100%;
    }
}

@media (max-width: 430px) {
    .home-process-board__content > .home-process-board__steps {
        grid-template-columns: 1fr;
    }
}

/* Home process top button near kicker — 2026-07-04 */
.home-process-board__topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-width: 0;
}

.home-process-board__topline .home-process-board__kicker {
    flex: 0 1 auto;
}

.home-process-board__button--top {
    flex: 0 0 auto;
    min-width: 0;
    padding-inline: 22px;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .home-process-board__topline {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .home-process-board__button--top {
        width: 100%;
    }
}

/* Home process full-cover video stage — 2026-07-05 */
.home-process-board__media {
    align-self: start;
}

.home-process-board__video {
    position: relative;
    width: 100%;
    height: clamp(400px, 38vw, 560px);
    min-height: 0;
    border: 1px solid rgba(174, 199, 231, 0.92);
    border-radius: clamp(22px, 2.4vw, 32px);
    overflow: hidden;
    isolation: isolate;
    background: #0f172a;
    box-shadow: 0 24px 68px rgba(15, 23, 42, 0.16);
}

.home-process-board__video::before,
.home-process-board__video::after {
    display: none;
}

.home-process-board__video-frame {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    overflow: hidden;
    background: #0f172a;
}

.home-process-board__video-frame::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(to bottom, rgba(6, 12, 24, 0.62) 0%, rgba(15, 23, 42, 0.1) 34%, rgba(15, 23, 42, 0.38) 100%),
        linear-gradient(135deg, rgba(37, 99, 235, 0.18), transparent 56%);
}

.home-process-board__video-frame img,
.home-process-board__video-frame video {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center center;
    background: #0f172a;
}

.home-process-board__video-frame video {
    cursor: pointer;
}

.home-process-board__video-frame .home-process-board__overlay {
    top: clamp(16px, 2.2vw, 28px);
    bottom: auto;
    left: clamp(16px, 2.2vw, 28px);
    right: clamp(16px, 2.2vw, 28px);
    z-index: 3;
    max-width: min(560px, calc(100% - 32px));
    pointer-events: none;
}

.home-process-board__video-frame .home-process-board__overlay strong {
    max-width: 520px;
    font-size: clamp(22px, 2.25vw, 34px);
    line-height: 1.04;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.42);
}

@media (max-width: 1280px) {
    .home-process-board__video {
        height: clamp(360px, 38vw, 520px);
    }
}

@media (max-width: 1080px) {
    .home-process-board__video {
        height: clamp(340px, 50vw, 500px);
    }
}

@media (max-width: 760px) {
    .home-process-board__video {
        height: 340px;
        border-radius: 22px;
    }

    .home-process-board__video-frame .home-process-board__overlay {
        top: 14px;
        left: 14px;
        right: 14px;
        gap: 6px;
    }

    .home-process-board__video-frame .home-process-board__overlay strong {
        max-width: 310px;
        font-size: 21px;
    }
}

@media (max-width: 430px) {
    .home-process-board__video {
        height: 300px;
        border-radius: 20px;
    }

    .home-process-board__video-frame .home-process-board__overlay strong {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        font-size: 18px;
    }
}

/* Home hero first design — 2026-07-04 */
.home-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 4.8vw, 72px) 0 clamp(42px, 5.5vw, 78px);
    background:
        linear-gradient(rgba(37, 99, 235, 0.038) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.038) 1px, transparent 1px),
        radial-gradient(circle at 82% 16%, rgba(37, 99, 235, 0.16), transparent 28rem),
        radial-gradient(circle at 8% 82%, rgba(14, 165, 233, 0.10), transparent 28rem),
        linear-gradient(180deg, #ffffff 0%, #f4f8fd 64%, #eef5ff 100%);
    background-size:
        34px 34px,
        34px 34px,
        auto,
        auto,
        auto;
}

.home-hero::after {
    opacity: 0.08;
}

.home-hero-board {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 0.98fr) minmax(460px, 1.02fr);
    gap: clamp(28px, 4.2vw, 72px);
    align-items: center;
}

.home-hero-board__content {
    min-width: 0;
}

.home-hero__badge {
    margin-bottom: clamp(20px, 2vw, 30px);
    padding: 10px 15px;
    border-color: rgba(37, 99, 235, 0.22);
    background: rgba(239, 246, 255, 0.86);
    box-shadow: 0 14px 32px rgba(37, 99, 235, 0.08);
    font-size: 13px;
    font-weight: 900;
}

.home-hero h1,
.home-hero-board__content h1 {
    max-width: 820px;
    margin: 0;
    color: var(--text);
    font-size: clamp(42px, 5.05vw, 76px);
    line-height: 1.02;
    font-weight: 950;
    letter-spacing: -0.065em;
    text-wrap: balance;
}

.home-hero-board__lead {
    position: relative;
    max-width: 740px;
    margin: clamp(22px, 2vw, 30px) 0 0;
    padding-top: 18px;
    color: var(--text-soft);
    font-size: clamp(17px, 1.28vw, 21px);
    line-height: 1.62;
    font-weight: 650;
}

.home-hero-board__lead::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 62px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--accent), rgba(14, 165, 233, 0.72));
}

.home-hero-board__actions {
    margin-top: clamp(22px, 2.5vw, 34px);
}

.home-hero-board__actions .btn {
    min-width: 220px;
    min-height: 56px;
    border-radius: 16px;
    font-size: 15px;
}

.home-hero-board__actions .btn-secondary {
    background: rgba(255, 255, 255, 0.92);
}


.home-hero__visual {
    min-height: 0;
}

.home-hero__visual .studio-image-carousel--home {
    width: 100%;
}

.studio-image-carousel--home .studio-image-carousel__viewport {
    min-height: clamp(360px, 34vw, 540px);
    border: 8px solid rgba(255, 255, 255, 0.82);
    border-radius: clamp(24px, 2vw, 34px);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(239, 246, 255, 0.88));
    box-shadow: 0 28px 82px rgba(15, 23, 42, 0.13);
}

.studio-image-carousel--home .studio-image-carousel__viewport::after {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(15, 23, 42, 0.08) 60%, rgba(15, 23, 42, 0.12));
}

.studio-image-carousel--home .studio-image-carousel__arrow {
    width: 48px;
    height: 48px;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12);
}

.studio-image-carousel--home .studio-image-carousel__arrow--prev {
    left: 18px;
}

.studio-image-carousel--home .studio-image-carousel__arrow--next {
    right: 18px;
}

.studio-image-carousel--home .studio-image-carousel__counter {
    left: 20px;
    bottom: 18px;
    min-width: 76px;
    height: 44px;
    border-radius: 15px;
    font-size: 16px;
}

.studio-image-carousel--home .studio-image-carousel__dots {
    right: 20px;
    bottom: 18px;
    padding: 11px 13px;
    border-radius: 999px;
}

.home-proof-strip {
    margin-top: -18px;
    padding: 0 0 clamp(54px, 6vw, 86px);
    background: linear-gradient(180deg, #eef5ff 0%, #ffffff 100%);
}

.home-proof-strip__inner {
    gap: 14px;
}

.home-proof-strip article {
    position: relative;
    overflow: hidden;
    min-height: 178px;
    padding: 24px;
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 252, 255, 0.92));
    box-shadow: 0 20px 56px rgba(15, 23, 42, 0.07);
}

.home-proof-strip article::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--accent), rgba(14, 165, 233, 0.76));
    opacity: 0.9;
}

.home-proof-strip span {
    width: 44px;
    height: 44px;
    margin-bottom: 18px;
    border-radius: 15px;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.95), rgba(14, 165, 233, 0.86));
    color: #fff;
}

.home-proof-strip strong {
    font-size: 19px;
}

.home-proof-strip p {
    color: var(--text-soft);
    font-size: 14px;
}

@media (max-width: 1280px) {
    .home-hero-board {
        grid-template-columns: minmax(0, 0.95fr) minmax(420px, 1.05fr);
        gap: 34px;
    }

    .home-hero h1,
    .home-hero-board__content h1 {
        font-size: clamp(40px, 5vw, 64px);
    }


    .studio-image-carousel--home .studio-image-carousel__viewport {
        min-height: clamp(340px, 36vw, 500px);
    }

    .home-proof-strip__inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1080px) {
    .home-hero-board {
        grid-template-columns: 1fr;
    }

    .home-hero-board__content {
        max-width: 860px;
    }


    .home-hero__visual {
        max-width: 860px;
        width: 100%;
        margin-inline: auto;
    }
}

@media (max-width: 760px) {
    .home-hero {
        padding-top: 28px;
    }

    .home-hero-board {
        gap: 24px;
    }

    .home-hero__badge {
        margin-bottom: 18px;
        font-size: 11px;
    }

    .home-hero h1,
    .home-hero-board__content h1 {
        font-size: clamp(34px, 11vw, 50px);
        letter-spacing: -0.06em;
    }

    .home-hero-board__lead {
        font-size: 15px;
    }

    .home-hero-board__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .home-hero-board__actions .btn {
        width: 100%;
        min-width: 0;
    }


    .studio-image-carousel--home .studio-image-carousel__viewport {
        min-height: 280px;
        border-width: 5px;
        border-radius: 24px;
    }

    .studio-image-carousel--home .studio-image-carousel__arrow {
        width: 40px;
        height: 40px;
    }

    .home-proof-strip {
        margin-top: -8px;
    }

    .home-proof-strip__inner {
        grid-template-columns: 1fr;
    }

    .home-proof-strip article {
        min-height: 0;
        padding: 20px;
        border-radius: 20px;
    }
}

@media (max-width: 430px) {
    .home-hero {
        padding-top: 22px;
    }

    .home-hero__badge {
        max-width: 100%;
        white-space: normal;
    }

    .home-hero h1,
    .home-hero-board__content h1 {
        font-size: 33px;
    }

    .home-hero-board__lead {
        font-size: 14px;
    }


    .studio-image-carousel--home .studio-image-carousel__viewport {
        min-height: 235px;
    }

    .studio-image-carousel--home .studio-image-carousel__counter {
        left: 12px;
        bottom: 12px;
        min-width: 62px;
        height: 36px;
        font-size: 14px;
    }

    .studio-image-carousel--home .studio-image-carousel__dots {
        right: 12px;
        bottom: 12px;
        padding: 8px 10px;
    }
}

/* Home hero compact spacing + clean metric markers — 2026-07-04 */
.home-hero {
    padding: clamp(28px, 3.8vw, 54px) 0 clamp(34px, 4.6vw, 58px);
}

.home-hero-board {
    grid-template-columns: minmax(0, 0.98fr) minmax(520px, 0.94fr);
    gap: clamp(18px, 2.8vw, 46px);
    align-items: start;
}

.home-hero__badge {
    margin-bottom: clamp(14px, 1.5vw, 20px);
}

.home-hero h1,
.home-hero-board__content h1 {
    max-width: 760px;
    font-size: clamp(38px, 4.35vw, 66px);
    line-height: 1.01;
}

.home-hero-board__lead {
    max-width: 700px;
    margin-top: clamp(16px, 1.7vw, 22px);
    padding-top: 14px;
    font-size: clamp(16px, 1.12vw, 18px);
    line-height: 1.55;
}

.home-hero-board__actions {
    margin-top: clamp(18px, 2vw, 24px);
}

.home-hero-board__actions .btn {
    min-height: 50px;
    min-width: 190px;
    border-radius: 15px;
}


.home-hero__visual {
    align-self: start;
    margin-top: clamp(14px, 1.4vw, 22px);
}

.studio-image-carousel--home .studio-image-carousel__viewport {
    min-height: clamp(310px, 28vw, 440px);
    border-width: 6px;
}

.home-proof-strip {
    margin-top: -8px;
    padding-bottom: clamp(44px, 5vw, 68px);
}

.home-proof-strip article {
    min-height: 150px;
    padding: 20px;
}

@media (max-width: 1280px) {
    .home-hero-board {
        grid-template-columns: minmax(0, 1fr) minmax(440px, 0.9fr);
        gap: 26px;
    }

    .home-hero h1,
    .home-hero-board__content h1 {
        font-size: clamp(36px, 4.65vw, 58px);
    }

    .studio-image-carousel--home .studio-image-carousel__viewport {
        min-height: clamp(300px, 31vw, 410px);
    }
}

@media (max-width: 1080px) {
    .home-hero-board {
        grid-template-columns: 1fr;
    }

    .home-hero__visual {
        margin-top: 0;
    }

}

@media (max-width: 760px) {
    .home-hero {
        padding-top: 24px;
    }

    .home-hero h1,
    .home-hero-board__content h1 {
        font-size: clamp(32px, 10vw, 46px);
    }


    .studio-image-carousel--home .studio-image-carousel__viewport {
        min-height: 255px;
    }
}

@media (max-width: 430px) {
    .home-hero h1,
    .home-hero-board__content h1 {
        font-size: 31px;
    }

    .studio-image-carousel--home .studio-image-carousel__viewport {
        min-height: 220px;
    }
}

/* Home hero metrics removed spacing — 2026-07-04 */
.home-hero {
    padding-bottom: clamp(28px, 3.8vw, 48px);
}

.home-hero-board__actions {
    margin-bottom: 0;
}

@media (max-width: 760px) {
    .home-hero {
        padding-bottom: 28px;
    }
}


/* Services hero text/visual height balance — 2026-07-04
   Keeps the /services/ hero in the home style, but makes the left text block
   visually closer to the carousel height without changing markup or adding new classes. */
.hero--services.home-hero .home-hero-board {
    align-items: stretch;
}

.hero--services.home-hero .home-hero-board__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: clamp(360px, 30vw, 475px);
}

.hero--services.home-hero h1,
.hero--services.home-hero .home-hero-board__content h1 {
    max-width: 900px;
    font-size: clamp(38px, 3.85vw, 58px);
    line-height: 1.08;
    letter-spacing: -0.058em;
}

.hero--services.home-hero .home-hero-board__lead {
    max-width: 760px;
    margin-top: clamp(18px, 2.2vw, 30px);
}

.hero--services.home-hero .hero-actions {
    margin-top: auto;
    padding-top: clamp(24px, 3vw, 42px);
}

.hero--services.home-hero .home-hero__visual {
    align-self: stretch;
    display: flex;
}

.hero--services.home-hero .studio-image-carousel--services {
    display: flex;
    flex-direction: column;
    max-width: none;
}

.hero--services.home-hero .studio-image-carousel--services .studio-image-carousel__viewport {
    flex: 1 1 auto;
}

@media (max-width: 1080px) {
    .hero--services.home-hero .home-hero-board__content {
        min-height: 0;
    }

    .hero--services.home-hero .hero-actions {
        margin-top: clamp(18px, 2vw, 24px);
        padding-top: 0;
    }

    .hero--services.home-hero .home-hero__visual {
        display: block;
    }

    .hero--services.home-hero .studio-image-carousel--services {
        display: block;
        max-width: 760px;
    }
}

@media (max-width: 760px) {
    .hero--services.home-hero h1,
    .hero--services.home-hero .home-hero-board__content h1 {
        font-size: clamp(32px, 10vw, 46px);
        line-height: 1.06;
    }
}

@media (max-width: 430px) {
    .hero--services.home-hero h1,
    .hero--services.home-hero .home-hero-board__content h1 {
        font-size: 31px;
    }
}

/* Home hero text/visual height balance — 2026-07-04
   Scoped to the main page so the services hero keeps its own tuning. */
.hero--home.home-hero .home-hero-board {
    align-items: stretch;
}

.hero--home.home-hero .home-hero-board__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: clamp(330px, 29vw, 452px);
}

.hero--home.home-hero h1,
.hero--home.home-hero .home-hero-board__content h1 {
    max-width: 880px;
    font-size: clamp(36px, 3.75vw, 58px);
    line-height: 1.08;
    letter-spacing: -0.056em;
}

.hero--home.home-hero .home-hero-board__lead {
    max-width: 760px;
    margin-top: clamp(18px, 2.2vw, 30px);
}

.hero--home.home-hero .home-hero-board__actions {
    margin-top: auto;
    padding-top: clamp(24px, 3vw, 42px);
}

.hero--home.home-hero .home-hero__visual {
    align-self: stretch;
    display: flex;
}

.hero--home.home-hero .studio-image-carousel--home {
    display: flex;
    flex-direction: column;
}

.hero--home.home-hero .studio-image-carousel--home .studio-image-carousel__viewport {
    flex: 1 1 auto;
}

@media (max-width: 1080px) {
    .hero--home.home-hero .home-hero-board__content {
        min-height: 0;
    }

    .hero--home.home-hero .home-hero-board__actions {
        margin-top: clamp(18px, 2vw, 24px);
        padding-top: 0;
    }

    .hero--home.home-hero .home-hero__visual,
    .hero--home.home-hero .studio-image-carousel--home {
        display: block;
    }
}

@media (max-width: 760px) {
    .hero--home.home-hero h1,
    .hero--home.home-hero .home-hero-board__content h1 {
        font-size: clamp(32px, 10vw, 46px);
        line-height: 1.06;
    }
}

@media (max-width: 430px) {
    .hero--home.home-hero h1,
    .hero--home.home-hero .home-hero-board__content h1 {
        font-size: 31px;
    }
}

/* Works hero in Services/Home visual style — 2026-07-04
   The /works/ carousel uses the same home hero look, so this keeps its media block
   stretched like /services/ without changing button styles or neighboring pages. */
.hero--works.home-hero .studio-image-carousel--works {
    display: flex;
    flex-direction: column;
    max-width: none;
}

.hero--works.home-hero .studio-image-carousel--works .studio-image-carousel__viewport {
    flex: 1 1 auto;
}

@media (max-width: 1080px) {
    .hero--works.home-hero .studio-image-carousel--works {
        display: block;
        max-width: 760px;
    }
}


/* Home-like hero background grid cleanup — 2026-07-04
   Use one grid source for all home-style hero blocks so the background keeps
   ровные квадраты without moire from overlapping ::before grids. */
.hero.home-hero {
    background-size:
        40px 40px,
        40px 40px,
        auto,
        auto,
        auto;
    background-position:
        0 0,
        0 0,
        center,
        center,
        center;
}

.hero.home-hero::before {
    content: none;
}

/* Services project-start unified panel — 2026-07-04
   The existing project-start styles split the heading panel and route cards into
   separate blocks. This local modifier keeps /services/ in one clean premium card
   and preserves responsive 3/2/1-column behavior. */
.project-start-panel--unified {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 440px);
    row-gap: clamp(24px, 3vw, 38px);
    margin-bottom: 0;
    padding: clamp(26px, 4.2vw, 52px);
    border-radius: clamp(26px, 2.4vw, 34px);
    background:
        radial-gradient(circle at 88% 14%, rgba(37, 99, 235, 0.14), transparent 26rem),
        radial-gradient(circle at 10% 86%, rgba(14, 165, 233, 0.08), transparent 24rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.76));
}

.project-start-panel--unified .project-start-panel__content {
    min-width: 0;
}

.project-start-panel--unified .project-start-panel__meta--inline {
    align-self: center;
}

.project-start-panel--unified .project-start-route {
    grid-column: 1 / -1;
    gap: clamp(12px, 1.2vw, 18px);
}

.project-start-panel--unified .project-route-card {
    min-height: clamp(132px, 9.6vw, 154px);
    box-shadow: 0 16px 42px rgba(15, 23, 42, 0.055);
}

@media (max-width: 1180px) {
    .project-start-panel--unified {
        grid-template-columns: 1fr;
    }

    .project-start-panel--unified .project-start-panel__meta--inline {
        width: 100%;
    }

    .project-start-panel--unified .project-start-route {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .project-start-panel--unified {
        padding: 22px;
        border-radius: 26px;
    }

    .project-start-panel--unified .project-start-panel__meta--inline,
    .project-start-panel--unified .project-start-route {
        grid-template-columns: 1fr;
    }

    .project-start-panel--unified .project-route-card {
        min-height: 0;
    }
}

@media (max-width: 430px) {
    .project-start-panel--unified {
        padding: 18px;
        border-radius: 22px;
    }

    .project-start-panel--unified .project-route-card {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 12px;
        padding: 16px;
    }
}

/* Services materials unified premium panel — 2026-07-04
   Combines the materials headline, metrics and cards into one clean block on /services/. */
.materials-unified-panel {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 4.2vw, 52px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: clamp(26px, 2.4vw, 34px);
    background:
        radial-gradient(circle at 88% 12%, rgba(37, 99, 235, 0.14), transparent 26rem),
        radial-gradient(circle at 8% 88%, rgba(14, 165, 233, 0.08), transparent 24rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.76));
    box-shadow: var(--shadow-soft);
}

.materials-unified-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.032) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.032) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
}

.materials-unified-panel > * {
    position: relative;
    z-index: 1;
}

.materials-unified-panel .materials-panel {
    margin-bottom: clamp(22px, 3vw, 38px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 500px);
}

.materials-unified-panel .materials-panel__meta {
    align-self: center;
}

.materials-unified-panel .materials-cards {
    gap: clamp(12px, 1.2vw, 18px);
}

.materials-unified-panel .material-preview-card {
    box-shadow: 0 16px 42px rgba(15, 23, 42, 0.055);
}

@media (max-width: 1180px) {
    .materials-unified-panel .materials-panel {
        grid-template-columns: 1fr;
    }

    .materials-unified-panel .materials-panel__meta {
        width: 100%;
    }
}

@media (max-width: 900px) {
    .materials-unified-panel .materials-panel__meta,
    .materials-unified-panel .materials-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .materials-unified-panel {
        padding: 22px;
        border-radius: 26px;
    }

    .materials-unified-panel .materials-panel__meta,
    .materials-unified-panel .materials-cards {
        grid-template-columns: 1fr;
    }

    .materials-unified-panel .materials-panel__meta div,
    .materials-unified-panel .material-preview-card__body h3,
    .materials-unified-panel .material-preview-card__body p {
        min-height: 0;
    }
}

@media (max-width: 430px) {
    .materials-unified-panel {
        padding: 18px;
        border-radius: 22px;
    }

    .materials-unified-panel .material-preview-card__body {
        padding: 18px;
    }
}

/* Services cards-only layout after engineering note removal — 2026-07-04
   Keeps the services grid full-width when the right note card is removed. */
.services-layout--cards-only {
    grid-template-columns: 1fr;
}

.services-layout--cards-only .services-grid {
    width: 100%;
}


/* Works materials unified premium panel — 2026-07-04
   Keeps the /works/ materials header, metrics, cards and CTA inside one clean block
   in the home-page premium style, without affecting other sections. */
.works-materials-panel--unified {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3vw, 38px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: clamp(24px, 2.6vw, 34px);
    background:
        radial-gradient(circle at 92% 10%, rgba(37, 99, 235, 0.13), transparent 24rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.76));
    box-shadow: 0 26px 78px rgba(15, 23, 42, 0.075);
}

.works-materials-panel--unified::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.04) 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: 0.58;
    mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.78) 62%, transparent 100%);
}

.works-materials-panel--unified > * {
    position: relative;
    z-index: 1;
}

.works-materials-panel--unified .services-head--premium {
    margin-bottom: clamp(22px, 3vw, 34px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.works-materials-panel--unified .works-material-card {
    background: rgba(255, 255, 255, 0.9);
}

.works-materials-panel--unified .works-materials-cta {
    margin-top: clamp(18px, 2.6vw, 28px);
    background: rgba(255, 255, 255, 0.88);
}

@media (max-width: 900px) {
    .works-materials-panel--unified {
        padding: clamp(18px, 4vw, 28px);
        border-radius: 26px;
    }

    .works-materials-panel--unified .services-head__panel {
        min-width: 0;
    }
}

@media (max-width: 520px) {
    .works-materials-panel--unified {
        padding: 16px;
        border-radius: 22px;
    }

    .works-materials-panel--unified .services-head--premium {
        margin-bottom: 18px;
    }

    .works-materials-panel--unified .works-materials-cta {
        padding: 18px;
        border-radius: 18px;
    }
}

/* Works method unified premium panel — 2026-07-04
   Keeps the /works/ project approach header and step cards inside one clean
   home-style premium block without affecting other public pages. */
.works-method-panel--unified {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3vw, 38px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: clamp(24px, 2.6vw, 34px);
    background:
        radial-gradient(circle at 92% 12%, rgba(37, 99, 235, 0.13), transparent 24rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.76));
    box-shadow: 0 26px 78px rgba(15, 23, 42, 0.075);
}

.works-method-panel--unified::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.04) 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: 0.58;
    mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.78) 62%, transparent 100%);
}

.works-method-panel--unified > * {
    position: relative;
    z-index: 1;
}

.works-method-panel--unified .services-head--premium {
    margin-bottom: clamp(22px, 3vw, 34px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.works-method-panel--unified .works-method-steps article {
    background: rgba(255, 255, 255, 0.9);
}

@media (max-width: 900px) {
    .works-method-panel--unified {
        padding: clamp(18px, 4vw, 28px);
        border-radius: 26px;
    }

    .works-method-panel--unified .services-head__panel {
        min-width: 0;
    }
}

@media (max-width: 520px) {
    .works-method-panel--unified {
        padding: 16px;
        border-radius: 22px;
    }

    .works-method-panel--unified .services-head--premium {
        margin-bottom: 18px;
    }

    .works-method-panel--unified .works-method-steps article {
        padding: 22px 20px 22px 26px;
        border-radius: 20px;
    }
}

/* Process inputs unified premium panel — 2026-07-04
   Keeps the /process/ "what we need from you" heading, cards and note inside one
   clean home-style block without changing other service/card sections. */
.process-inputs-panel--unified {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3.5vw, 42px);
    border: 1px solid rgba(201, 214, 229, 0.92);
    border-radius: clamp(24px, 2.6vw, 34px);
    background:
        radial-gradient(circle at 92% 12%, rgba(37, 99, 235, 0.13), transparent 24rem),
        radial-gradient(circle at 8% 88%, rgba(14, 165, 233, 0.07), transparent 22rem),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.76));
    box-shadow: 0 26px 78px rgba(15, 23, 42, 0.075);
}

.process-inputs-panel--unified::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(37, 99, 235, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(37, 99, 235, 0.04) 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: 0.56;
    mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.78) 66%, transparent 100%);
}

.process-inputs-panel--unified > * {
    position: relative;
    z-index: 1;
}

.process-inputs-panel--unified .services-head--premium {
    margin-bottom: clamp(20px, 3vw, 34px);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.process-inputs-panel--unified .services-layout {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
}

.process-inputs-panel--unified .service-card,
.process-inputs-panel--unified .services-note {
    background-color: rgba(255, 255, 255, 0.9);
}

.process-inputs-panel--unified .services-note {
    position: static;
    align-self: stretch;
}

@media (max-width: 1180px) {
    .process-inputs-panel--unified .services-layout {
        grid-template-columns: 1fr;
    }

    .process-inputs-panel--unified .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .process-inputs-panel--unified .services-note__steps {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .process-inputs-panel--unified {
        padding: 18px;
        border-radius: 24px;
    }

    .process-inputs-panel--unified .services-grid,
    .process-inputs-panel--unified .services-note__steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 430px) {
    .process-inputs-panel--unified {
        padding: 14px;
        border-radius: 20px;
    }

    .process-inputs-panel--unified .service-card {
        padding: 12px;
        border-radius: 18px;
    }

    .process-inputs-panel--unified .service-card__image {
        height: 118px;
        border-radius: 14px;
    }
}

/* Service detail CTA redesign — 2026-07-04
   Compact premium CTA for individual service pages; scoped to avoid affecting shared project-start blocks. */
.service-detail-cta-panel {
    grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.72fr);
    gap: clamp(24px, 4vw, 46px);
    align-items: center;
    margin-bottom: 0;
}

.service-detail-cta-panel__content h2 {
    max-width: 720px;
    margin-bottom: 16px;
}

.service-detail-cta-panel__content p {
    max-width: 660px;
}

.service-detail-cta-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: clamp(20px, 3vw, 30px);
}

.service-detail-cta-panel__steps {
    display: grid;
    gap: 12px;
}

.service-detail-cta-panel__steps div {
    position: relative;
    overflow: hidden;
    padding: 18px 20px;
    border: 1px solid rgba(201, 214, 229, 0.88);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.07);
}

.service-detail-cta-panel__steps div::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--accent), var(--accent-2));
}

.service-detail-cta-panel__steps span {
    display: inline-flex;
    margin-bottom: 12px;
    color: var(--accent);
    font-size: 12px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: 0.08em;
}

.service-detail-cta-panel__steps strong {
    display: block;
    margin-bottom: 8px;
    color: var(--text);
    font-size: clamp(18px, 1.35vw, 21px);
    line-height: 1.15;
    font-weight: 950;
    letter-spacing: -0.04em;
}

.service-detail-cta-panel__steps p {
    margin: 0;
    color: var(--text-soft);
    font-size: 14px;
    line-height: 1.55;
    font-weight: 560;
}

@media (max-width: 1024px) {
    .service-detail-cta-panel {
        grid-template-columns: 1fr;
    }

    .service-detail-cta-panel__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .service-detail-cta-panel__steps {
        grid-template-columns: 1fr;
    }

    .service-detail-cta-panel__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 430px) {
    .service-detail-cta-panel {
        padding: 22px;
    }

    .service-detail-cta-panel__steps div {
        padding: 16px;
        border-radius: 18px;
    }
}

/* Premium footer compact redesign — 2026-07-04
   Keeps the footer in one clear card and adds existing contact icons without touching the rest of the site. */
.footer-columns--premium {
    grid-template-columns: minmax(280px, 1.25fr) minmax(150px, 0.72fr) minmax(190px, 0.86fr) minmax(170px, 0.78fr) minmax(280px, 1.2fr);
    align-items: start;
}

.footer-column--brand {
    gap: 16px;
}

.footer-column--brand .footer-logo {
    align-items: flex-start;
}

.footer-column--brand .footer-logo__mark {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
    border-radius: 16px;
}

.footer-column--brand .footer-logo__text strong {
    font-size: clamp(19px, 1.55vw, 28px);
}

.footer-column--brand p {
    max-width: 420px;
    margin: 0;
}

.footer-contact-list--compact {
    gap: 10px;
}

.footer-contact-list--compact .footer-contact-item {
    padding: 11px 12px;
    border-radius: 16px;
}

.footer-contact-list--compact .footer-contact-item__icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    border-radius: 13px;
}

.footer-contact-list--compact .footer-contact-item__icon .icon-svg {
    width: 18px;
    height: 18px;
}

.footer-contact-list--compact .footer-contact-item strong {
    white-space: normal;
}

.footer-column--brand .footer-socials {
    margin-top: 2px;
}

.footer-inline-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 40px;
    margin-top: 4px;
    padding: 0 15px;
    border: 1px solid rgba(56, 189, 248, 0.26);
    border-radius: 999px;
    color: var(--white) !important;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.70), rgba(14, 165, 233, 0.62));
    box-shadow: 0 16px 32px rgba(14, 165, 233, 0.12);
    font-size: 13px !important;
    font-weight: 950 !important;
}

.footer-inline-cta:hover {
    transform: translateY(-2px) !important;
    color: var(--white) !important;
}

@media (max-width: 1280px) {
    .footer-columns--premium {
        grid-template-columns: minmax(280px, 1.15fr) repeat(2, minmax(170px, 0.8fr));
    }

    .footer-columns--premium .footer-column--wide {
        grid-column: span 2;
    }
}

@media (max-width: 860px) {
    .footer-columns--premium {
        grid-template-columns: 1fr 1fr;
    }

    .footer-columns--premium .footer-column--brand,
    .footer-columns--premium .footer-column--wide {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .footer-columns--premium {
        grid-template-columns: 1fr;
    }

    .footer-columns--premium .footer-column--wide {
        grid-column: auto;
    }

    .footer-inline-cta {
        width: 100%;
    }
}

/* Footer contact reliability polish — 2026-07-04
   Makes existing MAX/TikTok links readable as premium contact pills in the footer only. */
.footer-social-link--labeled {
    display: inline-flex;
    width: auto;
    min-width: 0;
    gap: 8px;
    padding: 0 13px;
}

.footer-social-link__label {
    color: inherit;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: .01em;
}

@media (max-width: 430px) {
    .footer-social-link--labeled {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* Footer social placeholders for planned channels — 2026-07-04
   Shows Dzen and RUTUBE as premium disabled pills until links are filled in admin. */
.footer-social-link--disabled {
    opacity: 0.74;
    cursor: default;
}

.footer-social-link--disabled:hover {
    transform: none;
    border-color: rgba(148, 163, 184, 0.20);
    color: rgba(239, 246, 255, 0.88);
    background: rgba(255, 255, 255, 0.06);
}

/* Footer Dzen text-only button — 2026-07-04
   Removes the problematic Dzen SVG mark and leaves a clean text pill. */
.footer-social-link--text-only {
    gap: 0;
}


/* Footer logo actual mark — 2026-07-04
   Reuses the existing site logo SVG instead of the blue text fill in the footer only. */
.footer-logo__mark--image {
    padding: 7px;
    color: var(--accent);
    background:
        radial-gradient(circle at 32% 22%, rgba(14, 165, 233, 0.12), transparent 58%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.82));
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.56),
        0 12px 32px rgba(14, 165, 233, 0.14);
}

.footer-logo__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter:
        drop-shadow(0 0 5px rgba(14, 165, 233, 0.22))
        drop-shadow(0 1px 0 rgba(15, 23, 42, 0.16));
}



/* Privacy policy hero cleanup — 2026-07-04
   Removes the old technical promo card and lets the main policy intro use the full premium panel width. */
.privacy-hero--single {
    grid-template-columns: 1fr;
}

.privacy-hero--single .privacy-hero__content {
    min-height: auto;
}


/* Header privacy dropdown — 2026-07-04
   Adds the consent page under Policy without changing the header JS. */
.nav-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.nav-dropdown__menu {
    position: absolute;
    top: calc(100% + 16px);
    left: 50%;
    z-index: 140;
    min-width: 156px;
    padding: 8px;
    border: 1px solid rgba(191, 219, 254, 0.9);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 22px 54px rgba(15, 23, 42, 0.14);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -6px);
    transition: opacity 160ms ease,
        visibility 160ms ease,
        transform 160ms ease;
}

.nav-dropdown__menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -18px;
    height: 18px;
}

.nav-dropdown:hover .nav-dropdown__menu,
.nav-dropdown:focus-within .nav-dropdown__menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.nav-dropdown__menu a {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 9px 12px;
    border-radius: 13px;
    color: var(--text-soft);
    font-size: 13px;
    font-weight: 900;
    white-space: nowrap;
}

.nav-dropdown__menu a::after {
    display: none;
}

.nav-dropdown__menu a:hover,
.nav-dropdown__menu a:focus-visible {
    color: var(--accent);
    background: rgba(219, 234, 254, 0.72);
}

@media (max-width: 1240px) {
    .nav-dropdown {
        display: grid;
        align-items: stretch;
    }

    .nav-dropdown__menu {
        position: static;
        display: grid;
        min-width: 0;
        margin: -2px 0 4px 14px;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    .nav-dropdown__menu::before {
        display: none;
    }

    .nav-dropdown:hover .nav-dropdown__menu,
    .nav-dropdown:focus-within .nav-dropdown__menu {
        transform: none;
    }

    .nav-dropdown__menu a {
        min-height: 40px;
        padding: 10px 13px;
        border: 1px solid rgba(191, 219, 254, 0.5);
        border-radius: 15px;
        background: rgba(239, 246, 255, 0.62);
        font-size: 13px;
    }
}

/* Footer contact strip layout — 2026-07-04
   Moves phone and email cards into the wide empty footer area while keeping the premium dark footer compact. */
.footer-contact-strip {
    display: grid;
    gap: 12px;
    min-width: 0;
    padding-top: 14px;
    border-top: 1px solid rgba(148, 163, 184, 0.16);
}

.footer-contact-strip h3 {
    margin: 0;
}

.footer-contact-strip__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    min-width: 0;
}

.footer-contact-strip .footer-contact-item {
    min-width: 0;
    min-height: 68px;
    padding: 12px 14px;
    border-radius: 18px;
}

.footer-contact-strip .footer-contact-item__icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    border-radius: 14px;
}

.footer-contact-strip .footer-contact-item strong {
    white-space: normal;
}

@media (min-width: 1281px) {
    .footer-columns--premium .footer-column--brand {
        grid-row: 1 / span 2;
    }

    .footer-contact-strip {
        grid-column: 2 / -1;
        grid-row: 2;
    }
}

@media (max-width: 1280px) {
    .footer-contact-strip {
        grid-column: 1 / -1;
    }
}

@media (max-width: 860px) {
    .footer-contact-strip__items {
        grid-template-columns: 1fr;
    }
}
/* Fix mobile invisible privacy dropdown click layer */
@media (max-width: 1240px) {
    .nav:not(.is-open),
    .nav:not(.is-open) *,
    .nav:not(.is-open) .nav-dropdown,
    .nav:not(.is-open) .nav-dropdown__menu,
    .nav:not(.is-open) .nav-dropdown__menu * {
        pointer-events: none !important;
    }

    .nav:not(.is-open) .nav-dropdown__menu {
        opacity: 0 !important;
        visibility: hidden !important;
    }

    .nav.is-open,
    .nav.is-open * {
        pointer-events: auto;
    }

    .nav.is-open .nav-dropdown__menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}
