/* ============================================================
   THE JOURNAL — shared stylesheet for /journal/ pages only.
   Uses the site's existing design tokens (--midnight, --gold,
   --paper, --serif …) so the luxury editorial identity is preserved.
   Loaded by: /journal/index.html and every /journal/<slug>/index.html
   ============================================================ */

/* ---------- Journal index hero ---------- */
.jr-hero{background:var(--card);border-bottom:1px solid var(--line);padding:72px 0 56px;text-align:center}
.jr-hero .chaplabel{font-family:var(--sans);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold-ink);font-weight:700}
.jr-hero h1{font-family:var(--serif);color:var(--midnight);font-weight:800;font-size:clamp(32px,5vw,56px);line-height:1.05;letter-spacing:-.02em;margin:12px 0 14px}
.jr-hero h1 em{font-style:italic;color:var(--gold-ink)}
.jr-hero p{font-family:var(--edit);font-size:clamp(16.5px,2vw,20px);color:var(--ink-soft);line-height:1.6;max-width:660px;margin:0 auto}

/* ---------- Filter / search bar ---------- */
.jr-tools{position:sticky;top:0;z-index:40;background:rgba(244,237,222,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:14px 0}
.jr-toolrow{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.jr-cats{display:flex;gap:8px;flex-wrap:wrap}
.jr-cat{background:transparent;border:1px solid var(--line);color:var(--ink-soft);font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.4px;padding:10px 17px;min-height:40px;border-radius:999px;cursor:pointer;transition:.2s;white-space:nowrap;display:inline-flex;align-items:center}
.jr-cat:hover{border-color:var(--gold);color:var(--gold-ink)}
.jr-cat[aria-pressed="true"]{background:var(--midnight);border-color:var(--midnight);color:#fff}
.jr-search{position:relative;flex-shrink:0}
.jr-search input{font-family:var(--sans);font-size:13.5px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:11px 16px 11px 38px;min-height:40px;width:210px;transition:.2s}
.jr-search input:focus{outline:none;border-color:var(--gold);width:250px}
.jr-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:15px;height:15px;fill:none;stroke:var(--ink-soft);stroke-width:2}

/* ---------- Article grid ---------- */
.jr-wrap{padding:52px 0 72px}
.jr-count{font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin-bottom:22px}
.jr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.jr-card{background:var(--card);border-radius:14px;overflow:hidden;box-shadow:0 14px 40px rgba(27,36,50,.1);transition:transform .5s var(--ease),box-shadow .5s;display:flex;flex-direction:column}
.jr-card:hover{transform:translateY(-6px);box-shadow:0 24px 54px rgba(27,36,50,.2)}
.jr-card-ph{position:relative;overflow:hidden;aspect-ratio:16/10;background:linear-gradient(140deg,#1c3a63,#0b1e3b);display:block}
.jr-card-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.1s var(--ease)}
.jr-card:hover .jr-card-ph img{transform:scale(1.07)}
.jr-card-bd{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.jr-card .cat{font-family:var(--sans);font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold-ink);font-weight:700}
.jr-card h2,.jr-card h3{font-family:var(--serif);color:var(--midnight);font-size:20px;font-weight:700;line-height:1.22;margin:10px 0 8px}
.jr-card h2 a,.jr-card h3 a{color:inherit;text-decoration:none}
.jr-card h2 a:hover,.jr-card h3 a:hover{color:var(--gold-ink)}
.jr-card p{color:var(--ink-soft);font-size:14.5px;line-height:1.6;margin:0 0 14px}
.jr-card .jr-meta{font-family:var(--sans);font-size:12px;color:var(--ink-soft);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.jr-card .more{margin-top:auto;font-family:var(--sans);font-size:13.5px;font-weight:700;color:var(--gold-ink);text-decoration:none;align-self:flex-start}
.jr-card .more:hover{color:var(--midnight)}
.jr-empty{text-align:center;padding:50px 0;color:var(--ink-soft);font-family:var(--edit);font-size:18px}
.jr-more{text-align:center;margin-top:44px}

/* ---------- Article page ---------- */
.jr-crumbs{background:var(--card);border-bottom:1px solid var(--line);padding:13px 0;font-family:var(--sans);font-size:12.5px;color:var(--ink-soft)}
.jr-crumbs a{color:var(--gold-ink);text-decoration:none;font-weight:600}
.jr-crumbs a:hover{text-decoration:underline}
.jr-crumbs .sep{margin:0 8px;opacity:.6}
.jr-arthead{padding:50px 0 30px;text-align:center}
.jr-arthead .wrap{max-width:820px}
.jr-badge{display:inline-block;background:var(--paper);border:1px solid var(--gold);color:var(--gold-ink);font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:5px 13px;border-radius:999px}
.jr-arthead h1{font-family:var(--serif);color:var(--midnight);font-weight:800;font-size:clamp(28px,4.4vw,46px);line-height:1.1;letter-spacing:-.02em;margin:16px 0 14px}
.jr-arthead .stand{font-family:var(--edit);font-size:clamp(16.5px,2vw,20px);color:var(--ink-soft);line-height:1.55;max-width:680px;margin:0 auto 18px}
.jr-artmeta{font-family:var(--sans);font-size:13px;color:var(--ink-soft);display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center}
.jr-artmeta b{color:var(--gold-ink);font-weight:700}
.jr-figure{max-width:1040px;margin:24px auto 0;padding:0 20px}
.jr-figure img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:18px;display:block;box-shadow:0 24px 60px rgba(11,30,59,.18)}
.jr-figure figcaption{font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);text-align:center;margin-top:10px}

.jr-body{max-width:750px;margin:0 auto;padding:40px 20px 10px}
.jr-body h2{font-family:var(--serif);color:var(--midnight);font-size:clamp(22px,2.9vw,31px);line-height:1.18;margin:40px 0 14px;letter-spacing:-.01em;scroll-margin-top:80px}
.jr-body h3{font-family:var(--serif);color:var(--midnight);font-size:19.5px;margin:28px 0 10px;scroll-margin-top:80px}
.jr-body p{color:var(--ink);font-size:16.5px;line-height:1.75;margin:0 0 18px}
.jr-body a:not(.btn){color:var(--gold-ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--gold-lite)}
.jr-body a:not(.btn):hover{color:var(--midnight);border-color:var(--midnight)}
.jr-body ul,.jr-body ol{margin:0 0 20px 22px;padding:0}
.jr-body li{color:var(--ink);font-size:16px;line-height:1.7;margin-bottom:9px}
.jr-body strong{color:var(--midnight);font-weight:700}
.jr-body blockquote{border-left:3px solid var(--gold);background:var(--card);border-radius:0 14px 14px 0;padding:18px 24px;margin:26px 0;font-family:var(--edit);font-style:italic;font-size:18.5px;color:var(--midnight);line-height:1.6}

/* Table of contents */
.jr-toc{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 26px;margin:0 0 32px}
.jr-toc .t{font-family:var(--sans);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:12px}
.jr-toc ol{margin:0 0 0 18px;padding:0}
.jr-toc li{font-size:15px;line-height:1.6;margin-bottom:7px}
.jr-toc a{color:var(--ink);font-weight:600;border:none}
.jr-toc a:hover{color:var(--gold-ink)}

/* Note / tip box */
.jr-note{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:14px;padding:18px 22px;margin:26px 0}
.jr-note .t{font-family:var(--sans);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-ink);font-weight:700;margin-bottom:6px}
.jr-note p{font-size:15px;margin:0;color:var(--ink);line-height:1.65}
.jr-note p+p{margin-top:10px}

/* Data table */
.jr-tablewrap{overflow-x:auto;margin:24px 0;border:1px solid var(--line);border-radius:14px;background:#fff}
.jr-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14.5px;min-width:520px}
.jr-table th{background:var(--midnight);color:var(--gold-lite);text-align:left;padding:13px 16px;font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:700}
.jr-table td{padding:12px 16px;border-top:1px solid var(--line);color:var(--ink);vertical-align:top;line-height:1.55}
.jr-table tr:nth-child(even) td{background:var(--card)}
.jr-table td:first-child{font-weight:700;color:var(--midnight);white-space:nowrap}

/* In-article CTA */
.jr-cta{background:linear-gradient(135deg,#0B1E3B,#16335a);border-radius:18px;color:#fff;padding:32px 34px;margin:38px 0;text-align:center}
.jr-cta h3{font-family:var(--serif);font-size:clamp(21px,2.6vw,27px);color:#F6EFDE;margin:0 0 8px}
.jr-cta p{font-family:var(--edit);color:rgba(255,255,255,.86);margin:0 0 20px;font-size:17px;line-height:1.55}
.jr-cta-row{display:flex;gap:13px;flex-wrap:wrap;justify-content:center}

/* FAQ */
.jr-faq details{border:1px solid var(--line);border-radius:14px;background:#fff;margin:10px 0;overflow:hidden}
.jr-faq summary{cursor:pointer;list-style:none;padding:16px 20px;font-family:var(--sans);font-weight:600;color:var(--midnight);font-size:15.5px;display:flex;justify-content:space-between;align-items:center;gap:14px}
.jr-faq summary::-webkit-details-marker{display:none}
.jr-faq summary:after{content:"+";font-size:22px;line-height:1;color:var(--gold);font-weight:400;flex-shrink:0}
.jr-faq details[open] summary:after{content:"\2013"}
.jr-faq details>div{padding:0 20px 18px;color:var(--ink-soft);font-size:15px;line-height:1.7}
.jr-faq details>div a{color:var(--gold-ink);font-weight:600;border-bottom:1px solid var(--gold-lite)}

/* Author */
.jr-author{display:flex;gap:18px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin:40px 0 0}
.jr-author .av{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#0B1E3B,#16335a);color:var(--gold-lite);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:20px;font-weight:700;flex-shrink:0}
.jr-author .who{font-family:var(--sans);font-weight:700;color:var(--midnight);font-size:15px}
.jr-author .desc{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-top:3px}

/* Related */
.jr-related{background:var(--card);border-top:1px solid var(--line);padding:52px 0 66px;margin-top:52px}
.jr-related .chaplabel{font-family:var(--sans);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold-ink);font-weight:700}
.jr-related h2{font-family:var(--serif);color:var(--midnight);font-size:clamp(22px,3vw,32px);margin:8px 0 24px}
.jr-related .jr-grid{grid-template-columns:repeat(3,1fr)}
.jr-related .jr-card{background:#fff}
.jr-back{margin-top:34px}
.jr-back a{font-family:var(--sans);font-size:13.5px;font-weight:700;color:var(--gold-ink);text-decoration:none}
.jr-back a:hover{color:var(--midnight)}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .jr-grid,.jr-related .jr-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .jr-tools{position:static}
  .jr-toolrow{flex-direction:column;align-items:stretch;gap:12px}
  .jr-cats{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .jr-cats::-webkit-scrollbar{display:none}
  .jr-search input,.jr-search input:focus{width:100%}
  .jr-search{width:100%}
}
@media(max-width:680px){
  .jr-grid,.jr-related .jr-grid{grid-template-columns:1fr}
  .jr-hero{padding:52px 0 40px}
  .jr-body{padding:30px 20px 10px}
  .jr-body p{font-size:16px}
  .jr-cta{padding:26px 20px}
  .jr-cta-row .btn{width:100%;justify-content:center}
  .jr-author{flex-direction:column;text-align:center}
  .jr-figure{padding:0 16px}
}

/* ============================================================
   Fixed-header compensation + legibility.
   The site header is position:fixed and the homepage hides beneath a
   full-bleed dark hero. Journal pages open on a light cream hero, so we
   (a) reserve space for the header and (b) give it its "solid" treatment
   from the very top so the navigation stays readable.
   ============================================================ */
:root{--jr-hdr:104px}
@media(max-width:900px){:root{--jr-hdr:88px}}

body.jr-page header#hdr{background:rgba(250,245,234,.92);backdrop-filter:blur(14px);box-shadow:0 4px 20px rgba(27,36,50,.08)}
body.jr-page header#hdr .logo{color:#1F6A86;text-shadow:none}
body.jr-page header#hdr .navlinks a{color:var(--midnight)}
body.jr-page header#hdr .navlinks a:hover{color:var(--gold-ink)}
body.jr-page header#hdr .navphone{color:var(--midnight)}
body.jr-page header#hdr .navphone:hover{color:var(--gold-ink)}
body.jr-page header#hdr .hamb span{background:var(--midnight)}

body.jr-page .jr-hero{padding-top:calc(var(--jr-hdr) + 46px)}
body.jr-page .jr-crumbs{padding-top:calc(var(--jr-hdr) + 14px)}
body.jr-page .jr-tools{top:calc(var(--jr-hdr) - 8px)}
@media(max-width:900px){
  body.jr-page .jr-hero{padding-top:calc(var(--jr-hdr) + 26px)}
}

/* Defensive: the site's global CSS pins any bare <header> element
   (header{position:fixed}). Journal article furniture must never inherit that. */
.jr-arthead,.jr-body,.jr-related,.jr-crumbs{position:relative}
main .jr-arthead{position:relative!important;top:auto;left:auto;right:auto;z-index:auto;padding:50px 0 30px}

/* ------------------------------------------------------------------
   Buttons inside Journal content.
   The site defines .btn-gold but NOT .btn-ghost, and article links are
   gold — so buttons must be stated explicitly to stay legible on the
   dark navy CTA band. Colours are the site's own tokens.
   ------------------------------------------------------------------ */
.jr-body a.btn,.jr-cta a.btn{border-bottom:0;text-decoration:none;font-weight:600}
.jr-cta .btn-gold,.jr-body a.btn-gold{background:var(--gold);color:#fff!important;box-shadow:0 10px 26px rgba(183,138,50,.32)}
.jr-cta .btn-gold:hover,.jr-body a.btn-gold:hover{background:var(--gold-ink);color:#fff!important}
.jr-cta .btn-ghost,.jr-body a.btn-ghost{background:transparent;color:#F6EFDE!important;border:1px solid rgba(246,239,222,.55);border-radius:2px}
.jr-cta .btn-ghost:hover,.jr-body a.btn-ghost:hover{background:rgba(246,239,222,.12);border-color:#F6EFDE;color:#fff!important}
/* the Journal index CTA band sits outside .jr-body — same treatment */
body.jr-page .sp-cta-band .btn-gold{background:var(--gold);color:#fff!important}
body.jr-page .sp-cta-band .btn-gold:hover{background:var(--gold-ink)}
body.jr-page .sp-cta-band .btn-ghost{background:transparent;color:#F6EFDE!important;border:1px solid rgba(246,239,222,.55);border-radius:2px}
body.jr-page .sp-cta-band .btn-ghost:hover{background:rgba(246,239,222,.12);border-color:#F6EFDE}
