
.icon {
    display:inline-block;
    width:1.25em;
    height:1.25em;
    fill:currentColor;
    vertical-align:-0.2em;

    flex-shrink:0;
    transition:transform var(--dur-fast) ease, fill var(--dur-fast) ease;
}

.icon--sm {
    width:1em;
    height:1em;
}

.icon--lg {
    width:1.5em;
    height:1.5em;
}

.site-strip {
    background-color:var(--surface-dark);
    color:var(--ink-secondary-on-dark);
    border-bottom:1px solid var(--rule-on-dark);
    font-family:var(--zuke-3d6);
    font-size:var(--text-xs);
    letter-spacing:var(--tracking-wider);
    text-transform:uppercase;
    padding:var(--space-8) 0;

}

.site-strip__inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-16);
    flex-wrap:wrap;
}

.site-strip__meta {
    display:flex;
    align-items:center;
    gap:var(--space-16);
}

.site-strip__item {
    display:inline-flex;
    align-items:center;
    gap:var(--space-8);
    color:var(--ink-secondary-on-dark);
    white-space:nowrap;
}

.site-strip__item strong { color:var(--ink-on-dark); }

.site-strip__link {
    color:var(--ink-secondary-on-dark);
    display:inline-flex;
    align-items:center;
    gap:var(--space-4);
    transition:color var(--dur-fast) ease;
}

.site-strip__link:hover { color:var(--accent); }

.site-strip__link:active { color:var(--accent-hover); }

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

/* Header main bar */
.site-header {
    position:sticky;
    top:0;
    z-index:1000;
    background-color:var(--ground);
    border-bottom:var(--ledger-line);
    transition:padding var(--dur-med) var(--ease-refined), background-color var(--dur-med) ease;
}

/* Condense-on-scroll state applied by begiffe.js */
.site-header.is-condensed { box-shadow:0 4px 16px rgba(18, 20, 23, 0.08); }

.site-header__inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-20);
    min-height:var(--header-height);
    transition:min-height var(--dur-med) var(--ease-refined);
}

.site-header.is-condensed .site-header__inner { min-height:var(--header-height-condensed); }

/* Brand logo sizing: height-driven strictly, never stretch */
.brand {
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
    padding:var(--space-4) 0;
    min-height:44px;
}

.brand img {
    height:clamp(1.5rem, 1.2rem + 1vw, 2.1rem);
    width:auto;
    max-width:100%;
    display:block;
    transition:height var(--dur-med) var(--ease-refined);
}

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

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

/* Header navigation pattern: inline row with draughtsman ledger border */
.site-nav {
    display:flex;
    align-items:center;
    gap:var(--space-4);
}

.nav-list {
    display:flex;
    align-items:center;
    gap:0;
}

.nav-link {
    display:inline-flex;
    align-items:center;
    font-family:var(--zuke-4b4);
    font-size:var(--text-base);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink);
    padding:var(--space-12) var(--space-16);
    min-height:44px;
    position:relative;
    transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}

.nav-link::after {
    content:'';
    position:absolute;
    bottom:0;
    left:var(--space-16);
    right:var(--space-16);
    height:2px;
    background-color:transparent;
    transition:background-color var(--dur-fast) ease;
}

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

.nav-link:active {
    color:var(--accent-active);
    background-color:var(--surface-alt);
}

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

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

.nav-link.is-active::after { background-color:var(--accent); }

.nav-toggle {
    display:none;
    align-items:center;

    justify-content:center;
    gap:var(--space-4);
    font-family:var(--zuke-4b4);
    font-weight:700;
    font-size:var(--text-xs);
    text-transform:uppercase;
    letter-spacing:var(--tracking-normal);
    background-color:var(--ground);
    color:var(--ink);
    border:1px solid var(--ink);
    border-radius:var(--radius-chamfer);
    padding:var(--space-8) var(--space-8);
    min-height:44px;
    flex-shrink:0;
    cursor:pointer;
    transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}

.nav-toggle:hover {
    background-color:var(--surface);
    color:var(--accent);
    border-color:var(--accent);
}

.nav-toggle:active {
    background-color:var(--surface-alt);
    color:var(--accent-active);
}

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

.nav-toggle__text { display:inline-block; }

/* Header call action */
.header-action {
    display:flex;
    align-items:center;
    gap:var(--space-12);
    flex-shrink:0;
}

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-8);
    font-family:var(--zuke-4b4);
    font-size:var(--text-base);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    line-height:1.2;
    text-align:center;
    padding:var(--space-12) var(--space-24);
    min-height:44px;
    border:1px solid transparent;
    border-radius:var(--radius-chamfer);
    cursor:pointer;
    white-space:nowrap;
    transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}

/* Primary Button (Industrial Accent) */
.btn--primary {
    background-color:var(--accent);
    color:var(--accent-contrast);
    border-color:var(--accent);
}

.btn--primary:hover {
    background-color:var(--accent-hover);
    border-color:var(--accent-hover);
    box-shadow:0 2px 8px rgba(200, 78, 26, 0.25);
}

.btn--primary:active {
    background-color:var(--accent-active);
    border-color:var(--accent-active);
    box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.2);
}

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

/* Secondary Button (Monochrome Ink) */
.btn--secondary {
    background-color:var(--ink);
    color:var(--ink-on-dark);
    border-color:var(--ink);
}

.btn--secondary:hover {
    background-color:var(--ink-secondary);
    border-color:var(--ink-secondary);
    box-shadow:0 2px 8px rgba(18, 20, 23, 0.2);
}

.btn--secondary:active {
    background-color:#000000;
    border-color:#000000;
    box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.3);
}

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

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

.btn--outline:hover {
    background-color:var(--surface);
    color:var(--accent);
    border-color:var(--accent);
}

.btn--outline:active {
    background-color:var(--surface-alt);
    color:var(--accent-active);
    border-color:var(--accent-active);
}

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

/* Small Button Variant */
.btn--sm {
    font-size:var(--text-sm);
    padding:var(--space-8) var(--space-16);
    min-height:44px;
}

/* Full Width Button */
.btn--full { width:100%; }

.tab-bar-wrap {
    border-bottom:var(--ledger-line);
    background-color:var(--surface);
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.tab-bar {
    display:flex;
    align-items:stretch;
    gap:0;
    min-width:max-content;
}

.tab-btn {
    display:inline-flex;
    align-items:center;
    gap:var(--space-8);
    font-family:var(--zuke-4b4);
    font-size:var(--text-base);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink-secondary);
    background-color:transparent;
    border:0;
    border-right:var(--ledger-line);
    padding:var(--space-16) var(--space-24);
    min-height:52px;
    cursor:pointer;
    position:relative;
    transition:color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}

.tab-btn::after {
    content:'';
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    height:3px;
    background-color:transparent;
    transition:background-color var(--dur-fast) ease;
}

.tab-btn:hover {
    color:var(--ink);
    background-color:var(--ground);
}

.tab-btn:active {
    color:var(--accent);
    background-color:var(--surface-alt);
}

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

.tab-btn[aria-selected='true'] {
    color:var(--accent);
    background-color:var(--ground);
    font-weight:700;
}

.tab-btn[aria-selected='true']::after { background-color:var(--accent); }

.tab-panel { display:block; }

.tab-panel[hidden] { display:none; }

.exchange-stream {
    display:flex;
    flex-direction:column;
}

.exchange-row {
    border-bottom:var(--ledger-line);
    padding:clamp(2rem, 1.5rem + 1.8vw, 3.5rem) 0;
}

.exchange-row:last-child { border-bottom:0; }

.customer-prompt {
    margin-bottom:var(--space-24);
    max-width:820px;
}

.customer-prompt__meta {
    display:flex;
    align-items:center;
    gap:var(--space-12);
    margin-bottom:var(--space-8);
}

.customer-prompt__tag {
    font-family:var(--zuke-3d6);
    font-size:var(--text-xs);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink-muted);
}

.customer-prompt__text {
    font-family:var(--zuke-78e);
    font-size:var(--text-lg);
    font-weight:600;
    line-height:var(--leading-snug);
    color:var(--ink-secondary);
    font-style:italic;
    position:relative;
    padding-left:var(--space-16);
    border-left:3px solid var(--rule);
}

.business-reply { padding-left:clamp(0.5rem, 0.2rem + 1vw, 2rem); }

.business-reply__meta {
    display:flex;
    align-items:center;
    gap:var(--space-12);
    margin-bottom:var(--space-12);
}

.business-reply__title {
    font-size:var(--text-2xl);
    line-height:var(--leading-heading);
    margin-bottom:var(--space-16);
    color:var(--ink);
}

.business-reply__prose {
    font-size:var(--text-base);
    line-height:var(--leading-normal);
    color:var(--ink-secondary);
    margin-bottom:var(--space-20);
    max-width:var(--container-text);
}

.business-reply__quote-basis {
    background-color:var(--surface);
    border:1px solid var(--rule);
    padding:var(--space-16) var(--space-20);
    margin-bottom:var(--space-24);
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    gap:var(--space-16);
}

.quote-fact__label {
    font-family:var(--zuke-3d6);
    font-size:var(--text-xs);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink-muted);
    margin-bottom:var(--space-4);
}

.quote-fact__val {
    font-family:var(--zuke-3d6);
    font-size:var(--text-md);
    font-weight:700;
    color:var(--ink);
}

.evidence-photo {
    margin:var(--space-24) 0;
    border:var(--ledger-line);
    background-color:var(--surface);
}

.evidence-photo img {
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    object-fit:cover;
    display:block;
}

.evidence-photo__caption {
    font-family:var(--zuke-3d6);
    font-size:var(--text-xs);
    color:var(--ink-muted);
    padding:var(--space-12) var(--space-16);
    background-color:var(--surface);
    border-top:var(--ledger-line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-12);
    flex-wrap:wrap;
}

.evidence-photo__caption strong { color:var(--ink); }

.spec-table-wrap {
    border:var(--ledger-line);
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    margin:var(--space-24) 0;
    background-color:var(--ground);
}

.spec-table {
    width:100%;
    border-collapse:collapse;
    text-align:left;
    font-size:var(--text-sm);
}

.spec-table th {
    background-color:var(--surface);
    color:var(--ink);
    font-family:var(--zuke-4b4);
    font-size:var(--text-sm);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    padding:var(--space-12) var(--space-16);
    border-bottom:var(--ledger-line);
    white-space:nowrap;
}

.spec-table td {
    padding:var(--space-12) var(--space-16);
    border-bottom:1px solid var(--rule);
    color:var(--ink-secondary);
    vertical-align:top;
}

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

.spec-table tr:hover td { background-color:#fafbfc; }

.spec-table .col-price {
    font-family:var(--zuke-3d6);
    font-weight:700;
    color:var(--ink);
    white-space:nowrap;
}




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

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    outline:none;
    background-color:var(--ground);
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(200, 78, 26, 0.15);
}

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

.form-checkbox-label {
    display:grid;
    grid-template-columns:24px 1fr;
    gap:var(--space-12);
    align-items:start;
    cursor:pointer;
    font-size:var(--text-sm);
    line-height:var(--leading-normal);
    color:var(--ink-secondary);
}

.form-checkbox {
    appearance:none;
    -webkit-appearance:none;
    width:22px;
    height:22px;
    border:1px solid var(--rule);
    border-radius:var(--radius-chamfer);
    background-color:var(--surface);
    cursor:pointer;
    margin-top:2px;
    display:grid;
    place-content:center;
    transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}

.form-checkbox:hover {
    border-color:var(--ink);
    background-color:var(--ground);
}

.form-checkbox:checked {
    background-color:var(--accent);
    border-color:var(--accent);
}

.form-checkbox:checked::before {
    content:'';
    width:10px;
    height:6px;
    border-left:2px solid #ffffff;
    border-bottom:2px solid #ffffff;
    transform:rotate(-45deg) translate(1px, -1px);
}

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

/* Form inline error message */
.form-error-msg {
    display:none;
    font-family:var(--zuke-3d6);
    font-size:var(--text-xs);
    color:var(--error-ink);
    font-weight:500;
}

.form-group.has-error .form-input,
.form-group.has-error .form-select,
.form-group.has-error .form-textarea,
.form-group.has-error .form-checkbox {
    border-color:var(--error-border);
    background-color:var(--error-bg);
}

.form-group.has-error .form-error-msg { display:block; }

.form-status {
    padding:var(--space-16);
    border-radius:var(--radius-chamfer);
    font-family:var(--zuke-3d6);
    font-size:var(--text-sm);
    display:none;
}

.form-status--success {
    background-color:var(--success-bg);
    border:1px solid var(--success-border);
    color:var(--success-ink);
    display:block;
}

.form-status--error {
    background-color:var(--error-bg);
    border:1px solid var(--error-border);
    color:var(--error-ink);
    display:block;
}

/* --------------------------------------------------------------------------
    SITE FOOTER & OPERATOR FACTS
    Dark surface with full factual disclosure:
    Legal business name, address, phone, email, licenses, click identifiers,
    and required legal navigation row reaching privacy, cookies, terms.
    -------------------------------------------------------------------------- */
.site-footer {
    background-color:var(--surface-dark);
    color:var(--ink-secondary-on-dark);
    border-top:2px solid var(--ink);
    margin-top:auto;
}

.site-footer__main { padding:clamp(3rem, 2rem + 2.5vw, 5rem) 0 var(--space-32); }

.site-footer__grid {
    display:grid;
    grid-template-columns:2fr 1.2fr 1.2fr;
    gap:clamp(2rem, 1.5rem + 1.5vw, 4rem);
}

.footer-brand {
    display:flex;
    flex-direction:column;
    gap:var(--space-16);
}

.footer-brand .brand img { height:2.35rem; }

.footer-brand__desc {
    font-size:var(--text-sm);
    line-height:var(--leading-normal);
    color:var(--ink-muted-on-dark);
    max-width:44ch;
}

.footer-block__title {
    font-family:var(--zuke-4b4);
    font-size:var(--text-md);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink-on-dark);
    margin-bottom:var(--space-16);
}

.footer-contact-list {
    display:flex;
    flex-direction:column;
    gap:var(--space-12);
}

.footer-contact-item {
    display:flex;
    align-items:flex-start;
    gap:var(--space-12);
    font-size:var(--text-sm);
    color:var(--ink-secondary-on-dark);
    white-space:nowrap;
}

.footer-contact-item a {
    color:var(--ink-on-dark);
    transition:color var(--dur-fast) ease;
}

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

.footer-contact-item a:active { color:var(--accent-hover); }

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

.footer-nav-list {
    display:flex;
    flex-direction:column;
    gap:var(--space-8);
}

.footer-nav-link {
    display:inline-flex;
    align-items:center;
    font-size:var(--text-sm);
    color:var(--ink-secondary-on-dark);
    min-height:44px;
    transition:color var(--dur-fast) ease, transform var(--dur-fast) ease;
}

.footer-nav-link:hover {
    color:var(--accent);
    transform:translateX(3px);
}

.footer-nav-link:active { color:var(--accent-hover); }

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

/* Footer bottom ledger bar */
.site-footer__bottom {
    border-top:1px solid var(--rule-on-dark);
    padding:var(--space-20) 0;
    font-size:var(--text-xs);
    color:var(--ink-muted-on-dark);
}

.site-footer__bottom-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-16);
    flex-wrap:wrap;
}

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

.footer-legal-link {
    color:var(--ink-muted-on-dark);
    text-decoration:underline;
    text-underline-offset:3px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    transition:color var(--dur-fast) ease;
}

.footer-legal-link:hover { color:var(--ink-on-dark); }

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

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

/* Footer consent reset button */
.footer-consent-trigger {
    background:transparent;
    border:0;
    padding:0;
    color:var(--ink-muted-on-dark);
    font-family:inherit;
    font-size:var(--text-xs);
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    transition:color var(--dur-fast) ease;
}

.footer-consent-trigger:hover { color:var(--ink-on-dark); }

.footer-consent-trigger:active { color:var(--accent); }

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

.cookie-banner {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:9999;
    background-color:var(--surface-dark);
    color:var(--ink-on-dark);
    border-top:2px solid var(--accent);
    padding:var(--space-12) var(--space-16);
    box-shadow:0 -4px 20px rgba(0, 0, 0, 0.35);
    display:none;
}

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

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

.cookie-banner__text {
    font-size:var(--text-xs);
    line-height:var(--leading-snug);
    color:var(--ink-secondary-on-dark);
    margin:0;
    flex:1 1 auto;
}

.cookie-banner__text a {
    color:var(--ink-on-dark);
    text-decoration:underline;
    text-underline-offset:2px;
    white-space:nowrap;
}

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

.cookie-banner__actions {
    display:flex;
    align-items:center;
    gap:var(--space-8);
    flex-shrink:0;
}

.btn-cookie-accept {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-family:var(--zuke-4b4);
    font-size:var(--text-xs);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    background-color:var(--accent);
    color:#ffffff;
    border:1px solid var(--accent);
    border-radius:var(--radius-chamfer);
    padding:var(--space-8) var(--space-16);
    min-height:44px;
    cursor:pointer;
    white-space:nowrap;
    transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}

.btn-cookie-accept:hover {
    background-color:var(--accent-hover);
    border-color:var(--accent-hover);
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(200, 78, 26, 0.4);
}

.btn-cookie-accept:active {
    background-color:var(--accent-active);
    border-color:var(--accent-active);
    transform:translateY(1px);
    box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.3);
}

.btn-cookie-accept:focus-visible {
    outline:2px solid #ffffff;
    outline-offset:2px;
}

.btn-cookie-decline {
    font-family:var(--zuke-4b4);
    font-size:var(--text-xs);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    background-color:transparent;
    color:var(--ink-secondary-on-dark);
    border:1px solid var(--rule-on-dark);
    border-radius:var(--radius-chamfer);
    padding:var(--space-8) var(--space-16);
    min-height:44px;
    cursor:pointer;
    white-space:nowrap;
    transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease;
}

.btn-cookie-decline:hover {
    background-color:var(--surface-dark-elevated);
    color:var(--ink-on-dark);
    border-color:var(--ink-muted-on-dark);
}

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

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

.chat-launcher {
    position:fixed;
    bottom:clamp(1rem, 0.8rem + 1vw, 2rem);
    right:clamp(1rem, 0.8rem + 1vw, 2rem);
    z-index:9990;
    display:inline-flex;
    align-items:center;
    gap:var(--space-8);
    font-family:var(--zuke-4b4);
    font-size:var(--text-sm);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    background-color:var(--ink);
    color:var(--ink-on-dark);
    border:2px solid var(--accent);
    border-radius:var(--radius-chamfer);
    padding:var(--space-12) var(--space-20);
    min-height:48px;
    cursor:pointer;
    box-shadow:0 4px 16px rgba(18, 20, 23, 0.25);
    transition:transform var(--dur-fast) ease, background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease, bottom var(--dur-med) ease;
}

/* Chat launcher lifts when cookie banner is visible to prevent collision */
body.cookie-banner-active .chat-launcher { bottom:calc(72px + clamp(1rem, 0.8rem + 1vw, 2rem)); }

.chat-launcher:hover {
    background-color:var(--accent);
    border-color:var(--accent);
    color:#ffffff;
    box-shadow:0 6px 20px rgba(200, 78, 26, 0.35);
}

.chat-launcher:active {
    background-color:var(--accent-active);
    border-color:var(--accent-active);
    transform:translateY(1px);
}

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

.chat-launcher__badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    background-color:var(--accent);
    color:#ffffff;
    font-family:var(--zuke-3d6);
    font-size:11px;
    font-weight:700;
    border-radius:10px;
    line-height:1;
}

.chat-launcher:hover .chat-launcher__badge {
    background-color:#ffffff;
    color:var(--accent);
}

/* Chat drawer / panel */
.chat-panel {
    position:fixed;
    bottom:clamp(1rem, 0.8rem + 1vw, 2rem);
    right:clamp(1rem, 0.8rem + 1vw, 2rem);
    width:clamp(300px, 92vw, 380px);
    height:clamp(480px, 80vh, 560px);
    z-index:9995;
    background-color:var(--ground);
    border:2px solid var(--ink);
    box-shadow:0 8px 32px rgba(18, 20, 23, 0.3);
    display:flex;
    flex-direction:column;
    border-radius:var(--radius-chamfer);
    overflow:hidden;
    display:none;
}

.chat-panel.is-open { display:flex; }

.chat-panel__header {
    background-color:var(--surface-dark);
    color:var(--ink-on-dark);
    padding:var(--space-12) var(--space-16);
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--rule-on-dark);
}

.chat-panel__title {
    font-family:var(--zuke-4b4);
    font-size:var(--text-base);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    display:flex;
    align-items:center;
    gap:var(--space-8);
    margin:0;
}

.chat-panel__close {
    background:transparent;
    border:0;
    color:var(--ink-secondary-on-dark);
    cursor:pointer;
    padding:var(--space-4);
    min-height:44px;
    min-width:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition:color var(--dur-fast) ease;
}

.chat-panel__close:hover { color:var(--ink-on-dark); }

.chat-panel__close:active { color:var(--accent); }

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

.chat-panel__body {
    flex:1 1 auto;
    overflow-y:auto;
    padding:var(--space-16);
    display:flex;
    flex-direction:column;
    gap:var(--space-12);
    background-color:var(--surface);
}

.chat-msg {
    padding:var(--space-8) var(--space-12);
    border-radius:var(--radius-chamfer);
    font-size:var(--text-sm);
    max-width:85%;
    line-height:var(--leading-snug);
}

.chat-msg--bot {
    align-self:flex-start;
    background-color:var(--ground);
    border:1px solid var(--rule);
    color:var(--ink);
}

.chat-msg--user {
    align-self:flex-end;
    background-color:var(--ink);
    color:var(--ink-on-dark);
}

.chat-panel__footer {
    padding:var(--space-12);
    background-color:var(--ground);
    border-top:var(--ledger-line);
}

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

.chat-input {
    flex:1 1 auto;
    padding:var(--space-8) var(--space-12);
    min-height:44px;
    border:1px solid var(--rule);
    border-radius:var(--radius-chamfer);
    font-size:var(--text-sm);
}

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

@media (max-width: 900px) {
    .site-footer__grid {
        grid-template-columns:1fr;
        gap:var(--space-32);
    }

    .nav-toggle { display:inline-flex !important; }

    .site-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background-color:var(--ground);
        border-bottom:2px solid var(--ink);
        padding:var(--space-16);
        box-shadow:0 10px 24px rgba(0, 0, 0, 0.1);
    }

    .site-nav.is-open { display:block; }

    .nav-list {
        flex-direction:column;
        align-items:stretch;
        gap:var(--space-4);
    }

    .nav-link {
        width:100%;
        padding:var(--space-12) var(--space-16);
        border-left:3px solid transparent;
    }

    .nav-link.is-active { border-left-color:var(--accent); }

    .nav-link::after { display:none; }

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

@media (max-width: 640px) {
    .site-strip__inner {
        flex-direction:column;
        align-items:flex-start;
        gap:var(--space-4);
    }

    .site-header__inner { gap:var(--space-8); }

    .header-action .btn {
        padding:var(--space-8) var(--space-8);
        font-size:var(--text-xs);
    }

    .cookie-banner__inner {
        flex-direction:column;
        align-items:stretch;
        gap:var(--space-12);
    }

    .cookie-banner__actions { justify-content:flex-end; }

    .tab-btn {
        padding:var(--space-12) var(--space-16);
        font-size:var(--text-sm);
    }
}

.form-ledger {
    background-color:var(--ground);
    border:var(--ledger-line);
    padding:clamp(1.5rem, 1rem + 1.5vw, 2.5rem);
}

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

.form-group {
    display:flex;
    flex-direction:column;
    gap:var(--space-8);
    min-width:0;
}

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

.form-label {
    font-family:var(--zuke-4b4);
    font-size:var(--text-sm);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink);
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:var(--space-4);
}

.form-label > * { min-width:0; }

.form-label__hint {
    font-family:var(--zuke-3d6);
    font-size:var(--text-xs);
    color:var(--ink-muted);
    font-weight:500;
    text-transform:none;
}

.form-input,
.form-select,
.form-textarea {
    width:100%;
    padding:var(--space-12) var(--space-16);
    min-height:44px;
    background-color:var(--surface);
    border:1px solid var(--rule);
    border-radius:var(--radius-chamfer);
    color:var(--ink);
    font-size:var(--text-base);
    font-family:var(--zuke-78e);
    transition:border-color var(--dur-fast) ease, background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}
