/* Hein Tutoring: public site. Brand colours come from the logo. */
:root {
  --hein-blue: #0082C8;
  --hein-blue-dark: #006aa3;
  --hein-navy: #162B55;
  --hein-orange: #F26522;
  --hein-orange-dark: #d9531a;
  --hein-cyan: #41C4E7;
  --hein-tint: #eef7fc;
  --hein-ink: #1d2b45;
  --hein-muted: #5b6b86;
  --hein-line: #dbe6f0;
  --font-head: 'Fraunces', Georgia, serif;
  --font-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bs-primary: var(--hein-blue);
  --bs-primary-rgb: 0,130,200;
  --bs-body-font-family: var(--font-body);
  --bs-body-color: var(--hein-ink);
  --bs-link-color: var(--hein-blue);
  --bs-link-hover-color: var(--hein-blue-dark);
}

html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { font-family: var(--font-body); color: var(--hein-ink); font-size: 1.04rem; line-height: 1.65; }
h1, h2, h3, h4, .display-font { font-family: var(--font-head); color: var(--hein-navy); font-weight: 600; letter-spacing: -.01em; line-height: 1.15; }
h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
h3 { font-size: 1.3rem; }
.lead { color: var(--hein-muted); font-size: 1.15rem; }
.eyebrow { font-family: var(--font-body); font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hein-blue); }
.section { padding: 5rem 0; }
.section-tint { background: var(--hein-tint); }
.section-head { max-width: 640px; margin-bottom: 2.5rem; }

/* Buttons */
.btn { font-weight: 700; border-radius: 10px; padding: .7rem 1.35rem; }
.btn-hein { background: var(--hein-orange); border-color: var(--hein-orange); color: #fff; }
.btn-hein:hover, .btn-hein:focus { background: var(--hein-orange-dark); border-color: var(--hein-orange-dark); color: #fff; }
.btn-blue { background: var(--hein-blue); border-color: var(--hein-blue); color: #fff; }
.btn-blue:hover { background: var(--hein-blue-dark); border-color: var(--hein-blue-dark); color: #fff; }
.btn-outline-hein { border: 2px solid var(--hein-blue); color: var(--hein-blue); background: transparent; }
.btn-outline-hein:hover { background: var(--hein-blue); color: #fff; }
.btn-outline-light-hein { border: 2px solid rgba(255,255,255,.6); color: #fff; }
.btn-outline-light-hein:hover { background: #fff; color: var(--hein-navy); }

/* Navbar */
.site-nav { background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.site-nav.is-scrolled { border-color: var(--hein-line); box-shadow: 0 6px 24px rgba(22,43,85,.06); }
.site-nav .navbar-brand img { height: 44px; width: auto; }
.site-nav .navbar-brand span { font-family: var(--font-head); font-weight: 600; font-size: 1.25rem; color: var(--hein-blue); margin-left: .55rem; }
.site-nav .nav-link { color: var(--hein-navy); font-weight: 600; font-size: .96rem; padding: .5rem .8rem; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--hein-blue); }
.dropdown-menu { border: 1px solid var(--hein-line); border-radius: 12px; box-shadow: 0 14px 34px rgba(22,43,85,.12); padding: .5rem; }
.dropdown-item { border-radius: 8px; font-weight: 500; padding: .5rem .85rem; }
.dropdown-item:hover { background: var(--hein-tint); color: var(--hein-blue); }
@media (min-width: 992px) { .site-nav .dropdown:hover > .dropdown-menu { display: block; margin-top: 0; } }

/* Hero */
.hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #fff 0%, var(--hein-tint) 100%); padding: 4.5rem 0 5rem; }
.hero .tiles { position: absolute; inset: 0; pointer-events: none; }
.hero .tile { position: absolute; border-radius: 4px; transform: rotate(-18deg); opacity: .9; }
.hero-mark { width: min(100%, 380px); filter: drop-shadow(0 22px 30px rgba(22,43,85,.14)); }
.hero-points { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; color: var(--hein-muted); font-size: .95rem; margin-top: 1.5rem; }
.hero-points span::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 2px; background: var(--hein-orange); margin-right: .5rem; transform: rotate(-18deg); }

/* Strip */
.format-strip { background: var(--hein-navy); color: #fff; }
.format-strip .item { padding: 1rem 0; font-weight: 600; font-size: .95rem; text-align: center; }
.format-strip .item + .item { border-left: 1px solid rgba(255,255,255,.14); }

/* Cards */
.level-card { background: #fff; border: 1px solid var(--hein-line); border-radius: 18px; padding: 2rem; height: 100%; position: relative; transition: transform .2s, box-shadow .2s, border-color .2s; }
.level-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(22,43,85,.10); border-color: var(--hein-cyan); }
.level-card .range { font-family: var(--font-head); font-size: 2.6rem; color: var(--hein-blue); line-height: 1; }
.level-card .from { color: var(--hein-muted); font-size: .92rem; }
.level-card .from strong { color: var(--hein-navy); }
.level-card::after { content: ''; position: absolute; top: 18px; right: 18px; width: 14px; height: 14px; border-radius: 3px; background: var(--hein-cyan); transform: rotate(-18deg); }
.level-card.l2::after { background: var(--hein-orange); }
.level-card.l3::after { background: var(--hein-navy); }

.format-card { display: block; text-decoration: none; color: inherit; background: #fff; border-radius: 16px; padding: 1.6rem; height: 100%; border: 1px solid var(--hein-line); transition: border-color .2s, transform .2s; }
.format-card:hover { border-color: var(--hein-blue); transform: translateY(-3px); color: inherit; }
.format-card .num { font-family: var(--font-head); font-size: 1.1rem; color: var(--hein-orange); font-weight: 600; }
.format-card h3 { margin: .4rem 0 .5rem; }
.format-card p { color: var(--hein-muted); margin: 0; font-size: .97rem; }
.format-card .go { display: inline-block; margin-top: 1rem; font-weight: 700; color: var(--hein-blue); font-size: .93rem; }

.method-item { padding-left: 1.1rem; border-left: 3px solid var(--hein-cyan); }
.method-item h3 { font-size: 1.1rem; margin-bottom: .3rem; font-family: var(--font-body); font-weight: 700; }
.method-item p { color: var(--hein-muted); margin: 0; font-size: .97rem; }

/* Fees band */
.fees-band { background: var(--hein-navy); color: #fff; position: relative; overflow: hidden; }
.fees-band h2 { color: #fff; }
.fees-band .lead { color: rgba(255,255,255,.78); }
.fee-box { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 16px; padding: 1.5rem; height: 100%; }
.fee-box .lvl { font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: var(--hein-cyan); font-weight: 700; }
.fee-box .amt { font-family: var(--font-head); font-size: 2rem; margin: .2rem 0 0; }
.fee-box .per { color: rgba(255,255,255,.65); font-size: .9rem; }
.fee-box .save { margin-top: .9rem; padding-top: .9rem; border-top: 1px dashed rgba(255,255,255,.22); font-size: .9rem; color: #ffd9c6; }

/* Books */
.book-card { display: block; text-decoration: none; color: inherit; }
.book-card .cover { aspect-ratio: 3/4; border-radius: 12px; background: var(--hein-tint); border: 1px solid var(--hein-line); overflow: hidden; display: flex; align-items: center; justify-content: center; transition: box-shadow .2s, transform .2s; }
.book-card:hover .cover { box-shadow: 0 16px 34px rgba(22,43,85,.16); transform: translateY(-3px); }
.book-card .cover img { width: 100%; height: 100%; object-fit: cover; }
.book-card .cover .ph { width: 38%; opacity: .5; }
.book-card h3 { font-size: 1.05rem; margin: .8rem 0 .15rem; font-family: var(--font-body); font-weight: 700; }
.book-card .price { color: var(--hein-orange-dark); font-weight: 700; }

/* Quotes */
.quote-card { background: #fff; border-radius: 16px; padding: 1.8rem; height: 100%; border: 1px solid var(--hein-line); }
.quote-card p { font-family: var(--font-head); font-size: 1.12rem; color: var(--hein-navy); line-height: 1.5; }
.quote-card .who { font-size: .92rem; color: var(--hein-muted); }
.quote-card .who strong { color: var(--hein-ink); display: block; }

/* CTA */
.cta-band { background: var(--hein-blue); color: #fff; }
.cta-band h2 { color: #fff; }

/* Footer */
.site-footer { background: #0f1f3f; color: rgba(255,255,255,.78); padding: 4rem 0 1.5rem; font-size: .96rem; }
.site-footer h4 { font-family: var(--font-body); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; font-weight: 700; }
.site-footer a { color: rgba(255,255,255,.78); text-decoration: none; }
.site-footer a:hover { color: var(--hein-cyan); }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: .5rem; }
.site-footer .brand-line { font-family: var(--font-head); color: #fff; font-size: 1.4rem; }
.site-footer .motto { color: var(--hein-orange); font-weight: 600; }
.site-footer .legal { border-top: 1px solid rgba(255,255,255,.14); margin-top: 2.5rem; padding-top: 1.2rem; font-size: .88rem; color: rgba(255,255,255,.55); }

/* Cookie notice */
.cookie-note { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; max-width: 560px; margin-left: auto; background: #fff; border: 1px solid var(--hein-line); border-radius: 14px; box-shadow: 0 18px 44px rgba(22,43,85,.2); padding: 1rem 1.2rem; z-index: 1080; display: none; font-size: .92rem; }
.cookie-note.show { display: block; }

@media (max-width: 767px) {
  .section { padding: 3.5rem 0; }
  .hero { padding: 2.5rem 0 3rem; }
  .format-strip .item + .item { border-left: 0; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---------- Inner pages ---------- */
.page-hero { background: linear-gradient(180deg, #fff 0%, var(--hein-tint) 100%); padding: 3.5rem 0 3rem; border-bottom: 1px solid var(--hein-line); position: relative; overflow: hidden; }
.page-hero::after { content: ''; position: absolute; right: 8%; top: 28%; width: 34px; height: 34px; background: var(--hein-orange); border-radius: 5px; transform: rotate(-18deg); opacity: .9; }
.page-hero::before { content: ''; position: absolute; right: 14%; top: 56%; width: 18px; height: 18px; background: var(--hein-cyan); border-radius: 3px; transform: rotate(-18deg); }
.page-hero .lead { max-width: 640px; margin-bottom: 0; }
.crumbs { font-size: .88rem; color: var(--hein-muted); margin-bottom: .8rem; }
.crumbs a { color: var(--hein-muted); text-decoration: none; }
.crumbs a:hover { color: var(--hein-blue); }

.prose h2 { font-size: 1.5rem; margin: 2rem 0 .7rem; }
.prose h3 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; font-family: var(--font-body); font-weight: 700; }
.prose p { margin-bottom: 1rem; }
.prose ul { padding-left: 1.2rem; }
.prose li { margin-bottom: .45rem; }
.prose li::marker { color: var(--hein-orange); }

.side-card { background: #fff; border: 1px solid var(--hein-line); border-radius: 16px; padding: 1.5rem; }
.side-card.sticky { position: sticky; top: 96px; }

/* Structure sub-nav */
.subnav { position: sticky; top: 68px; z-index: 1020; background: #fff; border-bottom: 1px solid var(--hein-line); }
.subnav .nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.subnav .nav::-webkit-scrollbar { display: none; }
.subnav .nav-link { color: var(--hein-muted); font-weight: 600; white-space: nowrap; padding: .9rem 1.1rem; border-bottom: 3px solid transparent; border-radius: 0; }
.subnav .nav-link.active { color: var(--hein-blue); border-bottom-color: var(--hein-orange); }
.structure-page { scroll-padding-top: 140px; }
.structure-page section[id] { scroll-margin-top: 130px; }

.grade-chip { display: inline-block; padding: .35rem .9rem; border-radius: 999px; background: var(--hein-tint); border: 1px solid var(--hein-line); color: var(--hein-navy); font-weight: 700; font-size: .92rem; margin: 0 .35rem .5rem 0; }
.grade-chip small { color: var(--hein-muted); font-weight: 500; margin-left: .25rem; }

.subject-tabs .nav-link { border-radius: 999px; color: var(--hein-navy); font-weight: 700; background: #fff; border: 1px solid var(--hein-line); margin-right: .5rem; }
.subject-tabs .nav-link.active { background: var(--hein-blue); border-color: var(--hein-blue); color: #fff; }
.subject-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .75rem; }
.subject-list li { background: #fff; border: 1px solid var(--hein-line); border-radius: 12px; padding: .8rem 1rem; font-weight: 600; color: var(--hein-navy); position: relative; padding-left: 2.2rem; }
.subject-list li::before { content: ''; position: absolute; left: 1rem; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 2px; background: var(--hein-cyan); transform: rotate(-18deg); }
.subject-list li:nth-child(3n+2)::before { background: var(--hein-orange); }
.subject-list li:nth-child(3n)::before { background: var(--hein-navy); }

.fee-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--hein-line); border-radius: 14px; overflow: hidden; }
.fee-table th, .fee-table td { padding: .9rem 1rem; border-bottom: 1px solid var(--hein-line); vertical-align: middle; }
.fee-table thead th { background: var(--hein-navy); color: #fff; font-weight: 700; font-size: .92rem; white-space: nowrap; }
.fee-table tbody tr:last-child td, .fee-table tbody tr:last-child th { border-bottom: 0; }
.fee-table tbody th { font-weight: 700; color: var(--hein-navy); }
.fee-table tbody th small { display: block; color: var(--hein-muted); font-weight: 500; }
.fee-table td { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.fee-table tr.best { background: #fff6f0; }
.fee-badge { display: inline-block; background: var(--hein-orange); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 6px; margin-left: .4rem; vertical-align: middle; }

.value-card { background: #fff; border: 1px solid var(--hein-line); border-radius: 16px; padding: 1.8rem; height: 100%; }
.value-card .tag { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hein-orange-dark); }
.value-card p { font-family: var(--font-head); font-size: 1.2rem; color: var(--hein-navy); line-height: 1.45; margin: .6rem 0 0; }
.value-card.motto { background: var(--hein-navy); border-color: var(--hein-navy); }
.value-card.motto .tag { color: var(--hein-cyan); }
.value-card.motto p { color: #fff; font-size: 1.7rem; }

.promise { display: flex; gap: 1rem; align-items: flex-start; }
.promise .dot { flex: 0 0 14px; height: 14px; margin-top: .55rem; border-radius: 3px; background: var(--hein-blue); transform: rotate(-18deg); }
.promise:nth-child(3n+2) .dot { background: var(--hein-orange); }
.promise:nth-child(3n) .dot { background: var(--hein-navy); }
.promise h3 { font-size: 1.05rem; font-family: var(--font-body); font-weight: 700; margin-bottom: .2rem; }
.promise p { margin: 0; color: var(--hein-muted); font-size: .97rem; }

/* ---------- Auth ---------- */
.auth-wrap { background: linear-gradient(180deg, var(--hein-tint), #fff); padding: 3.5rem 0 5rem; min-height: 70vh; }
.auth-card { background: #fff; border: 1px solid var(--hein-line); border-radius: 20px; padding: 2.2rem; box-shadow: 0 20px 50px rgba(22,43,85,.08); }
.auth-card h1 { font-size: 1.9rem; }
.form-label { font-weight: 600; font-size: .92rem; color: var(--hein-navy); }
.form-control, .form-select { border-radius: 10px; padding: .7rem .9rem; border-color: #c9d8e6; }
.form-control:focus, .form-select:focus { border-color: var(--hein-blue); box-shadow: 0 0 0 .2rem rgba(0,130,200,.15); }
.role-pick { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.role-pick input { position: absolute; opacity: 0; pointer-events: none; }
.role-pick label { display: block; text-align: center; border: 1.5px solid var(--hein-line); border-radius: 12px; padding: .8rem .4rem; cursor: pointer; font-weight: 700; color: var(--hein-navy); line-height: 1.2; transition: border-color .15s, background .15s; }
.role-pick label small { display: block; font-weight: 500; color: var(--hein-muted); font-size: .76rem; margin-top: .2rem; }
.role-pick input:checked + label { border-color: var(--hein-blue); background: var(--hein-tint); }
.role-pick input:focus-visible + label { outline: 3px solid rgba(0,130,200,.35); }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Dashboard ---------- */
body.dash { background: #f5f8fb; }
.dash-top { background: #fff; border-bottom: 1px solid var(--hein-line); height: 60px; position: sticky; top: 0; z-index: 1030; }
.dash-top .brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; font-family: var(--font-head); font-weight: 600; color: var(--hein-blue); font-size: 1.15rem; }
.dash-top .brand img { height: 34px; }
.role-badge { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: var(--hein-tint); color: var(--hein-blue); border-radius: 999px; padding: .2rem .65rem; }
.dash-side { background: var(--hein-navy); color: #fff; }
.dash-side .nav-link { color: rgba(255,255,255,.78); font-weight: 600; font-size: .95rem; border-radius: 10px; padding: .55rem .8rem; }
.dash-side .nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.dash-side .nav-link.active { color: #fff; background: var(--hein-blue); }
.dash-side .group { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45); margin: 1.2rem .8rem .4rem; font-weight: 700; }
@media (min-width: 992px) { .dash-side { position: sticky; top: 60px; height: calc(100vh - 60px); overflow-y: auto; } }
.dash-main { padding: 2rem 1.5rem 4rem; }
.dash-main h1 { font-size: 1.8rem; }
.stat { background: #fff; border: 1px solid var(--hein-line); border-radius: 14px; padding: 1.2rem 1.3rem; height: 100%; }
.stat .n { font-family: var(--font-head); font-size: 2rem; color: var(--hein-navy); line-height: 1.1; }
.stat .l { color: var(--hein-muted); font-size: .9rem; }
.panel { background: #fff; border: 1px solid var(--hein-line); border-radius: 14px; padding: 1.4rem; }
.code-card { background: var(--hein-navy); color: #fff; border-radius: 14px; padding: 1.4rem; }
.code-card .code { font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace; font-size: 1.9rem; letter-spacing: .08em; color: var(--hein-cyan); }

/* ---------- Dashboard management screens ---------- */
.badge-status { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .25rem .6rem; border-radius: 999px; }
.badge-status.on { background: #e3f6ec; color: #17754a; }
.badge-status.off { background: #fdeaea; color: #a83232; }
.badge-status.soon { background: #fff2e0; color: #a85d00; }
.post-card { background: #fff; border: 1px solid var(--hein-line); border-radius: 14px; padding: 1.3rem 1.4rem; margin-bottom: 1rem; }
.post-card .meta { color: var(--hein-muted); font-size: .86rem; }
.post-card .body { white-space: pre-line; margin: .7rem 0 0; }
.attach-chip { display: inline-flex; align-items: center; gap: .4rem; background: var(--hein-tint); border: 1px solid var(--hein-line); border-radius: 8px; padding: .3rem .7rem; font-size: .87rem; font-weight: 600; text-decoration: none; margin: .5rem .4rem 0 0; color: var(--hein-navy); }
.attach-chip:hover { border-color: var(--hein-blue); color: var(--hein-blue); }
.program-cover { width: 100%; max-height: 220px; object-fit: cover; border-radius: 12px; }

/* ---------- Pay ---------- */
.pay-steps { list-style: none; padding: 0; margin: 0; counter-reset: step; }
.pay-steps li { position: relative; padding: 0 0 1.2rem 2.6rem; counter-increment: step; }
.pay-steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 1.9rem; height: 1.9rem; border-radius: 8px; background: var(--hein-blue); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; transform: rotate(-8deg); }
.pay-steps li:nth-child(2)::before { background: var(--hein-orange); }
.pay-steps li:nth-child(3)::before { background: var(--hein-navy); }
.pay-steps strong { display: block; color: var(--hein-navy); }
.pay-steps span { color: var(--hein-muted); font-size: .94rem; }
.status-ring { width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 1.2rem; display: flex; align-items: center; justify-content: center; font-size: 2.2rem; }
.status-ring.pending { border: 6px solid var(--hein-tint); border-top-color: var(--hein-blue); animation: spin 1s linear infinite; font-size: 0; }
.status-ring.ok { background: #e3f6ec; color: #17754a; }
.status-ring.bad { background: #fdeaea; color: #a83232; }
@keyframes spin { to { transform: rotate(360deg); } }
.receipt-row { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--hein-line); font-size: .97rem; }
.receipt-row:last-child { border-bottom: 0; }
.receipt-row span:first-child { color: var(--hein-muted); }
@media print { .site-nav, .site-footer, .cookie-note, .no-print { display: none !important; } }

/* ---------- Content pages ---------- */
.accordion { --bs-accordion-border-color: var(--hein-line); --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(0,130,200,.15); --bs-accordion-active-bg: var(--hein-tint); --bs-accordion-active-color: var(--hein-navy); }
.accordion-button { font-weight: 700; color: var(--hein-navy); }
.accordion-item { border-radius: 12px !important; overflow: hidden; margin-bottom: .6rem; border: 1px solid var(--hein-line) !important; }
.content-card { display: block; background: #fff; border: 1px solid var(--hein-line); border-radius: 16px; overflow: hidden; text-decoration: none; color: inherit; height: 100%; transition: transform .2s, box-shadow .2s, border-color .2s; }
.content-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(22,43,85,.10); border-color: var(--hein-cyan); color: inherit; }
.content-card .thumb { aspect-ratio: 16/9; background: var(--hein-tint); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.content-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.content-card .thumb img.ph { width: 22%; height: auto; opacity: .45; object-fit: contain; }
.content-card .inner { padding: 1.3rem 1.4rem 1.5rem; }
.content-card h3 { font-size: 1.2rem; margin: .3rem 0 .5rem; }
.content-card p { color: var(--hein-muted); margin: 0; font-size: .96rem; }
.kind-tag { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hein-orange-dark); }
.article { max-width: 720px; margin: 0 auto; }
.article p { font-size: 1.08rem; line-height: 1.75; margin-bottom: 1.2rem; }
.story-note { background: #fff6f0; border: 1px solid #ffd9c6; border-radius: 12px; padding: .8rem 1rem; font-size: .9rem; color: #7a3a14; margin-bottom: 1.8rem; }
.legal h2 { font-size: 1.35rem; margin: 2.2rem 0 .6rem; }
.legal h3 { font-size: 1.02rem; font-family: var(--font-body); font-weight: 700; margin: 1.3rem 0 .3rem; }
.legal p, .legal li { color: #34435e; }
.legal li { margin-bottom: .4rem; }
.legal li::marker { color: var(--hein-orange); }
.legal table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .95rem; }
.legal th, .legal td { border: 1px solid var(--hein-line); padding: .7rem .9rem; vertical-align: top; }
.legal th { background: var(--hein-tint); color: var(--hein-navy); }
