/* terms.css — shared styling for all legal / terms pages */

.tm-hero, .tm-section { font-family: 'Public Sans', system-ui, sans-serif; }

.tm-wrap { max-width: 840px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px); }

/* hero */
.tm-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(75% 130% at 12% -10%, #143462 0%, rgba(20,52,98,0) 52%),
        radial-gradient(60% 120% at 100% 0%, #114b8a 0%, rgba(17,47,88,0) 50%),
        #0b2e4e;
    color: #fff;
    text-align: center;
}
.tm-hero .tm-wrap { padding-top: clamp(56px, 8vw, 92px); padding-bottom: clamp(56px, 8vw, 92px); }
.tm-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
    color: #bcd6f5; background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 8px 16px;
}
.tm-hero h1 {
    font-size: clamp(30px, 5vw, 48px); font-weight: 800; letter-spacing: -.025em;
    line-height: 1.08; text-wrap: balance; margin: 24px auto 0; color: #fff; max-width: 760px;
}

/* body */
.tm-section { background: #fff; border-top: 1px solid #ebedf0; color: #2a2a33; }
.tm-body { padding-top: clamp(44px, 5vw, 64px); padding-bottom: clamp(48px, 6vw, 80px); }
.tm-body h2 {
    font-size: clamp(19px, 2.4vw, 23px); font-weight: 800; letter-spacing: -.015em;
    color: #0b2e4e; line-height: 1.25; margin: 46px 0 14px;
}
.tm-body h2:first-child { margin-top: 0; }
.tm-body > p:first-child { margin-top: 0; }
.tm-body p {
    font-size: 16.5px; line-height: 1.75; color: #46566a; margin: 0 0 16px; text-wrap: pretty;
}
.tm-body a { color: #1277e1; text-decoration: none; }
.tm-body a:hover { color: #0c5cb8; text-decoration: underline; }

/* leading agreement paragraphs (all-caps) */
.tm-body p.tm-intro {
    font-size: 13.5px; line-height: 1.7; letter-spacing: .01em; font-weight: 700; color: #5a6472;
}

/* contact block as card */
.tm-body p.tm-contact {
    background: #f6f9fd; border: 1px solid #e6eef7; border-radius: 14px;
    padding: 20px 24px; color: #0b2e4e; font-weight: 600; line-height: 1.7;
}

/* updated stamp */
.tm-body p.tm-updated {
    margin-top: 28px; font-size: 13.5px; color: #8a929c; font-weight: 600;
}

/* ===== v2: readable layout with table of contents ===== */
.tm-effective {
    display: inline-flex; margin: 18px auto 0; padding: 7px 16px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
    color: #cfe3fb; background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.16); border-radius: 999px;
}

.tm-layout {
    max-width: 1160px; display: grid; grid-template-columns: 280px minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px); align-items: start;
    padding-top: clamp(40px, 5vw, 60px); padding-bottom: clamp(48px, 6vw, 80px);
}
.tm-layout .tm-body { padding: 0; }

.tm-side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 18px; }
.tm-card {
    background: #f7fafd; border: 1px solid #e4ecf5; border-radius: 16px; padding: 20px 22px;
}
.tm-card h2 {
    font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
    color: #7d8ca0; margin: 0 0 12px;
}
.tm-toc ol { margin: 0; padding: 0; list-style: none; max-height: min(52vh, 480px); overflow-y: auto; }
.tm-toc li + li { margin-top: 2px; }
.tm-toc a {
    display: block; padding: 6px 10px; border-radius: 8px;
    font-size: 13.5px; font-weight: 600; line-height: 1.4; color: #3d5068; text-decoration: none;
}
.tm-toc a:hover { background: #e9f2fc; color: #0c5cb8; text-decoration: none; }
.tm-directory ul { margin: 0; padding: 0; list-style: none; }
.tm-directory li + li { margin-top: 2px; }
.tm-directory a {
    display: block; padding: 6px 10px; border-radius: 8px;
    font-size: 13.5px; font-weight: 600; color: #1277e1; text-decoration: none;
}
.tm-directory a:hover { background: #e9f2fc; color: #0c5cb8; }

.tm-body h2 { scroll-margin-top: 88px; padding-top: 6px; }
.tm-body h2:not(:first-child) { border-top: 1px solid #eef2f6; padding-top: 28px; }

.tm-list { margin: 0 0 16px; padding: 2px 0 2px 6px; list-style: none; }
.tm-list li {
    position: relative; padding: 7px 0 7px 22px;
    font-size: 15.5px; line-height: 1.7; color: #46566a;
}
.tm-list li::before {
    content: ""; position: absolute; left: 0; top: 17px;
    width: 7px; height: 7px; border-radius: 999px; background: #9fc3ec;
}
.tm-list li + li { border-top: 1px dashed #edf1f6; }

.tm-caps {
    background: #f8f9fb; border: 1px solid #e8ecf1; border-left: 4px solid #c3d2e4;
    border-radius: 12px; padding: 16px 20px;
    font-size: 13px !important; line-height: 1.75 !important;
    letter-spacing: .015em; color: #5a6472 !important; font-weight: 600;
}

@media (max-width: 900px) {
    .tm-layout { grid-template-columns: 1fr; }
    .tm-side { position: static; }
    .tm-toc ol { max-height: 260px; }
}
@media print {
    .tm-side, .tm-hero { display: none; }
    .tm-layout { grid-template-columns: 1fr; }
}
