/* =========================================================
   DAILY DISPATCHES — DESIGN SYSTEM
   Navy #0a1f3d | Royal Blue #1e3f8f | Breaking Red #c8102e
   Gold #b8935a | Paper #ffffff | Mist #f4f5f7 | Ink #16202c
   Display: Playfair Display | Body: Source Sans 3 | Mono: IBM Plex Mono
   ========================================================= */

:root{
  --navy:#0a1f3d;
  --navy-deep:#071731;
  --royal:#1e3f8f;
  --royal-light:#2e56b8;
  --red:#c8102e;
  --red-deep:#9c0c22;
  --gold:#b8935a;
  --gold-light:#d8b984;
  --paper:#ffffff;
  --mist:#f4f5f7;
  --mist-dark:#eceef2;
  --ink:#16202c;
  --ink-soft:#4a5568;
  --ink-faint:#7a8697;
  --line:#e2e5ea;
  --line-strong:#cfd4dc;

  --font-display:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:'IBM Plex Mono', 'Courier New', monospace;

  --container:1240px;
  --radius-sm:4px;
  --radius:8px;
  --radius-lg:14px;
  --shadow-sm:0 1px 3px rgba(10,31,61,.06), 0 1px 2px rgba(10,31,61,.08);
  --shadow-md:0 6px 20px rgba(10,31,61,.09), 0 2px 6px rgba(10,31,61,.06);
  --shadow-lg:0 20px 50px rgba(10,31,61,.18), 0 6px 16px rgba(10,31,61,.10);
  --header-h:100px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
input{font-family:inherit;}

.container{max-width:var(--container);margin:0 auto;padding:0 24px;}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:12px 20px;
  z-index:9999;border-radius:0 0 6px 0;font-weight:600;
}
.skip-link:focus{left:0;}

:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:2px;
}

/* =============== UTILITY BAR =============== */
.utility-bar{
  background:var(--navy-deep);
  color:#c7d1e0;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.04em;
}
.utility-inner{
  max-width:var(--container);margin:0 auto;padding:6px 24px;
  display:flex;justify-content:space-between;align-items:center;
}
.utility-tag{color:var(--gold-light);text-transform:uppercase;}

/* =============== BREAKING TICKER =============== */
.ticker-wrap{
  background:var(--red);
  color:#fff;
  display:flex;
  align-items:stretch;
  overflow:hidden;
  position:relative;
}
.ticker-label{
  flex:0 0 auto;
  background:var(--red-deep);
  padding:9px 18px;
  font-family:var(--font-mono);
  font-weight:600;
  font-size:.76rem;
  letter-spacing:.09em;
  display:flex;
  align-items:center;
  gap:8px;
  z-index:2;
  box-shadow:4px 0 12px rgba(0,0,0,.15);
}
.ticker-dot{
  width:7px;height:7px;border-radius:50%;background:#fff;
  animation:pulse 1.4s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{opacity:1;transform:scale(1);}
  50%{opacity:.35;transform:scale(.7);}
}
.ticker-track-outer{
  flex:1;overflow:hidden;position:relative;
}
.ticker-track{
  display:flex;
  white-space:nowrap;
  width:max-content;
  animation:ticker-scroll 42s linear infinite;
  padding:9px 0;
}
.ticker-track:hover{animation-play-state:paused;}
@keyframes ticker-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.ticker-item{
  padding:0 32px;
  font-size:.86rem;
  font-weight:500;
  border-right:1px solid rgba(255,255,255,.3);
  cursor:pointer;
}
.ticker-item:hover{text-decoration:underline;}

/* =============== MASTHEAD =============== */
.masthead{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:200;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.masthead-inner{
  max-width:var(--container);
  margin:0 auto;
  padding:18px 24px 14px;
  display:flex;
  align-items:center;
  gap:20px;
}

.hamburger{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  background:none;
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  width:42px;height:42px;
  padding:0;
  align-items:center;
  flex:0 0 auto;
}
.hamburger span{
  display:block;width:20px;height:2px;background:var(--navy);transition:transform .25s ease, opacity .25s ease;
}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.logo{
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
  margin-right:auto;
}
.logo-mark{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.5rem;
  color:#fff;
  background:var(--navy);
  width:46px;height:46px;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius-sm);
  border:2px solid var(--gold);
  letter-spacing:-.02em;
}
.wordmark{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.6rem;
  letter-spacing:.02em;
  white-space:nowrap;
  line-height:1;
}
.wm-daily{color:var(--ink);}
.wm-dispatches{color:var(--red);}
.footer-wordmark{font-size:1.4rem;}
.footer-wordmark .wm-daily{color:#fff;}
.footer-wordmark .wm-dispatches{color:#e8465f;}
.logo-text{display:flex;flex-direction:column;line-height:1.15;}
.logo-title{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.55rem;
  color:var(--navy);
  letter-spacing:-.01em;
}
.logo-tagline{
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
}

.header-actions{display:flex;align-items:center;gap:16px;flex:0 0 auto;}

.search-box{
  position:relative;
  display:flex;
  align-items:center;
}
.search-box input{
  width:280px;
  max-width:38vw;
  padding:10px 38px 10px 14px;
  border:1.5px solid var(--line-strong);
  border-radius:22px;
  font-size:.88rem;
  background:var(--mist);
  color:var(--ink);
  transition:border-color .2s ease, background .2s ease, width .2s ease;
}
.search-box input:focus{
  outline:none;
  border-color:var(--royal);
  background:#fff;
}
.search-icon{
  position:absolute;
  right:34px;
  color:var(--ink-faint);
  pointer-events:none;
}
.search-clear{
  position:absolute;
  right:6px;
  background:var(--line-strong);
  color:var(--ink-soft);
  border:none;
  border-radius:50%;
  width:22px;height:22px;
  font-size:1rem;
  line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.search-clear:hover{background:var(--red);color:#fff;}

/* =============== NAV =============== */
.main-nav{
  border-top:1px solid var(--line);
  max-width:var(--container);
  margin:0 auto;
}
.main-nav ul{
  display:flex;
  gap:2px;
  padding:0 24px;
  overflow-x:auto;
  scrollbar-width:none;
}
.main-nav ul::-webkit-scrollbar{display:none;}
.main-nav a{
  display:block;
  padding:12px 16px;
  font-size:.86rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--ink-soft);
  border-bottom:3px solid transparent;
  white-space:nowrap;
  transition:color .2s ease, border-color .2s ease;
}
.main-nav a:hover,
.main-nav a.active{
  color:var(--navy);
  border-bottom-color:var(--red);
}

.nav-overlay{
  display:none;
  position:fixed;inset:0;
  background:rgba(7,23,49,.5);
  z-index:150;
}
.nav-overlay.show{display:block;}

/* =============== SECTION HEADINGS =============== */
.section-heading{
  display:flex;
  align-items:baseline;
  gap:16px;
  margin:0 0 24px;
  flex-wrap:wrap;
}
.section-heading h2{
  font-family:var(--font-display);
  font-size:1.9rem;
  font-weight:800;
  color:var(--navy);
  margin:0;
  letter-spacing:-.01em;
}
.section-rule{
  flex:1;
  height:2px;
  background:linear-gradient(90deg, var(--line-strong), transparent);
  min-width:40px;
}
.result-count{
  font-family:var(--font-mono);
  font-size:.8rem;
  color:var(--ink-faint);
}

/* =============== FEATURED SECTION =============== */
.featured-section{padding:40px 0 12px;}

.featured-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:28px;
}

.lead-card{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--navy);
  color:#fff;
  min-height:460px;
  display:flex;
  align-items:flex-end;
  box-shadow:var(--shadow-md);
  cursor:pointer;
}
.lead-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .6s ease;
}
.lead-card:hover img{transform:scale(1.05);}
.lead-card::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(7,23,49,0) 25%, rgba(7,23,49,.55) 62%, rgba(7,23,49,.94) 100%);
}
.lead-card-body{
  position:relative;
  z-index:2;
  padding:34px 34px 30px;
}
.lead-secondary-list{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.secondary-card{
  display:flex;
  gap:16px;
  border-radius:var(--radius);
  cursor:pointer;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}
.secondary-card:last-child{border-bottom:none;padding-bottom:0;}
.secondary-card .thumb{
  flex:0 0 128px;
  width:128px;height:96px;
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--mist);
}
.secondary-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.secondary-card:hover .thumb img{transform:scale(1.08);}
.secondary-card .body{flex:1;min-width:0;}
.secondary-card h3{
  font-family:var(--font-display);
  font-size:1.06rem;
  line-height:1.3;
  margin:2px 0 6px;
  color:var(--navy);
  font-weight:700;
}
.secondary-card:hover h3{color:var(--royal);}

/* =============== BADGES / META =============== */
.badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-family:var(--font-mono);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.07em;
  text-transform:uppercase;
  padding:4px 10px;
  border-radius:20px;
  background:var(--royal);
  color:#fff;
}
.badge.cat-world{background:var(--royal);}
.badge.cat-politics{background:var(--gold); color:#3a2a05;}
.badge.cat-security{background:var(--red);}
.badge.cat-weather{background:#0d7a8f;}
.badge.cat-business{background:#2f6b3d;}
.badge.cat-technology{background:#5a3fae;}

.lead-card .badge{margin-bottom:12px;}
.lead-card h1{
  font-family:var(--font-display);
  font-size:2.15rem;
  line-height:1.18;
  font-weight:800;
  margin:0 0 10px;
  letter-spacing:-.01em;
}
.lead-card .excerpt{
  color:#dfe6f2;
  font-size:.98rem;
  max-width:60ch;
  margin:0 0 12px;
}
.meta-row{
  display:flex;
  align-items:center;
  gap:14px;
  font-family:var(--font-mono);
  font-size:.75rem;
  color:var(--ink-faint);
}
.lead-card .meta-row{color:#b9c4d6;}
.meta-row .dot{width:3px;height:3px;border-radius:50%;background:currentColor;}

/* =============== FILTER BAR =============== */
.filter-bar-section{
  position:sticky;
  top:var(--header-h);
  z-index:100;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:14px 0;
}
.filter-bar{
  display:flex;
  gap:10px;
  overflow-x:auto;
  scrollbar-width:none;
  padding-bottom:2px;
}
.filter-bar::-webkit-scrollbar{display:none;}
.filter-chip{
  flex:0 0 auto;
  padding:8px 18px;
  border-radius:20px;
  border:1.5px solid var(--line-strong);
  background:#fff;
  color:var(--ink-soft);
  font-size:.84rem;
  font-weight:600;
  transition:all .18s ease;
  white-space:nowrap;
}
.filter-chip:hover{border-color:var(--royal);color:var(--royal);}
.filter-chip.active{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}

/* =============== NEWS GRID =============== */
.latest-section{padding:40px 0 20px;}
.news-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px;
}
.news-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  opacity:0;
  animation:card-in .5s ease forwards;
}
@keyframes card-in{
  from{opacity:0; transform:translateY(14px);}
  to{opacity:1; transform:translateY(0);}
}
.news-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-md);
  border-color:var(--line-strong);
}
.news-card .thumb{
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--mist);
  position:relative;
}
.news-card .thumb img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.news-card:hover .thumb img{transform:scale(1.07);}
.news-card .card-body{
  padding:18px 18px 20px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.news-card .badge{align-self:flex-start;margin-bottom:10px;}
.news-card h3{
  font-family:var(--font-display);
  font-size:1.18rem;
  line-height:1.3;
  font-weight:700;
  color:var(--navy);
  margin:0 0 10px;
  transition:color .2s ease;
}
.news-card:hover h3{color:var(--royal);}
.news-card p.summary{
  font-size:.9rem;
  color:var(--ink-soft);
  margin:0 0 14px;
  flex:1;
  line-height:1.55;
}
.news-card .meta-row{margin-top:auto;padding-top:10px;border-top:1px solid var(--line);}
.read-more-tag{
  color:var(--red);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.03em;
}

mark{
  background:rgba(184,147,90,.32);
  color:inherit;
  border-radius:2px;
  padding:0 1px;
}

/* =============== NO RESULTS =============== */
.no-results{
  text-align:center;
  padding:70px 20px;
  color:var(--ink-soft);
}
.no-results svg{color:var(--line-strong);margin-bottom:16px;}
.no-results h3{
  font-family:var(--font-display);
  font-size:1.5rem;
  color:var(--navy);
  margin:0 0 8px;
}
.no-results p{max-width:44ch;margin:0 auto 22px;}

.btn-outline{
  background:none;
  border:1.5px solid var(--navy);
  color:var(--navy);
  padding:10px 24px;
  border-radius:24px;
  font-weight:600;
  font-size:.88rem;
  transition:background .2s ease, color .2s ease;
}
.btn-outline:hover{background:var(--navy);color:#fff;}

.btn-solid{
  background:var(--red);
  color:#fff;
  border:none;
  padding:11px 26px;
  border-radius:24px;
  font-weight:700;
  font-size:.88rem;
  transition:background .2s ease, transform .15s ease;
}
.btn-solid:hover{background:var(--red-deep); transform:translateY(-1px);}

/* =============== SEARCH STATUS BAR =============== */
.search-status-bar{
  background:var(--mist);
  border-bottom:1px solid var(--line);
  padding:12px 0;
}
.search-status-bar p{
  margin:0;
  font-family:var(--font-mono);
  font-size:.82rem;
  color:var(--ink-soft);
}
.search-status-bar strong{color:var(--navy);}

/* =============== MODAL / ARTICLE VIEW =============== */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(7,15,29,.72);
  backdrop-filter:blur(3px);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  z-index:500;
  padding:40px 16px;
  overflow-y:auto;
  animation:fade-in .2s ease;
}
@keyframes fade-in{from{opacity:0;}to{opacity:1;}}
.modal-overlay[hidden]{display:none;}

.modal-panel{
  background:#fff;
  max-width:840px;
  width:100%;
  border-radius:var(--radius-lg);
  position:relative;
  box-shadow:var(--shadow-lg);
  animation:modal-in .28s cubic-bezier(.2,.8,.2,1);
  margin-bottom:40px;
}
@keyframes modal-in{
  from{opacity:0; transform:translateY(24px) scale(.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
.modal-close{
  position:absolute;
  top:18px;right:18px;
  width:38px;height:38px;
  border-radius:50%;
  background:rgba(10,31,61,.85);
  color:#fff;
  border:none;
  font-size:1.5rem;
  line-height:1;
  display:flex;align-items:center;justify-content:center;
  z-index:5;
  transition:background .2s ease, transform .2s ease;
}
.modal-close:hover{background:var(--red); transform:rotate(90deg);}

.modal-article .hero-img{
  width:100%;
  max-height:420px;
  object-fit:cover;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.modal-article .article-inner{padding:32px 40px 44px;}
.modal-article .badge{margin-bottom:14px;}
.modal-article h1{
  font-family:var(--font-display);
  font-size:2.1rem;
  line-height:1.2;
  color:var(--navy);
  margin:0 0 14px;
  font-weight:800;
}
.modal-article .meta-row{
  padding-bottom:18px;
  margin-bottom:22px;
  border-bottom:2px solid var(--line);
  color:var(--ink-faint);
}
.modal-article .article-body p{
  font-size:1.05rem;
  line-height:1.85;
  color:#2a3341;
  margin:0 0 20px;
}
.modal-article .article-body p:first-of-type::first-letter{
  font-family:var(--font-display);
  font-size:3.4rem;
  font-weight:800;
  float:left;
  line-height:.8;
  padding:6px 8px 0 0;
  color:var(--red);
}
.modal-article .article-body h4{
  font-family:var(--font-display);
  font-size:1.25rem;
  color:var(--navy);
  margin:28px 0 10px;
}

.related-section{
  margin-top:36px;
  padding-top:26px;
  border-top:1px solid var(--line);
}
.related-section h4{
  font-family:var(--font-display);
  font-size:1.15rem;
  color:var(--navy);
  margin:0 0 16px;
}
.related-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.related-card{
  cursor:pointer;
  border-radius:var(--radius-sm);
  overflow:hidden;
  border:1px solid var(--line);
  transition:box-shadow .2s ease, transform .2s ease;
}
.related-card:hover{box-shadow:var(--shadow-sm); transform:translateY(-3px);}
.related-card .thumb{aspect-ratio:16/10;overflow:hidden;background:var(--mist);}
.related-card .thumb img{width:100%;height:100%;object-fit:cover;}
.related-card .rc-body{padding:10px 12px 14px;}
.related-card h5{
  font-family:var(--font-display);
  font-size:.92rem;
  line-height:1.3;
  color:var(--navy);
  margin:0;
  font-weight:700;
}

/* ---------- Static pages: About / Contact / Privacy ---------- */
.static-page .badge{margin-bottom:14px;}
.contact-info-box{
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--mist);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:14px 16px;
  margin:18px 0 22px;
}
.contact-info-row{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--navy);
  font-weight:600;
  font-size:.98rem;
}
.contact-info-row svg{flex:none; color:var(--red);}
.contact-info-row a{color:var(--red); text-decoration:none;}
.contact-info-row a:hover{text-decoration:underline;}

.contact-form{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:10px;
  max-width:520px;
}
.cf-field{display:flex; flex-direction:column; gap:6px; font-size:.85rem; font-weight:600; color:var(--navy);}
.cf-field input,
.cf-field textarea{
  font-family:var(--font-body, inherit);
  font-size:.95rem;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:#fff;
  color:#2a3341;
  resize:vertical;
}
.cf-field input:focus,
.cf-field textarea:focus{
  outline:none;
  border-color:var(--red);
}
.cf-submit{align-self:flex-start; cursor:pointer;}
.cf-note{
  font-size:.85rem;
  color:var(--navy);
  background:var(--mist);
  border-radius:var(--radius-sm);
  padding:10px 12px;
  margin:0;
}

.share-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:28px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.share-row span{font-size:.82rem;color:var(--ink-faint);font-weight:600;}
.share-btn{
  width:34px;height:34px;
  border-radius:50%;
  background:var(--mist);
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);
  border:1px solid var(--line-strong);
  transition:background .2s ease, color .2s ease;
}
.share-btn:hover{background:var(--navy);color:#fff;}

/* =============== FOOTER =============== */
.site-footer{
  background:var(--navy-deep);
  color:#c3cee2;
  margin-top:20px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:40px;
  padding:56px 24px 40px;
}
.footer-brand p{font-size:.88rem;line-height:1.7;color:#93a2bc;margin:14px 0 20px;max-width:34ch;}
.footer-logo{margin-bottom:0;}

.footer-col h4{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--gold-light);
  margin:0 0 16px;
}
.footer-col ul{display:flex;flex-direction:column;gap:11px;}
.footer-col a{font-size:.9rem;color:#c3cee2;transition:color .2s ease;}
.footer-col a:hover{color:#fff;text-decoration:underline;}

.footer-bottom{border-top:1px solid rgba(255,255,255,.1);}
.footer-bottom-inner{
  padding:18px 24px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  font-size:.8rem;
  color:#7b8ba8;
}

/* =============== BACK TO TOP =============== */
.back-to-top{
  position:fixed;
  bottom:26px;right:26px;
  width:48px;height:48px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  border:2px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);
  z-index:300;
  transition:transform .2s ease, background .2s ease, opacity .2s ease;
}
.back-to-top:hover{background:var(--red); transform:translateY(-4px);}
.back-to-top[hidden]{display:none;}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1080px){
  .news-grid{grid-template-columns:repeat(2,1fr);}
  .featured-grid{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width: 880px){
  :root{--header-h:74px;}
  .utility-bar{display:none;}
  .hamburger{display:flex;}
  .header-actions .search-box input{width:180px;}

  .masthead-inner{padding:14px 16px;}
  .logo-mark{width:38px;height:38px;font-size:1.2rem;}
  .wordmark{font-size:1.15rem;}

  .main-nav{
    position:fixed;
    top:0;left:-300px;
    width:280px;
    height:100vh;
    background:#fff;
    z-index:250;
    transition:left .3s ease;
    overflow-y:auto;
    box-shadow:var(--shadow-lg);
    border-top:none;
  }
  .main-nav.open{left:0;}
  .main-nav ul{flex-direction:column;padding:80px 16px 30px;gap:2px;}
  .main-nav a{
    padding:14px 12px;
    border-bottom:1px solid var(--line);
    border-left:3px solid transparent;
  }
  .main-nav a.active, .main-nav a:hover{border-bottom-color:var(--line);border-left-color:var(--red);}

  .filter-bar-section{top:74px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width: 640px){
  .container{padding:0 16px;}
  .news-grid{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:1fr;}
  .lead-card{min-height:340px;}
  .lead-card h1{font-size:1.5rem;}
  .lead-card-body{padding:22px 20px 24px;}
  .secondary-card .thumb{flex-basis:96px;width:96px;height:76px;}
  .modal-article .article-inner{padding:24px 20px 32px;}
  .modal-article h1{font-size:1.5rem;}
  .footer-grid{grid-template-columns:1fr;padding:44px 20px 30px;}
  .footer-bottom-inner{flex-direction:column;text-align:left;}
  .search-box input{width:120px !important;}
  .modal-overlay{padding:0;}
  .modal-panel{border-radius:0;min-height:100vh;}
  .modal-article .hero-img{border-radius:0;max-height:260px;}
}
