.site-header {
    position:sticky;
    top:0;
    z-index:900;
    background-color:rgba(255, 255, 255, 0.94);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border-bottom:1px solid var(--rule);
    transition:padding var(--dur-normal) var(--ease-out), background-color var(--dur-normal) var(--ease-out), border-color var(--dur-normal) var(--ease-out);
}


.site-header.condensed {
    background-color:rgba(255, 255, 255, 0.98);
    box-shadow:0 1px 3px rgba(0, 0, 0, 0.04);
}


.masthead-dateline {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    color:var(--ink-muted);
    letter-spacing:0.04em;
    text-transform:uppercase;
    padding:0.4rem 0;
    border-bottom:1px solid var(--rule);
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;

    gap:0.5rem 1rem;
}


.masthead-dateline a {
    color:var(--ink-muted);
    transition:color var(--dur-fast) var(--ease-out);
}


.masthead-dateline a:hover { color:var(--ink); }


.masthead-dateline a:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:2px;
}


.masthead-main {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1.1rem 0;
    transition:padding var(--dur-normal) var(--ease-out);
}


.site-header.condensed .masthead-main { padding:0.65rem 0; }


.brand {
    display:inline-flex;
    align-items:center;
    line-height:1;
}


.brand img {
    height:2.1rem;
    width:auto;
    transition:height var(--dur-fast) var(--ease-out);
}


.site-header.condensed .brand img { height:1.8rem; }


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


.masthead-actions {
    display:flex;
    align-items:center;
    gap:0.75rem;
}


.nav-toggle {
    display:none;
    align-items:center;
    justify-content:center;
    gap:0.4rem;
    padding:0.6rem 0.9rem;
    min-height:44px;
    min-width:44px;
    background-color:var(--paper);
    border:1px solid var(--ink);
    color:var(--ink);
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.05em;
    transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}


.nav-toggle:hover {
    background-color:var(--ink);
    color:var(--paper);
}


.nav-toggle:active {
    background-color:var(--ink-soft);
    color:var(--paper);
}


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


.masthead-tabs { border-top:1px solid var(--rule); }


.site-nav {
    display:flex;
    align-items:center;
    list-style:none;
    gap:0;
    overflow-x:auto;
    scrollbar-width:none;
}


.site-nav::-webkit-scrollbar { display:none; }


.nav-item { flex-shrink:0; }


.nav-link {
    display:inline-flex;
    align-items:center;
    padding:0.75rem 1.1rem;
    min-height:44px;
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink);
    border-right:1px solid var(--rule);
    position:relative;
    transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}


.site-nav .nav-item:first-child .nav-link { border-left:1px solid var(--rule); }


.nav-link:hover {
    color:var(--accent);
    background-color:var(--paper-subtle);
}


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


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


.nav-link[aria-current="page"] {
    color:var(--ink);
    background-color:var(--paper-subtle);
    font-weight:500;
}


.nav-link[aria-current="page"]::after {
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:2px;
    background-color:var(--accent);
}


.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.5rem;
    padding:0.75rem 1.4rem;
    min-height:44px;
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    letter-spacing:0.05em;
    text-transform:uppercase;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    white-space:nowrap;
    line-height:1;
    border-radius:var(--radius-none);
    transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}


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


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


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


.btn-primary:hover {
    background-color:#2A2A2A;
    border-color:#2A2A2A;
    color:var(--paper);
}


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


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


.btn-secondary:hover {
    background-color:var(--ink);
    color:var(--paper);
}


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


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


.btn-accent:hover {
    background-color:#7F2E21;
    border-color:#7F2E21;
}


.btn-accent:active {
    background-color:#632319;
    border-color:#632319;
}


.btn-text {
    background-color:transparent;
    color:var(--ink);
    border-color:transparent;

    padding-left:0.5rem;
    padding-right:0.5rem;
}


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


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


.btn-sm {
    padding:0.5rem 0.9rem;

    min-height:38px;
    font-size:0.75rem;
}


.modular-grid {
    display:grid;
    grid-template-columns:repeat(12, 1fr);
    border:1px solid var(--rule);
    border-top:none;
    background-color:var(--rule);
    gap:1px;
}


.tile {
    background-color:var(--paper);
    padding:var(--space-l);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-width:0;
    position:relative;
}


.tile-col-8 { grid-column:span 8; }


.tile-col-6 { grid-column:span 6; }


.tile-col-4 { grid-column:span 4; }


.tile-col-12 { grid-column:span 12; }


.tile-lead { min-height:480px; }


.tile-lead .tile-visual {
    width:100%;
    height:300px;
    object-fit:cover;
    margin-bottom:var(--space-m);
}


.tile-meta-header {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    padding-bottom:0.75rem;
    border-bottom:1px solid var(--rule);
    margin-bottom:1.25rem;
}


.tile-meta-tag {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--accent);
}


.tile-meta-price {
    font-family:var(--fusu-490);
    font-size:var(--fusu-c4c);
    font-weight:500;
    color:var(--ink);
}


.tile-title {
    font-size:var(--fusu-200);
    margin-bottom:var(--space-xs);
    color:var(--ink);
}


.tile-desc {
    font-size:var(--fusu-c4c);
    color:var(--ink-soft);
    margin-bottom:var(--space-m);
    flex-grow:1;
}


.tile-footer {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-top:1rem;
    border-top:1px solid var(--rule);
    margin-top:auto;
}


.editorial-rail {
    display:flex;
    flex-direction:column;
    gap:1.5rem;
}


.rail-item {
    padding-bottom:1.25rem;
    border-bottom:1px solid var(--rule);
}


.rail-item:last-child {
    border-bottom:none;
    padding-bottom:0;
}


.rail-tag {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    color:var(--ink-muted);
    text-transform:uppercase;
    margin-bottom:0.35rem;
    display:block;
}


.rail-heading {
    font-size:var(--fusu-edc);
    color:var(--ink);
    margin-bottom:0.35rem;
}


.rail-price {
    font-family:var(--fusu-490);
    font-size:var(--fusu-c4c);
    color:var(--accent);
    font-weight:500;
}


.spec-table {
    width:100%;
    margin-top:1.5rem;
    margin-bottom:1.5rem;
    border:1px solid var(--rule);
    font-family:var(--fusu-490);
    font-size:var(--step--1);
}


.spec-table th, .spec-table td {
    padding:0.75rem 1rem;
    text-align:left;
    border-bottom:1px solid var(--rule);
    vertical-align:top;
}


.spec-table th {
    background-color:var(--paper-subtle);
    color:var(--ink);
    font-weight:500;
    text-transform:uppercase;
    letter-spacing:0.05em;
    width:32%;
    min-width:110px;
}


.spec-table td {
    color:var(--ink-soft);
    background-color:var(--paper);
}


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


.data-table {
    width:100%;
    border-collapse:collapse;
    margin-top:1.5rem;
    margin-bottom:2rem;
    border:1px solid var(--rule);
}


.data-table th, .data-table td {
    padding:0.85rem 1rem;
    border-bottom:1px solid var(--rule);
    border-right:1px solid var(--rule);
    font-size:var(--step--1);
}


.data-table th:last-child, .data-table td:last-child { border-right:none; }


.data-table th {
    font-family:var(--fusu-490);
    background-color:var(--paper-subtle);
    color:var(--ink);
    text-transform:uppercase;
    letter-spacing:0.05em;
    font-weight:500;
    text-align:left;
}


.data-table td {
    font-family:var(--fusu-49f);
    color:var(--ink-soft);
}


.inquiry-form-card {
    background-color:var(--paper);
    border:1px solid var(--rule);
    padding:clamp(1.25rem, 4vw, 2.5rem);
    margin-top:var(--space-xl);
    margin-bottom:var(--space-xl);
}


.form-grid {
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:1.25rem;
    margin-top:1.5rem;
}


.form-group {
    display:flex;
    flex-direction:column;
    gap:0.4rem;
    min-width:0;
}


.form-group.full-width { grid-column:span 2; }


.form-label {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink);
    display:flex;
    justify-content:space-between;
}


.form-label-optional {
    color:var(--ink-muted);
    font-weight:400;
}


.form-control {
    width:100%;
    padding:0.75rem 0.9rem;
    min-height:44px;
    background-color:var(--paper);
    border:1px solid var(--rule);
    color:var(--ink);
    font-family:var(--fusu-49f);
    font-size:var(--fusu-c4c);
    border-radius:var(--radius-none);
    transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}


.form-control:hover { border-color:#A8A8A8; }


.form-control:focus {
    outline:none;
    border-color:var(--ink);
    box-shadow:0 0 0 1px var(--ink);
}


.form-control[aria-invalid="true"] { border-color:var(--accent); }


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


.form-error-msg {
    font-family:var(--fusu-490);
    font-size:0.75rem;
    color:var(--accent);
    display:none;
    margin-top:0.2rem;
}


.form-error-msg.visible { display:block; }


.form-checkbox-label {
    display:flex;
    align-items:flex-start;
    gap:0.75rem;
    cursor:pointer;
    font-size:var(--step--1);
    color:var(--ink-soft);
    user-select:none;
}


.form-checkbox-label input[type="checkbox"] {
    margin-top:0.2rem;
    width:18px;
    height:18px;
    flex-shrink:0;
    accent-color:var(--ink);
    border-radius:var(--radius-none);
}


.form-status {
    padding:1rem;
    margin-top:1.25rem;
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    display:none;
    border:1px solid transparent;
}


.form-status.success {
    display:block;
    background-color:var(--paper-subtle);
    border-color:var(--ink);
    color:var(--ink);
}


.form-status.error {
    display:block;
    background-color:#FFF5F5;
    border-color:var(--accent);
    color:var(--accent);
}


.site-footer {
    background-color:var(--paper);
    border-top:2px solid var(--ink);
    margin-top:auto;
    padding-top:var(--space-2xl);
    padding-bottom:var(--space-xl);
}


.footer-main-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.5fr;
    gap:clamp(1.5rem, 3vw, 3rem);
    padding-bottom:var(--space-xl);
    border-bottom:1px solid var(--rule);
}


.footer-col-brand .brand img {
    height:2.5rem;
    width:auto;
    margin-bottom:1rem;
}


.footer-tagline {
    font-size:var(--step--1);
    color:var(--ink-soft);
    max-width:38ch;
    margin-bottom:1.25rem;
}


.footer-heading {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--ink);
    margin-bottom:1rem;
}


.footer-list {
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:0.5rem;
}


.footer-list a {
    font-size:var(--step--1);
    color:var(--ink-soft);
    display:inline-flex;
    align-items:center;
    min-height:32px;
    transition:color var(--dur-fast) var(--ease-out), padding-left var(--dur-fast) var(--ease-out);
}


.footer-list a:hover {
    color:var(--accent);
    padding-left:0.25rem;
}


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


.footer-list a:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:2px;
}


.footer-facts {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    line-height:1.6;
    color:var(--ink-soft);
}


.footer-facts a {
    color:var(--ink);
    text-decoration:underline;
    text-decoration-thickness:1px;
}


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


.footer-facts a:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:2px;
}


.footer-legal-row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:1rem;
    padding-top:var(--space-l);
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    color:var(--ink-muted);
}


.footer-legal-links {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:0.5rem 1.25rem;
    list-style:none;
}


.footer-legal-links a {
    color:var(--ink-muted);
    min-height:44px;
    display:inline-flex;
    align-items:center;
    transition:color var(--dur-fast) var(--ease-out);
}


.footer-legal-links a:hover { color:var(--ink); }


.footer-legal-links a:focus-visible {
    outline:2px solid var(--ink);
    outline-offset:2px;
}


.consent-reopen-btn {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    color:var(--ink-muted);
    cursor:pointer;
    background:none;
    border:none;
    padding:0;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    text-decoration:underline;
    text-underline-offset:3px;
    transition:color var(--dur-fast) var(--ease-out);
}


.consent-reopen-btn:hover { color:var(--ink); }


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


.cookie-banner {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:950;
    background-color:var(--paper);
    border-top:1px solid var(--ink);
    box-shadow:0 -4px 16px rgba(0, 0, 0, 0.08);
    padding:0.85rem 0;
    transform:translateY(0);
    transition:transform var(--dur-normal) var(--ease-out), opacity var(--dur-normal) var(--ease-out);
}


.cookie-banner[hidden] { display:none !important; }


.cookie-banner-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.25rem;
    flex-wrap:wrap;
}


.cookie-banner-text {
    font-family:var(--fusu-49f);
    font-size:var(--step--1);
    color:var(--ink);
    line-height:1.4;
    flex:1 1 320px;
}


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


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


.cookie-banner-actions {
    display:flex;
    align-items:center;
    gap:0.5rem;
    flex-shrink:0;
}


.chat-launcher {
    position:fixed;
    bottom:1.5rem;
    right:1.5rem;
    z-index:920;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.5rem;
    padding:0.75rem 1.25rem;
    min-height:48px;
    background-color:var(--ink);
    color:var(--paper);
    border:1px solid var(--ink);
    border-radius:var(--radius-none);
    box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.05em;
    cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), bottom var(--dur-normal) var(--ease-out);
}


.chat-launcher:hover {
    background-color:#2A2A2A;
    transform:translateY(-2px);
}


.chat-launcher:active {
    background-color:#000;
    transform:translateY(0);
}


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


.chat-launcher-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 4px;
    background-color:var(--accent);
    color:var(--paper);
    font-size:0.7rem;
    font-weight:700;
}


.chat-launcher-badge:empty { display:none; }


body.cookie-banner-visible .chat-launcher { bottom:calc(1.5rem + 70px); }


.chat-panel {
    position:fixed;
    bottom:5.5rem;
    right:1.5rem;
    width:min(380px, calc(100vw - 3rem));
    height:min(520px, calc(100vh - 7rem));
    background-color:var(--paper);
    border:1px solid var(--ink);
    box-shadow:0 12px 32px rgba(0, 0, 0, 0.18);
    z-index:930;
    display:flex;
    flex-direction:column;
}


.chat-panel[hidden] { display:none !important; }


.chat-panel-header {
    padding:0.75rem 1rem;
    border-bottom:1px solid var(--rule);
    background-color:var(--paper-subtle);
    display:flex;
    justify-content:space-between;
    align-items:center;
}


.chat-panel-title {
    font-family:var(--fusu-490);
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink);
    font-weight:600;
    display:flex;
    align-items:center;
    gap:0.4rem;
}


.chat-panel-title::before {
    content:'';
    display:inline-block;
    width:8px;
    height:8px;
    background-color:#2B8A3E;
    border-radius:50%;
}


.chat-close-btn {
    padding:0.4rem;
    min-height:36px;
    min-width:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--ink);
    cursor:pointer;
    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:var(--rule);
}


.chat-close-btn:active { background-color:var(--ink-muted); }


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


.chat-messages {
    flex:1 1 auto;
    overflow-y:auto;
    padding:1rem;
    display:flex;
    flex-direction:column;
    gap:0.75rem;
    background-color:var(--paper);
}


.chat-msg {
    max-width:85%;
    padding:0.65rem 0.85rem;
    font-size:var(--step--1);
    line-height:1.45;
    border:1px solid var(--rule);
}


.chat-msg.operator {
    align-self:flex-start;
    background-color:var(--paper-subtle);
    color:var(--ink);
}


.chat-msg.visitor {
    align-self:flex-end;
    background-color:var(--ink);
    color:var(--paper);
    border-color:var(--ink);
}


.chat-panel-footer {
    padding:0.75rem 1rem;
    border-top:1px solid var(--rule);
    background-color:var(--paper-subtle);
}


.chat-input-row {
    display:flex;
    gap:0.5rem;
}


.chat-input-row input {
    flex:1 1 auto;
    min-height:40px;
    padding:0.5rem 0.75rem;
    border:1px solid var(--rule);
    background-color:var(--paper);
    font-size:var(--step--1);
    font-family:var(--fusu-49f);
}


.chat-input-row input:focus {
    outline:none;
    border-color:var(--ink);
}


.chat-onboarding {
    padding:1rem;
    display:flex;
    flex-direction:column;
    gap:0.75rem;
    font-size:var(--step--1);
    overflow-y:auto;
    flex:1 1 auto;
}


@media (max-width: 860px) {
    .nav-toggle { display:inline-flex; }


    .masthead-tabs { display:none; }


    .masthead-tabs.open {
        display:block;
        background-color:var(--paper);
        border-bottom:2px solid var(--ink);
    }


    .site-nav {
        flex-direction:column;
        align-items:stretch;
    }


    .nav-link {
        border-right:none;
        border-bottom:1px solid var(--rule);
        padding:0.85rem 1rem;
        width:100%;
    }


    .site-nav .nav-item:first-child .nav-link { border-left:none; }


    .tile-col-8, .tile-col-6, .tile-col-4 { grid-column:span 12; }


    .footer-main-grid {
        grid-template-columns:1fr;
        gap:2rem;
    }


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


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


    .chat-panel {
        bottom:0;
        right:0;
        width:100%;
        height:100%;
        border:none;
    }
}
