/* ======================================================
   Site Styles
   ====================================================== */
:root {
  --accent: #e07b39;
  --dark:   #1e3a5f;
  --cream:  #faf7f2;
  --cream-dk: #f0ebe0;
  --border: #ddd5c5;
  --ink:    #1a1612;
  --muted:  #7a7060;
  --white:  #ffffff;
  --font-serif: 'DM Serif Display', Georgia, serif;
  --font-sans:  'DM Sans', system-ui, sans-serif;
  --max: 1100px;
  --r:   8px;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { background:var(--cream); color:var(--ink); font-family:var(--font-sans); font-size:17px; line-height:1.72; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; color:var(--dark); }

/* ── Header ──────────────────────────────────────────── */
.site-header { background:var(--dark); position:sticky; top:0; z-index:100; }
.hdr { max-width:var(--max); margin:0 auto; padding:.8rem 1.5rem;
         display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.brand img { height:38px; width:auto; }
.nav { display:flex; gap:.2rem; }
.nav a { font-size:.84rem; font-weight:600; color:rgba(255,255,255,.7);
           padding:.4rem .75rem; border-radius:6px; transition:.15s; text-decoration:none; }
.nav a:hover { background:rgba(255,255,255,.1); color:#fff; }
.nav .cta { background:var(--accent); color:#fff !important; }
.nav .cta:hover { opacity:.88; }
.hamburger { display:none; align-items:center; justify-content:center;
              width:38px; height:38px; background:rgba(255,255,255,.1);
              border-radius:6px; cursor:pointer; color:#fff; font-size:1rem;
              border:none; }
.mnav { display:none; background:var(--dark); border-top:1px solid rgba(255,255,255,.1); }
.mnav.open { display:block; }
.mnav a { display:block; padding:.85rem 1.5rem; border-bottom:1px solid rgba(255,255,255,.06);
            font-size:.9rem; font-weight:600; color:rgba(255,255,255,.7); text-decoration:none; }
.mnav a:hover { color:#fff; background:rgba(255,255,255,.05); }
@media(max-width:800px){
  .nav { display:none; }
  .hamburger { display:flex; }
}

/* ── Hero ────────────────────────────────────────────── */
.hero { background:var(--dark); padding:4rem 0 0; }
.hero-inner { max-width:var(--max); margin:0 auto; padding:0 1.5rem; }
.hero-eyebrow { font-size:.7rem; font-weight:700; letter-spacing:.14em;
                 text-transform:uppercase; color:var(--accent); margin-bottom:1rem; }
.hero h1 { font-family:var(--font-serif); font-size:clamp(1.9rem,4vw,2.9rem);
             color:#fff; line-height:1.15; letter-spacing:-.02em; margin-bottom:1rem;
             max-width:760px; }
.hero-lede { font-size:1.05rem; color:rgba(255,255,255,.65); line-height:1.75;
               max-width:620px; margin-bottom:1.5rem; font-style:italic; }
.hero-meta { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; font-size:.78rem;
               color:rgba(255,255,255,.4); padding-top:1.25rem;
               border-top:1px solid rgba(255,255,255,.1); margin-bottom:2.5rem; }
.hero-meta span { display:flex; align-items:center; gap:.35rem; }
.hero-img img { width:100%; max-height:400px; object-fit:cover;
                  border-radius:var(--r) var(--r) 0 0; }

/* ── Contents bar ────────────────────────────────────── */
.contents-bar { background:var(--cream-dk); border-bottom:1px solid var(--border);
                  overflow-x:auto; white-space:nowrap; }
.cb-inner { max-width:var(--max); margin:0 auto; padding:.65rem 1.5rem;
              display:flex; align-items:center; gap:1.5rem; }
.cb-label { font-size:.65rem; font-weight:700; letter-spacing:.12em;
              text-transform:uppercase; color:var(--muted); flex-shrink:0; }
.cb-inner a { font-size:.8rem; font-weight:600; color:var(--muted);
                border-left:1px solid var(--border); padding-left:.9rem;
                text-decoration:none; transition:.15s; }
.cb-inner a:first-of-type { border-left:none; padding-left:0; }
.cb-inner a:hover { color:var(--accent); }

/* ── Article ─────────────────────────────────────────── */
.article-wrap { max-width:var(--max); margin:0 auto; padding:3rem 1.5rem 5rem; }
.disclaimer { background:var(--cream-dk); border-left:3px solid var(--accent);
               padding:.8rem 1rem; margin-bottom:2.5rem; font-size:.84rem;
               color:var(--muted); border-radius:0 4px 4px 0; line-height:1.6; }

/* Article sections */
.art-section { margin-bottom:3rem; padding-bottom:3rem; border-bottom:1px solid var(--border); }
.art-section:last-child { border-bottom:none; padding-bottom:0; margin-bottom:0; }
.section-tag { font-size:.66rem; font-weight:700; letter-spacing:.14em;
                text-transform:uppercase; color:var(--accent); margin-bottom:.6rem;
                display:flex; align-items:center; gap:.4rem; }
.section-tag::before { content:''; display:block; width:14px; height:2px;
                         background:var(--accent); border-radius:2px; }
.art-section h2 { font-family:var(--font-serif); font-size:1.65rem; color:var(--dark);
                    line-height:1.2; letter-spacing:-.02em; margin-bottom:.9rem; }
.art-section p { font-size:1.01rem; color:#2e2820; line-height:1.85; margin-bottom:1.1rem; }
.art-section img { border-radius:var(--r); margin:1.5rem 0; width:100%; }

/* Stats row */
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
               background:var(--border); border:1px solid var(--border);
               border-radius:var(--r); overflow:hidden; margin:1.75rem 0; }
.stat-cell { background:#fff; padding:1rem; text-align:center; }
.stat-n { font-family:var(--font-serif); font-size:1.8rem; font-weight:700;
            color:var(--accent); letter-spacing:-.03em; line-height:1; }
.stat-l { font-size:.7rem; color:var(--muted); margin-top:.3rem; line-height:1.4; }

/* Author box */
.author-box { display:flex; gap:1rem; border-top:1px solid var(--border);
               padding-top:1.5rem; margin-top:1.5rem; align-items:flex-start; }
.author-box img { width:50px; height:50px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.author-box h3 { font-family:var(--font-serif); font-size:.95rem; font-weight:700;
                   color:var(--dark); margin-bottom:.2rem; }
.author-box p { font-size:.83rem; color:var(--muted); margin:0; line-height:1.6; }

/* ── Capture ─────────────────────────────────────────── */
.capture { background:var(--accent); padding:3.5rem 1.5rem; }
.cap-inner { max-width:var(--max); margin:0 auto; display:grid;
               grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.cap-inner h2 { font-family:var(--font-serif); font-size:1.7rem; color:#fff;
                  line-height:1.2; margin-bottom:.6rem; }
.cap-inner > div:first-child p { font-size:.93rem; color:rgba(255,255,255,.72); line-height:1.7; }
.cap-form { display:flex; flex-direction:column; gap:.6rem; }
.cap-row { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.cap-label { font-size:.7rem; font-weight:700; color:rgba(255,255,255,.7);
               letter-spacing:.06em; text-transform:uppercase; display:block; margin-bottom:.2rem; }
.cap-input { width:100%; padding:.6rem .85rem; border:1.5px solid rgba(255,255,255,.3);
               border-radius:6px; background:rgba(255,255,255,.12); color:#fff;
               font-family:var(--font-sans); font-size:.88rem; }
.cap-input::placeholder { color:rgba(255,255,255,.35); }
.cap-input:focus { outline:none; border-color:#fff; }
.cap-consent { display:flex; gap:.5rem; align-items:flex-start;
                 font-size:.76rem; color:rgba(255,255,255,.55); line-height:1.5; }
.cap-consent input { flex-shrink:0; margin-top:.2rem; }
.cap-consent a { color:rgba(255,255,255,.8); }
.cap-err { color:#fca5a5; font-size:.77rem; display:none; }
.cap-err.show { display:block; }
.cap-btn { background:var(--dark); color:#fff; border:none; padding:.75rem 1.3rem;
             border-radius:6px; font-family:var(--font-sans); font-size:.88rem;
             font-weight:700; cursor:pointer; transition:opacity .15s; letter-spacing:.02em; }
.cap-btn:hover { opacity:.87; }
.cap-btn:disabled { opacity:.5; cursor:default; }
.cap-note { font-size:.69rem; color:rgba(255,255,255,.35); }
.cap-success { display:none; text-align:center; padding:1rem 0; }
.cap-success.show { display:block; }
.cap-success i { font-size:1.9rem; color:rgba(255,255,255,.9); margin-bottom:.4rem; display:block; }
.cap-success h3 { font-family:var(--font-serif); font-size:1.2rem; color:#fff; margin-bottom:.25rem; }
.cap-success p { font-size:.83rem; color:rgba(255,255,255,.6); }
@media(max-width:860px){
  .cap-inner { grid-template-columns:1fr; }
  .cap-row { grid-template-columns:1fr; }
}

/* ── FAQ ─────────────────────────────────────────────── */
.faq-section { background:#fff; border-top:1px solid var(--border); padding:4rem 1.5rem; }
.faq-inner { max-width:var(--max); margin:0 auto; }
.faq-inner h2 { font-family:var(--font-serif); font-size:1.75rem; color:var(--dark);
                  letter-spacing:-.02em; margin-bottom:.4rem; }
.faq-inner > p { font-size:.9rem; color:var(--muted); margin-bottom:1.75rem; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 2.5rem; }
.faq-item { border-top:1px solid var(--border); }
.faq-q { width:100%; background:none; border:none; cursor:pointer;
           display:flex; justify-content:space-between; align-items:flex-start;
           gap:.75rem; padding:.9rem 0; text-align:left;
           font-family:var(--font-sans); font-size:.9rem; font-weight:700;
           color:var(--ink); line-height:1.4; transition:color .15s; }
.faq-q:hover { color:var(--accent); }
.faq-q i { font-size:.62rem; color:var(--muted); flex-shrink:0; margin-top:.3rem; transition:transform .2s; }
.faq-q.open i { transform:rotate(180deg); color:var(--accent); }
.faq-a { display:none; padding:0 0 1rem; font-size:.88rem; color:var(--muted); line-height:1.78; }
.faq-a.show { display:block; }
@media(max-width:700px){ .faq-grid { grid-template-columns:1fr; } }

/* ── Footer ──────────────────────────────────────────── */
.site-footer { background:var(--dark); color:rgba(255,255,255,.45);
                padding:3rem 0 0; }
.footer-inner { max-width:var(--max); margin:0 auto; padding:0 1.5rem;
                  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
                  gap:2.5rem; padding-bottom:2.5rem; }
.footer-brand p { font-size:.82rem; line-height:1.7; margin-top:.6rem;
                    color:rgba(255,255,255,.35); max-width:280px; }
.footer-brand address { font-style:normal; font-size:.76rem;
                           color:rgba(255,255,255,.25); margin-top:.45rem; line-height:1.6; }
.footer-brand address a { color:rgba(255,255,255,.25); }
.footer-brand address a:hover { color:rgba(255,255,255,.5); text-decoration:none; }
.footer-col h3 { font-size:.65rem; font-weight:700; text-transform:uppercase;
                   letter-spacing:.12em; color:rgba(255,255,255,.25); margin-bottom:.65rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.35rem; }
.footer-col a { font-size:.82rem; color:rgba(255,255,255,.4); text-decoration:none; }
.footer-col a:hover { color:rgba(255,255,255,.72); }
.footer-base { border-top:1px solid rgba(255,255,255,.07); max-width:var(--max);
                 margin:0 auto; padding:1rem 1.5rem;
                 display:flex; justify-content:space-between; flex-wrap:wrap;
                 gap:.35rem; font-size:.71rem; color:rgba(255,255,255,.18); }
.footer-notice { background:rgba(0,0,0,.18); padding:.7rem 0; font-size:.69rem;
                   color:rgba(255,255,255,.17); }
.footer-notice div { max-width:var(--max); margin:0 auto; padding:0 1.5rem; }
@media(max-width:700px){
  .footer-inner { grid-template-columns:1fr 1fr; }
}

/* ── Contact page ────────────────────────────────────── */
.contact-layout { max-width:var(--max); margin:3rem auto 5rem; padding:0 1.5rem;
                    display:grid; grid-template-columns:1fr 420px; gap:3rem; align-items:start; }
.pg-hero { background:var(--dark); padding:2.5rem 1.5rem; }
.pg-hero-in { max-width:var(--max); margin:0 auto; }
.pg-bc { font-size:.74rem; color:rgba(255,255,255,.35); margin-bottom:.35rem; }
.pg-bc a { color:rgba(255,255,255,.35); text-decoration:none; }
.pg-hero h1 { font-family:var(--font-serif); font-size:1.9rem; color:#fff;
                letter-spacing:-.02em; margin-bottom:.25rem; }
.pg-hero p { font-size:.87rem; color:rgba(255,255,255,.45); }
.contact-info h2 { font-family:var(--font-serif); font-size:1.2rem; color:var(--dark);
                     margin-bottom:1.25rem; font-weight:700; }
.ci { display:flex; gap:.75rem; margin-bottom:1.1rem; align-items:flex-start; }
.ci-ico { width:36px; height:36px; background:var(--cream-dk); border-radius:7px;
            display:grid; place-items:center; color:var(--dark); font-size:.88rem; flex-shrink:0; }
.ci h3 { font-size:.87rem; font-weight:700; color:var(--ink); margin-bottom:.12rem; }
.ci p { font-size:.82rem; color:var(--muted); margin:0; }
.cf-card { background:#fff; border:1px solid var(--border); border-radius:var(--r); padding:1.6rem; }
.cf-card h2 { font-family:var(--font-serif); font-size:1.15rem; color:var(--dark);
                margin-bottom:1rem; font-weight:700; }
.cf-g { margin-bottom:.8rem; }
.cf-g label { display:block; font-size:.72rem; font-weight:700; color:var(--muted);
                margin-bottom:.2rem; letter-spacing:.05em; text-transform:uppercase; }
.cf-g input,.cf-g textarea,.cf-g select {
  width:100%; padding:.58rem .82rem; border:1.5px solid var(--border);
  border-radius:6px; font-family:var(--font-sans); font-size:.88rem; color:var(--ink);
  background:var(--cream); transition:border-color .15s; }
.cf-g input:focus,.cf-g textarea:focus,.cf-g select:focus {
  outline:none; border-color:var(--dark); background:#fff; }
.cf-g textarea { resize:vertical; min-height:100px; }
.cf-btn { background:var(--dark); color:#fff; border:none; padding:.72rem 1.4rem;
            border-radius:6px; font-weight:700; font-size:.88rem; cursor:pointer;
            font-family:var(--font-sans); transition:opacity .15s; width:100%; }
.cf-btn:hover { opacity:.87; }
.cf-btn:disabled { opacity:.5; cursor:default; }
.cf-err { color:var(--accent); font-size:.77rem; margin-top:.3rem; display:none; }
.cf-err.show { display:block; }
.cf-ok { display:none; text-align:center; padding:1.5rem 0; }
.cf-ok.show { display:block; }
.cf-ok i { font-size:1.9rem; color:var(--accent); margin-bottom:.45rem; display:block; }
.cf-ok h3 { font-family:var(--font-serif); font-size:1.05rem; color:var(--dark); margin-bottom:.3rem; }
.cf-ok p { font-size:.83rem; color:var(--muted); }
@media(max-width:760px){ .contact-layout { grid-template-columns:1fr; } }

/* ── Legal pages ─────────────────────────────────────── */
.pg-content { padding:3rem 0 5rem; }
.pw { max-width:720px; margin:0 auto; padding:0 1.5rem; }
.pw h2 { font-family:var(--font-serif); font-size:1.25rem; color:var(--dark);
           margin:1.75rem 0 .6rem; font-weight:700; border-bottom:1px solid var(--border);
           padding-bottom:.45rem; }
.pw p { font-size:.92rem; color:#2e2820; margin-bottom:.9rem; line-height:1.8; }
.pw ul { margin:0 0 .9rem 1.3rem; }
.pw li { font-size:.92rem; color:#2e2820; margin-bottom:.3rem; line-height:1.72; }
.pw a { color:var(--accent); }

/* ── Utilities ───────────────────────────────────────── */
@media(max-width:640px){
  .stats-row { grid-template-columns:1fr; }
  .cap-row { grid-template-columns:1fr; }
}
