
.brand {
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    line-height:1;
    padding:var(--space-2xs) 0;
    border-radius:var(--radius-s);
    outline:none;
    transition:opacity var(--dur-fast) var(--ease-out);
}

.brand:hover { opacity:0.85; }

.brand:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:3px;
}

.brand:active { opacity:0.7; }

.brand img {
    height:3.2rem;
    width:auto;
    aspect-ratio:190 / 64;
    object-fit:contain;
}

/* Fixed Desktop Sidebar Navigation */
.site-sidebar {
    width:280px;
    flex:0 0 280px;

    height:100vh;
    height:100dvh;
    position:sticky;
    top:0;
    left:0;

    background-color:var(--surface);
    border-right:1px solid var(--line);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:var(--space-l) var(--space-m);
    z-index:100;
    overflow-y:auto;
}

.site-sidebar .sidebar-top {
    display:flex;
    flex-direction:column;
    gap:var(--space-xl);
}

.sidebar-nav-list {
    display:flex;
    flex-direction:column;
    gap:var(--space-3xs);
}

.sidebar-nav-item { width:100%; }

.sidebar-nav-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:var(--space-xs) var(--space-s);
    min-height:44px;
    color:var(--ink);
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:600;
    text-decoration:none;
    border-radius:var(--radius-s);
    border:1px solid transparent;
    outline:none;
    transition:background-color var(--dur-fast) var(--ease-out),
                            border-color var(--dur-fast) var(--ease-out),
                            color var(--dur-fast) var(--ease-out);
}

.sidebar-nav-link:hover {
    background-color:var(--surface-2);
    color:var(--ink);
    border-color:var(--line);
}

.sidebar-nav-link:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:1px;
    background-color:var(--surface-2);
}

.sidebar-nav-link:active {
    background-color:var(--line);
    color:var(--ink);
}

.sidebar-nav-link[aria-current="page"] {
    background-color:var(--accent);
    color:var(--accent-ink);
    border-color:var(--accent);
}

.sidebar-nav-link[aria-current="page"]:hover {
    background-color:var(--accent);
    color:var(--accent-ink);
}

.sidebar-nav-meta {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    font-weight:400;
    opacity:0.7;
}

.site-sidebar .sidebar-bottom {
    display:flex;
    flex-direction:column;

    gap:var(--space-s);
    padding-top:var(--space-m);
    border-top:1px solid var(--line);
}

.sidebar-contact-line {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink-soft);
    line-height:1.4;
    display:flex;
    flex-direction:column;
    gap:var(--space-3xs);
}

.sidebar-contact-line a {
    color:var(--ink);
    text-decoration:none;
    font-weight:500;
    transition:color var(--dur-fast) var(--ease-out);
}

.sidebar-contact-line a:hover {
    color:var(--accent);
    text-decoration:underline;
}

.sidebar-contact-line a:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.sidebar-contact-line a:active { color:var(--ink-soft); }

/* Condensing Top Bar Furniture (Mobile & Responsive Pinning) */
.site-condensed-bar {
    display:none;
    position:sticky;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:var(--header-condensed-h);
    background-color:var(--surface);
    border-bottom:1px solid var(--line);
    z-index:105;
    padding:0 var(--space-m);
    align-items:center;
    justify-content:space-between;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.site-condensed-bar .condensed-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    max-width:var(--content-max);
    margin:0 auto;
}

.site-condensed-bar .brand img {
    height:2.2rem;
    width:auto;
}

.condensed-actions {
    display:flex;
    align-items:center;
    gap:var(--space-s);
}

.condensed-contact-link {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink);
    font-weight:600;
    text-decoration:none;
    padding:var(--space-2xs) var(--space-xs);
    min-height:44px;
    display:inline-flex;
    align-items:center;
    border-radius:var(--radius-s);
    border:1px solid var(--line);
    background-color:var(--surface-2);
    transition:background-color var(--dur-fast) var(--ease-out),
                            border-color var(--dur-fast) var(--ease-out),
                            color var(--dur-fast) var(--ease-out);
}

.condensed-contact-link:hover {
    background-color:var(--ink);
    color:var(--ground);
    border-color:var(--ink);
}

.condensed-contact-link:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.condensed-contact-link:active {
    background-color:var(--ink-soft);
    color:var(--ground);
}

/* Mobile Nav Drawer Toggle */
.nav-toggle-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2xs);
    min-width:44px;
    min-height:44px;
    padding:var(--space-2xs) var(--space-xs);
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:600;
    color:var(--ink);
    background-color:transparent;
    border:1px solid var(--line);
    border-radius:var(--radius-s);
    transition:background-color var(--dur-fast) var(--ease-out),
                            border-color var(--dur-fast) var(--ease-out),
                            color var(--dur-fast) var(--ease-out);
}

.nav-toggle-btn:hover {
    background-color:var(--surface-2);
    border-color:var(--ink-soft);
}

.nav-toggle-btn:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.nav-toggle-btn:active { background-color:var(--line); }

/* Mobile Slide-in Drawer Container */
.mobile-nav-drawer {
    position:fixed;
    top:var(--header-condensed-h);
    left:0;
    right:0;
    bottom:0;
    background-color:var(--surface);
    border-top:1px solid var(--line);
    padding:var(--space-l) var(--space-m);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    overflow-y:auto;
    z-index:104;
    transform:translateY(-100%);
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transition:transform var(--dur-med) var(--ease-out),
                            opacity var(--dur-med) var(--ease-out),
                            visibility var(--dur-med);
}

.mobile-nav-drawer.is-open {
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
    visibility:visible;
}

@media (max-width: 1024px) {
    .site-sidebar { display:none; }
    .site-condensed-bar { display:flex; }
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2xs);
    min-height:44px;
    padding:var(--space-xs) var(--space-m);
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:600;
    letter-spacing:-0.01em;
    text-decoration:none;
    border-radius:var(--radius-s);
    border:1px solid transparent;
    cursor:pointer;
    white-space:normal;
    text-align:center;
    outline:none;
    transition:background-color var(--dur-fast) var(--ease-out),
                            border-color var(--dur-fast) var(--ease-out),
                            color var(--dur-fast) var(--ease-out),
                            transform var(--dur-fast) var(--ease-out);
}

.btn:active { transform:translateY(1px); }

.btn-primary {
    background-color:var(--accent);
    color:var(--accent-ink);
    border-color:var(--accent);
}

.btn-primary:hover {
    background-color:#24656e;
    border-color:#24656e;
    color:var(--accent-ink);
}

.btn-primary:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:3px;
}

.btn-primary:active {
    background-color:#1a4d54;
    border-color:#1a4d54;
}

.btn-secondary {
    background-color:var(--surface);
    color:var(--ink);
    border-color:var(--line);
}

.btn-secondary:hover {
    background-color:var(--surface-2);
    border-color:var(--ink-soft);
    color:var(--ink);
}

.btn-secondary:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:3px;
}

.btn-secondary:active {
    background-color:var(--line);
    color:var(--ink);
}

.btn-text {
    display:inline-flex;
    align-items:center;
    gap:var(--space-3xs);
    min-height:44px;
    padding:var(--space-2xs) 0;
    color:var(--ink);
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:4px;
    background:none;
    border:none;
    outline:none;
    transition:color var(--dur-fast) var(--ease-out);
}

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

.btn-text:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.btn-text:active { color:var(--ink-soft); }

.catalog-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(290px, 1fr));
    gap:var(--space-m);
    width:100%;
}

.catalog-card {
    display:flex;
    flex-direction:column;
    background-color:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-s);
    padding:var(--space-s);
    position:relative;
    transition:border-color var(--dur-fast) var(--ease-out),
                            background-color var(--dur-fast) var(--ease-out);
}

.catalog-card:hover {
    border-color:var(--ink-soft);
    background-color:#d4d8de;
}

.catalog-card .card-media {
    width:100%;
    aspect-ratio:4 / 3;
    overflow:hidden;
    background-color:var(--surface-2);
    border-bottom:1px solid var(--line);
    border-radius:var(--radius-xs);
    margin-bottom:var(--space-s);
}

.catalog-card .card-media img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform var(--dur-slow) var(--ease-out);
}

.catalog-card:hover .card-media img { transform:scale(1.02); }

.catalog-card .card-body {
    display:flex;
    flex-direction:column;
    flex-grow:1;
}

.catalog-card .card-title {
    font-family:var(--lado-76b);
    font-size:var(--lado-013);
    font-weight:700;
    line-height:1.25;
    margin-bottom:var(--space-3xs);
}

.catalog-card .card-title a {
    text-decoration:none;
    color:var(--ink);
    outline:none;
}

.catalog-card .card-title a:hover {
    color:var(--accent);
    text-decoration:underline;
}

.catalog-card .card-title a:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.catalog-card .card-price-basis {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    font-weight:500;
    color:var(--ink-soft);
    margin-bottom:var(--space-xs);
    line-height:1.4;
}

.catalog-card .card-desc {
    font-size:var(--lado-639);
    line-height:1.5;
    color:var(--ink);
    margin-bottom:var(--space-m);
    flex-grow:1;
}

.catalog-card .card-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:var(--space-xs);
    border-top:1px solid var(--line);
    font-family:var(--lado-969);
    font-size:var(--step--1);
}

.catalog-card .card-tag {
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:0.04em;
}

.editorial-list {
    display:flex;
    flex-direction:column;
    width:100%;
    border-top:1px solid var(--line);
}

.editorial-list-row {
    display:grid;
    grid-template-columns:120px minmax(240px, 1.8fr) minmax(180px, 1.2fr) minmax(110px, auto);
    gap:var(--space-m);
    align-items:baseline;
    padding:var(--space-m) 0;
    border-bottom:1px solid var(--line);
    transition:background-color var(--dur-fast) var(--ease-out);
}

.editorial-list-row:hover { background-color:rgba(218, 222, 227, 0.4); }

.editorial-list-row .list-meta {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink-soft);
}

.editorial-list-row .list-title {
    font-family:var(--lado-76b);
    font-size:var(--lado-013);
    font-weight:600;
    color:var(--ink);
}

.editorial-list-row .list-title a { text-decoration:none; }

.editorial-list-row .list-title a:hover {
    color:var(--accent);
    text-decoration:underline;
}

.editorial-list-row .list-specs {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink);
}

.editorial-list-row .list-action { text-align:right; }

@media (max-width: 768px) {
    .editorial-list-row {
        grid-template-columns:1fr;
        gap:var(--space-2xs);
        padding:var(--space-s) 0;
    }
    .editorial-list-row .list-action {
        text-align:left;
        margin-top:var(--space-2xs);
    }
}

.spec-table-container {
    width:100%;
    overflow-x:auto;
    margin:var(--space-m) 0;
    border:1px solid var(--line);
    background-color:var(--surface);
    border-radius:var(--radius-s);
}

.spec-table {
    width:100%;
    min-width:480px;
    font-size:var(--lado-639);
    border-collapse:collapse;
}

.spec-table th,
.spec-table td {
    padding:var(--space-xs) var(--space-s);
    text-align:left;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}

.spec-table th {
    font-family:var(--lado-76b);
    font-size:var(--step--1);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink-soft);
    background-color:var(--surface-2);
}

.spec-table td.spec-prop {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    font-weight:500;
    color:var(--ink-soft);
    width:32%;
}

.spec-table td.spec-val {
    font-family:var(--lado-969);
    font-size:var(--lado-639);
    color:var(--ink);
    font-weight:600;
}

.spec-table tr:last-child td { border-bottom:none; }

.form-shell {
    background-color:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-s);
    padding:clamp(1.2rem, 1rem + 2vw, 2.5rem);
    width:100%;
    max-width:780px;
}

.form-grid {
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:var(--space-m);
}

.form-grid .full-span { grid-column:1 / -1; }

.form-group {
    display:flex;
    flex-direction:column;
    gap:var(--space-3xs);
}

.form-label {
    font-family:var(--lado-76b);
    font-size:var(--step--1);
    font-weight:600;
    color:var(--ink);
    letter-spacing:0.01em;
}

.form-hint {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink-soft);
}

.form-input,
.form-textarea,
.form-select {
    width:100%;
    min-height:44px;
    padding:var(--space-xs) var(--space-s);
    background-color:var(--surface-2);
    border:1px solid var(--line);
    border-radius:var(--radius-s);
    font-family:var(--lado-73f);
    font-size:var(--lado-639);
    color:var(--ink);
    outline:none;
    transition:border-color var(--dur-fast) var(--ease-out),
                            background-color var(--dur-fast) var(--ease-out),
                            box-shadow var(--dur-fast) var(--ease-out);
}

.form-textarea {
    min-height:110px;
    resize:vertical;
}

.form-input:hover,
.form-textarea:hover,
.form-select:hover { border-color:var(--ink-soft); }

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
    background-color:#ffffff;
    border-color:var(--accent);
    box-shadow:0 0 0 2px rgba(47, 127, 138, 0.25);
}

.form-input[aria-invalid="true"],
.form-textarea[aria-invalid="true"] {
    border-color:#a32828;
    background-color:#f8ebeb;
}

.form-error {
    display:block;
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:#a32828;
    margin-top:var(--space-3xs);
}

.form-checkbox-label {
    display:flex;
    align-items:flex-start;
    gap:var(--space-xs);
    cursor:pointer;
    font-size:var(--step--1);
    color:var(--ink);
    line-height:1.45;
}

.form-checkbox-label input[type="checkbox"] {
    width:20px;
    height:20px;
    flex-shrink:0;
    accent-color:var(--accent);
    margin-top:2px;
    cursor:pointer;
}

.form-status {
    padding:var(--space-s);
    margin-top:var(--space-m);
    border-radius:var(--radius-s);
    font-family:var(--lado-969);
    font-size:var(--step--1);
}

.form-status.is-success {
    background-color:#d2e7d9;
    border:1px solid #4c825d;
    color:#174224;
}

.form-status.is-error {
    background-color:#f8ebeb;
    border:1px solid #a32828;
    color:#6c1515;
}

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

.site-footer {
    background-color:var(--surface);
    border-top:1px solid var(--line);
    padding:var(--space-s) 0;
    margin-top:auto;
}

.footer-main-grid {
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr 1.2fr;
    gap:var(--space-s);
    margin-bottom:var(--space-s);
}

.footer-col {
    display:flex;
    flex-direction:column;
    gap:var(--space-3xs);
}

.footer-title {
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:700;
    color:var(--ink);
    letter-spacing:0.02em;
    text-transform:uppercase;
    margin-bottom:var(--space-2xs);
}

.footer-links {
    display:flex;
    flex-direction:column;
    gap:2px;
}

.footer-link {
    color:var(--ink-soft);
    text-decoration:none;
    font-size:var(--step--1);
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:2px 0;
    border-radius:var(--radius-s);
    outline:none;
    transition:color var(--dur-fast) var(--ease-out);
}

@media (pointer: coarse) {
    .footer-link { min-height:44px; }
}

.footer-link:hover {
    color:var(--accent);
    text-decoration:underline;
}

.footer-link:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.footer-link:active { color:var(--ink); }

.footer-operator-details {
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink-soft);
    line-height:1.6;
}

.footer-operator-details p {
    font-size:inherit;
    color:inherit;
    max-width:100%;
}

.footer-operator-details strong { color:var(--ink); }

.footer-legal-bar {
    border-top:1px solid var(--line);
    padding-top:var(--space-xs);
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-xs);
    font-family:var(--lado-969);
    font-size:var(--step--1);
    color:var(--ink-soft);
}

.footer-legal-nav {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:var(--space-m);
}

.footer-legal-nav a,
.footer-consent-reopen-btn {
    color:var(--ink-soft);
    text-decoration:underline;
    text-underline-offset:3px;
    background:none;
    border:none;
    font-family:inherit;
    font-size:inherit;
    cursor:pointer;
    padding:var(--space-3xs) 0;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    outline:none;
    transition:color var(--dur-fast) var(--ease-out);
}

.footer-legal-nav a:hover,
.footer-consent-reopen-btn:hover { color:var(--accent); }

.footer-legal-nav a:focus-visible,
.footer-consent-reopen-btn:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.footer-legal-nav a:active,
.footer-consent-reopen-btn:active { color:var(--ink); }

@media (max-width: 880px) {
    .footer-main-grid {
        grid-template-columns:1fr 1fr;
        gap:var(--space-l);
    }
}

@media (max-width: 540px) {
    .footer-main-grid { grid-template-columns:1fr; }
    .footer-legal-bar {
        flex-direction:column;
        align-items:flex-start;
    }
}

.cookie-banner-docked {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    width:100%;
    max-height:20vh;
    background-color:var(--surface);
    border-top:2px solid var(--ink);
    padding:4px var(--space-m);
    z-index:1000;
    box-shadow:0 -4px 18px rgba(39, 41, 43, 0.08);
    display:none;
    overflow-y:auto;
}

.cookie-banner-docked.is-visible { display:block; }

.cookie-banner-content {
    max-width:var(--content-max);
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-m);
}

.cookie-banner-text {
    font-size:var(--step--1);
    color:var(--ink);
    line-height:1.45;
    max-width:72ch;
}

.cookie-banner-text a {
    color:var(--ink);
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:2px;
}

.cookie-banner-text a:hover { color:var(--accent); }

.cookie-banner-text a:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.cookie-banner-actions {
    display:flex;
    align-items:center;
    gap:var(--space-xs);
    flex-shrink:0;
}

.btn-cookie {
    min-height:44px;
    padding:var(--space-2xs) var(--space-s);
    font-family:var(--lado-76b);
    font-size:var(--step--1);
    font-weight:600;
    border-radius:var(--radius-s);
    border:1px solid transparent;
    cursor:pointer;
    outline:none;
    transition:background-color var(--dur-fast) var(--ease-out),
                            border-color var(--dur-fast) var(--ease-out),
                            color var(--dur-fast) var(--ease-out);
}

.btn-cookie-accept {
    background-color:var(--accent);
    color:var(--accent-ink);
    border-color:var(--accent);
}

.btn-cookie-accept:hover {
    background-color:#24656e;
    border-color:#24656e;
}

.btn-cookie-accept:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:2px;
}

.btn-cookie-accept:active { background-color:#1a4d54; }

.btn-cookie-decline {
    background-color:var(--surface-2);
    color:var(--ink);
    border-color:var(--line);
}

.btn-cookie-decline:hover {
    background-color:var(--line);
    color:var(--ink);
}

.btn-cookie-decline:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.btn-cookie-decline:active { background-color:#92979c; }

@media (max-width: 1024px) {
    .cookie-banner-docked {
        max-height:18vh;
        padding:4px var(--space-s);
    }
    .cookie-banner-content {
        flex-direction:row;
        flex-wrap:nowrap;
        align-items:center;
        gap:var(--space-xs);
    }
    .cookie-banner-text {
        font-size:0.75rem;
        line-height:1.25;
    }
    .cookie-banner-actions {
        width:auto;
        justify-content:flex-end;
        gap:4px;
        flex-shrink:0;
    }
    .btn-cookie {
        min-height:32px;
        padding:2px 8px;
        font-size:0.75rem;
    }
}

.chat-launcher-root {
    position:fixed;
    bottom:var(--space-m);
    right:var(--space-m);
    z-index:990;
    transition:transform var(--dur-med) var(--ease-out),
                            bottom var(--dur-med) var(--ease-out);
}

body.cookie-banner-active .chat-launcher-root { bottom:calc(var(--space-m) + 80px); }

.chat-launcher-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2xs);
    min-width:48px;
    min-height:48px;
    padding:var(--space-2xs) var(--space-s);
    background-color:var(--ink);
    color:var(--ground);
    border:1px solid var(--accent);
    border-radius:var(--radius-s);
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:600;
    box-shadow:0 4px 14px rgba(39, 41, 43, 0.16);
    cursor:pointer;
    outline:none;
    transition:background-color var(--dur-fast) var(--ease-out),
                            border-color var(--dur-fast) var(--ease-out),
                            color var(--dur-fast) var(--ease-out),
                            box-shadow var(--dur-fast) var(--ease-out);
}

.chat-launcher-btn:hover {
    background-color:var(--accent);
    border-color:var(--accent);
    color:var(--accent-ink);
    box-shadow:0 6px 18px rgba(47, 127, 138, 0.28);
}

.chat-launcher-btn:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:3px;
}

.chat-launcher-btn:active {
    background-color:#1a4d54;
    border-color:#1a4d54;
}

.chat-launcher-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 6px;
    background-color:var(--accent);
    color:var(--accent-ink);
    font-family:var(--lado-969);
    font-size:0.75rem;
    font-weight:700;
    border-radius:10px;
    line-height:1;
}

.chat-panel-container {
    position:fixed;
    bottom:var(--space-m);
    right:var(--space-m);
    width:min(380px, calc(100vw - 2 * var(--space-s)));
    height:min(540px, calc(100vh - 120px));
    background-color:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-s);
    box-shadow:0 12px 36px rgba(39, 41, 43, 0.2);
    display:flex;
    flex-direction:column;
    z-index:1010;
    overflow:hidden;
    transform:translateY(20px);
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transition:transform var(--dur-fast) var(--ease-out),
                            opacity var(--dur-fast) var(--ease-out),
                            visibility var(--dur-fast);
}

.chat-panel-container.is-open {
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
    visibility:visible;
}

.chat-panel-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:var(--space-xs) var(--space-s);
    background-color:var(--ink);
    color:var(--ground);
    border-bottom:1px solid var(--accent);
}

.chat-panel-title {
    font-family:var(--lado-76b);
    font-size:var(--lado-639);
    font-weight:700;
    color:var(--ground);
    letter-spacing:0.02em;
}

.chat-close-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    color:var(--ground);
    background:none;
    border:none;
    border-radius:var(--radius-s);
    outline:none;
    transition:color var(--dur-fast) var(--ease-out),
                            background-color var(--dur-fast) var(--ease-out);
}

.chat-close-btn:hover {
    color:var(--accent);
    background-color:rgba(255, 255, 255, 0.1);
}

.chat-close-btn:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:-2px;
}

.chat-close-btn:active {
    color:var(--ground);
    background-color:rgba(255, 255, 255, 0.2);
}

.chat-panel-body {
    flex-grow:1;
    overflow-y:auto;
    padding:var(--space-s);
    display:flex;
    flex-direction:column;
    gap:var(--space-s);
    background-color:var(--ground);
}

.chat-message {
    max-width:82%;
    padding:var(--space-xs) var(--space-s);
    border-radius:var(--radius-s);
    font-size:var(--step--1);
    line-height:1.45;
}

.chat-message.is-assistant {
    align-self:flex-start;
    background-color:var(--surface);
    border:1px solid var(--line);
    color:var(--ink);
}

.chat-message.is-user {
    align-self:flex-end;
    background-color:var(--accent);
    color:var(--accent-ink);
}

.chat-meta {
    font-family:var(--lado-969);
    font-size:0.72rem;
    opacity:0.75;
    margin-top:var(--space-3xs);
}

.chat-first-contact {
    padding:var(--space-xs);
    display:flex;
    flex-direction:column;
    gap:var(--space-2xs);
    background-color:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-s);
}

.chat-panel-footer {
    padding:var(--space-xs) var(--space-s);
    background-color:var(--surface);
    border-top:1px solid var(--line);
}

.chat-input-row {
    display:flex;
    gap:var(--space-2xs);
}

.chat-input {
    flex-grow:1;
    min-height:44px;
    padding:var(--space-2xs) var(--space-xs);
    background-color:var(--surface-2);
    border:1px solid var(--line);
    border-radius:var(--radius-s);
    font-size:var(--step--1);
    color:var(--ink);
}

.chat-input:focus {
    background-color:#ffffff;
    border-color:var(--accent);
    outline:none;
}

.chat-send-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:44px;
    background-color:var(--accent);
    color:var(--accent-ink);
    border:1px solid var(--accent);
    border-radius:var(--radius-s);
    cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out);
}

.chat-send-btn:hover { background-color:#24656e; }

.chat-send-btn:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:2px;
}

.chat-send-btn:active { background-color:#1a4d54; }

@media (max-width: 480px) {
    .chat-panel-container {
        right:var(--space-xs);
        left:var(--space-xs);
        width:auto;
        bottom:var(--space-xs);
        height:75vh;
    }
}
