/* FEMO 2026 — design system from approved mockup */
:root{
  --paper:#FAFAF8;
  --paper-2:#F0EEE8;
  --paper-3:#E9E6DD;
  --ink:#1A1A1A;
  --ink-soft:#5C5A54;
  --maroon:#7A1F2B;
  --maroon-2:#5C171F;
  --sand:#C9A961;
  --line:#E3E1DC;
  --display:'Archivo', sans-serif;
  --sans:'Inter', system-ui, -apple-system, sans-serif;
  --maxw:1180px;
}
*{ box-sizing:border-box; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; height:auto; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
::selection{ background:var(--maroon); color:#fff; }
@media (prefers-reduced-motion: reduce){ *{ animation-duration:.001ms !important; transition-duration:.001ms !important; } }

/* ---------- header ---------- */
.site-header{ border-bottom:3px solid var(--ink); position:sticky; top:0; background:var(--paper); z-index:50; }
.header-top{ display:flex; align-items:center; justify-content:space-between; padding:16px 0; gap:16px; flex-wrap:wrap; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:48px; width:auto; }
.brand .site-title{ font-family:var(--display); font-weight:800; font-size:26px; letter-spacing:-.01em; }
.brand .site-title span{ color:var(--maroon); }
.brand .sub{ font-size:14px; color:var(--ink-soft); font-weight:600; letter-spacing:.02em; line-height:1.4; }
.nav-primary ul{ list-style:none; margin:0; padding:0; display:flex; gap:26px; align-items:center; }
.nav-primary a{ font-weight:600; font-size:14px; }
.nav-primary a:hover{ color:var(--maroon); }
.nav-primary li.menu-cta a, .nav-primary li:last-child a.cta{ background:var(--ink); color:#fff; padding:9px 18px; border-radius:2px; }
.nav-primary li.menu-cta a:hover{ background:var(--maroon); }
.lang-switch{ display:flex; gap:10px; font-size:12.5px; font-weight:600; align-items:center; }
.lang-switch a{ opacity:.55; text-transform:uppercase; }
.lang-switch a.current-lang, .lang-switch li.current-lang a{ opacity:1; border-bottom:2px solid var(--maroon); }
.lang-switch ul{ list-style:none; display:flex; gap:10px; margin:0; padding:0; }
.burger{ display:none; background:none; border:1px solid var(--ink); padding:8px 14px; font-weight:700; font-size:13px; font-family:var(--sans); cursor:pointer; }

/* ---------- hero banner (map) ---------- */
.hero-topbanner{ width:100%; height:289px; overflow:hidden; border-bottom:3px solid var(--ink); }
.hero-topbanner img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }

/* ---------- hero (front page lead story) ---------- */
.hero .wrap{ padding-top:40px; }
.hero{ border-bottom:1px solid var(--line); }
.hero-top{ display:flex; align-items:center; gap:14px; margin-bottom:22px; flex-wrap:wrap; }
.issue-badge{ font-family:var(--display); font-weight:800; font-size:14px; color:#fff; background:var(--maroon); padding:6px 12px; letter-spacing:.03em; text-transform:uppercase; }
.hero-top .rubric{ font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); }
.hero .headline{ font-family:var(--display); font-weight:800; font-size:56px; line-height:1.0; letter-spacing:-.02em; margin:0 0 26px; max-width:20ch; }
.hero .headline a:hover{ color:var(--maroon); }
.hero-body{ padding-bottom:44px; }
.dek{ font-size:18px; line-height:1.6; color:var(--ink-soft); max-width:58ch; margin:0 0 22px; }
.byline{ font-size:13px; color:var(--ink-soft); font-weight:500; margin-bottom:22px; }
.btn{ display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:#fff; font-weight:600; font-size:14px; padding:13px 22px; border:none; cursor:pointer; }
.btn:hover{ background:var(--maroon); }

/* ---------- stat bar ---------- */
.statbar{ background:var(--ink); color:#fff; padding:26px 0; }
.stat-row{ display:flex; }
.stat-row .stat{ flex:1; padding:0 24px; border-left:1px solid #3a3a3a; }
.stat-row .stat:first-child{ border-left:none; padding-left:0; }
.stat-row .n{ font-family:var(--display); font-weight:800; font-size:28px; color:var(--sand); line-height:1; }
.stat-row .l{ font-size:12px; color:#B8B6AF; font-weight:500; margin-top:5px; }

/* ---------- sections ---------- */
.section{ padding:56px 0; border-bottom:1px solid var(--line); }
.section:last-of-type{ border-bottom:none; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:32px; gap:20px; flex-wrap:wrap; }
.section-head .kicker{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--maroon); display:block; margin-bottom:6px; }
.section-head h2{ font-family:var(--display); font-weight:800; font-size:30px; margin:0; letter-spacing:-.01em; }
.section-head a.all{ font-size:13px; font-weight:600; border-bottom:2px solid var(--ink); padding-bottom:2px; }
.section-head a.all:hover{ border-color:var(--maroon); color:var(--maroon); }

/* ---------- analysis grid ---------- */
.analysis-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:36px; }
.lead-card{ display:flex; flex-direction:column; gap:16px; }
.lead-card .fig{ aspect-ratio:16/9; background:linear-gradient(135deg,var(--paper-3),var(--paper-2)); border:1px solid var(--line); overflow:hidden; }
.lead-card .fig img{ width:100%; height:100%; object-fit:cover; }
.chip{ display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; padding:5px 10px; background:var(--maroon); color:#fff; width:fit-content; }
.chip.sand{ background:var(--sand); color:var(--ink); }
.lead-card h3{ font-family:var(--display); font-size:28px; font-weight:800; margin:0; line-height:1.15; letter-spacing:-.01em; }
.lead-card h3 a:hover{ color:var(--maroon); }
.lead-card p{ color:var(--ink-soft); line-height:1.6; font-size:15px; margin:0; }
.card-meta{ font-size:12.5px; color:var(--ink-soft); font-weight:500; }
.side-list{ display:flex; flex-direction:column; }
.side-item{ padding:20px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:8px; }
.side-item:first-child{ padding-top:0; }
.side-item h4{ font-family:var(--display); font-size:17px; font-weight:700; margin:0; line-height:1.3; }
.side-item h4 a:hover{ color:var(--maroon); }

/* ---------- archive listing (analyses index) ---------- */
.post-list{ display:flex; flex-direction:column; }
.post-list-item{ display:grid; grid-template-columns:240px 1fr; gap:28px; padding:28px 0; border-bottom:1px solid var(--line); align-items:start; }
.post-list-item .fig{ aspect-ratio:16/10; background:var(--paper-3); border:1px solid var(--line); overflow:hidden; }
.post-list-item .fig img{ width:100%; height:100%; object-fit:cover; }
.post-list-item h3{ font-family:var(--display); font-size:22px; font-weight:800; margin:8px 0 8px; line-height:1.2; }
.post-list-item h3 a:hover{ color:var(--maroon); }
.post-list-item p{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; margin:0 0 10px; }
.cat-filter{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.cat-filter a{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; border:1px solid var(--line); padding:7px 13px; }
.cat-filter a:hover, .cat-filter a.active{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* ---------- single article ---------- */
.single-hero{ padding:44px 0 0; }
.single-hero .headline{ font-family:var(--display); font-weight:800; font-size:42px; line-height:1.05; letter-spacing:-.02em; margin:0 0 20px; max-width:26ch; }
.article-body{ max-width:740px; margin:0 auto; padding:40px 28px 64px; font-size:17px; line-height:1.75; }
.article-body p{ margin:0 0 1.4em; }
.article-body h2{ font-family:var(--display); font-weight:800; font-size:26px; margin:1.8em 0 .6em; }
.article-body h3{ font-family:var(--display); font-weight:700; font-size:21px; margin:1.6em 0 .5em; }
.article-body img{ margin:1.5em 0; border:1px solid var(--line); }
.article-body blockquote{ border-left:3px solid var(--maroon); margin:1.6em 0; padding:.3em 0 .3em 22px; color:var(--ink-soft); font-style:italic; }
.article-body a{ color:var(--maroon); border-bottom:1px solid var(--sand); }
.article-featured{ max-width:960px; margin:32px auto 0; padding:0 28px; }
.article-featured img{ width:100%; border:1px solid var(--line); }
.article-footer{ max-width:740px; margin:0 auto; padding:0 28px 56px; }
.share-row{ display:flex; gap:12px; align-items:center; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.share-row a{ border:1px solid var(--line); padding:8px 14px; }
.share-row a:hover{ background:var(--ink); color:#fff; }

/* ---------- events ---------- */
.timeline{ display:flex; flex-direction:column; }
.t-row{ display:grid; grid-template-columns:140px 1fr; gap:24px; padding:22px 0; border-top:1px solid var(--line); }
.t-row:last-child{ border-bottom:1px solid var(--line); }
.t-row .date{ font-family:var(--display); font-weight:700; font-size:14px; color:var(--maroon); text-transform:uppercase; }
.t-row h4{ font-family:var(--display); font-size:18px; font-weight:700; margin:0 0 4px; }
.t-row h4 a:hover{ color:var(--maroon); }
.t-row p{ font-size:13.5px; color:var(--ink-soft); margin:0; }
.event-lieu{ font-size:12.5px; color:var(--ink-soft); font-weight:600; margin-top:6px; }

/* ---------- publications ---------- */
.pub-list{ display:flex; flex-direction:column; }
.pub-row{ display:grid; grid-template-columns:52px 44px 1fr auto; gap:16px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line); }
.pub-row:first-child{ border-top:1px solid var(--line); }
.pub-thumb{ display:block; width:52px; height:68px; overflow:hidden; border:1px solid var(--line); background:var(--paper-3); flex:0 0 auto; }
.pub-thumb img{ width:100%; height:100%; object-fit:cover; }
.pub-thumb-placeholder{ display:block; width:100%; height:100%; background:linear-gradient(160deg, var(--paper-3), var(--paper-2)); }
.pub-row .no{ font-family:var(--display); font-weight:800; font-size:20px; color:var(--sand); }
.pub-row h4{ font-family:var(--display); font-size:16.5px; font-weight:700; margin:0; }
.pub-row h4 a:hover{ color:var(--maroon); }
.pub-row .by{ font-size:12.5px; color:var(--ink-soft); }
.pub-row a.dl{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid var(--ink); padding-bottom:2px; white-space:nowrap; }
.pub-row a.dl:hover{ border-color:var(--maroon); color:var(--maroon); }

/* ---------- videos ---------- */
.video-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.video-item .embed{ aspect-ratio:16/9; background:var(--ink); border:1px solid var(--line); }
.video-item .embed iframe{ width:100%; height:100%; border:0; }
.video-item h4{ font-family:var(--display); font-size:16px; font-weight:700; margin:12px 0 2px; }
.video-item .card-meta{ font-size:12px; }

/* ---------- mission band ---------- */
.mission{ background:var(--maroon); color:#fff; padding:64px 0; }
.mission .wrap{ max-width:800px; }
.mission .kicker{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--sand); display:block; margin-bottom:16px; }
.mission blockquote{ font-family:var(--display); font-weight:700; font-size:32px; line-height:1.3; margin:0 0 22px; letter-spacing:-.01em; }
.mission .attr{ font-size:13px; font-weight:600; color:#E8C9A0; }
.mission .president{ font-size:14px; color:#F3E4CC; margin-top:18px; }

/* ---------- generic page ---------- */
.page-body{ max-width:820px; margin:0 auto; padding:48px 28px 64px; font-size:16px; line-height:1.7; }
.page-body h1{ font-family:var(--display); font-weight:800; font-size:38px; letter-spacing:-.02em; margin:0 0 24px; }
.page-body h2{ font-family:var(--display); font-weight:800; font-size:24px; margin:1.6em 0 .6em; }
.page-body a{ color:var(--maroon); border-bottom:1px solid var(--sand); }

/* ---------- archive header ---------- */
.archive-head{ padding:44px 0 8px; }
.archive-head h1{ font-family:var(--display); font-weight:800; font-size:38px; letter-spacing:-.02em; margin:0 0 8px; }
.archive-head .desc{ color:var(--ink-soft); font-size:15px; max-width:60ch; }

/* ---------- pagination ---------- */
.pagination{ display:flex; gap:8px; padding:32px 0 0; font-weight:700; font-size:13.5px; }
.pagination .page-numbers{ border:1px solid var(--line); padding:9px 14px; }
.pagination .page-numbers.current, .pagination .page-numbers:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:#D9D7D1; padding:56px 0 26px; margin-top:0; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:36px; border-bottom:1px solid #333; }
.site-footer h5{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--sand); margin:0 0 16px; }
.site-footer .blurb{ font-size:13.5px; line-height:1.6; color:#B8B6AF; max-width:32ch; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.site-footer ul a{ font-size:13.5px; }
.site-footer ul a:hover{ color:var(--sand); }
.foot-logo{ height:34px; width:auto; margin-bottom:14px; background:#fff; padding:4px 8px; border-radius:2px; }
.newsletter form{ display:flex; border:1px solid #444; }
.newsletter input{ flex:1; background:transparent; border:none; padding:11px 12px; color:#fff; font-family:var(--sans); font-size:13px; outline:none; }
.newsletter button{ background:var(--maroon); border:none; padding:0 16px; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#fff; cursor:pointer; }
.foot-bottom{ display:flex; justify-content:space-between; padding-top:20px; flex-wrap:wrap; gap:10px; font-size:11.5px; color:#7A7870; }

/* ---------- editor content compat ---------- */
.article-body iframe{ max-width:100%; }
.wp-block-embed{ margin:1.5em 0; }
.alignwide{ margin-left:-60px; margin-right:-60px; }

/* ---------- responsive ---------- */
@media (max-width:920px){
  .analysis-grid{ display:flex; flex-direction:column; }
  .hero .headline{ font-size:38px; max-width:none; }
  .single-hero .headline{ font-size:32px; }
  .nav-primary{ display:none; width:100%; }
  .nav-primary.open{ display:block; }
  .nav-primary.open ul{ flex-direction:column; gap:4px; align-items:flex-start; padding:10px 0 16px; }
  .burger{ display:block; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .post-list-item{ grid-template-columns:1fr; }
  .video-grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .foot-grid{ grid-template-columns:1fr; }
  .pub-row{ grid-template-columns:44px 1fr; }
  .pub-row .no{ grid-row:1; grid-column:2; }
  .pub-row a.dl{ grid-column:2; justify-self:start; margin-top:4px; }
  .stat-row{ flex-direction:column; gap:16px; }
  .stat-row .stat{ border-left:none; padding-left:0; }
  .hero-topbanner{ height:179px; }
  .t-row{ grid-template-columns:1fr; gap:6px; }
}
/* ===========================================================
   SUBMENU / DROPDOWN — append this block to the end of main.css
   Styles the nested <ul class="sub-menu"> that WordPress outputs
   automatically for indented (child) menu items.
   =========================================================== */

/* Parent items that have a submenu get a small chevron indicator */
.nav-primary li.menu-item-has-children > a{
  position:relative;
  padding-right:22px;
}
.nav-primary li.menu-item-has-children > a::after{
  content:"";
  position:absolute;
  right:2px; top:50%;
  width:6px; height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:translateY(-65%) rotate(45deg);
  opacity:.55;
  transition:transform .2s ease;
}

/* The dropdown panel itself — hidden by default */
.nav-primary .sub-menu{
  list-style:none;
  margin:0;
  padding:8px 0;
  position:absolute;
  top:100%;
  left:0;
  min-width:260px;
  background:var(--paper);
  border:1px solid var(--line);
  border-top:2px solid var(--maroon);
  box-shadow:0 12px 28px rgba(20,20,20,.12);
  z-index:80;

  display:block; /* JS/CSS below control visibility, not display:none, for smoother transition */
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}

.nav-primary .sub-menu li{ width:100%; }

.nav-primary .sub-menu a{
  display:block;
  padding:10px 18px;
  font-size:13.5px;
  font-weight:600;
  white-space:nowrap;
}
.nav-primary .sub-menu a:hover{
  background:var(--paper-2);
  color:var(--maroon);
}
.nav-primary .sub-menu a::after{ content:none; } /* no chevron on sub-items themselves */

/* Desktop: open on hover */
.nav-primary li.menu-item-has-children{ position:relative; }
@media (min-width:921px){
  .nav-primary li.menu-item-has-children:hover > .sub-menu,
  .nav-primary li.menu-item-has-children.submenu-open > .sub-menu{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  .nav-primary li.menu-item-has-children:hover > a::after,
  .nav-primary li.menu-item-has-children.submenu-open > a::after{
    transform:translateY(-35%) rotate(225deg);
  }
}

/* Mobile: submenu becomes an inline, indented block instead of a floating panel */
@media (max-width:920px){
  .nav-primary .sub-menu{
    position:static;
    border:none;
    box-shadow:none;
    background:transparent;
    padding:0 0 0 16px;
    min-width:0;
    display:none;   /* JS toggles this via .submenu-open, see nav.js */
    opacity:1; visibility:visible; transform:none; /* neutralize desktop transition on mobile */
  }
  .nav-primary li.menu-item-has-children.submenu-open > .sub-menu{
    display:block;
  }
  .nav-primary .sub-menu a{
    padding:8px 0;
    font-size:13px;
    color:var(--ink-soft);
  }
}
