/* TaxiBT Legal Pages — all selectors are scoped to the legal template. */
body.tbt-legal-active { --tbt-legal-accent: #f5c400; }
body.tbt-legal-active .tbt-legal,
body.tbt-legal-active .tbt-legal * { box-sizing: border-box; }

.tbt-legal {
    --tbt-black: #0b0d0f;
    --tbt-black-2: #14171b;
    --tbt-ink: #141619;
    --tbt-muted: #6d737c;
    --tbt-line: #e8e9eb;
    --tbt-soft: #f5f6f7;
    --tbt-white: #fff;
    background: #f4f5f6;
    color: var(--tbt-ink);
    font-family: inherit;
    line-height: 1.7;
    overflow: clip;
}

.tbt-legal a { color: inherit; text-decoration: none; }
.tbt-legal svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tbt-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }

.tbt-legal-hero { position: relative; isolation: isolate; background: radial-gradient(circle at 85% 15%, rgba(245,196,0,.15), transparent 28%), linear-gradient(135deg,#08090b 0%,#111419 62%,#070809 100%); color: #fff; padding: 92px 0 78px; overflow: hidden; }
.tbt-hero-grid { position:absolute; inset:0; z-index:-1; opacity:.12; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px, transparent 1px); background-size:42px 42px; mask-image:linear-gradient(to bottom,black,transparent 88%); }
.tbt-hero-inner { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:72px; align-items:center; }
.tbt-eyebrow { display:flex; align-items:center; gap:12px; color:#f9d640; font-weight:800; letter-spacing:.17em; font-size:.76rem; }
.tbt-eyebrow span { width:34px; height:2px; background:var(--tbt-legal-accent); display:inline-block; box-shadow:0 0 20px rgba(245,196,0,.45); }
.tbt-hero-copy h1 { margin:14px 0 18px; max-width:840px; font-size:clamp(2.55rem,5.3vw,5.35rem); line-height:.98; letter-spacing:-.055em; color:#fff; font-weight:850; }
.tbt-hero-copy > p { max-width:710px; margin:0; color:#cbd0d7; font-size:clamp(1rem,1.7vw,1.2rem); line-height:1.65; }
.tbt-hero-meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.tbt-hero-meta span { display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.055); border-radius:999px; padding:9px 13px; color:#e4e6e9; font-size:.86rem; backdrop-filter:blur(8px); }
.tbt-hero-meta svg { color:var(--tbt-legal-accent); }
.tbt-hero-mark { width:250px; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; position:relative; border:1px solid rgba(255,255,255,.1); background:radial-gradient(circle,rgba(245,196,0,.12),rgba(255,255,255,.015) 65%); box-shadow:0 24px 70px rgba(0,0,0,.35); }
.tbt-hero-mark:before,.tbt-hero-mark:after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(245,196,0,.18); }
.tbt-hero-mark:before { inset:19px; }
.tbt-hero-mark:after { inset:43px; }
.tbt-hero-shield { width:82px; height:82px; display:grid; place-items:center; color:var(--tbt-legal-accent); z-index:2; }
.tbt-hero-shield svg { width:64px; height:64px; stroke-width:1.45; }
.tbt-hero-mark > span { position:absolute; bottom:52px; z-index:2; font-weight:900; letter-spacing:.14em; font-size:.78rem; }

.tbt-trustbar { background:#fff; border-bottom:1px solid var(--tbt-line); box-shadow:0 12px 28px rgba(20,22,25,.035); }
.tbt-trust-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.tbt-trust-grid > div { min-height:86px; display:flex; align-items:center; gap:12px; padding:18px 28px; border-right:1px solid var(--tbt-line); }
.tbt-trust-grid > div:first-child { padding-left:0; }
.tbt-trust-grid > div:last-child { border-right:0; }
.tbt-trust-grid > div > svg { flex:0 0 30px; width:30px; height:30px; padding:7px; border-radius:50%; background:#fff8d7; color:#7d6500; stroke-width:2.3; }
.tbt-trust-grid span { display:flex; flex-direction:column; line-height:1.35; }
.tbt-trust-grid strong { font-size:.91rem; }
.tbt-trust-grid small { color:var(--tbt-muted); margin-top:4px; }

.tbt-page-wrap { padding:54px 0 84px; }
.tbt-identity { background:linear-gradient(135deg,#111419,#090b0d); color:#fff; border-radius:26px; padding:30px; margin-bottom:28px; box-shadow:0 22px 48px rgba(11,13,15,.12); position:relative; overflow:hidden; }
.tbt-identity:after { content:""; position:absolute; width:260px; height:260px; right:-120px; top:-120px; border-radius:50%; background:radial-gradient(circle,rgba(245,196,0,.24),transparent 66%); pointer-events:none; }
.tbt-identity-head { display:flex; align-items:center; gap:14px; margin-bottom:24px; position:relative; z-index:1; }
.tbt-icon { width:48px; height:48px; border-radius:14px; background:var(--tbt-legal-accent); color:#0b0d0f; display:grid; place-items:center; }
.tbt-icon svg { width:23px; height:23px; stroke-width:2; }
.tbt-mini-label { color:#f2cf32; font-size:.69rem; font-weight:900; letter-spacing:.16em; }
.tbt-identity h2 { margin:2px 0 0; color:#fff; font-size:1.35rem; line-height:1.2; }
.tbt-identity-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.1); border-radius:18px; overflow:hidden; position:relative; z-index:1; }
.tbt-identity-item { min-height:82px; padding:18px 20px; background:rgba(255,255,255,.035); border-right:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1); display:flex; flex-direction:column; gap:5px; }
.tbt-identity-item:nth-child(3n) { border-right:0; }
.tbt-identity-item span { color:#9fa6af; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }
.tbt-identity-item strong { color:#fff; font-size:.93rem; line-height:1.45; }
.tbt-identity-wide { grid-column:1/-1; border-right:0; border-bottom:0; }

.tbt-original-intro { background:#fff; border:1px solid var(--tbt-line); border-radius:18px; padding:20px 24px; color:#4c525a; margin-bottom:28px; }
.tbt-original-intro:empty { display:none; }
.tbt-original-intro > *:first-child { margin-top:0; }
.tbt-original-intro > *:last-child { margin-bottom:0; }

.tbt-content-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:34px; align-items:start; }
.tbt-content-layout.tbt-no-toc { grid-template-columns:1fr; }
.tbt-toc { position:sticky; top:110px; }
.tbt-toc-toggle { display:none; }
.tbt-toc-box { background:#fff; border:1px solid var(--tbt-line); border-radius:20px; padding:18px; box-shadow:0 12px 30px rgba(25,28,31,.045); }
.tbt-toc-title { color:#111419; font-weight:850; font-size:.86rem; padding:4px 6px 13px; border-bottom:1px solid var(--tbt-line); }
.tbt-toc nav { display:flex; flex-direction:column; padding-top:10px; }
.tbt-toc a { display:grid; grid-template-columns:29px 1fr; align-items:start; gap:8px; padding:9px 7px; border-radius:10px; color:#646a72; font-size:.81rem; line-height:1.35; transition:background .2s ease,color .2s ease,transform .2s ease; }
.tbt-toc a span { color:#9b8150; font-weight:800; font-variant-numeric:tabular-nums; }
.tbt-toc a:hover,.tbt-toc a.is-active { background:#fff8d7; color:#121417; transform:translateX(2px); }

.tbt-sections { min-width:0; }
.tbt-section-card { scroll-margin-top:120px; background:#fff; border:1px solid var(--tbt-line); border-radius:22px; padding:28px 30px 30px; margin-bottom:18px; box-shadow:0 12px 32px rgba(17,20,23,.045); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.tbt-section-card:hover { transform:translateY(-2px); box-shadow:0 18px 42px rgba(17,20,23,.07); border-color:#dbdde0; }
.tbt-section-head { display:flex; align-items:center; gap:14px; padding-bottom:18px; border-bottom:1px solid var(--tbt-line); }
.tbt-section-head > span { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--tbt-legal-accent); color:#0a0c0d; font-weight:900; font-size:.86rem; box-shadow:inset 0 -1px 0 rgba(0,0,0,.08); }
.tbt-section-head h2 { margin:0; font-size:clamp(1.15rem,2vw,1.48rem); line-height:1.25; color:#111418; letter-spacing:-.02em; }
.tbt-section-body { padding-top:18px; color:#4e555e; font-size:.97rem; }
.tbt-section-body p { margin:0 0 14px; }
.tbt-section-body p:last-child { margin-bottom:0; }
.tbt-section-body ul,.tbt-section-body ol { margin:10px 0 0; padding-left:1.25rem; }
.tbt-section-body a { color:#735d00; text-decoration:none; }
.tbt-section-body strong { color:#25292e; }

.tbt-crosslink { display:flex; align-items:center; justify-content:space-between; gap:22px; margin-top:26px; background:#111419; color:#fff!important; border-radius:20px; padding:24px 26px; box-shadow:0 16px 36px rgba(17,20,25,.12); transition:transform .2s ease, box-shadow .2s ease; }
.tbt-crosslink:hover { transform:translateY(-2px); box-shadow:0 22px 46px rgba(17,20,25,.17); }
.tbt-crosslink > span { display:flex; flex-direction:column; }
.tbt-crosslink small { color:#e7c730; font-weight:900; letter-spacing:.14em; font-size:.66rem; }
.tbt-crosslink strong { font-size:1.08rem; margin-top:2px; }
.tbt-crosslink em { color:#aeb4bb; font-style:normal; margin-top:4px; font-size:.86rem; }
.tbt-crosslink > svg { width:36px; height:36px; color:var(--tbt-legal-accent); }

.tbt-contact-card { margin-top:42px; background:linear-gradient(135deg,#fff 0%,#fff 65%,#fff8d9 100%); border:1px solid #e2e3e5; border-radius:26px; padding:32px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:34px; align-items:center; box-shadow:0 18px 44px rgba(20,23,26,.07); }
.tbt-contact-copy h2 { margin:4px 0 8px; color:#111419; font-size:clamp(1.35rem,2.4vw,1.9rem); letter-spacing:-.03em; }
.tbt-contact-copy p { margin:0; max-width:700px; color:#686e76; }
.tbt-contact-actions { min-width:230px; display:flex; flex-direction:column; gap:9px; }
.tbt-btn { min-height:46px; border:1px solid #dcdfe2; background:#fff; border-radius:13px; display:flex; align-items:center; justify-content:center; gap:9px; padding:10px 15px; font-weight:800; font-size:.87rem; transition:transform .2s ease, box-shadow .2s ease; }
.tbt-btn:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(20,23,26,.08); }
.tbt-btn-primary { background:#111419; border-color:#111419; color:#fff!important; }
.tbt-btn-primary svg { color:var(--tbt-legal-accent); }
.tbt-text-link { display:inline-flex; align-items:center; justify-content:center; gap:7px; color:#484d54!important; font-size:.82rem; font-weight:750; padding-top:3px; }
.tbt-text-link svg { width:15px; height:15px; }

@media (max-width: 900px) {
    .tbt-legal-hero { padding:72px 0 58px; }
    .tbt-hero-inner { grid-template-columns:1fr; gap:0; }
    .tbt-hero-mark { display:none; }
    .tbt-trust-grid { grid-template-columns:1fr; padding-block:8px; }
    .tbt-trust-grid > div,.tbt-trust-grid > div:first-child { min-height:66px; padding:12px 4px; border-right:0; border-bottom:1px solid var(--tbt-line); }
    .tbt-trust-grid > div:last-child { border-bottom:0; }
    .tbt-page-wrap { padding-top:32px; }
    .tbt-identity-grid { grid-template-columns:repeat(2,1fr); }
    .tbt-identity-item:nth-child(3n) { border-right:1px solid rgba(255,255,255,.1); }
    .tbt-identity-item:nth-child(2n) { border-right:0; }
    .tbt-content-layout { grid-template-columns:1fr; gap:16px; }
    .tbt-toc { position:relative; top:auto; z-index:5; }
    .tbt-toc-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; min-height:52px; border:1px solid var(--tbt-line); background:#fff; border-radius:15px; padding:0 16px; font:inherit; font-weight:800; color:#15181b; }
    .tbt-toc-toggle b { font-size:1.2rem; color:#8d7300; }
    .tbt-toc-box { display:none; margin-top:8px; max-height:60vh; overflow:auto; }
    .tbt-toc-box.is-open { display:block; }
    .tbt-contact-card { grid-template-columns:1fr; }
    .tbt-contact-actions { min-width:0; }
}

@media (max-width: 620px) {
    .tbt-shell { width:min(100% - 28px,1180px); }
    .tbt-legal-hero { padding:62px 0 50px; }
    .tbt-hero-copy h1 { font-size:clamp(2.35rem,12vw,3.55rem); }
    .tbt-hero-meta { flex-direction:column; align-items:flex-start; }
    .tbt-identity { border-radius:20px; padding:22px; }
    .tbt-identity-grid { grid-template-columns:1fr; }
    .tbt-identity-item,.tbt-identity-item:nth-child(2n),.tbt-identity-item:nth-child(3n) { border-right:0; }
    .tbt-identity-item:last-child { border-bottom:0; }
    .tbt-section-card { border-radius:18px; padding:22px 20px; }
    .tbt-section-head { align-items:flex-start; }
    .tbt-section-head > span { flex-basis:38px; width:38px; height:38px; }
    .tbt-contact-card { border-radius:20px; padding:24px 20px; }
    .tbt-crosslink { border-radius:18px; padding:20px; }
}

@media (prefers-reduced-motion: reduce) {
    .tbt-legal *, .tbt-legal *::before, .tbt-legal *::after { scroll-behavior:auto!important; transition:none!important; }
}

/* v1.0.1 safe enhancement: source nodes are hidden only after the premium copy is built successfully. */
body.tbt-legal-active .tbt-legal-source-hidden { display: none !important; }
body.tbt-legal-active .tbt-legal[data-tbt-legal-enhanced="1"] { width: 100%; max-width: none; margin: 0; padding: 0; }
body.tbt-legal-active .tbt-legal[data-tbt-legal-enhanced="1"] .tbt-section-body > *:first-child { margin-top: 0; }
body.tbt-legal-active .tbt-legal[data-tbt-legal-enhanced="1"] .tbt-section-body > *:last-child { margin-bottom: 0; }

/* v1.0.3: legal links keep the TaxiBT styling without decorative yellow underlines. */
body.tbt-legal-active .tbt-legal a,
body.tbt-legal-active .tbt-legal a:visited,
body.tbt-legal-active .tbt-legal a:hover,
body.tbt-legal-active .tbt-legal a:focus,
body.tbt-legal-active .tbt-legal a:active {
    text-decoration: none !important;
    text-decoration-line: none !important;
    text-decoration-thickness: 0 !important;
    text-underline-offset: 0 !important;
    background-image: none !important;
    border-bottom-color: transparent !important;
}
