.site-header {
    position:sticky;
    top:0;
    z-index:100;
    background-color:var(--ground);
    border-bottom:1px solid var(--border);
    transition:padding var(--dur-base) var(--ease-tactile), background-color var(--dur-base) var(--ease-tactile), border-color var(--dur-base) var(--ease-tactile), box-shadow var(--dur-base) var(--ease-tactile);
}

.site-header.is-condensed,
.site-header[data-condensed="true"] {
    background-color:var(--ground-deep);
    border-bottom-color:var(--border-strong);
    box-shadow:0 4px 20px rgba(0, 0, 0, 0.28);
}

.header-topbar {
    background-color:var(--surface-soot);
    color:var(--ink-muted);
    font-size:var(--step--2);
    border-bottom:1px solid var(--border-dark);
    padding-block:var(--space-3xs);
}

.header-topbar-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-s);
    flex-wrap:wrap;
}

.header-topbar-notice {
    font-family:var(--meva-a93);
    letter-spacing:0.02em;
    display:flex;
    align-items:center;
    gap:var(--space-2xs);
}

.header-topbar-contact {
    display:flex;
    align-items:center;
    gap:var(--space-m);
    font-family:var(--meva-a93);
}

.header-topbar-contact a {
    color:var(--accent-sage);
    text-decoration:none;
}

.header-topbar-contact a:hover {
    text-decoration:underline;
}

.header-main {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-m);
    padding-block:clamp(0.75rem, 0.6rem + 0.5vw, 1.25rem);
}

.site-header.is-condensed .header-main {
    padding-block:clamp(0.5rem, 0.4rem + 0.3vw, 0.75rem);
}

.brand {
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    flex-shrink:0;
    padding:var(--space-3xs);
    outline-offset:4px;
}

.brand img {
    height:clamp(2.4rem, 2.0rem + 1.0vw, 3.2rem);
    width:auto;
    aspect-ratio:2.031 / 1;
    display:block;
}

.site-header.is-condensed .brand img {
    height:clamp(2.0rem, 1.8rem + 0.5vw, 2.4rem);
}

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

}

.nav-desktop {
    display:flex;
    align-items:center;
    gap:clamp(0.75rem, 0.5rem + 0.6vw, 1.5rem);
    list-style:none;
}

.nav-link {
    font-family:var(--meva-f01);
    font-size:var(--step--1);
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--ink);
    text-decoration:none;
    padding:var(--space-2xs) var(--space-xs);
    min-height:44px;
    display:inline-flex;
    align-items:center;
    position:relative;
    border-bottom:2px solid transparent;
    transition:color var(--dur-fast) var(--ease-tactile), border-color var(--dur-fast) var(--ease-tactile), background-color var(--dur-fast) var(--ease-tactile);
}

.nav-link:hover {
    color:var(--accent-sage);
    background-color:rgba(245, 239, 235, 0.06);
}

.nav-link:active {
    color:var(--ink);
    background-color:rgba(245, 239, 235, 0.14);
}

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

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

.nav-toggle {
    display:none;
    background:transparent;
    border:1px solid var(--border);
    color:var(--ink);
    padding:var(--space-2xs) var(--space-xs);
    min-height:44px;
    min-width:44px;
    align-items:center;
    justify-content:center;
    gap:var(--space-2xs);
    font-family:var(--meva-a93);
    font-size:var(--step--1);
    cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-tactile), border-color var(--dur-fast) var(--ease-tactile), color var(--dur-fast) var(--ease-tactile);
}

.nav-toggle:hover {
    background-color:rgba(245, 239, 235, 0.1);
    border-color:var(--accent-sage);
    color:var(--accent-sage);
}

.nav-toggle:active {
    background-color:rgba(245, 239, 235, 0.2);
    transform:translateY(1px);
}

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

.nav-mobile-drawer {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background-color:var(--surface-soot);
    border-bottom:2px solid var(--accent-sage);
    box-shadow:var(--shadow-soot);
    padding:var(--space-m) var(--container-pad);
}

.nav-mobile-drawer.is-open {
    display:block;
}

.nav-mobile-list {
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:1px;
    background-color:var(--border-dark);
}

.nav-mobile-list .nav-link {
    width:100%;
    padding:var(--space-s) var(--space-m);
    background-color:var(--surface-soot);
    border-bottom:none;
    border-left:3px solid transparent;
}

.nav-mobile-list .nav-link:hover {
    background-color:var(--surface-soot-card);
    border-left-color:var(--accent-sage);
}

.nav-mobile-list .nav-link[aria-current="page"] {
    border-left-color:var(--accent-sage);
    color:var(--accent-sage);
    background-color:var(--surface-soot-card);
}

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

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2xs);
    min-height:44px;
    padding:0.65rem 1.4rem;
    font-family:var(--meva-f01);
    font-weight:600;
    font-size:var(--step--1);
    text-transform:uppercase;
    letter-spacing:0.08em;
    line-height:1.2;
    text-decoration:none;
    border:1px solid transparent;
    border-radius:var(--radius-none);
    cursor:pointer;
    white-space:nowrap;
    transition:background-color var(--dur-fast) var(--ease-tactile), border-color var(--dur-fast) var(--ease-tactile), color var(--dur-fast) var(--ease-tactile), transform var(--dur-fast) var(--ease-tactile), box-shadow var(--dur-fast) var(--ease-tactile);
}

.btn-primary {
    background-color:var(--surface-soot);
    color:var(--ink);

    border-color:var(--surface-soot);
    box-shadow:0 2px 6px rgba(0, 0, 0, 0.2);
}

.btn-primary:hover {
    background-color:#362520;
    border-color:#362520;
    color:var(--accent-sage);
}

.btn-primary:active {
    background-color:var(--surface-soot-deep);
    border-color:var(--surface-soot-deep);
    transform:translateY(1px);
}

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

.btn-outline {

    background-color:transparent;
    color:var(--ink);
    border-color:var(--border-strong);
}

.btn-outline:hover {
    background-color:rgba(245, 239, 235, 0.12);
    border-color:var(--ink);
    color:var(--ink);
}

.btn-outline:active {
    background-color:rgba(245, 239, 235, 0.2);
    transform:translateY(1px);
}

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

.btn-sage {
    background-color:#f0f4f2;
    color:#1a110f;
    border-color:#f0f4f2;
    font-weight:700;
}

.btn-sage:hover {
    background-color:#ffffff;
    border-color:#ffffff;
    color:#1a110f;
}

.btn-sage:active {
    background-color:#dde5e1;
    transform:translateY(1px);
}

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

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

.btn-ghost:hover {
    background-color:rgba(245, 239, 235, 0.1);
    color:var(--accent-sage);
}

.btn-ghost:active {
    background-color:rgba(245, 239, 235, 0.18);
    transform:translateY(1px);
}

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

.btn-sm {
    min-height:38px;
    padding:0.4rem 0.9rem;
    font-size:var(--step--2);
}

.btn-lg {
    min-height:52px;
    padding:0.85rem 1.8rem;
    font-size:var(--meva-ff2);
}

.btn-icon {
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
    border-radius:var(--radius-none);
}

.badge {
    display:inline-flex;
    align-items:center;
    gap:var(--space-3xs);
    padding:0.25rem 0.6rem;
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    line-height:1;
    text-transform:uppercase;
    letter-spacing:0.05em;
    background-color:rgba(35, 24, 21, 0.35);
    border:1px solid var(--border);
    color:var(--ink);
    border-radius:var(--radius-none);
}

.badge-sage {
    background-color:#ffffff;
    border-color:#ffffff;
    color:#1c1210;
    font-weight:700;
}

.badge-soot {
    background-color:var(--surface-soot);
    border-color:var(--surface-soot);
    color:var(--ink);
}

.catalog-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(min(100%, 310px), 1fr));
    gap:1px;
    background-color:var(--border);
    border:1px solid var(--border);
}

.catalog-card {
    background-color:var(--ground);
    display:flex;
    flex-direction:column;
    position:relative;
    min-width:0;
    transition:background-color var(--dur-fast) var(--ease-tactile);
}

.catalog-card:hover {
    background-color:var(--ground-deep);
}

.catalog-card-media {
    position:relative;
    aspect-ratio:3 / 2;
    overflow:hidden;
    background-color:var(--surface-soot);
    border-bottom:1px solid var(--border);
}

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

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

.catalog-card-body {
    padding:var(--space-m);
    display:flex;
    flex-direction:column;
    flex-grow:1;
    gap:var(--space-xs);
}

.catalog-card-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-xs);
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    color:var(--accent-sage);
}

.catalog-card-title {
    font-family:var(--meva-aa6);
    font-size:var(--meva-744);
    font-weight:700;
    line-height:1.2;
}

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

.catalog-card-title a::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
}

.catalog-card-desc,
.catalog-card-meta,
.catalog-card-footer {
    position:relative;
    z-index:2;
}

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

.catalog-card-desc {
    font-size:var(--step--1);
    color:var(--ink-muted);
    line-height:1.5;
    margin-block-end:0;
}

.catalog-card-footer {
    margin-top:auto;
    padding-top:var(--space-s);
    border-top:1px solid var(--border-muted);
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:var(--space-xs);
    font-family:var(--meva-a93);
}

.catalog-card-price {
    font-size:var(--meva-ff2);
    font-weight:700;
    color:var(--ink);
}

.catalog-card-cta {
    font-size:var(--step--2);
    color:var(--accent-sage);
    display:flex;
    align-items:center;
    gap:var(--space-3xs);
}

.dir-table {
    width:100%;
    border:1px solid var(--border);
    background-color:var(--border);
    display:flex;
    flex-direction:column;
    gap:1px;
}

.dir-row {
    background-color:var(--ground);
    display:grid;
    grid-template-columns:minmax(180px, 1.2fr) minmax(220px, 2fr) minmax(140px, 1fr) auto;
    align-items:center;
    padding:var(--space-s) var(--space-m);
    gap:var(--space-m);
    position:relative;
    transition:background-color var(--dur-fast) var(--ease-tactile);
}

.dir-row:hover {
    background-color:var(--ground-deep);
}

.dir-name {
    font-family:var(--meva-aa6);
    font-size:var(--meva-ff2);
    font-weight:700;
}

.dir-name a {
    color:var(--ink);
    text-decoration:none;
}

.dir-name a::after {
    display:none;
}

.dir-name a:hover {
    color:var(--accent-sage);
}

.dir-summary {
    font-size:var(--step--1);
    color:var(--ink-muted);
    line-height:1.4;
}

.dir-price {
    font-family:var(--meva-a93);
    font-size:var(--step--1);
    color:var(--ink);
}

.dir-action {
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    color:var(--accent-sage);
    display:flex;
    align-items:center;
    gap:var(--space-3xs);
}

@media (max-width: 768px) {
    .dir-row {
        grid-template-columns:1fr;
        gap:var(--space-2xs);
        padding:var(--space-m);
    }
}

.spec-table-wrap {
    width:100%;
    overflow-x:auto;
    border:1px solid var(--border);
    background-color:var(--surface-soot);
    margin-block:var(--space-m);
}

.spec-table {
    width:100%;
    min-width:780px;
    font-size:var(--step--1);
    text-align:left;
}

.spec-table th,
.spec-table td {
    white-space:nowrap;
}
.spec-table td:first-child,
.spec-table td[data-label="Product Title"],
.spec-table td[data-label="Catalogue Item"],
.spec-table td[data-label="Active Formulation Basis"],
.spec-table td:nth-child(3),
.spec-table th:first-child,
.spec-table th:nth-child(3) {
    white-space:normal;
    min-width:140px;
}

.spec-table th {
    background-color:var(--surface-soot-deep);
    color:var(--accent-sage);
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:0.08em;
    padding:var(--space-s) var(--space-m);
    border-bottom:1px solid var(--border-strong);
    font-weight:700;
}

.spec-table td {
    padding:var(--space-s) var(--space-m);
    border-bottom:1px solid var(--border-dark);
    color:var(--ink);
    vertical-align:top;
}

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

.spec-table tr:hover td {
    background-color:rgba(245, 239, 235, 0.04);
}

.spec-table .mono {
    color:var(--ink-muted);
}

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

.form-label {
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--ink);
    font-weight:700;
    display:block;
    width:100%;
    max-width:100%;
}

.form-label .required-mark {
    color:var(--accent-sage);
    margin-left:2px;
    display:inline;
}

.form-label .optional-mark {
    color:var(--ink-dim);
    font-weight:400;
    text-transform:none;
    font-size:0.9em;
    display:block;
    white-space:normal;
    overflow-wrap:break-word;
}

.form-input,
.form-select,
.form-textarea {
    width:100%;
    min-height:44px;
    padding:0.65rem 0.9rem;
    background-color:var(--surface-soot);
    border:1px solid var(--border-strong);
    border-radius:var(--radius-none);
    color:var(--ink);
    font-size:var(--meva-ff2);
    line-height:1.4;
    transition:border-color var(--dur-fast) var(--ease-tactile), background-color var(--dur-fast) var(--ease-tactile), box-shadow var(--dur-fast) var(--ease-tactile);
}

.form-input:hover,
.form-select:hover,
.form-textarea:hover {
    border-color:var(--ink);
    background-color:var(--surface-soot-card);
}

.form-input:focus-visible,
.form-select:focus-visible,
.form-textarea:focus-visible {
    outline:2px solid var(--accent-sage);
    outline-offset:1px;
    border-color:var(--accent-sage);
    background-color:var(--surface-soot-card);
}

.form-input:active,
.form-select:active,
.form-textarea:active {
    background-color:var(--surface-soot-card);
}

.form-input.is-invalid,
.form-select.is-invalid,
.form-textarea.is-invalid {
    border-color:#ff8573;
    background-color:rgba(255, 133, 115, 0.08);
}

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

.form-hint {
    font-size:var(--step--2);
    color:var(--ink-dim);
    font-family:var(--meva-a93);
}

.form-error {
    font-size:var(--step--2);
    color:#ffb4a8;
    font-family:var(--meva-a93);
    display:none;
}

.form-error.is-visible,
.form-group.has-error .form-error {
    display:block;
}

.form-check {
    display:flex;
    align-items:flex-start;
    gap:var(--space-xs);
    cursor:pointer;
    margin-block-end:var(--space-m);
}

.form-check-input {
    width:20px;
    height:20px;
    min-width:20px;
    min-height:20px;
    margin-top:2px;
    accent-color:var(--accent-sage);
    border:1px solid var(--border-strong);
    border-radius:var(--radius-none);
    background-color:var(--surface-soot);
    cursor:pointer;
}

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

.form-check-label {
    font-size:var(--step--1);
    color:var(--ink);
    line-height:1.45;
    user-select:none;
}

.form-check-label a {
    color:var(--accent-sage);
}

.form-honeypot {
    position:absolute !important;
    left:-9999px !important;
    top:auto !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

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

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

.form-response {
    padding:var(--space-m);
    border:1px solid var(--border);
    margin-block-start:var(--space-m);
    display:none;
}

.form-response.is-success {
    display:block;
    background-color:var(--surface-soot);
    border-color:var(--accent-sage);
    color:var(--ink);
}

.form-response.is-error {
    display:block;
    background-color:rgba(255, 133, 115, 0.15);
    border-color:#ff8573;
    color:var(--ink);
}

.pullquote-spread {
    padding-block:var(--space-2xl);
    border-block:1px solid var(--border-strong);
    background-color:var(--surface-soot);
    color:var(--ink);
    margin-block:var(--space-2xl);
}

.pullquote-content {
    max-width:var(--container-max);
    margin-inline:auto;
    padding-inline:var(--container-pad);
}

.pullquote-text {
    font-family:var(--meva-aa6);
    font-size:clamp(1.8rem, 1.4rem + 2.4vw, 3.4rem);
    font-weight:800;
    line-height:1.15;
    letter-spacing:-0.025em;
    color:var(--ink);
    max-width:22ch;
    margin-block-end:var(--space-l);
}

.pullquote-text mark {
    background-color:transparent;
    color:var(--accent-sage);
}

.pullquote-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-m);
    flex-wrap:wrap;
    border-top:1px solid var(--border-dark);
    padding-top:var(--space-m);
    font-family:var(--meva-a93);
    font-size:var(--step--1);
    color:var(--ink-muted);
}

.pullquote-author {
    font-weight:700;
    color:var(--accent-sage);
}

.estimator-box {
    background-color:var(--surface-soot);
    border:1px solid var(--border-strong);
    padding:clamp(1.25rem, 1.0rem + 1.2vw, 2.5rem);
    margin-block:var(--space-xl);
}

.estimator-header {
    border-bottom:1px solid var(--border-dark);
    padding-bottom:var(--space-m);
    margin-bottom:var(--space-l);
}

.estimator-title {
    font-family:var(--meva-aa6);
    font-size:var(--meva-da6);
    color:var(--ink);
    margin-bottom:var(--space-3xs);
}

.estimator-subtitle {
    font-size:var(--step--1);
    color:var(--ink-muted);
    max-width:60ch;
}

.estimator-grid {
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:var(--space-xl);
    align-items:start;
}

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

.estimator-controls {
    display:flex;
    flex-direction:column;
    gap:var(--space-m);
}

.estimator-output-panel {
    background-color:var(--surface-soot-deep);
    border:1px solid var(--border-dark);
    padding:var(--space-l);
    display:flex;
    flex-direction:column;
    gap:var(--space-m);
}

.estimator-output-label {
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--accent-sage);
}

.estimator-output-val {
    font-family:var(--meva-aa6);
    font-size:clamp(2.4rem, 1.8rem + 2.5vw, 3.8rem);
    font-weight:800;
    color:var(--ink);
    line-height:1;
}

.estimator-note {
    font-family:var(--meva-a93);
    font-size:var(--step--1);
    color:var(--ink-muted);
    border-top:1px solid var(--border-dark);
    padding-top:var(--space-s);
}

.estimator-disclaimer {
    font-size:var(--step--2);
    color:var(--ink-dim);
    line-height:1.45;
}

.disclosure-stack {
    display:flex;
    flex-direction:column;
    gap:1px;
    background-color:var(--border-dark);
    border:1px solid var(--border-strong);
    margin-block:var(--space-l);
}

.disclosure-item {
    background-color:var(--surface-soot);
    transition:background-color var(--dur-fast) var(--ease-tactile);
}

.disclosure-item[open] {
    background-color:var(--surface-soot-card);
}

.disclosure-summary {
    padding:var(--space-m) var(--space-l);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-s);
    font-family:var(--meva-aa6);
    font-size:var(--meva-744);
    font-weight:700;
    color:var(--ink);
    list-style:none;
    user-select:none;
    min-height:52px;
    transition:color var(--dur-fast) var(--ease-tactile), background-color var(--dur-fast) var(--ease-tactile);
}

.disclosure-summary::-webkit-details-marker {
    display:none;
}

.disclosure-summary:hover {
    color:var(--accent-sage);
    background-color:rgba(245, 239, 235, 0.05);
}

.disclosure-summary:active {
    background-color:rgba(245, 239, 235, 0.1);
}

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

.disclosure-icon {
    width:1.2em;
    height:1.2em;
    transition:transform var(--dur-base) var(--ease-out);
    color:var(--accent-sage);
}

.disclosure-item[open] .disclosure-icon {
    transform:rotate(180deg);
}

.disclosure-body {
    padding:0 var(--space-l) var(--space-l);
    color:var(--ink-muted);
    font-size:var(--meva-ff2);
    line-height:1.6;
}

.site-footer {
    background-color:var(--surface-soot);
    color:var(--ink);
    border-top:2px solid var(--border-strong);
    margin-top:auto;
    position:relative;
    z-index:20;
}

.footer-top {
    padding-block:clamp(2.5rem, 2.0rem + 2.0vw, 4.5rem);
    border-bottom:1px solid var(--border-dark);
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.4fr;
    gap:clamp(1.5rem, 1.2rem + 1.5vw, 3.0rem);
}

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

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

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

.footer-brand-col .brand img {
    height:3.2rem;
    width:auto;
}

.footer-desc {
    font-size:var(--step--1);
    color:var(--ink-muted);
    line-height:1.55;
    max-width:38ch;
}

.footer-col-title {
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--accent-sage);
    margin-bottom:var(--space-s);
    font-weight:700;
}

.footer-links {
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:var(--space-2xs);
}

.footer-links a,
.footer-links button {
    color:var(--ink);
    text-decoration:none;
    font-size:var(--step--1);
    padding:0.2rem 0;
    display:inline-block;
    background:transparent;
    border:none;
    text-align:left;
    cursor:pointer;
    transition:color var(--dur-fast) var(--ease-tactile);
}

.footer-links a:hover,
.footer-links button:hover {
    color:var(--accent-sage);
    text-decoration:underline;
}

.footer-links a:active,
.footer-links button:active {
    color:var(--ink-muted);
}

.footer-links a:focus-visible,
.footer-links button:focus-visible {
    outline:2px solid var(--accent-sage);
    outline-offset:2px;
}

.footer-facts-list {
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:var(--space-xs);
    font-size:var(--step--1);
    color:var(--ink-muted);
}

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

.footer-fact-label {
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    color:var(--ink-dim);
    text-transform:uppercase;
    letter-spacing:0.04em;
}

.footer-fact-value {
    color:var(--ink);
}

.footer-fact-value a {
    color:var(--accent-sage);
    text-decoration:none;
}

.footer-fact-value a:hover {
    text-decoration:underline;
}

.footer-disclaimer-band {
    background-color:var(--surface-soot-deep);
    border-bottom:1px solid var(--border-dark);
    padding-block:var(--space-m);
}

.footer-disclaimer-text {
    font-size:var(--step--2);
    color:var(--ink-dim);
    line-height:1.5;
    max-width:100ch;
    margin-inline:auto;
}

.footer-bottom {
    padding-block:var(--space-m);
    font-size:var(--step--2);
    color:var(--ink-dim);
}

.footer-bottom-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-m);
    flex-wrap:wrap;
}

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

.footer-legal-nav a,
.footer-legal-nav button {
    color:var(--ink-dim);
    text-decoration:none;
    background:transparent;
    border:none;
    padding:0.2rem 0;
    cursor:pointer;
    font-size:inherit;
    font-family:inherit;
    transition:color var(--dur-fast) var(--ease-tactile);
}

.footer-legal-nav a:hover,
.footer-legal-nav button:hover {
    color:var(--accent-sage);
    text-decoration:underline;
}

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

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

.cookie-banner {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:990;
    background-color:var(--surface-soot);
    color:var(--ink);
    border-top:2px solid var(--accent-sage);
    box-shadow:0 -8px 24px rgba(0, 0, 0, 0.4);
    padding-block:0.35rem;
    max-height:25vh !important;
    overflow-y:auto;
    transform:translateY(0);
    transition:transform var(--dur-deliberate) var(--ease-out), opacity var(--dur-base) var(--ease-out);
}
@media (max-width: 480px) {
    .cookie-banner {
        max-height:24vh !important;
        padding-block:0.25rem;
    }
}

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

.cookie-banner-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-m);
    flex-wrap:wrap;
}

.cookie-banner-text {
    font-size:var(--step--1);
    line-height:1.4;
    color:var(--ink);
    flex:1 1 300px;
    margin:0;
}

.cookie-banner-text a {
    color:var(--accent-sage);
    text-decoration:underline;
}

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

.cookie-btn {
    min-height:38px;
    padding:0.4rem 1.0rem;
    font-size:var(--step--2);
}

.chat-launcher {
    position:fixed;
    bottom:clamp(1.0rem, 0.8rem + 1.0vw, 1.8rem);
    right:clamp(1.0rem, 0.8rem + 1.0vw, 1.8rem);
    z-index:980;
    width:52px;
    height:52px;
    min-width:52px;
    min-height:52px;
    border-radius:var(--radius-none);
    background-color:var(--surface-soot);
    border:1px solid var(--accent-sage);
    color:var(--ink);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 4px 16px rgba(0, 0, 0, 0.35);
    transition:transform var(--dur-fast) var(--ease-tactile), background-color var(--dur-fast) var(--ease-tactile), border-color var(--dur-fast) var(--ease-tactile), box-shadow var(--dur-fast) var(--ease-tactile);
}

.chat-launcher:hover {
    background-color:#362520;
    border-color:var(--ink);
    transform:translateY(-2px);
    box-shadow:0 6px 20px rgba(0, 0, 0, 0.45);
}

.chat-launcher:active {
    background-color:var(--surface-soot-deep);
    transform:translateY(0);
}

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

body.has-cookie-banner .chat-launcher {
    bottom:clamp(4.5rem, 4.0rem + 2vw, 5.5rem);
}

.chat-badge {
    position:absolute;
    top:-4px;
    right:-4px;
    background-color:var(--accent-sage);
    color:var(--surface-soot);
    font-family:var(--meva-a93);
    font-size:10px;
    font-weight:700;
    line-height:1;
    padding:2px 5px;
    min-width:16px;
    text-align:center;
    border:1px solid var(--surface-soot);
}

.chat-panel {
    position:fixed;
    bottom:clamp(1.0rem, 0.8rem + 1.0vw, 1.8rem);
    right:clamp(1.0rem, 0.8rem + 1.0vw, 1.8rem);
    z-index:985;
    width:min(calc(100vw - 2rem), 380px);
    height:min(calc(100vh - 4rem), 540px);
    background-color:var(--surface-soot);
    border:1px solid var(--border-strong);
    box-shadow:var(--shadow-soot);
    display:flex;
    flex-direction:column;
    border-radius:var(--radius-none);
}

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

body.has-cookie-banner .chat-panel {
    bottom:clamp(4.5rem, 4.0rem + 2vw, 5.5rem);
}

.chat-header {
    background-color:var(--surface-soot-deep);
    border-bottom:1px solid var(--border-dark);
    padding:var(--space-s) var(--space-m);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-xs);
}

.chat-title-group {
    display:flex;
    flex-direction:column;
}

.chat-title {
    font-family:var(--meva-aa6);
    font-size:var(--meva-ff2);
    font-weight:700;
    color:var(--ink);
    line-height:1.2;
}

.chat-status-line {
    font-family:var(--meva-a93);
    font-size:var(--step--2);
    color:var(--accent-sage);
    display:flex;
    align-items:center;
    gap:4px;
}

.chat-status-dot {
    width:6px;
    height:6px;
    background-color:#5cd296;
    border-radius:50%;
    display:inline-block;
}

.chat-close {
    background:transparent;
    border:none;
    color:var(--ink-muted);
    width:36px;
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:color var(--dur-fast) var(--ease-tactile), background-color var(--dur-fast) var(--ease-tactile);
}

.chat-close:hover {
    color:var(--ink);
    background-color:rgba(245, 239, 235, 0.1);
}

.chat-close:active {
    background-color:rgba(245, 239, 235, 0.2);
}

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

.chat-body {
    flex:1 1 auto;
    overflow-y:auto;
    padding:var(--space-m);
    display:flex;
    flex-direction:column;
    gap:var(--space-s);
}

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

.chat-msg-bot {
    align-self:flex-start;
    background-color:var(--surface-soot-card);
    border:1px solid var(--border-dark);
    color:var(--ink);
}

.chat-msg-user {
    align-self:flex-end;
    background-color:var(--ground-deep);
    border:1px solid var(--border);
    color:var(--ink);
}

.chat-msg-time {
    font-family:var(--meva-a93);
    font-size:10px;
    color:var(--ink-dim);
    margin-top:4px;
    text-align:right;
}

.chat-onboarding {
    background-color:var(--surface-soot-card);
    border:1px solid var(--border-dark);
    padding:var(--space-s);
    display:flex;
    flex-direction:column;
    gap:var(--space-2xs);
}

.chat-onboarding-title {
    font-family:var(--meva-aa6);
    font-size:var(--step--1);
    font-weight:700;
    color:var(--accent-sage);
}

.chat-footer {
    border-top:1px solid var(--border-dark);
    padding:var(--space-xs);
    background-color:var(--surface-soot-deep);
}

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

.chat-input {
    flex:1;
    min-height:40px;
    padding:0.4rem 0.6rem;
    background-color:var(--surface-soot);
    border:1px solid var(--border-strong);
    color:var(--ink);
    font-size:var(--step--1);
}

.chat-input:focus-visible {
    outline:2px solid var(--accent-sage);
    border-color:var(--accent-sage);
}

.chat-send-btn {
    min-height:40px;
    padding:0 0.8rem;
    background-color:var(--accent-sage);
    color:var(--surface-soot);
    border:none;
    font-weight:700;
    font-size:var(--step--1);
    cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-tactile);
}

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

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

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