[data-opening] {
    position:relative;
    min-height:calc(100vh - var(--dock-h));
    min-height:calc(100svh - var(--dock-h));
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    background-color:var(--ground);
    overflow:hidden;
    border-bottom:var(--border-thin);
}

@media (min-width: 1024px) {
    [data-opening] {
        min-height:100vh;
        min-height:100svh;
        display:grid;
        grid-template-columns:45fr 55fr;
        align-items:stretch;
    }
}

.hero-copy {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    text-align:left;
    gap:var(--space-5);
    padding:clamp(2.5rem, 5vw, 5.5rem) var(--gutter);
    background-color:var(--ground);
    z-index:2;
    min-width:0;
}

.hero-copy h1.lockup {
    margin:0;
    text-align:left;
    align-items:flex-start;
    width:100%;
}

.hero-copy .lockup {
    max-width:100%;
}

.hero-copy .lede {
    font-size:var(--text-lg);
    color:var(--ink-soft);
    max-width:48ch;
    line-height:var(--leading-normal);
}

.hero-action {
    display:flex;
    align-items:center;
    gap:var(--space-4);
    padding-top:var(--space-2);
}

.hero-media {
    position:relative;
    width:100%;

    height:33.333vh;
    min-height:240px;
    background-color:var(--surface);
    overflow:hidden;
    border-top:var(--border-thin);
}

@media (min-width: 1024px) {
    .hero-media {
        height:100%;
        min-height:100vh;
        min-height:100svh;
        border-top:0;
        border-left:var(--border-thin);
    }
}

.hero-media-crop {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:85% 50%;
    display:block;
}

[data-model-stage] {
    position:relative;
    width:100%;
    height:100%;
    display:block;
    background-color:transparent;
}

[data-model-stage]::before {
    content:"";
    position:absolute;
    inset:0;
    background-image: 
        linear-gradient(to right, rgba(165, 170, 174, 0.22) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(165, 170, 174, 0.22) 1px, transparent 1px);
    background-size:40px 40px;
    pointer-events:none;
    z-index:1;
}

[data-model-still] {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:85% 50%;
    display:block;
    transition:opacity var(--dur-slow) var(--ease-out);
}

[data-model-canvas] {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    touch-action:pan-y;
    outline:none;
}

[data-model-stage][data-model-live] [data-model-still] {
    opacity:0;
    pointer-events:none;
}

.hero-media-badge {
    position:absolute;
    bottom:var(--space-4);
    right:var(--space-4);
    z-index:3;
    display:inline-flex;
    align-items:center;
    gap:var(--space-2);
    padding:0.45rem 0.75rem;
    background-color:#27292b;
    color:#fff;
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    border:1px solid rgba(255, 255, 255, 0.2);
    border-radius:var(--radius);
    pointer-events:none;
}

.hero-media-badge span {
    color:#fff !important;
}

@supports (backdrop-filter: blur(6px)) {
    .hero-media-badge {
        background-color:#27292b;
        backdrop-filter:blur(6px);
    }
}

.assembly-section {
    padding-block:clamp(3rem, 6vw, 5.5rem);
    padding-inline:var(--gutter);
    background-color:var(--ground);
    border-bottom:var(--border-thin);
}

.assembly-masthead {
    max-width:var(--measure);
    margin-bottom:clamp(2rem, 4vw, 3.5rem);
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
}

.assembly-container {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-6);
    align-items:center;
}

@media (min-width: 880px) {
    .assembly-container {
        grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr);
        gap:var(--space-8);
    }
}

.assembly-stage {
    position:relative;
    background-color:var(--surface);
    border:var(--border-thin);
    border-radius:var(--radius);
    padding:clamp(1rem, 2.5vw, 2rem);
    box-shadow:var(--shadow-card);
}

.assembly-svg {
    width:100%;
    height:auto;
    overflow:visible;
    display:block;
}

.assembly-path-drawn {
    stroke-dasharray:1000;
    stroke-dashoffset:0;
    transition:stroke-dashoffset 0.1s linear, stroke var(--dur-base) var(--ease-out);
}

.assembly-layer-group {
    transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.assembly-layer-group.is-active path,
.assembly-layer-group.is-active line {
    stroke:var(--accent);

    stroke-width:2.5px;
}

.assembly-layer-group.is-active text {
    fill:var(--ink);
    font-weight:700;
}

.assembly-steps-list {
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
}

.assembly-step-card {
    padding:var(--space-4);
    background-color:var(--surface);
    border:var(--border-thin);
    border-left:3px solid var(--line);
    border-radius:var(--radius);
    transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.assembly-step-card.is-active,
.assembly-step-card:hover {
    background-color:#fff;
    border-left-color:var(--accent);
    box-shadow:var(--shadow-card);
}

.assembly-step-title {
    font-family:var(--tani-e9d);
    font-size:var(--text-base);

    font-weight:700;
    color:var(--ink);
    margin-bottom:var(--space-1);
}

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

.assembly-step-spec {
    display:inline-block;
    margin-top:var(--space-2);
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    color:var(--accent);
    font-weight:600;
}

@media (prefers-reduced-motion: reduce) {
    .assembly-path-drawn {
        stroke-dashoffset:0 !important;
    }
}

.dialogue-section {
    padding-block:clamp(3rem, 6vw, 5.5rem);
    padding-inline:var(--gutter);
    border-bottom:var(--border-thin);
    background-color:var(--ground);
}

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

.dialogue-section-header {
    margin-bottom:clamp(2rem, 4.5vw, 3.5rem);
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
}

.dialogue-wrap {
    display:flex;
    flex-direction:column;
    gap:clamp(3rem, 5vw, 4.5rem);
    max-width:var(--content-max);
}

.exchange-unit {
    display:flex;
    flex-direction:column;
    gap:var(--space-5);
    padding-top:var(--space-6);
    border-top:var(--border-thin);
}

.exchange-unit:first-child {
    padding-top:0;
    border-top:0;
}

@media (min-width: 1024px) {
    .exchange-unit--grid {
        display:grid;
        grid-template-columns:minmax(0, 1.25fr) minmax(0, 0.95fr);
        gap:var(--space-7);
        align-items:start;
    }
}

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

.ask-box {
    position:relative;
    background-color:transparent;
    border:0;
    border-left:3px solid var(--accent);
    border-radius:0;
    padding:var(--space-2) 0 var(--space-2) var(--space-4);
    margin-bottom:var(--space-4);
    max-width:100%;
    display:flex;
    flex-direction:column;
    gap:var(--space-2);
}

.ask-box--ground {
    background-color:var(--ground);
}

.ask-speaker {
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    font-weight:600;
    color:var(--ink-soft);
}

.ask-question {
    font-family:var(--tani-e9d);
    font-size:var(--text-xl);
    font-weight:700;
    line-height:var(--leading-snug);
    color:var(--ink);
}

.reply-box {
    position:relative;
    display:flex;
    flex-direction:column;
    gap:var(--space-4);
    min-width:0;
    clear:both;
}

.exchange-sidebar {
    display:flex;
    flex-direction:column;
    gap:var(--space-4);
}

.exchange-figure {
    margin:0;
    border:var(--border-thin);
    border-radius:var(--radius);
    background-color:var(--surface);
    overflow:hidden;
}

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

.exchange-figure figcaption {
    padding:var(--space-3) var(--space-4);
    border-top:var(--border-thin);
    background-color:var(--surface);
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:1.45;
}

.reply-header {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:space-between;
    gap:var(--space-2) var(--space-4);
}

.reply-responder {
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    font-weight:600;
    color:var(--accent);
}

.reply-rate-badge {
    display:inline-flex;
    align-items:center;
    gap:0.35rem;
    padding:0.25rem 0.65rem;
    background-color:var(--surface);
    border:var(--border-thin);
    border-radius:var(--radius);
    font-family:var(--tani-cd5);
    font-size:var(--text-sm);
    font-weight:600;
    color:var(--ink);
}

.reply-rate-badge.num {
    font-variant-numeric:tabular-nums;
}

.reply-prose {
    font-size:var(--text-base);
    line-height:var(--leading-relaxed);
    color:var(--ink);
    max-width:var(--measure);
}

.reply-figure {
    width:100%;
    margin:var(--space-3) 0 0 0;
    border:var(--border-thin);
    border-radius:var(--radius);
    background-color:var(--surface);
    overflow:hidden;
}

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

.reply-figure figcaption {
    padding:var(--space-3) var(--space-4);
    border-top:var(--border-thin);
    background-color:var(--surface);
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:1.45;
}

.reply-specs-row {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-3);
    margin-top:var(--space-2);
}

@media (min-width: 640px) {
    .reply-specs-row {
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
}

.reply-spec-chip {
    padding:var(--space-3);
    background-color:var(--surface);
    border:var(--border-thin);
    border-radius:var(--radius);
    display:flex;
    flex-direction:column;
    gap:0.25rem;
}

.reply-spec-label {
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    color:var(--ink-soft);
}

.reply-spec-value {
    font-weight:700;
    font-size:var(--text-sm);
    color:var(--ink);
}

.services-catalog {
    display:flex;
    flex-direction:column;
    gap:clamp(2.5rem, 5vw, 4.5rem);
}

.service-card-item {
    background-color:var(--surface);
    border:var(--border-thin);
    border-radius:var(--radius);
    padding:clamp(1.5rem, 3.5vw, 2.5rem);
    display:flex;
    flex-direction:column;
    gap:var(--space-5);
}

.service-card-header {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:space-between;
    gap:var(--space-3);
    border-bottom:var(--border-thin);
    padding-bottom:var(--space-4);
}

.service-card-title {
    font-family:var(--tani-e9d);
    font-size:var(--text-2xl);
    font-weight:700;
    color:var(--ink);
}

.service-card-rate {
    font-family:var(--tani-cd5);
    font-size:var(--text-lg);
    font-weight:600;
    color:var(--accent);
    font-variant-numeric:tabular-nums;
    background-color:var(--ground);
    padding:0.35rem 0.75rem;
    border:var(--border-thin);
    border-radius:var(--radius);
}

.service-card-layout {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-5);
}

@media (min-width: 840px) {
    .service-card-layout {
        grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr);
        gap:var(--space-6);
    }
}

.service-card-figure {
    margin:0;
    border:var(--border-thin);
    border-radius:var(--radius);
    overflow:hidden;
    background-color:var(--surface-2);
}

.service-card-figure img {
    width:100%;
    aspect-ratio:3 / 2;
    object-fit:cover;
    display:block;
}

.service-card-figure figcaption {
    padding:var(--space-3) var(--space-4);
    font-size:var(--text-sm);
    color:var(--ink-soft);
    border-top:var(--border-thin);
    background-color:var(--surface);
}

.service-card-content {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:var(--space-4);
}

.service-points {
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
}

.service-point-item {
    display:flex;
    align-items:flex-start;
    gap:var(--space-3);
    font-size:var(--text-base);
    color:var(--ink);
}

.service-point-item .icon {
    color:var(--accent);
    margin-top:0.25rem;
    width:1rem;
    height:1rem;
}

.service-card-cta {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:var(--space-3);
    padding-top:var(--space-3);
}

.comparison-section {
    padding-block:clamp(3rem, 6vw, 5.5rem);
    padding-inline:var(--gutter);
    background-color:var(--ground);
    border-bottom:var(--border-thin);
}

.comparison-masthead {
    max-width:var(--measure);
    margin-bottom:var(--space-6);
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
}

.comparison-table-wrap {
    border:var(--border-thin);
    border-radius:var(--radius);
    background-color:#fff;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.rate-table {
    width:100%;
    border-collapse:collapse;
    min-width:680px;
    font-size:var(--text-sm);
}

.rate-table th,
.rate-table td {
    padding:0.95rem 1.15rem;
    text-align:left;
    border-bottom:var(--border-thin);
    vertical-align:middle;
}

.rate-table thead th {
    background-color:var(--surface);
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.04em;
    color:var(--ink);
    border-bottom:2px solid var(--ink);
}

.rate-table tbody tr:hover td {
    background-color:var(--surface);
}

.rate-table td.rate-num {
    font-family:var(--tani-cd5);
    font-size:var(--text-sm);
    font-weight:600;
    color:var(--accent);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}

.about-hero {
    padding-block:clamp(3rem, 6vw, 5rem);
    padding-inline:var(--gutter);
    border-bottom:var(--border-thin);
    background-color:var(--ground);
}

.about-stats-grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-4);
    margin-top:var(--space-6);
}

@media (min-width: 640px) {
    .about-stats-grid {
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
}

.about-stat-card {
    padding:var(--space-5);
    background-color:var(--surface);
    border:var(--border-thin);
    border-left:3px solid var(--accent);
    border-radius:var(--radius);
    display:flex;
    flex-direction:column;
    gap:var(--space-2);
}

.about-stat-number {
    font-family:var(--tani-cd5);
    font-size:var(--text-3xl);
    font-weight:600;
    color:var(--ink);
    line-height:1.1;
    font-variant-numeric:tabular-nums;
}

.about-stat-label {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:1.4;
}

.materials-section {
    padding-block:clamp(3rem, 6vw, 5.5rem);
    padding-inline:var(--gutter);
    background-color:var(--surface);
    border-bottom:var(--border-thin);
}

.materials-grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-4);
    margin-top:var(--space-6);
}

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

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

.material-card {
    padding:var(--space-5);
    background-color:var(--ground);
    border:var(--border-thin);
    border-radius:var(--radius);
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
    transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.material-card:hover {
    transform:translateY(-2px);
    box-shadow:var(--shadow-card);
}

.material-card-name {
    font-family:var(--tani-e9d);
    font-size:var(--text-lg);
    font-weight:700;
    color:var(--ink);
}

.material-card-body {
    font-size:var(--text-sm);
    color:var(--ink-soft);
    line-height:var(--leading-normal);
}

.material-card-tag {
    margin-top:auto;
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    color:var(--accent);
    font-weight:600;
}

.contact-layout {
    padding-block:clamp(2.5rem, 5vw, 4.5rem);
    padding-inline:var(--gutter);
    border-bottom:var(--border-thin);
}

.contact-grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--space-6);
}

@media (min-width: 980px) {
    .contact-grid {
        grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
        gap:var(--space-8);
    }
}

.contact-direct-card {
    padding:var(--space-6);
    background-color:var(--surface);
    border:var(--border-thin);
    border-radius:var(--radius);
    display:flex;
    flex-direction:column;
    gap:var(--space-5);
}

.contact-direct-card h2 {
    font-size:var(--text-xl);
}

.contact-channels {
    display:flex;
    flex-direction:column;
    gap:var(--space-4);
}

.contact-channel-row {
    display:flex;
    align-items:flex-start;
    gap:var(--space-3);
}

.contact-channel-row .icon {
    color:var(--accent);
    width:1.25rem;
    height:1.25rem;
    margin-top:0.2rem;
}

.channel-label {
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    text-transform:uppercase;
    letter-spacing:0.04em;
}

.channel-val {
    font-size:var(--text-base);
    font-weight:600;
    color:var(--ink);
}

.monsoon-notice-box {
    padding:var(--space-5);
    background-color:var(--surface-2);
    border:var(--border-thin);
    border-left:3px solid var(--accent);
    border-radius:var(--radius);
    display:flex;
    flex-direction:column;
    gap:var(--space-2);
}

.monsoon-notice-title {
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.04em;
    color:var(--accent);
}

.monsoon-notice-body {
    font-size:var(--text-sm);
    color:var(--ink);
    line-height:var(--leading-normal);
}

.privacy-page-wrap {
    padding-block:clamp(2.5rem, 5vw, 4.5rem);
    padding-inline:var(--gutter);
    display:flex;
    justify-content:center;
}

.doc-card {
    width:100%;
    max-width:860px;
    background-color:#fff;
    border:var(--border-thin);
    border-radius:var(--radius);
    box-shadow:var(--shadow-card);
    padding:clamp(1.75rem, 4vw, 3.5rem);
    display:flex;
    flex-direction:column;
    gap:clamp(2rem, 3.5vw, 3rem);
}

.doc-card-masthead {
    border-bottom:2px solid var(--ink);
    padding-bottom:var(--space-5);
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
}

.doc-card-meta {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:var(--space-4);
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    color:var(--ink-soft);
}

.doc-card-meta-item {
    display:inline-flex;
    align-items:center;
    gap:0.35rem;
}

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

.clause {
    display:flex;
    flex-direction:column;
    gap:var(--space-3);
    scroll-margin-top:var(--space-6);
}

.clause-header {
    display:flex;
    align-items:baseline;
    gap:var(--space-3);
    border-bottom:var(--border-thin);
    padding-bottom:var(--space-2);
}

.clause-tag {
    font-family:var(--tani-cd5);
    font-size:var(--text-sm);
    font-weight:600;
    color:var(--accent);
}

.clause-title {
    font-family:var(--tani-e9d);
    font-size:var(--text-xl);
    font-weight:700;
    color:var(--ink);
}

.befu6a0 {
    font-size:var(--text-base);
    line-height:var(--leading-relaxed);
    color:var(--ink);
    max-width:var(--measure);
}

.befu6a0 p + p {
    margin-top:var(--space-3);
}

.befu6a0 ul {
    margin-top:var(--space-3);
    margin-bottom:var(--space-3);
    padding-left:1.25rem;
    list-style:square;
}

.befu6a0 li + li {
    margin-top:var(--space-2);
}

.cookies-page-wrap {
    padding-block:clamp(2.5rem, 5vw, 4.5rem);
    padding-inline:var(--gutter);
}

.tabbed-doc-container {
    max-width:920px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:var(--space-6);
}

.tab-nav-bar {
    display:flex;
    gap:var(--space-2);
    border-bottom:2px solid var(--line);
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:0;
}

.tab-btn {
    display:inline-flex;
    align-items:center;
    gap:0.45rem;
    min-height:44px;
    padding:0.65rem 1.15rem;
    background-color:transparent;
    border:0;
    border-bottom:3px solid transparent;
    font-family:var(--tani-e9d);
    font-size:var(--text-base);
    font-weight:600;
    color:var(--ink-soft);
    cursor:pointer;
    white-space:nowrap;
    transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.tab-btn:hover {
    color:var(--ink);
    background-color:var(--surface);
    transform:translateY(-1px);
}

.tab-btn:active {
    background-color:var(--surface-2);
    transform:translateY(1px);
}

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

.tab-btn[aria-selected="true"] {
    color:var(--accent);
    border-bottom-color:var(--accent);
    font-weight:700;
    background-color:var(--surface);
}

.tab-panel {
    background-color:#fff;
    border:var(--border-thin);
    border-radius:var(--radius);
    padding:clamp(1.5rem, 3.5vw, 3rem);
    box-shadow:var(--shadow-card);
    display:flex;
    flex-direction:column;
    gap:var(--space-5);
}

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

.tab-panel-title {
    font-family:var(--tani-e9d);
    font-size:var(--text-2xl);
    font-weight:700;
    color:var(--ink);
    border-bottom:var(--border-thin);
    padding-bottom:var(--space-3);
}

.cookie-accordion-block {
    display:none;
    flex-direction:column;
    gap:var(--space-3);
}

@media (max-width: 767px) {
    .tab-nav-bar {
        display:none;
    }

    .tab-panel {
        display:none !important;
    }

    .cookie-accordion-block {
        display:flex;
    }
}

.accordion-item {
    background-color:#fff;
    border:var(--border-thin);
    border-radius:var(--radius);
    box-shadow:var(--shadow-card);
    overflow:hidden;
}

.accordion-trigger {
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-3);
    min-height:48px;
    padding:var(--space-4);
    background-color:var(--surface);
    border:0;
    border-left:3px solid transparent;
    font-family:var(--tani-e9d);
    font-size:var(--text-base);
    font-weight:700;
    color:var(--ink);
    text-align:left;
    cursor:pointer;
    transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

.accordion-trigger:hover {
    background-color:var(--surface-2);
}

.accordion-trigger:active {
    background-color:var(--line);
}

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

.accordion-trigger[aria-expanded="true"] {
    border-left-color:var(--accent);
    background-color:#fff;
}

.accordion-trigger .icon {
    transition:transform var(--dur-base) var(--ease-out);
}

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

.accordion-panel {
    padding:var(--space-5);
    border-top:var(--border-thin);
    display:flex;
    flex-direction:column;
    gap:var(--space-4);
}

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

.terms-page-wrap {
    padding-bottom:clamp(3rem, 6vw, 5.5rem);
}

.terms-header-block {
    padding-top:clamp(2.5rem, 5vw, 4rem);
    padding-bottom:var(--space-5);
    padding-inline:var(--gutter);
    background-color:var(--ground);
}

.jump-chips-nav {
    position:sticky;
    top:0;
    z-index:100;
    background-color:var(--surface);
    border-top:var(--border-thin);
    border-bottom:2px solid var(--ink);
    padding:var(--space-2) var(--gutter);
    box-shadow:var(--shadow-card);
}

.jump-chips-track {
    display:flex;
    align-items:center;
    gap:var(--space-2);
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    max-width:var(--content-max);
    margin:0 auto;
    padding-block:0.15rem;
}

.jump-chip {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:0.45rem 0.85rem;
    background-color:var(--ground);
    border:var(--border-thin);
    border-radius:var(--radius);
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    font-weight:600;
    color:var(--ink);
    text-decoration:none;
    white-space:nowrap;
    flex-shrink:0;
    transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

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

.jump-chip:active {
    background-color:var(--surface-2);
    transform:translateY(1px);
}

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

.jump-chip[aria-current="true"] {
    background-color:var(--accent);
    color:var(--accent-ink);
    border-color:var(--accent);
}

.terms-content-container {
    max-width:var(--content-max);
    margin:0 auto;
    padding-inline:var(--gutter);
    padding-top:var(--space-7);
    display:flex;
    flex-direction:column;
    gap:var(--space-8);
}

.terms-section-card {
    padding-top:var(--space-6);
    border-top:2px solid var(--ink);
    display:flex;
    flex-direction:column;
    gap:var(--space-4);
    scroll-margin-top:4.5rem;
}

.terms-section-card:first-child {
    border-top:0;
    padding-top:0;
}

.terms-standfirst {
    font-family:var(--tani-e9d);
    font-size:var(--text-lg);
    font-weight:700;
    color:var(--accent);
    line-height:var(--leading-snug);
    padding:var(--space-3) var(--space-4);
    background-color:var(--surface);
    border-left:3px solid var(--accent);
    border-radius:var(--radius);
}

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

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

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

.terms-body li + li {
    margin-top:var(--space-2);
}

.error-page-wrap {
    min-height:70vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:clamp(3rem, 6vw, 6rem) var(--gutter);
    background-color:var(--ground);
}

.error-card {
    max-width:640px;
    width:100%;
    background-color:var(--surface);
    border:var(--border-thin);
    border-radius:var(--radius);
    padding:clamp(2rem, 5vw, 3.5rem);
    box-shadow:var(--shadow-card);
    display:flex;
    flex-direction:column;
    gap:var(--space-5);
}

.error-badge {
    font-family:var(--tani-cd5);
    font-size:var(--text-sm);
    font-weight:600;
    color:var(--accent);
    text-transform:uppercase;
    letter-spacing:0.05em;
}

.error-nav-links {
    display:flex;
    flex-direction:column;
    gap:var(--space-2);
    margin-top:var(--space-3);
}

.error-nav-link {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    min-height:44px;
    padding:0.65rem 0.85rem;
    background-color:var(--ground);
    border:var(--border-thin);
    border-radius:var(--radius);
    font-weight:600;
    color:var(--ink);
    text-decoration:none;
    transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

.error-nav-link:hover {
    background-color:#fff;
    border-color:var(--accent);
    color:var(--accent);
}

.error-nav-link:active {
    background-color:var(--surface-2);
}

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

.flag-alert {
    padding:var(--space-3) var(--space-4);
    background-color:var(--surface-2);
    border-left:3px solid var(--accent);
    border-radius:var(--radius);
    font-size:var(--text-sm);
    color:var(--ink);
    display:flex;
    align-items:flex-start;
    gap:var(--space-2);
}

.flag-alert--warning {
    border-left-color:var(--error);
    background-color:var(--error-bg);
    color:var(--error);
}

.flag-alert .icon {
    margin-top:0.15rem;
    width:1rem;
    height:1rem;
    flex-shrink:0;
}

.quote-disclaimer-box {
    margin-top:var(--space-3);
    padding:var(--space-3);
    border-top:var(--border-thin);
    font-family:var(--tani-cd5);
    font-size:var(--text-xs);
    color:var(--ink-soft);
    line-height:1.45;
}

.hero-media {
    min-height:260px;
}

@media (max-width: 480px) {
    .hero-media {
        height:240px;
        min-height:240px;
    }

    .ask-question {
        font-size:var(--text-lg);
    }

    .reply-box {
        padding-left:var(--space-3);
    }

    .doc-card {
        padding:var(--space-4);
    }

    .tab-panel {
        padding:var(--space-4);
    }

    .service-card-item {
        padding:var(--space-4);
    }
}
