/* Trimfy editorial system: shared by blog articles, collections and policies. */
:root {
  --editorial-navy: #0a1f44;
  --editorial-red: #d32f2f;
  --editorial-paper: #f5f7fb;
  --editorial-muted: #526179;
  --editorial-line: #e3e8f0;
  --editorial-shadow: 0 18px 48px rgba(10, 31, 68, .08);
  --editorial-font-display: "Sora", sans-serif;
  --editorial-font-body: "Manrope", sans-serif;
}

html { scroll-behavior: smooth; }
body {
  color: var(--editorial-navy) !important;
  background: #fff !important;
  font-family: var(--editorial-font-body) !important;
  line-height: 1.72 !important;
  -webkit-font-smoothing: antialiased;
}
body::before { display: none !important; }
a { color: var(--editorial-navy); text-underline-offset: .18em; }
a:hover { color: var(--editorial-red); }

.nav {
  position: sticky !important;
  top: 0;
  z-index: 50;
  min-height: 78px;
  background: var(--editorial-navy) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
  backdrop-filter: blur(14px);
  box-shadow: 0 8px 24px rgba(10,31,68,.08);
}
.nav .wrap {
  width: min(calc(100% - 40px), 1320px);
  min-height: 78px;
  padding: 12px 0;
  gap: 20px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff !important;
  font: 800 27px/1 var(--editorial-font-display) !important;
  letter-spacing: -.065em !important;
  text-transform: lowercase;
}
.brand::before {
  content: "";
  display: inline-block;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  background: url("/assets/app/trimfy-mark.png") center/contain no-repeat;
}
.links { display:flex; align-items:center; justify-content:flex-end; gap: 24px; }
.links a {
  color: #d8e0ef !important;
  font: 700 12px/1.3 var(--editorial-font-body) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}
.links a:hover { color: #fff !important; transform: translateY(-1px); }
.links .cta {
  padding: 12px 17px;
  border: 1px solid var(--editorial-red) !important;
  border-radius: 7px;
  background: var(--editorial-red) !important;
  color: #fff !important;
  font-weight: 800 !important;
}
.links .cta:hover { background: #b32626 !important; border-color: #b32626 !important; }

.page {
  width: min(calc(100% - 40px), 1120px) !important;
  padding: clamp(36px, 6vw, 72px) 0 clamp(56px, 8vw, 96px) !important;
}
.panel, .article, .box, .group {
  color: var(--editorial-navy) !important;
  background: #fff !important;
  border: 1px solid var(--editorial-line) !important;
  border-radius: 18px !important;
  box-shadow: var(--editorial-shadow) !important;
  backdrop-filter: none !important;
}
.panel, .article, .box, .group { padding: clamp(24px, 5vw, 54px) !important; }
.panel, .group, .box { margin-bottom: 24px !important; }
.article > header.panel { background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; padding:0 !important; margin:0 0 22px !important; }
.panel h1, .hero h1, .article h1, .group h2, .box h2, .body h2,
.article h2, .article h3, .group h3, .box h3 {
  color: var(--editorial-navy) !important;
  font-family: var(--editorial-font-display) !important;
  font-weight: 700 !important;
  letter-spacing: -.045em !important;
  text-transform: none !important;
}
.panel h1, .hero h1, .article h1 {
  font-size: clamp(34px, 5.2vw, 58px) !important;
  line-height: 1.08 !important;
  margin: 8px 0 18px !important;
}
.group h2, .box h2, .body h2, .article h2 {
  font-size: clamp(23px, 3vw, 32px) !important;
  line-height: 1.2 !important;
  margin: 1.7em 0 .65em !important;
}
.article h3, .group h3, .box h3 { font-size: 19px !important; line-height: 1.35 !important; }
.panel p, .group > p, .teaser p, .box p, .article p, .body ul, .body ol,
.article li, .legal-page p, .legal-page li {
  color: var(--editorial-muted) !important;
  font-family: var(--editorial-font-body) !important;
  font-size: 16px !important;
  line-height: 1.78 !important;
}
.article > p, .article .body > p { max-width: 78ch; }
.eyebrow, .chips span, .meta div, .article-meta {
  color: var(--editorial-red) !important;
  font-family: var(--editorial-font-body) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
.eyebrow { margin: 0 0 12px !important; }
.lead {
  color: var(--editorial-muted) !important;
  font-size: clamp(17px, 2.1vw, 20px) !important;
  line-height: 1.7 !important;
  max-width: 72ch;
}
.article-meta { color: #73819a !important; letter-spacing: .02em !important; text-transform: none !important; }
.crumbs { color: #73819a !important; font: 600 12px/1.5 var(--editorial-font-body) !important; }
.crumbs a { color: var(--editorial-navy) !important; text-decoration-color: #b8c3d4; }
.meta { gap: 10px !important; }
.meta div { background: var(--editorial-paper) !important; border: 1px solid var(--editorial-line) !important; border-radius: 999px !important; }
.actions { gap: 12px !important; }
.btn, .btn2 {
  min-height: 46px;
  border-radius: 7px !important;
  padding: 12px 18px !important;
  font: 800 13px/1.4 var(--editorial-font-body) !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.btn { color: #fff !important; background: var(--editorial-red) !important; border: 1px solid var(--editorial-red) !important; }
.btn:hover { color:#fff !important; background:#b32626 !important; border-color:#b32626 !important; transform:translateY(-1px); }
.btn2 { color: var(--editorial-navy) !important; background:#fff !important; border:1px solid var(--editorial-line) !important; }
.btn2:hover { color:var(--editorial-navy) !important; border-color:var(--editorial-navy) !important; transform:translateY(-1px); }
.grid { gap: 16px !important; }
.teaser, .rel {
  color: var(--editorial-navy) !important;
  background: #fff !important;
  border: 1px solid var(--editorial-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 24px rgba(10,31,68,.045);
  padding: 22px !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.teaser:hover, .rel:hover { border-color:#b6c6df !important; box-shadow:0 14px 30px rgba(10,31,68,.09); transform:translateY(-2px); }
.teaser h3 { margin: 12px 0 8px !important; }
.teaser p { font-size:14px !important; }
.chips span { display:inline-flex; border-radius:999px !important; padding:6px 10px !important; background:#fff2f2 !important; color:#b32626 !important; letter-spacing:.04em !important; }
.answer-first { border-left: 3px solid var(--editorial-red) !important; background:var(--editorial-paper) !important; border-radius:0 12px 12px 0; padding:18px 20px !important; }
.body section + section { border-top:1px solid var(--editorial-line); padding-top:10px; }
.body ul, .body ol { padding-left:1.35em; }
.body li::marker { color:var(--editorial-red); }
.table-wrap { overflow-x:auto; border:1px solid var(--editorial-line); border-radius:12px; margin:24px 0; }
.table-wrap table { min-width:620px; border-collapse:collapse; background:#fff; }
.table-wrap th, .table-wrap td { padding:13px 15px !important; border-bottom:1px solid var(--editorial-line) !important; text-align:left; vertical-align:top; color:var(--editorial-muted); font-size:14px; }
.table-wrap th { color:#fff !important; background:var(--editorial-navy) !important; font:700 12px/1.45 var(--editorial-font-body) !important; }
.source-list { padding:18px 22px; background:var(--editorial-paper); border:1px solid var(--editorial-line); border-radius:12px; }
.source-list a, .related a { color:var(--editorial-navy) !important; }
.related { gap:14px !important; }
.rel { display:block; text-decoration:none; }
.rel span { color:var(--editorial-muted) !important; font:500 13px/1.6 var(--editorial-font-body) !important; }
.footer, .legal-page footer {
  color:#fff !important;
  background:var(--editorial-navy) !important;
  border:0 !important;
  padding:24px 0 !important;
}
.foot { width:min(calc(100% - 40px), 1320px) !important; color:#fff !important; }
.footnav { gap:20px !important; }
.footnav a { color:#d8e0ef !important; font:600 12px var(--editorial-font-body) !important; text-decoration:none; }
.footnav a:hover { color:#fff !important; }

/* Policy pages share the same brand palette and reading rhythm. */
body.legal-page {
  --bg-color:#fff !important; --text-primary:#0a1f44 !important; --text-secondary:#526179 !important;
  --accent-main:#d32f2f !important; --font-display:"Sora",sans-serif !important;
  --font-body:"Manrope",sans-serif !important; --nav-glass:#0a1f44 !important;
  background:#fff !important; color:#0a1f44 !important; font-family:var(--editorial-font-body) !important;
  line-height:1.72 !important; transition:none !important;
}
.legal-page nav {
  position:sticky !important; top:0 !important; width:100% !important; min-height:78px;
  padding:12px max(20px, calc((100vw - 1320px)/2)) !important; display:flex !important;
  justify-content:space-between !important; align-items:center !important; gap:20px;
  background:#0a1f44 !important; border-bottom:1px solid rgba(255,255,255,.12) !important;
  backdrop-filter:blur(14px); box-shadow:0 8px 24px rgba(10,31,68,.08);
}
.legal-page .logo { color:#fff !important; font:800 27px/1 var(--editorial-font-display) !important; letter-spacing:-.065em !important; text-transform:lowercase; }
.legal-page .logo::before {
  content:""; display:inline-block; width:32px; height:32px; vertical-align:middle; margin-right:10px;
  background:url("/assets/app/trimfy-mark.png") center/contain no-repeat;
}
.legal-page .back-link { color:#d8e0ef !important; font:700 12px/1.4 var(--editorial-font-body) !important; letter-spacing:0 !important; text-transform:none !important; }
.legal-page .back-link:hover { color:#fff !important; }
.legal-page main {
  width:min(calc(100% - 40px), 980px) !important; max-width:980px !important; margin:0 auto !important;
  padding:clamp(44px, 7vw, 78px) 0 !important; z-index:auto !important;
}
.legal-page .header-section { margin:0 0 26px !important; padding:0 !important; text-align:left !important; opacity:1 !important; animation:none !important; }
.legal-page .header-section > span { color:var(--editorial-red) !important; font:800 11px/1.4 var(--editorial-font-body) !important; letter-spacing:.12em; text-transform:uppercase; }
.legal-page h1 {
  color:var(--editorial-navy) !important; font:800 clamp(36px, 6vw, 58px)/1.08 var(--editorial-font-display) !important;
  letter-spacing:-.055em !important; text-transform:none !important; margin:12px 0 16px !important;
}
.legal-page h1 span { color:var(--editorial-red) !important; }
.legal-page .lead { color:var(--editorial-muted) !important; font-size:18px !important; line-height:1.7 !important; }
.legal-page .meta { color:#73819a !important; font:600 12px/1.5 var(--editorial-font-body) !important; }
.legal-page .legal-content { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; opacity:1 !important; animation:none !important; }
.legal-page .notice { background:#fff2f2 !important; border-left:3px solid var(--editorial-red) !important; border-radius:0 10px 10px 0; color:var(--editorial-navy) !important; }
.legal-page .notice a { color:#b32626 !important; }
.legal-page .card {
  color:var(--editorial-navy) !important; background:#fff !important; border:1px solid var(--editorial-line) !important;
  border-radius:18px !important; box-shadow:var(--editorial-shadow) !important; padding:clamp(24px, 5vw, 48px) !important;
  font:400 15px/1.8 var(--editorial-font-body) !important;
}
.legal-page .card h2, .legal-page .card h3 {
  color:var(--editorial-navy) !important; font-family:var(--editorial-font-display) !important;
  font-weight:700 !important; letter-spacing:-.035em !important; text-transform:none !important;
  line-height:1.3 !important; margin:2em 0 .65em !important;
}
.legal-page .card h2 { font-size:22px !important; }
.legal-page .card h3 { font-size:17px !important; }
.legal-page .card p, .legal-page .card li { color:var(--editorial-muted) !important; font:400 15px/1.8 var(--editorial-font-body) !important; }
.legal-page .card a { color:var(--editorial-navy) !important; font-weight:700; }
.legal-page .card a:hover { color:var(--editorial-red) !important; }
.legal-page footer { margin-top:28px; text-align:center; }
.legal-page footer a, .legal-page footer span { color:#d8e0ef !important; font:600 12px var(--editorial-font-body) !important; }
.legal-page footer a:hover { color:#fff !important; }

@media (max-width: 640px) {
  .nav, .nav .wrap { min-height:66px; }
  .nav .wrap { width:calc(100% - 28px); }
  .brand { font-size:23px !important; }
  .brand::before { width:27px; height:27px; flex-basis:27px; }
  .links { gap:12px; }
  .links a { font-size:11px !important; }
  .links .cta { padding:10px 12px; }
  .page { width:calc(100% - 28px) !important; padding:30px 0 54px !important; }
  .panel, .article, .box, .group { padding:22px 18px !important; border-radius:14px !important; }
  .footer .foot { width:calc(100% - 28px) !important; }
  .legal-page nav { min-height:66px; padding:10px 14px !important; }
  .legal-page .logo { font-size:23px !important; }
  .legal-page .logo::before { width:27px; height:27px; }
  .legal-page main { width:calc(100% - 28px) !important; padding:34px 0 52px !important; }
  .legal-page .card { padding:22px 18px !important; border-radius:14px !important; }
}

@media (min-width: 641px) and (max-width: 700px) {
  .nav .wrap { flex-direction:row !important; align-items:center !important; width:calc(100% - 28px); min-height:66px; }
  .links { margin-left:auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
