.page-hero {
    position:relative;
    width:100%;
    background-color:var(--ground);
    border-bottom:var(--border-heavy);
    overflow:hidden;
    padding-top:clamp(3rem, 2.5rem + 2vw, 5rem);
    padding-bottom:var(--space-xl);
}


.page-hero[data-opening] {
    padding-top:0;
    padding-bottom:0;
    min-height:calc(100vh - 4.5rem);
    min-height:calc(100svh - 4.5rem);
    display:flex;
    align-items:center;
}


.hero-fullbleed-frame {
    position:relative;
    width:100%;
    min-height:calc(100vh - 4.5rem);
    min-height:calc(100svh - 4.5rem);
    display:flex;
    align-items:center;
    overflow:hidden;
}


.hero-fullbleed-bg {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:1;
}


.hero-fullbleed-bg picture,
.hero-fullbleed-bg img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}


.hero-fullbleed-bg img { object-position:85% center; }


@media (max-width: 767px) {
    .page-hero[data-opening],
    .hero-fullbleed-frame {
        min-height:0;
        flex-direction:column;
        align-items:stretch;
    }
    .hero-fullbleed-bg {
        position:relative;
        inset:auto;
        width:100%;
        height:auto;
        aspect-ratio:3 / 2;
    }
    .hero-fullbleed-bg img { object-position:85% 20%; }
}


.hero-composed-stage {
    position:relative;
    z-index:2;
    width:100%;

    padding-top:clamp(2rem, 2rem + 2vw, 4rem);
    padding-bottom:clamp(6rem, 5rem + 3vw, 8.5rem);
}


.hero-open-half {
    max-width:52ch;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
    background-color:rgba(42, 16, 18, 0.82);
    padding:clamp(1.25rem, 1rem + 1.2vw, 2.25rem);
    border-left:3px solid var(--accent);
}


.hero-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-display);
    font-weight:900;
    line-height:var(--leading-none);
    letter-spacing:-0.04em;

    color:var(--ink);
    margin-bottom:var(--space-md);
    text-wrap:balance;
}


.hero-lede {
    font-family:var(--ruhu-8e2);
    font-size:var(--text-md);
    line-height:var(--leading-snug);
    color:var(--ink-soft);
    margin-bottom:var(--space-lg);
    max-width:var(--reading-max);
}


.hero-action {
    display:flex;
    align-items:center;
}


.hero-badges-shelf {
    margin-top:var(--space-lg);
    display:flex;
    flex-wrap:wrap;
    gap:0.5rem;
}


.hero-badge {
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    padding:0.35rem 0.65rem;
    background-color:var(--surface);
    border:var(--border-hairline);
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
}


.hero-badge strong { color:var(--accent); }


.section-split {
    padding-block:var(--space-xl);
    border-bottom:var(--border-hairline);
}


.section-split.alt-surface { background-color:var(--surface); }


.split-2-1 {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-lg);
}


@media (min-width: 860px) {
    .split-2-1 {
        grid-template-columns:2fr 1fr;
        gap:var(--space-xl);
    }
}


.split-1-2 {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-lg);
}


@media (min-width: 860px) {
    .split-1-2 {
        grid-template-columns:1fr 2fr;
        gap:var(--space-xl);
    }
}


.split-col-main {
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
}


.split-col-side {
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    background-color:var(--surface-2);
    border:var(--border-hairline);
    padding:var(--space-md);
}


.side-data-panel {
    display:flex;
    flex-direction:column;
    gap:var(--space-sm);
}


.side-data-label {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    border-bottom:1px solid var(--line);
    padding-bottom:0.25rem;
}


.side-data-val {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-lg);
    font-weight:700;
    color:var(--accent);
}


.side-data-list {
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    margin-top:0.5rem;
}


.side-data-item {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:0.5rem;
    font-size:var(--text-xs);
    border-bottom:1px dashed var(--line);
    padding-bottom:0.25rem;
}


.side-data-item span:first-child { color:var(--ink-soft); }


.side-data-item span:last-child {
    font-family:var(--ruhu-9d0);
    color:var(--ink);
    font-weight:600;
}


.dialogue-section {
    padding-block:var(--space-xl);
    border-bottom:var(--border-hairline);
    width:100%;
}


.dialogue-qa-layout {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-lg);
    align-items:start;
}


@media (min-width: 960px) {
    .dialogue-qa-layout {
        grid-template-columns:1.8fr 1.2fr;
        gap:var(--space-xl);
    }
}


.dialogue-sidebar-spec {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    background-color:var(--surface);
    border:var(--border-hairline);
    padding:var(--space-md);
}


.dialogue-sidebar-head {
    border-bottom:2px solid var(--accent);
    padding-bottom:0.4rem;
}


.dialogue-sidebar-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-sm);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink);
}


.dialogue-sidebar-lead {
    font-size:var(--text-xs);
    color:var(--ink-soft);
    line-height:var(--leading-snug);
}


.dialogue-stack {
    display:flex;
    flex-direction:column;
    gap:var(--space-xl);
    width:100%;
}


.dialogue-block {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    width:100%;
}


.dialogue-customer {
    padding-left:var(--space-md);
    border-left:4px solid var(--line);
    max-width:100%;
    align-self:flex-start;
}


.dialogue-speaker {
    display:flex;
    align-items:center;
    gap:0.5rem;
    margin-bottom:0.35rem;
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
}


.dialogue-speaker .speaker-tag {
    background-color:var(--surface-2);
    padding:0.15rem 0.4rem;
    color:var(--ink);
    font-weight:600;
}


.dialogue-question {
    font-family:var(--ruhu-f48);
    font-size:var(--text-xl);
    font-weight:800;
    line-height:var(--leading-tight);
    color:var(--ink);
    text-wrap:balance;
}


.dialogue-reply {

    background-color:var(--surface);
    border-left:4px solid var(--accent);
    border-top:var(--border-hairline);
    border-right:var(--border-hairline);
    border-bottom:var(--border-hairline);
    box-shadow:0 4px 16px rgba(0, 0, 0, 0.25);
    padding:clamp(1.25rem, 1rem + 1vw, 2.25rem);
    width:100%;
}


.dialogue-desk-header {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:space-between;
    gap:0.5rem;
    margin-bottom:var(--space-sm);
    border-bottom:1px solid var(--line);
    padding-bottom:0.5rem;
}


.dialogue-officer {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
    font-weight:600;
}


.dialogue-stamp {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
}


.dialogue-body {
    font-size:var(--text-base);
    line-height:var(--leading-normal);
    color:var(--ink);
    max-width:var(--reading-max);
}


.dialogue-body p + p { margin-top:var(--space-sm); }


.dialogue-evidence-full {
    margin-top:var(--space-md);
    width:100%;
    border:var(--border-hairline);
    background-color:var(--ground);
}


.dialogue-evidence-full img {
    width:100%;
    height:auto;
    display:block;
}


.dialogue-evidence-meta {
    padding:0.75rem 1rem;
    background-color:var(--surface-2);
    border-top:var(--border-hairline);
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
    gap:0.5rem;
}


.evidence-caption {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
}


.evidence-reading {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--accent);
    font-weight:600;
}


.annotated-diagram-section {
    padding-block:var(--space-xl);
    border-bottom:var(--border-heavy);
    background-color:var(--ground);
}


.diagram-header-bar {
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    margin-bottom:var(--space-lg);
    border-bottom:var(--border-hairline);
    padding-bottom:var(--space-md);
}


@media (min-width: 768px) {
    .diagram-header-bar {
        flex-direction:row;
        justify-content:space-between;
        align-items:flex-end;
    }
}


.diagram-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-2xl);
    font-weight:900;
    color:var(--ink);
}


.diagram-plate-number {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
}


.diagram-stage-box {
    position:relative;
    width:100%;
    border:var(--border-heavy);
    background-color:var(--surface);
    overflow:hidden;
}


.diagram-photo-container {
    position:relative;
    width:100%;
}


.diagram-photo-container img {
    width:100%;
    height:auto;
    display:block;
    filter:contrast(1.05);
}


.plate-annotation {
    position:absolute;
    z-index:15;
    display:flex;
    flex-direction:column;
    pointer-events:auto;
}


.plate-annotation.pos-input {
    top:8%;
    left:4%;
}


.plate-annotation.pos-concentricity {
    top:28%;
    left:42%;
}


.plate-annotation.pos-spline {
    bottom:8%;
    left:4%;
}


.plate-annotation.pos-boltcircle {
    top:8%;
    right:4%;
}


.plate-annotation.pos-drain {
    bottom:8%;
    right:4%;
}


@media (max-width: 767px) {
    .plate-annotation {
        position:static;
        margin:0.5rem;
    }
    .diagram-photo-container {
        display:flex;
        flex-direction:column;
    }
}


.annotation-dot {
    width:12px;
    height:12px;
    background-color:var(--accent);
    border:2px solid var(--accent-ink);
    outline:2px solid var(--accent);
    outline-offset:2px;
    flex-shrink:0;
}


.annotation-flag {
    margin-top:0.35rem;
    background-color:rgba(74, 31, 34, 0.96);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--line);
    border-left:3px solid var(--accent);
    padding:0.4rem 0.65rem;
    box-shadow:0 4px 12px rgba(0, 0, 0, 0.5);
}


.annotation-flag-code {
    font-family:var(--ruhu-9d0);
    font-size:10px;
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    display:block;
}


.annotation-flag-desc {
    font-family:var(--ruhu-8e2);
    font-size:var(--text-xs);
    color:var(--ink);
    font-weight:600;
    white-space:normal;
}


.diagram-spec-grid {
    display:grid;
    grid-template-columns:1fr;
    border-top:var(--border-hairline);
    background-color:var(--surface-2);
}


@media (min-width: 640px) {
    .diagram-spec-grid { grid-template-columns:repeat(2, 1fr); }
}


@media (min-width: 1024px) {
    .diagram-spec-grid { grid-template-columns:repeat(4, 1fr); }
}


.diagram-spec-cell {
    padding:0.85rem 1rem;
    border-bottom:var(--border-hairline);
    border-right:var(--border-hairline);
}


.diagram-spec-key {
    font-family:var(--ruhu-9d0);
    font-size:11px;
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
    display:block;
    margin-bottom:0.25rem;
}


.diagram-spec-value {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-sm);
    color:var(--ink);
    font-weight:700;
}


.fit-checker-section {
    padding-block:var(--space-xl);
    border-bottom:var(--border-heavy);
    background-color:var(--surface);
}


.tool-header-block {
    margin-bottom:var(--space-lg);
    max-width:60ch;
}


.tool-header-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-2xl);
    font-weight:900;
    color:var(--ink);
    margin-bottom:var(--space-xs);
}


.tool-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-lg);
}


@media (min-width: 960px) {
    .tool-grid {
        grid-template-columns:1.6fr 1fr;
        gap:var(--space-xl);
    }
}


.tool-inputs-column {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    background-color:var(--ground);
    border:var(--border-hairline);
    padding:var(--space-md);
}


.tool-field-row {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-md);
}


@media (min-width: 640px) {
    .tool-field-row { grid-template-columns:1fr 1fr; }
}


.tool-output-column {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    background-color:var(--surface-2);
    border:var(--border-heavy);
    padding:var(--space-lg) var(--space-md);
}


.tool-output-head {
    border-bottom:2px solid var(--accent);
    padding-bottom:var(--space-xs);
}


.tool-output-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-sm);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    color:var(--ink);
}


.tool-price-display {
    display:flex;
    flex-direction:column;
    gap:0.25rem;
    padding-block:var(--space-sm);
}


.tool-price-label {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
}


.tool-price-figure {
    font-family:var(--ruhu-9d0);
    font-size:clamp(2rem, 1.8rem + 1vw, 2.75rem);
    font-weight:700;
    color:var(--accent);
    line-height:var(--leading-none);
}


.tool-breakdown-list {
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    border-top:var(--border-hairline);
    padding-top:var(--space-sm);
}


.tool-breakdown-item {
    display:flex;
    justify-content:space-between;
    font-size:var(--text-xs);
    color:var(--ink-soft);
}


.tool-breakdown-item span:last-child {
    font-family:var(--ruhu-9d0);
    color:var(--ink);
    font-weight:600;
}


.tool-status-box {
    background-color:var(--ground);
    border:1px solid var(--line);
    border-left:3px solid var(--accent);
    padding:0.75rem;
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink);
    line-height:var(--leading-snug);
}


.tool-status-box strong { color:var(--accent); }


.tool-disclaimer {
    font-family:var(--ruhu-9d0);
    font-size:11px;
    color:var(--ink-soft);
    line-height:1.4;
    border-top:1px dashed var(--line);
    padding-top:var(--space-xs);
}


.legal-tabbed-wrap {
    width:100%;
    margin-block:var(--space-xl);
}


.legal-tablist { display:none; }


@media (min-width: 768px) {
    .legal-tablist {
        display:flex;
        flex-wrap:wrap;
        gap:4px;
        border-bottom:2px solid var(--line);
        margin-bottom:var(--space-lg);
    }
}


.legal-tab-btn {
    appearance:none;
    background:var(--surface);
    border:var(--border-hairline);
    border-bottom:0;
    color:var(--ink-soft);
    padding:0.85rem 1.25rem;
    min-height:48px;
    font-family:var(--ruhu-f48);
    font-size:var(--text-sm);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
    cursor:pointer;
    margin-right:0;
    margin-bottom:-2px;
    transition:color var(--dur-fast) var(--ease-out-quad),
                            background-color var(--dur-fast) var(--ease-out-quad),
                            border-color var(--dur-fast) var(--ease-out-quad);
}


.legal-tab-btn:hover {
    color:var(--ink);
    background-color:var(--surface-2);
}


.legal-tab-btn:active { background-color:var(--ground); }


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


.legal-tab-btn[aria-selected="true"] {
    background-color:var(--ground);
    color:#f3d28e;
    border-top:3px solid var(--accent);
    border-bottom:2px solid var(--ground);
    font-weight:800;
}


.legal-panel-group { width:100%; }


.legal-tab-panel {
    display:none;
    background-color:var(--surface);
    border:var(--border-hairline);
    padding:clamp(1.25rem, 1rem + 1vw, 2.5rem);
}


.legal-tab-panel.is-active { display:block; }


.legal-tab-panel h2 {
    font-size:var(--text-xl);
    margin-bottom:var(--space-md);
    border-bottom:1px solid var(--line);
    padding-bottom:0.5rem;
}


.legal-tab-panel h3 {
    font-size:var(--text-lg);
    margin-top:var(--space-md);
    margin-bottom:var(--space-xs);
    color:var(--ink);
}


.legal-tab-panel p {
    margin-bottom:var(--space-sm);
    max-width:var(--reading-max);
}


.legal-accordion-wrap {
    display:flex;
    flex-direction:column;
    gap:var(--space-xs);
}


@media (min-width: 768px) {
    .legal-accordion-wrap { display:none; }
}


.legal-accordion-item {
    border:var(--border-hairline);
    background-color:var(--surface);
}


.legal-accordion-header {
    width:100%;
    appearance:none;
    background:none;
    border:0;
    padding:1rem;
    min-height:48px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-family:var(--ruhu-f48);
    font-size:var(--text-base);
    font-weight:800;
    color:var(--ink);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
    cursor:pointer;
    text-align:left;
}


.legal-accordion-header:hover {
    background-color:var(--surface-2);
    color:var(--accent);
}


.legal-accordion-header:focus-visible { outline:var(--border-focus); }


.legal-accordion-header .icon { transition:transform var(--dur-fast) var(--ease-out-quad); }


.legal-accordion-header[aria-expanded="true"] {
    border-bottom:var(--border-hairline);
    background-color:var(--surface-2);
    color:var(--accent);
}


.legal-accordion-header[aria-expanded="true"] .icon { transform:rotate(180deg); }


.legal-accordion-body {
    display:none;
    padding:1rem;
    background-color:var(--ground);
}


.legal-accordion-body.is-open { display:block; }


.doc-card-container {
    width:100%;
    margin-block:var(--space-xl);
    display:flex;
    justify-content:flex-start;
}


.doc-card-sheet {
    width:100%;
    max-width:980px;
    background-color:var(--surface);
    border:var(--border-heavy);
    box-shadow:0 8px 32px rgba(0, 0, 0, 0.45);
    padding:clamp(1.5rem, 1rem + 2vw, 3.5rem);
    position:relative;
}


.doc-card-sheet::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:4px;
    background-color:var(--accent);
}


.doc-card-masthead {
    border-bottom:2px solid var(--line);
    padding-bottom:var(--space-md);
    margin-bottom:var(--space-lg);
    display:flex;
    flex-direction:column;
    gap:var(--space-sm);
}


.doc-meta-row {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:0.5rem;
}


.doc-ref-stamp {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wider);
    font-weight:600;
}


.doc-effective-date {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    color:var(--ink-soft);
}


.doc-card-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-2xl);
    font-weight:900;
    color:var(--ink);
    line-height:var(--leading-tight);
}


.doc-card-summary {
    font-size:var(--text-base);
    color:var(--ink-soft);
    max-width:var(--reading-max);
}


.doc-clauses-stack {
    display:flex;
    flex-direction:column;
    gap:var(--space-lg);
}


.doc-clause {
    border-left:2px solid var(--line);
    padding-left:var(--space-md);
}


.doc-clause-head {
    display:flex;
    align-items:baseline;
    gap:0.65rem;
    margin-bottom:0.5rem;
}


.doc-clause-num {
    font-family:var(--ruhu-9d0);
    font-size:var(--text-sm);
    color:var(--accent);
    font-weight:700;
}


.doc-clause-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-lg);
    font-weight:800;
    color:var(--ink);
}


.doc-clause-text {
    font-size:var(--text-sm);
    line-height:var(--leading-normal);
    color:var(--ink-soft);
    max-width:var(--reading-max);
}


.doc-clause-text + .doc-clause-text { margin-top:0.5rem; }


.doc-table-box {
    margin-top:var(--space-md);
    border:var(--border-hairline);
    background-color:var(--surface-2);
    overflow-x:auto;
}


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


.doc-table th {
    background-color:var(--ground);
    color:var(--ink);
    font-family:var(--ruhu-9d0);
    padding:0.65rem 0.85rem;
    border-bottom:1px solid var(--line);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
}


.doc-table td {
    padding:0.65rem 0.85rem;
    border-bottom:1px solid var(--line);
    color:var(--ink-soft);
    vertical-align:top;
}


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


.doc-table code {
    color:var(--accent);
    font-family:var(--ruhu-9d0);
}


.pinned-chips-bar {
    position:relative;
    width:100%;
    background-color:var(--surface);
    border-bottom:var(--border-heavy);
    padding-block:0.75rem;
    z-index:50;
}


.chips-scroll-rail {
    display:flex;
    align-items:center;
    gap:0.5rem;
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}


.chips-scroll-rail::-webkit-scrollbar { display:none; }


.jump-chip {
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    padding:0.5rem 0.85rem;
    min-height:44px;
    background-color:var(--surface-2);
    border:var(--border-hairline);
    color:var(--ink-soft);
    font-family:var(--ruhu-9d0);
    font-size:var(--text-xs);
    text-transform:uppercase;
    letter-spacing:var(--tracking-wide);
    cursor:pointer;
    text-decoration:none;
    transition:color var(--dur-fast) var(--ease-out-quad),
                            background-color var(--dur-fast) var(--ease-out-quad),
                            border-color var(--dur-fast) var(--ease-out-quad);
}


.jump-chip:hover {
    background-color:var(--ground);
    color:var(--accent);
    border-color:var(--accent);
}


.jump-chip:active { background-color:var(--surface); }


.jump-chip:focus-visible {
    outline:var(--border-focus);
    outline-offset:-2px;
}


.jump-chip.is-active {
    background-color:var(--accent);
    color:var(--accent-ink);
    border-color:var(--accent);
    font-weight:700;
}


.terms-section-stack {
    display:flex;
    flex-direction:column;
    gap:var(--space-xl);
    margin-block:var(--space-xl);
}


.terms-section {
    padding-top:var(--space-md);
    border-top:var(--border-heavy);
    scroll-margin-top:3rem;
}


.terms-standfirst {
    font-family:var(--ruhu-f48);
    font-size:var(--text-md);
    font-weight:800;
    color:var(--ink);
    margin-bottom:var(--space-md);
    line-height:var(--leading-snug);
    border-left:3px solid var(--accent);
    padding-left:var(--space-sm);
    max-width:var(--reading-max);
}


.terms-body {
    font-size:var(--text-base);
    color:var(--ink-soft);
    line-height:var(--leading-normal);
    max-width:var(--reading-max);
}


.terms-body p + p { margin-top:var(--space-sm); }


.terms-body ul {
    list-style:square;
    padding-left:1.25rem;
    margin-block:var(--space-sm);
}


.terms-body li { margin-bottom:0.35rem; }


.catalog-item-card {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    background-color:var(--surface);
    border:var(--border-hairline);
    padding:var(--space-md);
}


.catalog-item-media {
    position:relative;
    width:100%;
    aspect-ratio:16 / 10;
    overflow:hidden;
    background-color:var(--ground);
    border:var(--border-hairline);
}


.catalog-item-media img {
    width:100%;
    height:100%;
    object-fit:cover;
}


.catalog-item-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-lg);
    font-weight:800;
    color:var(--ink);
}


.catalog-price-badge {
    display:inline-flex;
    align-items:baseline;
    gap:0.35rem;
    font-family:var(--ruhu-9d0);
    font-size:var(--text-sm);
    color:#f3d28e;
    background-color:var(--surface-2);
    padding:0.35rem 0.65rem;
    border-left:2px solid var(--accent);
    align-self:flex-start;
}


.catalog-price-badge span { color:#fce0e0; }


.catalog-price-badge strong {
    font-size:var(--text-base);
    color:#f3d28e;
}


.catalog-item-desc {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:var(--leading-normal);
}


.inquiry-desk-section {
    padding-block:var(--space-xl);
    border-top:var(--border-heavy);
    background-color:var(--surface);
}


.inquiry-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-lg);
}


@media (min-width: 860px) {
    .inquiry-grid {
        grid-template-columns:1.2fr 1.8fr;
        gap:var(--space-xl);
    }
}


.inquiry-info-col {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
}


.inquiry-form-card {
    background-color:var(--ground);
    border:var(--border-heavy);
    padding:clamp(1.25rem, 1rem + 1vw, 2.25rem);
}


.error-page-wrap {
    min-height:60vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding-block:var(--space-2xl);
    max-width:60ch;
}


.error-code {
    font-family:var(--ruhu-9d0);
    font-size:clamp(3rem, 2.5rem + 3vw, 5rem);
    font-weight:900;
    color:var(--accent);
    line-height:var(--leading-none);
    margin-bottom:var(--space-xs);
}


.error-title {
    font-family:var(--ruhu-f48);
    font-size:var(--text-2xl);
    font-weight:800;
    color:var(--ink);
    margin-bottom:var(--space-sm);
}


.error-text {
    font-size:var(--text-base);
    color:var(--ink-soft);
    margin-bottom:var(--space-lg);
}


.error-actions {
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-sm);
}


@media print {
    body {
        background:#fff !important;
        color:#111 !important;
    }
    .phone-dock,
    .site-header,
    .consent-banner,
    .chat-launcher,
    .chat-panel { display:none !important; }
    .doc-card-sheet {
        box-shadow:none !important;
        border:1px solid #111 !important;
    }
}
