@charset "UTF-8";

.page-masthead {
    padding-top:calc(var(--header-height) + var(--space-xl));
    padding-bottom:var(--space-xl);
    border-bottom:1px solid var(--line);
    background-color:var(--ground);
}

.page-masthead__inner {
    display:flex;
    flex-direction:column;
    gap:var(--space-sm);
}

.page-masthead__meta {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--ink-soft);
    display:flex;
    align-items:center;
    gap:0.75rem;
}

.page-masthead__meta::before {
    content:"";
    display:inline-block;
    width:1.5rem;
    height:1px;
    background-color:var(--accent);
}

.page-masthead__title {
    font-size:var(--font-size-3xl);
    line-height:var(--line-height-tight);
    color:var(--ink);
    max-width:22ch;
    text-wrap:balance;
}

.page-masthead__lede {
    font-family:var(--nofi-36d);
    font-size:var(--font-size-md);
    line-height:var(--line-height-snug);
    color:var(--ink-soft);
    max-width:58ch;
    margin-top:var(--space-xs);
}

.hero-inset-plate {
    padding-top:calc(var(--header-height) + var(--space-lg));

    padding-bottom:var(--space-2xl);
    position:relative;
    overflow:hidden;
    background-color:var(--ground);
    min-height:100vh;
    min-height:100svh;
}

@media (min-width: 992px) {
    .hero-inset-plate {
        padding-top:calc(var(--header-height) + var(--space-2xl));
        padding-bottom:var(--space-3xl);
        min-height:calc(100vh - var(--header-height));
        min-height:calc(100svh - var(--header-height));
        display:flex;

        flex-direction:column;
        justify-content:center;
    }
}

.hero-inset-plate__headline-wrap {
    width:100%;
    margin-bottom:var(--space-xl);
}

.hero-inset-plate__headline {
    font-size:clamp(2.2rem, 5.2vw, 4.4rem);
    line-height:1.08;
    letter-spacing:-0.025em;
    color:var(--ink);
    max-width:18ch;
    text-wrap:balance;
}

.hero-inset-plate__headline span { display:block; }

.hero-inset-plate__headline .accent-offset {
    color:var(--accent);
    font-style:italic;
    padding-left:clamp(1rem, 4vw, 3rem);
}

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

@media (min-width: 880px) {
    .hero-inset-plate__grid {
        grid-template-columns:minmax(280px, 1fr) minmax(420px, 2fr);
        gap:clamp(2rem, 4vw, 4rem);
        align-items:end;
    }
}

.hero-inset-plate__left-margin {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
    order:2;
}

@media (min-width: 880px) {
    .hero-inset-plate__left-margin {
        order:1;
        padding-bottom:var(--space-sm);
    }
}

.hero-inset-plate__lede {
    font-family:var(--nofi-36d);
    font-size:var(--font-size-md);
    line-height:var(--line-height-snug);
    color:var(--ink-soft);
    max-width:44ch;
}

.hero-inset-plate__action-slot {
    display:flex;
    flex-direction:column;
    gap:var(--space-xs);
    align-items:flex-start;
    margin-top:var(--space-2xs);
}

.hero-inset-plate__specs-strip {
    display:flex;
    flex-wrap:wrap;
    gap:0.75rem 1.5rem;
    padding-top:var(--space-sm);
    border-top:1px solid var(--line);
    margin-top:var(--space-xs);

}

.hero-inset-plate__spec-unit {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:0.05em;
}

.hero-inset-plate__spec-unit strong {
    display:block;
    font-family:var(--nofi-36d);
    font-size:var(--font-size-sm);
    color:var(--ink);
    text-transform:none;
    letter-spacing:normal;
}

.hero-inset-plate__plate-wrap {
    order:1;
    position:relative;
}

@media (min-width: 880px) {
    .hero-inset-plate__plate-wrap { order:2; }
}

.hero-inset-plate__figure {
    position:relative;
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:clamp(0.5rem, 1.2vw, 1rem);
    box-shadow:var(--shadow-plate);
    transform-origin:center bottom;
    will-change:transform;
}

.hero-inset-plate__img {
    width:100%;
    aspect-ratio:16 / 10;
    object-fit:cover;
    object-position:70% 50%;
    display:block;
    border:1px solid var(--line);
}

.hero-inset-plate__caption {
    margin-top:var(--space-xs);
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    line-height:1.45;
    color:var(--ink-soft);
    letter-spacing:0.03em;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:0.5rem;
}

.hero-inset-plate__rule-draw {
    width:100%;
    height:1px;
    background-color:var(--line);
    position:relative;
    margin-top:var(--space-xl);
    transform-origin:left center;
}

.hero-inset-plate__rule-draw::after {
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:3.5rem;
    height:2px;
    background-color:var(--accent);
}

/* Scroll-scene technique on the opening screen */
[data-opening] [data-scene] { animation-timeline:view(); }

[data-opening] [data-scene="figure"],
[data-scene="figure"] { animation-timeline:view(); }

[data-opening] [data-scene="rule"],
[data-scene="rule"],
[data-opening] [data-scene="rule-draw"],
[data-scene="rule-draw"] { animation-timeline:view(); }

[data-opening] [data-scene="stack"],
[data-scene="stack"],
[data-opening] [data-scene='plate'],
[data-scene='plate'] { animation-timeline:view(); }

@supports (animation-timeline: view()) or (animation-timeline: scroll()) {
    @keyframes heroPlateReveal {
        from {
            transform:scale(0.96) translateY(24px);
            opacity:0.85;
        }
        to {
            transform:scale(1) translateY(0);
            opacity:1;
        }
    }

    @keyframes heroRuleExpand {
        from { transform:scaleX(0.2); }
        to { transform:scaleX(1); }
    }

    @keyframes heroLedeShift {
        from { transform:translateY(18px); }
        to { transform:translateY(0); }
    }

    @keyframes heroFigureAssemble {
        from {
            transform:scale(0.96) translateY(24px);
            opacity:0.85;
        }
        to {
            transform:scale(1) translateY(0);
            opacity:1;
        }
    }

    @keyframes heroRuleDraw {
        from { transform:scaleX(0.2); }
        to { transform:scaleX(1); }
    }

    @keyframes heroStackFan {
        from { transform:translateY(18px); }
        to { transform:translateY(0); }
    }

    [data-opening] [data-scene="figure"],
    [data-scene="figure"],
    .hero-inset-plate__figure {
        animation:heroPlateReveal linear both;
        animation-timeline:view();
        animation-range:entry 10% cover 40%;
    }

    [data-opening] [data-scene="rule"],
    [data-scene="rule"],
    [data-opening] [data-scene="rule-draw"],
    [data-scene="rule-draw"],
    .hero-inset-plate__rule-draw {
        animation:heroRuleExpand linear both;
        animation-timeline:view();
        animation-range:entry 0% cover 30%;
    }

    [data-opening] [data-scene="stack"],
    [data-scene="stack"],
    [data-opening] [data-scene='plate'],
    [data-scene='plate'],
    .hero-inset-plate__left-margin {
        animation:heroLedeShift linear both;
        animation-timeline:view();
        animation-range:entry 0% cover 35%;
    }
}

.section-exchange {
    padding:var(--space-3xl) 0;
    position:relative;
}

.section-exchange:nth-of-type(even) {
    background-color:var(--surface);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:var(--space-xl) 0;
}

.section-exchange:nth-of-type(even) .exchange-unit__reply { background-color:transparent; }

.exchange-unit {
    display:flex;
    flex-direction:column;
    gap:var(--space-lg);
    max-width:920px;
    margin:0 auto;
}

.exchange-unit__customer {
    padding:var(--space-sm) 0 var(--space-md) var(--space-lg);
    border-left:2px solid var(--accent);
    background-color:transparent;
    max-width:58ch;
}

.exchange-unit__customer-who {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--ink-soft);
    margin-bottom:var(--space-2xs);
    display:flex;
    align-items:center;
    gap:0.5rem;
}

.exchange-unit__customer-who .icon {
    width:14px;
    height:14px;
    fill:var(--ink-soft);
}

.exchange-unit__customer-query {
    font-family:var(--nofi-66e);
    font-size:clamp(1.4rem, 2.5vw, 1.85rem);
    font-weight:500;
    line-height:var(--line-height-heading);
    color:var(--ink);
    font-style:italic;
}

.exchange-unit__reply {
    padding:clamp(1.75rem, 4vw, 3rem);
    background-color:var(--ground);
    border:none;
    border-top:1px solid var(--line);
    box-shadow:none;
    margin-left:clamp(1rem, 4vw, 3rem);
}

.exchange-unit__reply-who {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--accent);
    font-weight:600;
    margin-bottom:var(--space-xs);
    display:flex;
    align-items:center;
    gap:0.5rem;
}

.exchange-unit__reply-body {
    font-family:var(--nofi-36d);
    font-size:var(--font-size-base);
    line-height:var(--line-height-body);
    color:var(--ink);
}

.exchange-unit__reply-body p + p { margin-top:1em; }

.exchange-unit__metrics {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:var(--space-sm);
    margin-top:var(--space-md);
    padding-top:var(--space-md);
    border-top:1px solid var(--line);
}

.exchange-unit__metric-item {
    display:flex;
    flex-direction:column;
}

.exchange-unit__metric-label {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:0.06em;
}

.exchange-unit__metric-val {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-md);
    font-weight:500;
    color:var(--ink);
    margin-top:0.2rem;
}

.exchange-unit__evidence {
    margin-top:var(--space-lg);
    padding-top:var(--space-md);
    border-top:1px solid var(--line);
}

.exchange-unit__evidence-frame {
    position:relative;
    background-color:var(--ground);
    border:1px solid var(--line);
    padding:0.5rem;
}

.exchange-unit__evidence-img {
    width:100%;
    height:auto;
    aspect-ratio:16 / 10;
    object-fit:cover;
    display:block;
}

.exchange-unit__evidence-caption {
    margin-top:var(--space-xs);
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    color:var(--ink-soft);
    line-height:1.4;
    letter-spacing:0.02em;
}

.scrolly-feature {
    padding:var(--space-3xl) 0;
    background-color:var(--ground);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    position:relative;
}

.scrolly-feature__intro {
    margin-bottom:var(--space-2xl);
    max-width:720px;
}

.scrolly-feature__layout {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-xl);
    position:relative;
}

@media (min-width: 900px) {
    .scrolly-feature__layout {
        grid-template-columns:minmax(340px, 1.1fr) minmax(380px, 1.3fr);
        gap:clamp(2rem, 5vw, 4.5rem);
        align-items:start;
    }
}

.scrolly-feature__sticky-col { position:relative; }

@media (min-width: 900px) {
    .scrolly-feature__sticky-col {
        position:sticky;
        top:calc(var(--header-height) + var(--space-lg));
    }
}

.scrolly-feature__frame {
    position:relative;
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:0.75rem;
    box-shadow:var(--shadow-plate);
}

.scrolly-feature__img {
    width:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    object-position:61% 42%;
    border:1px solid var(--line);
    display:block;
}

.scrolly-feature__bar-wrap {
    width:100%;
    height:3px;
    background-color:var(--surface-2);
    margin-top:0.75rem;
    position:relative;
    overflow:hidden;
}

.scrolly-feature__bar-fill {
    position:absolute;
    top:0;
    left:0;
    height:100%;
    width:100%;
    background-color:var(--accent);
    transform-origin:left center;
    transform:scaleX(0.33);
    transition:transform var(--transition-medium);
}

@supports (animation-timeline: view()) {
    @keyframes scrollyBarFill {
        from { transform:scaleX(0.1); }
        to { transform:scaleX(1); }
    }

    .scrolly-feature__bar-fill {
        animation:scrollyBarFill linear both;
        animation-timeline:view();
        animation-range:entry 10% exit 90%;
    }
}

.scrolly-feature__caption {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    color:var(--ink-soft);
    margin-top:0.5rem;
    line-height:1.4;
}

.scrolly-feature__steps-col {
    display:flex;
    flex-direction:column;
    gap:var(--space-2xl);
}

.scrolly-step {
    padding:var(--space-lg);
    background-color:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--accent);
    transition:border-color var(--transition-fast), background-color var(--transition-fast);
}

.scrolly-step:hover { background-color:#e5dedc; }

.scrolly-step__phase {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--accent);
    font-weight:500;
    margin-bottom:0.5rem;
}

.scrolly-step__title {
    font-family:var(--nofi-66e);
    font-size:var(--font-size-xl);
    line-height:var(--line-height-heading);
    margin-bottom:var(--space-sm);
    color:var(--ink);
}

.scrolly-step__body {
    font-family:var(--nofi-36d);
    font-size:var(--font-size-base);
    line-height:var(--line-height-body);
    color:var(--ink-soft);
}

.scrolly-step__body strong { color:var(--ink); }

.scrolly-step__spec-bar {
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    margin-top:var(--space-md);
    padding-top:var(--space-sm);
    border-top:1px solid var(--line);
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    color:var(--ink-soft);
}

.catalogue-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-xl);
    margin:var(--space-2xl) 0;
}

@media (min-width: 900px) {
    .catalogue-grid { grid-template-columns:repeat(3, min-width: 0, 1fr); }
}

.catalogue-item-card {
    background-color:var(--surface);
    border:1px solid var(--line);
    display:flex;
    flex-direction:column;
    padding:var(--space-md);
    transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.catalogue-item-card:hover {
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(43, 40, 39, 0.08);
    border-color:var(--ink-soft);
}

.catalogue-item-card__figure {
    position:relative;
    margin-bottom:var(--space-md);
    background-color:var(--ground);
    border:1px solid var(--line);
    overflow:hidden;
}

.catalogue-item-card__img {
    width:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    display:block;
    transition:transform var(--transition-medium);
}

.catalogue-item-card:hover .catalogue-item-card__img { transform:scale(1.02); }

.catalogue-item-card__price-badge {
    position:absolute;
    bottom:0.5rem;
    right:0.5rem;
    background-color:var(--ink);
    color:var(--ground);
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    font-weight:500;
    padding:0.3rem 0.6rem;
    letter-spacing:0.04em;
    border:1px solid var(--ink);
}

.catalogue-item-card__header { margin-bottom:var(--space-xs); }

.catalogue-item-card__title {
    font-family:var(--nofi-66e);
    font-size:var(--font-size-lg);
    line-height:1.25;
    color:var(--ink);
    margin-bottom:0.35rem;
}

.catalogue-item-card__price-line {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-sm);
    color:var(--accent);
    font-weight:600;
    margin-bottom:var(--space-xs);
}

.catalogue-item-card__desc {
    font-family:var(--nofi-36d);
    font-size:var(--font-size-sm);
    line-height:1.55;
    color:var(--ink-soft);
    margin-bottom:var(--space-md);
    flex-grow:1;
}

.catalogue-item-card__specs {
    border-top:1px solid var(--line);
    padding-top:var(--space-xs);
    margin-bottom:var(--space-md);
    font-size:var(--font-size-xs);
}

.catalogue-item-card__actions {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:var(--space-xs);
    border-top:1px solid var(--line);
}

.catalogue-breakdown {
    margin:var(--space-2xl) 0;
    padding:var(--space-xl);
    background-color:var(--surface);
    border:1px solid var(--line);
}

.catalogue-breakdown__title {
    font-family:var(--nofi-66e);
    font-size:var(--font-size-xl);
    margin-bottom:var(--space-sm);
}

.catalogue-breakdown__lede {
    color:var(--ink-soft);
    max-width:65ch;
    margin-bottom:var(--space-lg);
}

.editorial-table-wrap {
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border:1px solid var(--line);
    background-color:var(--ground);
}

.editorial-table {
    width:100%;
    border-collapse:collapse;
    text-align:left;
    font-family:var(--nofi-36d);
    font-size:var(--font-size-sm);
    min-width:600px;
}

.editorial-table th,
.editorial-table td {
    padding:0.85rem 1.15rem;
    border-bottom:1px solid var(--line);
    vertical-align:top;
}

.editorial-table th {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.08em;
    background-color:var(--surface);
    color:var(--ink);
    font-weight:600;
    border-bottom:2px solid var(--line);
}

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

.editorial-table tr:hover td { background-color:rgba(223, 215, 213, 0.4); }

.studio-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-xl);
    margin:var(--space-2xl) 0;
}

@media (min-width: 880px) {
    .studio-grid {
        grid-template-columns:1.1fr 1fr;
        align-items:center;
    }
}

.studio-narrative {
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
}

.studio-credentials-box {
    padding:var(--space-md);
    background-color:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--accent);
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    margin-top:var(--space-sm);
}

.studio-credentials-box__title {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--accent);
    font-weight:600;
}

.studio-credentials-box__text {
    font-family:var(--nofi-36d);
    font-size:var(--font-size-sm);
    line-height:1.5;
    color:var(--ink);
}

.studio-gallery-strip {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-md);
    margin:var(--space-xl) 0;
}

@media (min-width: 680px) {
    .studio-gallery-strip { grid-template-columns:repeat(2, min-width: 0, 1fr); }
}

.studio-figure {
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:0.5rem;
}

.studio-figure img {
    width:100%;
    aspect-ratio:16 / 10;
    object-fit:cover;
    border:1px solid var(--line);
}

.studio-materials-matrix {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:var(--space-md);
    margin:var(--space-xl) 0;
}

.material-card {
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:var(--space-md);
}

.material-card__title {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--ink);
    font-weight:600;
    margin-bottom:0.35rem;
}

.material-card__desc {
    font-size:var(--font-size-sm);
    line-height:1.5;
    color:var(--ink-soft);
}

.contact-layout {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-xl);
    margin:var(--space-2xl) 0;
}

@media (min-width: 880px) {
    .contact-layout {
        grid-template-columns:1fr 1.2fr;
        gap:clamp(2rem, 4vw, 4rem);
    }
}

.contact-details-col {
    display:flex;
    flex-direction:column;
    gap:var(--space-lg);
}

.contact-card {
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:var(--space-lg);
}

.contact-card h2,
.contact-card h3 {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:#733c3b;
    margin-bottom:var(--space-sm);
}

.contact-card p {
    font-size:var(--font-size-base);
    line-height:1.6;
    color:var(--ink);
}

.contact-directions-link {
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    margin-top:var(--space-sm);
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink);
    border-bottom:1px solid var(--ink);
    padding-bottom:2px;
    min-height:44px;
}

.contact-directions-link:hover {
    color:var(--accent);
    border-color:var(--accent);
}

.contact-form-col {
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:clamp(1.25rem, 3.5vw, 2.5rem);
}

.contact-form-col h2 {
    font-size:var(--font-size-xl);
    margin-bottom:0.5rem;
}

.contact-form-col .form-intro {
    font-size:var(--font-size-sm);
    color:var(--ink-soft);
    margin-bottom:var(--space-lg);
}

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

@media (min-width: 600px) {
    .form-grid-2 { grid-template-columns:repeat(2, min-width: 0, 1fr); }
}

.legal-dense-columns {
    margin:var(--space-2xl) 0;
    padding:var(--space-xl) 0;
    border-top:1px solid var(--line);
}

.legal-dense-columns__body {
    column-count:1;
    column-gap:var(--space-2xl);
    column-rule:1px solid var(--line);
    font-size:var(--font-size-sm);
    line-height:1.65;
    color:var(--ink);
}

@media (min-width: 768px) {
    .legal-dense-columns__body { column-count:2; }
}

.legal-clause {
    break-inside:avoid;
    margin-bottom:var(--space-lg);
}

.legal-runin {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.08em;
    font-weight:600;
    color:var(--ink);
    margin-right:0.4rem;
    display:inline;
}

.legal-clause p {
    display:inline;
    max-width:none;
}

.legal-clause p + p {
    display:block;
    margin-top:0.75em;
}

.legal-ad-disclosure-box {
    break-inside:avoid;
    background-color:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--accent);
    padding:var(--space-md);
    margin-bottom:var(--space-lg);
}

.legal-ad-disclosure-box__title {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--accent);
    font-weight:600;
    margin-bottom:0.35rem;
}

.dated-rail-layout {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-xl);
    margin:var(--space-2xl) 0;
    position:relative;
}

@media (min-width: 820px) {
    .dated-rail-layout {
        grid-template-columns:240px 1fr;
        gap:var(--space-2xl);
    }
}

.dated-rail-sidebar {
    border-bottom:1px solid var(--line);
    padding-bottom:var(--space-lg);
}

@media (min-width: 820px) {
    .dated-rail-sidebar {
        border-bottom:none;
        border-right:1px solid var(--line);
        padding-bottom:0;
        padding-right:var(--space-lg);
        position:sticky;
        top:calc(var(--header-height) + var(--space-md));
        align-self:start;
    }
}

.dated-rail__title {
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--accent);
    font-weight:600;
    margin-bottom:var(--space-md);
}

.dated-rail__timeline {
    list-style:none;
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    gap:var(--space-sm);
    margin:0;
    padding:0;
}

@media (min-width: 820px) {
    .dated-rail__timeline {
        flex-direction:column;
        gap:var(--space-md);
    }
}

.dated-rail__item {
    position:relative;
    padding-left:1.25rem;
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
}

.dated-rail__item::before {
    content:"";
    position:absolute;
    left:0;
    top:0.35em;
    width:7px;
    height:7px;
    background-color:var(--accent);
    border-radius:50%;
}

.dated-rail__marker-date {
    font-weight:600;
    color:var(--ink);
    display:block;
}

.dated-rail__marker-desc {
    color:var(--ink-soft);
    font-size:0.9em;
}

.dated-rail-content {
    display:flex;
    flex-direction:column;
    gap:var(--space-xl);
}

.dated-rail-section {
    padding-bottom:var(--space-lg);
    border-bottom:1px solid var(--line);
}

.dated-rail-section:last-child { border-bottom:none; }

.dated-rail-section__header { margin-bottom:var(--space-sm); }

.dated-rail-section__header h3 {
    font-family:var(--nofi-66e);
    font-size:var(--font-size-lg);
    color:var(--ink);
}

.margin-notes-layout {
    display:grid;
    grid-template-columns:1fr;
    gap:var(--space-xl);
    margin:var(--space-2xl) 0;
}

@media (min-width: 880px) {
    .margin-notes-layout {
        grid-template-columns:minmax(0, 1.8fr) minmax(220px, 1fr);
        gap:clamp(2rem, 5vw, 4rem);
        align-items:start;
    }
}

.margin-notes-main {
    display:flex;
    flex-direction:column;
    gap:var(--space-xl);
}

.margin-notes-block {
    display:flex;
    flex-direction:column;
    gap:var(--space-sm);
}

.margin-notes-block h2,
.margin-notes-block h3 {
    font-family:var(--nofi-66e);
    color:var(--ink);
}

.margin-notes-block p {
    font-size:var(--font-size-base);
    line-height:var(--line-height-body);
}

.margin-aside {
    display:block;
    background-color:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--accent);
    padding:0.75rem 1rem;
    margin-top:0.75rem;
    font-family:var(--nofi-2bf);
    font-size:var(--font-size-xs);
    line-height:1.5;
    color:var(--ink-soft);
}

@media (min-width: 880px) {
    .margin-notes-aside-col {
        position:sticky;
        top:calc(var(--header-height) + var(--space-lg));
        display:flex;
        flex-direction:column;
        gap:var(--space-lg);
    }

    .margin-aside--desktop { display:block; }

    .margin-aside--inline { display:none; }
}

@media (max-width: 879px) {
    .margin-notes-aside-col { display:none; }

    .margin-aside--inline { display:block; }
}

.margin-aside__title {
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--ink);
    margin-bottom:0.25rem;
    display:block;
}

.faq-accordion {
    display:flex;
    flex-direction:column;
    gap:var(--space-xs);
    margin:var(--space-xl) 0;
    border-top:1px solid var(--line);
}

.faq-item { border-bottom:1px solid var(--line); }

.faq-trigger {
    appearance:none;
    background:none;
    border:0;
    width:100%;
    padding:var(--space-md) 0;
    text-align:left;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    cursor:pointer;
    min-height:44px;
}

.faq-trigger__question {
    font-family:var(--nofi-66e);
    font-size:var(--font-size-md);
    font-weight:500;
    color:var(--ink);
    line-height:1.35;
}

.faq-trigger__icon {
    width:1.25rem;
    height:1.25rem;
    flex-shrink:0;
    transition:transform var(--transition-fast);
    color:var(--accent);
}

.faq-trigger[aria-expanded="true"] .faq-trigger__icon { transform:rotate(180deg); }

.faq-panel {
    padding-bottom:var(--space-md);
    font-family:var(--nofi-36d);
    font-size:var(--font-size-base);
    line-height:var(--line-height-body);
    color:var(--ink-soft);
    max-width:65ch;
}

.faq-panel p + p { margin-top:0.85em; }

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

.error-scene {
    padding:calc(var(--header-height) + var(--space-3xl)) 0 var(--space-3xl);
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:60vh;
}

.error-scene__code {
    font-family:var(--nofi-2bf);
    font-size:clamp(3rem, 10vw, 6rem);
    font-weight:500;
    color:var(--accent);
    line-height:1;
    margin-bottom:var(--space-xs);
}

.error-scene__title {
    font-size:var(--font-size-2xl);
    margin-bottom:var(--space-sm);
}

.error-scene__desc {
    color:var(--ink-soft);
    max-width:48ch;
    margin-bottom:var(--space-lg);
}

.error-scene__actions {
    display:flex;
    flex-wrap:wrap;
    gap:var(--space-sm);
    justify-content:center;
}

.inquiry-banner {
    background-color:var(--surface);
    border:1px solid var(--line);
    padding:clamp(1.5rem, 4vw, 3rem);
    margin:var(--space-3xl) 0;
    display:flex;
    flex-direction:column;
    gap:var(--space-md);
}

@media (min-width: 800px) {
    .inquiry-banner {
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
    }
}

.inquiry-banner__content { max-width:58ch; }

.inquiry-banner__title {
    font-size:var(--font-size-xl);
    margin-bottom:0.5rem;
}

.inquiry-banner__lede { color:var(--ink-soft); }

.inquiry-banner__action { flex-shrink:0; }
