/* CMS pages (Website → Pages) — layouts 1 Classic · 2 Hero banner · 3 Legal document · 4 Wide · 5 Card */
.cms-page { padding-bottom: 24px; }
.cms-wrap { max-width: 880px; margin-top: 44px; }
.cms-head { margin-bottom: 26px; }
.cms-head h1 { margin-bottom: 8px; }
.cms-sub { font-size: 1.12rem; color: #5b6880; margin: 0; }
.cms-cover { width: 100%; max-height: 420px; object-fit: cover; border-radius: var(--r-lg, 22px); margin-bottom: 28px; }
.cms-content { line-height: 1.75; }
.cms-content h2 { font-size: 1.45rem; font-weight: 800; color: #0b1836; margin-top: 2rem; scroll-margin-top: 90px; }
.cms-content h3 { font-size: 1.15rem; font-weight: 700; color: #0b1836; scroll-margin-top: 90px; }
.cms-content a { color: var(--tp); }
.cms-content table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.4rem; font-size: .95rem; }
.cms-content th, .cms-content td { border: 1px solid #e3e8f1; padding: 10px 12px; text-align: left; }
.cms-content th { background: #f5f7fb; font-weight: 700; }
.cms-content img { max-width: 100%; height: auto; }

/* 2 · Hero banner */
.cms-hero { position: relative; min-height: 360px; display: flex; align-items: flex-end; padding: 120px 0 48px; color: #fff; background: #0b1220 var(--cms-cover) center / cover no-repeat; isolation: isolate; }
.cms-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(5,10,20,.15), rgba(5,10,20,.78)); }
.cms-hero.is-plain { background: linear-gradient(135deg, var(--tp), var(--tp-2, var(--tp))); min-height: 280px; }
.cms-hero.is-plain::before { background: radial-gradient(ellipse at 80% 0%, rgba(255,255,255,.18), transparent 60%); }
.cms-hero h1 { color: #fff; font-size: clamp(2rem, 4.6vw, 3.4rem); font-weight: 800; margin: 0 0 8px; letter-spacing: -.02em; text-shadow: 0 4px 30px rgba(0,0,0,.35); }
.cms-hero p { font-size: 1.15rem; margin: 0; opacity: .92; max-width: 60ch; }

/* 3 · Legal document */
.cms-l3 .cms-wrap { max-width: 1100px; }
.cms-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; color: #5b6880; font-size: .92rem; }
.cms-print { border: 1px solid #d7dde6; background: #fff; border-radius: 999px; padding: 4px 12px; font-size: .82rem; display: inline-flex; gap: 6px; align-items: center; color: #334155; }
.cms-doc { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; align-items: start; }
.cms-toc { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 2px; padding: 16px; border: 1px solid #e3e8f1; border-radius: 16px; background: #fff; font-size: .9rem; max-height: calc(100vh - 120px); overflow: auto; }
.cms-toc b { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #8390a8; margin-bottom: 6px; }
.cms-toc a { color: #334155; text-decoration: none; padding: 5px 8px; border-radius: 8px; line-height: 1.35; }
.cms-toc a:hover { background: #f1f5ff; color: var(--tp); }
.cms-toc a.lvl3 { padding-left: 20px; font-size: .84rem; color: #5b6880; }
.cms-doc > .cms-content:only-child { grid-column: 1 / -1; }

/* 4 · Wide */
.cms-l4 .cms-wrap { max-width: 1180px; }
.cms-l4 .cms-content { font-size: 1.06rem; columns: auto; }

/* 5 · Card */
.cms-band { padding: 70px 0 110px; color: #fff; background: linear-gradient(135deg, var(--tp), var(--tp-2, var(--tp))); position: relative; overflow: hidden; }
.cms-band::after { content: ""; position: absolute; right: -80px; top: -120px; width: 380px; height: 380px; border-radius: 50%; background: rgba(255,255,255,.1); }
.cms-band h1 { color: #fff; font-weight: 800; font-size: clamp(1.9rem, 4vw, 3rem); margin: 0 0 6px; }
.cms-band p { margin: 0; opacity: .9; font-size: 1.1rem; }
.cms-l5 .cms-wrap { margin-top: -70px; position: relative; }
.cms-card { background: #fff; border-radius: 24px; box-shadow: 0 30px 70px -30px rgba(15,23,42,.35); padding: 40px 44px; overflow: hidden; }
.cms-card-img { width: calc(100% + 88px); margin: -40px -44px 28px; max-height: 340px; object-fit: cover; display: block; }

@media (max-width: 991.98px) {
    .cms-doc { grid-template-columns: 1fr; gap: 16px; }
    .cms-toc { position: static; max-height: none; }
}
@media (max-width: 767.98px) {
    .cms-wrap { margin-top: 26px; }
    .cms-hero { min-height: 260px; padding: 90px 0 30px; }
    .cms-card { padding: 24px 20px; border-radius: 18px; }
    .cms-card-img { width: calc(100% + 40px); margin: -24px -20px 20px; }
    .cms-content table { display: block; overflow-x: auto; }
}
@media print {
    .site-header, .site-footer, .ftr-cta, .cms-toc, .cms-print, .mbar, .wa-float, header.navbar { display: none !important; }
    .cms-doc { display: block; }
}
