
.opening-hero {
    position:relative;
    background-color:var(--ground);
    border-bottom:var(--border-subtle);
    overflow:hidden;
    padding-top:var(--space-xl);
}

.opening-hero__grid {
    display:grid;
    grid-template-columns:1fr;
    min-height:calc(100vh - var(--header-height));
    align-items:stretch;
}

@media (min-width: 900px) {
    .opening-hero__grid { grid-template-columns:minmax(320px, 1.05fr) minmax(360px, 0.95fr); }
}

.opening-hero__copy {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:var(--space-xl) var(--container-pad) var(--space-2xl) var(--container-pad);
    max-width:680px;
    position:relative;
    z-index:2;
}

@media (min-width: 900px) {
    .opening-hero__copy {
        padding-left:clamp(1.5rem, 4vw, 5rem);
        padding-right:var(--space-xl);
    }
}

.opening-hero__eyebrow {
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--accent);
    margin-bottom:var(--space-md);
    display:block;
}

.opening-hero__title {
    font-family:var(--kiku-4d8);
    font-size:clamp(2.4rem, 2rem + 3vw, 4.8rem);
    line-height:1.08;
    font-weight:700;
    letter-spacing:-0.025em;
    color:var(--ink);
    margin-bottom:var(--space-md);
    text-wrap:balance;
}

.opening-hero__lead {
    font-size:var(--text-lg);
    line-height:var(--line-height-heading);
    color:var(--ink);
    margin-bottom:var(--space-lg);
    max-width:52ch;
}

.opening-hero__actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:var(--space-md);
    margin-top:var(--space-xs);
}

.opening-hero__meta {
    margin-top:var(--space-xl);
    padding-top:var(--space-md);
    border-top:var(--border-subtle);
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(130px, 1fr));
    gap:var(--space-md);
}

.hero-metric {
    display:flex;
    flex-direction:column;
    gap:2px;
}

.hero-metric__val {
    font-family:var(--kiku-e1e);
    font-size:var(--text-md);
    font-weight:600;
    color:var(--accent);
}

.hero-metric__lbl {
    font-size:var(--text-xs);
    color:var(--ink-soft);
    line-height:1.35;
}

.opening-hero__media {
    position:relative;
    min-height:380px;
    background-color:var(--surface);
    overflow:hidden;
    border-left:0;
    border-top:var(--border-subtle);
}

@media (min-width: 900px) {
    .opening-hero__media {
        border-top:0;
        border-left:var(--border-subtle);
        min-height:100%;
    }
}

.opening-hero__img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:80% 20%;
    aspect-ratio:4 / 5;
}

@media (min-width: 900px) {
    .opening-hero__img {
        height:100%;
        aspect-ratio:auto;
    }
}

.opening-hero__caption {
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    padding:var(--space-sm) var(--space-md);
    background:rgba(15, 45, 44, 0.92);
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    color:#DDF8F7;
}

.held-section {
    position:relative;
    border-bottom:var(--border-subtle);
    padding:var(--space-3xl) 0;

}

.held-section:nth-of-type(even) { background-color:rgba(26, 77, 76, 0.25); }

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

@media (min-width: 960px) {
    .held-layout {
        grid-template-columns:minmax(280px, 0.42fr) minmax(400px, 0.58fr);
        gap:clamp(2rem, 4vw, 5rem);
    }
}

.held-layout--reverse { direction:ltr; }

@media (min-width: 960px) {
    .held-layout--reverse { grid-template-columns:minmax(400px, 0.58fr) minmax(280px, 0.42fr); }

    .held-layout--reverse .held-column { order:2; }

    .held-layout--reverse .scroll-column { order:1; }
}

.held-column { position:relative; }

@media (min-width: 960px) {
    .held-column {
        position:sticky;
        top:calc(var(--header-height) + var(--space-xl));
        align-self:start;
        padding-bottom:var(--space-lg);
    }
}

.held-title {
    font-family:var(--kiku-4d8);
    font-size:clamp(2rem, 1.7rem + 1.8vw, 3.2rem);
    line-height:1.15;
    font-weight:700;
    letter-spacing:-0.02em;
    color:var(--ink);
    margin-bottom:var(--space-md);
    text-wrap:balance;
}

.held-standfirst {
    font-family:var(--kiku-4d8);
    font-size:var(--text-lg);
    font-style:italic;
    line-height:1.45;
    color:var(--ink);
    margin-bottom:var(--space-md);
}

.held-meta-list {
    list-style:none;
    padding:0;
    margin:var(--space-lg) 0 0 0;
    border-top:var(--border-subtle);
    display:flex;
    flex-direction:column;
}

.held-meta-item {
    display:flex;
    flex-direction:column;
    padding:var(--space-xs) 0;
    border-bottom:var(--border-subtle);
}

.held-meta-key {
    font-family:var(--kiku-e1e);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--ink-soft);
}

.held-meta-val {
    font-size:var(--text-sm);
    color:var(--ink);
    font-weight:500;
}

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

.scroll-prose {
    font-size:var(--text-base);
    line-height:var(--line-height-body);
    color:var(--ink);
}

.scroll-prose p { margin-bottom:var(--space-md); }

.scrolly-section {
    position:relative;
    border-bottom:var(--border-subtle);
    padding:var(--space-3xl) 0;
    background-color:var(--ground);
    overflow-x:clip;
}

.scrolly-layout {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-2xl);
    align-items:start;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}

.scrolly-stage,
.scrolly-story,
.scrolly-step {
    min-width:0;
    max-width:100%;
}

@media (min-width: 960px) {
    .scrolly-layout {
        grid-template-columns:minmax(320px, 0.48fr) minmax(340px, 0.52fr);
        gap:clamp(2rem, 4vw, 5rem);
    }
}

.scrolly-stage { position:relative; }

@media (min-width: 960px) {
    .scrolly-stage {
        position:sticky;

        top:calc(var(--header-height) + var(--space-md));
        align-self:start;
        height:calc(100vh - var(--header-height) - var(--space-2xl));
        display:flex;
        flex-direction:column;
    }
}

.scrolly-stage__frame {
    position:relative;
    width:100%;
    height:380px;
    background-color:var(--surface);
    border:var(--border-subtle);
    overflow:hidden;
    border-radius:var(--radius-sharp);
}

@media (min-width: 960px) {
    .scrolly-stage__frame {
        height:100%;
        flex:1 1 auto;
    }
}

.scrolly-stage__figure {
    position:absolute;

    inset:0;
    opacity:1;
    transition:opacity var(--duration-base) var(--ease-standard);
}

.scrolly-stage__figure img {
    width:100%;
    height:100%;
    object-fit:cover;
}

.scrolly-progress {
    height:3px;
    width:100%;
    background-color:var(--surface-2);
    margin-top:var(--space-sm);
    position:relative;
    overflow:hidden;
}

.scrolly-progress__bar {
    height:100%;
    width:0%;
    background-color:var(--accent);
    transition:width 100ms linear;
}

.scrolly-story {
    display:flex;
    flex-direction:column;
    gap:clamp(3rem, 10vh, 8rem);
}

.scrolly-step {
    padding:var(--space-lg);
    background-color:var(--surface);
    border:var(--border-subtle);
    border-radius:var(--radius-sharp);
    transition:border-color var(--duration-fast) var(--ease-standard),
        background-color var(--duration-fast) var(--ease-standard);
}

.scrolly-step.is-active {
    border-color:var(--accent);
    background-color:var(--surface-2);
}

.scrolly-step__tag {
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:0.1em;
    margin-bottom:var(--space-xs);
    display:block;
}

.scrolly-step__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-xl);
    font-weight:600;
    margin-bottom:var(--space-xs);
    color:var(--ink);
}

.scrolly-step__body {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:var(--line-height-body);
    margin-bottom:var(--space-sm);
}

.scrolly-step__specs {
    margin:0;
    padding:0;
    list-style:none;
    border-top:var(--border-subtle);
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));
    gap:var(--space-xs);
    padding-top:var(--space-xs);
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    color:var(--ink);
}

.duotone-break {
    position:relative;
    width:100%;
    min-height:480px;
    background-color:#0B2423;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    border-top:var(--border-subtle);
    border-bottom:var(--border-subtle);
}

.duotone-break__media {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

.duotone-break__media img {
    width:100%;
    height:100%;
    object-fit:cover;
    filter:contrast(115%) brightness(65%) grayscale(20%);
}

.duotone-break__overlay {
    position:absolute;
    inset:0;
    background-color:rgba(21, 64, 63, 0.78);
    mix-blend-mode:multiply;
}

.duotone-break__tint {
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 50% 50%, rgba(196, 154, 74, 0.12) 0%, rgba(17, 49, 48, 0.85) 100%);
}

.duotone-break__content {
    position:relative;
    z-index:2;
    text-align:center;
    max-width:860px;
    padding:var(--space-2xl) var(--container-pad);
}

.duotone-break__quote {
    font-family:var(--kiku-4d8);
    font-size:clamp(1.8rem, 1.4rem + 2vw, 3.4rem);
    line-height:1.18;
    font-style:italic;
    font-weight:600;
    color:var(--ink);
    margin-bottom:var(--space-md);
    text-wrap:balance;
    border-left:0;
    padding:0;
}

.duotone-break__citation {
    display:block;
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    text-transform:uppercase;
    letter-spacing:0.14em;
    color:var(--accent);
}

.catalogue-band { padding:var(--space-2xl) 0; }

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

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

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

.produce-card {
    background-color:var(--surface);
    border:var(--border-subtle);
    border-radius:var(--radius-sharp);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    transition:border-color var(--duration-fast) var(--ease-standard),
        box-shadow var(--duration-fast) var(--ease-standard),
        transform var(--duration-fast) var(--ease-standard);
}

.produce-card:hover {
    border-color:var(--accent);
    box-shadow:var(--shadow-card);
    transform:translateY(-2px);
}

.produce-card__media {
    position:relative;
    aspect-ratio:16 / 11;
    background-color:var(--surface-2);
    overflow:hidden;
}

.produce-card__media img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform var(--duration-slow) var(--ease-standard);
}

.produce-card:hover .produce-card__media img { transform:scale(1.04); }

.produce-card__badge {
    position:absolute;
    top:var(--space-xs);
    left:var(--space-xs);
    background-color:var(--ground);
    color:var(--ink);
    border:1px solid var(--line);
    padding:2px 8px;
    font-family:var(--kiku-e1e);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.05em;
    border-radius:var(--radius-sharp);
}

.produce-card__content {
    padding:var(--space-md);
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
}

.produce-card__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-lg);
    font-weight:600;
    color:var(--ink);
    margin-bottom:var(--space-2xs);
}

.produce-card__price-row {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:var(--space-xs);
}

.produce-card__price {
    font-family:var(--kiku-e1e);
    font-size:var(--text-sm);
    color:var(--accent);
    font-weight:600;
}

.produce-card__unit {
    font-family:var(--kiku-e1e);
    font-size:11px;
    color:var(--ink-soft);
}

.produce-card__desc {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:var(--line-height-body);
    margin-bottom:var(--space-md);
    flex:1 1 auto;
}

.produce-card__specs {
    border-top:var(--border-subtle);
    padding-top:var(--space-xs);
    margin:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:4px;
}

.produce-card__spec-row {
    display:flex;
    justify-content:space-between;
    font-size:12px;
}

.produce-card__spec-label { color:var(--ink-soft); }

.produce-card__spec-val {
    font-family:var(--kiku-e1e);
    color:var(--ink);
}

.provenance-card {
    background-color:var(--surface);
    border:var(--border-subtle);
    padding:var(--space-lg);
    border-radius:var(--radius-sharp);
    position:relative;
}

.provenance-card__tag {
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:0.1em;
    margin-bottom:var(--space-xs);
    display:block;
}

.provenance-card__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-xl);
    font-weight:600;
    margin-bottom:var(--space-sm);
    color:var(--ink);
}

.schedule-table-wrap {
    width:100%;
    overflow-x:auto;
    border:var(--border-subtle);
    background-color:var(--surface);
    margin-bottom:var(--space-lg);
}

.schedule-table {
    width:100%;
    min-width:520px;
    border-collapse:collapse;
}

.schedule-table th,
.schedule-table td {
    padding:var(--space-sm) var(--space-md);
    border-bottom:var(--border-subtle);
    text-align:left;
}

.schedule-table th {
    background-color:var(--ground);
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
}

.schedule-table td { font-size:var(--text-sm); }

.schedule-table .cell-time {
    font-family:var(--kiku-e1e);
    color:var(--accent);
    white-space:nowrap;
}

.tool-section {
    padding:var(--space-2xl) 0;
    border-bottom:var(--border-subtle);
}

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

@media (min-width: 900px) {
    .tool-layout {
        grid-template-columns:1.15fr 0.85fr;
        gap:var(--space-2xl);
    }
}

.calculator-card {
    background-color:var(--surface);
    border:var(--border-subtle);
    padding:var(--space-lg);
    border-radius:var(--radius-sharp);
}

.calculator-header {
    margin-bottom:var(--space-lg);
    padding-bottom:var(--space-md);
    border-bottom:var(--border-subtle);
}

.calculator-title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-2xl);
    font-weight:700;
    color:var(--ink);
    margin-bottom:var(--space-2xs);
}

.calculator-intro {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    margin:0;
}

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

.input-slider-group {
    display:flex;
    flex-direction:column;
    gap:var(--space-2xs);
}

.input-slider-row {
    display:flex;
    justify-content:space-between;
    align-items:baseline;
}

.input-slider-label {
    font-family:var(--kiku-083);
    font-size:var(--text-xs);
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--ink);
}

.input-slider-value {
    font-family:var(--kiku-e1e);
    font-size:var(--text-sm);
    color:var(--accent);
    font-weight:600;
}

input[type='range'] {
    appearance:none;
    width:100%;
    height:6px;
    background:var(--surface-2);
    border-radius:var(--radius-sharp);
    outline:none;
}

input[type='range']::-webkit-slider-thumb {
    appearance:none;
    width:22px;
    height:22px;
    border-radius:50%;
    background:var(--accent);
    cursor:pointer;
    border:2px solid var(--ground);
    box-shadow:0 1px 4px rgba(0, 0, 0, 0.4);
    transition:transform var(--duration-fast) var(--ease-standard);
}

input[type='range']::-webkit-slider-thumb:hover { transform:scale(1.15); }

input[type='range']::-moz-range-thumb {
    width:22px;
    height:22px;
    border-radius:50%;
    background:var(--accent);
    cursor:pointer;
    border:2px solid var(--ground);
}

input[type='range']:focus-visible {
    outline:2px solid var(--accent);
    outline-offset:4px;
}

.radio-pill-group {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-xs);
}

.radio-pill { position:relative; }

.radio-pill input[type='radio'] {
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.radio-pill label {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-xs);
    padding:0.65rem var(--space-sm);
    min-height:44px;
    background-color:var(--surface-2);
    border:1px solid var(--line);
    border-radius:var(--radius-sharp);
    color:var(--ink);
    font-size:var(--text-sm);
    font-weight:500;
    cursor:pointer;
    transition:background-color var(--duration-fast) var(--ease-standard),
        border-color var(--duration-fast) var(--ease-standard);
}

.radio-pill input[type='radio']:checked + label {
    background-color:var(--accent);
    border-color:var(--accent);
    color:var(--accent-ink);
    font-weight:600;
}

.radio-pill input[type='radio']:focus-visible + label {
    outline:2px solid var(--accent);
    outline-offset:2px;
}

.calculator-results {
    background-color:var(--surface-2);
    border:1px solid var(--accent);
    border-radius:var(--radius-sharp);
    padding:var(--space-lg);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.calc-summary-title {
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    text-transform:uppercase;
    letter-spacing:0.12em;
    color:var(--ink-soft);
    margin-bottom:var(--space-sm);
}

.calc-main-figure {
    font-family:var(--kiku-e1e);
    font-size:clamp(2rem, 1.8rem + 1.5vw, 3.2rem);
    font-weight:700;
    color:var(--accent);
    line-height:1.1;
    margin-bottom:var(--space-2xs);
}

.calc-main-label {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    margin-bottom:var(--space-lg);
}

.calc-specs-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-sm);
    padding:var(--space-md) 0;
    border-top:var(--border-subtle);
    border-bottom:var(--border-subtle);
    margin-bottom:var(--space-md);
}

.calc-spec-item {
    display:flex;
    flex-direction:column;
    gap:2px;
}

.calc-spec-item__val {
    font-family:var(--kiku-e1e);
    font-size:var(--text-md);
    font-weight:600;
    color:var(--ink);
}

.calc-spec-item__lbl {
    font-size:11px;
    color:var(--ink-soft);
}

.calc-status-callout {
    font-family:var(--kiku-e1e);
    font-size:11px;
    color:var(--ink-soft);
    line-height:1.45;
    background-color:rgba(21, 64, 63, 0.4);
    padding:var(--space-xs) var(--space-sm);
    border-left:2px solid var(--accent);
}

.faq-accordion {
    border-top:var(--border-subtle);
    margin-top:var(--space-lg);
}

.faq-item { border-bottom:var(--border-subtle); }

.faq-trigger {
    appearance:none;
    background:none;
    border:0;
    width:100%;
    padding:var(--space-md) 0;
    min-height:48px;
    text-align:left;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-sm);
    cursor:pointer;
    color:var(--ink);
    transition:color var(--duration-fast) var(--ease-standard);
}

.faq-trigger:hover { color:var(--accent); }

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

.faq-trigger__question {
    font-family:var(--kiku-4d8);
    font-size:var(--text-md);
    font-weight:600;
    line-height:1.3;
}

.faq-trigger__icon {
    width:20px;
    height:20px;
    color:var(--ink-soft);
    flex-shrink:0;
    transition:transform var(--duration-fast) var(--ease-standard);
}

.faq-item.is-open .faq-trigger__icon {
    transform:rotate(180deg);
    color:var(--accent);
}

.faq-panel {
    display:none;
    padding-bottom:var(--space-md);
    font-size:var(--text-base);
    color:var(--ink-soft);
    line-height:var(--line-height-body);
}

.faq-item.is-open .faq-panel { display:block; }

.privacy-page-header {
    padding:var(--space-2xl) 0 var(--space-lg) 0;
    border-bottom:var(--border-subtle);
    background-color:var(--ground);
}

.chips-bar-wrapper {
    position:sticky;
    top:var(--header-height);
    z-index:65;
    background-color:var(--surface);
    border-bottom:var(--border-subtle);
    box-shadow:0 4px 12px rgba(9, 26, 25, 0.25);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.chips-bar {
    display:flex;
    gap:var(--space-xs);
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding:var(--space-xs) 0;
    scrollbar-width:none;
}

.chips-bar::-webkit-scrollbar { display:none; }

.jump-chip {
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    padding:0.4rem 0.85rem;
    min-height:36px;
    border:1px solid var(--line);
    background-color:var(--surface-2);
    color:var(--ink);
    text-decoration:none;
    border-radius:var(--radius-sharp);
    transition:background-color var(--duration-fast) var(--ease-standard),
        border-color var(--duration-fast) var(--ease-standard),
        color var(--duration-fast) var(--ease-standard);
}

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

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

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

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

.privacy-section {
    padding:var(--space-2xl) 0;
    border-bottom:var(--border-subtle);
    scroll-margin-top:calc(var(--header-height) + 56px);
}

.privacy-section:last-child { border-bottom:0; }

.privacy-section__header {
    margin-bottom:var(--space-lg);
    max-width:var(--reading-max);
}

.privacy-section__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-2xl);
    font-weight:700;
    margin-bottom:var(--space-xs);
    color:var(--ink);
}

.privacy-section__standfirst {
    font-family:var(--kiku-4d8);
    font-size:var(--text-lg);
    font-style:italic;
    color:var(--accent);
    line-height:1.4;
    margin-bottom:0;
}

.privacy-section__body { max-width:var(--reading-max); }

.privacy-section__body p {
    color:var(--ink);
    margin-bottom:var(--space-md);
}

.dated-rail-page { padding:var(--space-2xl) 0; }

.cookie-content {
    padding-bottom:2rem;
    padding-right:60px;
}

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

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

.dated-rail {
    background-color:var(--surface);
    border:var(--border-subtle);
    border-radius:var(--radius-sharp);
    padding:var(--space-md);
}

@media (max-width: 899px) {
    .dated-rail {
        display:flex;
        flex-wrap:wrap;
        gap:var(--space-md);
        align-items:center;
        border-left:3px solid var(--accent);
    }
}

@media (min-width: 900px) {
    .dated-rail {
        position:sticky;
        top:calc(var(--header-height) + var(--space-lg));
        align-self:start;
        border-left:3px solid var(--accent);
        display:flex;
        flex-direction:column;
        gap:var(--space-lg);
        max-height:calc(100vh - var(--header-height) - 22rem);
        overflow-y:auto;
    }
}

.rail-marker {
    display:flex;
    flex-direction:column;
    gap:2px;
}

.rail-marker__label {
    font-family:var(--kiku-e1e);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--ink-soft);
}

.rail-marker__value {
    font-family:var(--kiku-e1e);
    font-size:var(--text-sm);
    font-weight:600;
    color:var(--accent);
}

.rail-marker__note {
    font-size:11px;
    color:var(--ink-soft);
    line-height:1.35;
}

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

.cookie-section {
    border-bottom:var(--border-subtle);
    padding-bottom:var(--space-xl);
}

.cookie-section:last-child {
    border-bottom:0;
    padding-bottom:0;
}

.cookie-section__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-2xl);
    font-weight:700;
    margin-bottom:var(--space-xs);
    color:var(--ink);
}

.cookie-section__lede {
    font-size:var(--text-base);
    color:var(--ink);
    margin-bottom:var(--space-md);
    max-width:var(--reading-max);
}

.cookie-data-table {
    width:100%;
    border-collapse:collapse;
    font-size:var(--text-sm);
    margin-bottom:var(--space-md);
    border:var(--border-subtle);
    background-color:var(--surface);
}

.cookie-data-table th,
.cookie-data-table td {
    padding:var(--space-sm) var(--space-md);
    border-bottom:var(--border-subtle);
    text-align:left;
}

.cookie-data-table th {
    background-color:var(--surface-2);
    font-family:var(--kiku-e1e);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--ink-soft);
}

.cookie-data-table td code { color:var(--accent); }

.framed-doc-page { padding:var(--space-2xl) 0 var(--space-3xl) 0; }

.framed-card {
    max-width:920px;
    margin:0 auto;
    background-color:var(--surface);
    border:var(--border-subtle);
    box-shadow:0 16px 40px -12px rgba(7, 21, 20, 0.7);
    border-radius:var(--radius-sharp);
    padding:clamp(1.5rem, 3.5vw, 4rem);
}

.card-masthead {
    border-bottom:2px solid var(--line);
    padding-bottom:var(--space-lg);
    margin-bottom:var(--space-xl);
}

.card-masthead__meta {
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:var(--space-sm);
    font-family:var(--kiku-e1e);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    margin-bottom:var(--space-sm);
}

.card-masthead__status {
    background-color:var(--surface-2);
    color:var(--accent);
    padding:3px 8px;
    border-radius:var(--radius-sharp);
    border:1px solid var(--line);
    font-weight:600;
}

.card-masthead__title {
    font-family:var(--kiku-4d8);
    font-size:clamp(2.2rem, 1.8rem + 1.8vw, 3.4rem);
    font-weight:700;
    letter-spacing:-0.02em;
    margin-bottom:var(--space-xs);
    color:var(--ink);
}

.card-masthead__subtitle {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    max-width:60ch;
    margin:0;
}

.clause-block {
    margin-bottom:var(--space-xl);
    padding-bottom:var(--space-xl);
    border-bottom:var(--border-subtle);
}

.clause-block:last-child {
    border-bottom:0;
    margin-bottom:0;
    padding-bottom:0;
}

.clause-title {
    display:flex;
    align-items:baseline;
    gap:var(--space-sm);
    font-family:var(--kiku-4d8);
    font-size:var(--text-xl);
    font-weight:600;
    color:var(--ink);
    margin-bottom:var(--space-sm);
}

.clause-number {
    font-family:var(--kiku-e1e);
    font-size:var(--text-sm);
    color:var(--accent);
    font-weight:600;
}

.zunef1c {
    font-size:var(--text-base);
    color:var(--ink);
    line-height:var(--line-height-body);
}

.zunef1c p { margin-bottom:var(--space-md); }

.zunef1c ul { margin-bottom:var(--space-md); }

.clause-callout {
    background-color:var(--surface-2);
    border-left:3px solid var(--accent);
    padding:var(--space-sm) var(--space-md);
    margin:var(--space-md) 0;
    font-size:var(--text-sm);
    color:var(--ink);
}

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

@media (min-width: 960px) {
    .reserve-page-grid { grid-template-columns:1.15fr 0.85fr; }
}

.reserve-form-container {
    background-color:var(--surface);
    border:var(--border-subtle);
    padding:var(--space-xl);
    border-radius:var(--radius-sharp);
}

.reserve-aside {
    display:flex;
    flex-direction:column;
    gap:var(--space-lg);
}

.counter-logistics-card {
    background-color:var(--surface);
    border:var(--border-subtle);
    padding:var(--space-lg);
    border-radius:var(--radius-sharp);
}

.counter-logistics-card__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-lg);
    font-weight:600;
    margin-bottom:var(--space-sm);
    color:var(--ink);
}

.logistics-spec-list {
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    border-top:var(--border-subtle);
}

.logistics-spec-item {
    display:flex;
    justify-content:space-between;
    padding:var(--space-xs) 0;
    border-bottom:var(--border-subtle);
    font-size:var(--text-sm);
}

.logistics-spec-key { color:var(--ink-soft); }

.logistics-spec-val {
    font-family:var(--kiku-e1e);
    color:var(--ink);
    font-weight:500;
}

.error-scene {
    min-height:calc(100vh - var(--header-height) - 120px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:var(--space-3xl) var(--container-pad);
}

.error-scene__code {
    font-family:var(--kiku-e1e);
    font-size:clamp(4rem, 3rem + 4vw, 8rem);
    font-weight:700;
    line-height:1;
    color:var(--accent);
    margin-bottom:var(--space-sm);
}

.error-scene__title {
    font-family:var(--kiku-4d8);
    font-size:var(--text-3xl);
    font-weight:700;
    color:var(--ink);
    margin-bottom:var(--space-md);
}

.error-scene__lead {
    font-size:var(--text-lg);
    color:var(--ink-soft);
    max-width:50ch;
    margin-bottom:var(--space-xl);
}

@media print {
    body {
        background-color:#FFF;
        color:#111;
        padding-bottom:0;
    }

    .site-header,
    .mobile-dock,
    .scroll-spine,
    .chat-launcher,
    .chat-panel,
    .cookie-banner { display:none !important; }

    .framed-card,
    .produce-card,
    .scrolly-step,
    .provenance-card {
        border:1px solid #777;
        background:transparent;
        box-shadow:none;
        break-inside:avoid;
    }

    h1, h2, h3, h4, p, span, td, th { color:#111 !important; }

    .duotone-break { background:#EEE; }
}
