/*
Theme Name: Sentinelle
Theme URI: https://duerp-facile.org
Author: Flo
Author URI: https://duerp-facile.org
Description: Thème éditorial conformité et prévention pour duerp-facile.org. Direction legaltech sobre — Libre Franklin + IBM Plex Mono + Newsreader, bleu nuit et bleu électrique, libellés monospace réglementaires, sommaire numéroté collant et carte CTA partenaire. Pensé pour un cocon sémantique (silos en catégories, page mère en landing de silo, articles en lecture 3 colonnes).
Version: 1.0.3
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sentinelle
Tags: blog, two-columns, three-columns, custom-menu, custom-logo, featured-images, block-styles, wide-blocks, accessibility-ready, translation-ready
*/

/* ============================================================
   SENTINELLE — DESIGN TOKENS
   ============================================================ */
:root{
  /* surfaces */
  --sn-bg:#f2f5fa;
  --sn-bg-alt:#e7eaf0;
  --sn-surface:#ffffff;
  --sn-surface-tint:#f7faff;
  --sn-surface-tint-2:#f5f8fd;

  /* navy scale */
  --sn-ink:#0e1d36;        /* headings / strong text */
  --sn-ink-2:#0d1b34;      /* hero h1 */
  --sn-navy:#1b3a6b;       /* brand blocks, stat numbers */
  --sn-navy-deep:#0c1830;  /* utility bar, footer */

  /* accent */
  --sn-blue:#2f6df0;       /* primary action */
  --sn-blue-700:#2257cf;   /* hover */
  --sn-blue-tint:#eaf0fb;  /* active items, info callouts */
  --sn-blue-tint-2:#eef3fb;
  --sn-blue-glow:rgba(47,109,240,.7);

  /* text */
  --sn-text:#3b475c;
  --sn-text-2:#4a5870;
  --sn-text-3:#334056;
  --sn-muted:#7a879c;
  --sn-muted-2:#8893a3;
  --sn-muted-3:#56617a;
  --sn-on-navy:#bcd0ee;
  --sn-on-navy-soft:#9fb3d4;
  --sn-on-navy-mute:#7e90ad;

  /* borders */
  --sn-line:#e4ebf4;
  --sn-line-soft:#eef2f8;
  --sn-line-card:#dde6f2;
  --sn-line-card-2:#dbe5f2;
  --sn-line-card-3:#d8e2f0;
  --sn-line-tint:#d3e0f6;

  /* danger / warning */
  --sn-warn-bg:#fbeeea;
  --sn-warn-line:#f0cfc4;
  --sn-warn-ink:#c0492f;
  --sn-warn-text:#7a3422;

  /* success-ish reuse blue */

  /* radii */
  --sn-r-xs:6px;
  --sn-r-sm:8px;
  --sn-r-md:10px;
  --sn-r-lg:13px;
  --sn-r-xl:16px;

  /* shadows */
  --sn-sh-cta:0 8px 18px -8px var(--sn-blue-glow);
  --sn-sh-card:0 12px 30px -22px rgba(20,55,120,.4);
  --sn-sh-offer:0 20px 44px -26px rgba(20,55,120,.45);

  /* type */
  --sn-sans:"Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --sn-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --sn-serif:"Newsreader",Georgia,"Times New Roman",serif;

  /* layout */
  --sn-max:1180px;
  --sn-gutter:30px;
  --sn-sticky:24px;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--sn-bg);
  color:var(--sn-text);
  font-family:var(--sn-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
[id]{scroll-margin-top:var(--sn-sticky)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}
button{font-family:inherit}
::selection{background:rgba(47,109,240,.18)}
hr{border:none;border-top:1px solid var(--sn-line);margin:32px 0}

h1,h2,h3,h4{font-family:var(--sn-sans);color:var(--sn-ink);letter-spacing:-.02em}

/* accessibility */
.sn-skip{position:absolute;left:-9999px;top:auto;z-index:999;background:var(--sn-blue);color:#fff;padding:10px 16px;border-radius:0 0 var(--sn-r-sm) 0;font:600 13px/1 var(--sn-sans)}
.sn-skip:focus{left:0;top:0}
:where(a,button,summary,input,[tabindex]):focus-visible{outline:2px solid var(--sn-blue);outline-offset:2px;border-radius:4px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ============================================================
   LAYOUT PRIMITIVES
   ============================================================ */
.sn-container{max-width:var(--sn-max);margin:0 auto;padding-left:var(--sn-gutter);padding-right:var(--sn-gutter)}
.sn-shell{
  max-width:var(--sn-max);margin:0 auto;
  padding:34px var(--sn-gutter) 64px;
  display:flex;gap:42px;align-items:flex-start;
}
.sn-shell__main{flex:1 1 auto;min-width:0;max-width:660px}
.sn-shell__aside-left{flex:0 0 214px;position:sticky;top:var(--sn-sticky);align-self:flex-start}
.sn-shell__aside-right{flex:0 0 300px;position:sticky;top:var(--sn-sticky);align-self:flex-start}

/* ============================================================
   UTILITY / TRUST BAR
   ============================================================ */
.sn-utility{background:var(--sn-navy-deep)}
.sn-utility__row{
  max-width:var(--sn-max);margin:0 auto;padding:8px var(--sn-gutter);
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.sn-utility span{font:500 11.5px/1.5 var(--sn-mono);color:var(--sn-on-navy-soft)}

/* ============================================================
   HEADER
   ============================================================ */
.sn-header{background:var(--sn-surface);border-bottom:1px solid var(--sn-line);position:relative;z-index:50}
.sn-header__row{
  max-width:var(--sn-max);margin:0 auto;padding:16px var(--sn-gutter);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.sn-brand{display:flex;align-items:center;gap:9px}
.sn-brand__mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:7px;background:var(--sn-navy);flex-shrink:0;
}
.sn-brand__name{font:800 18px/1 var(--sn-sans);letter-spacing:-.02em;color:var(--sn-ink)}
.sn-brand img{max-height:34px;width:auto}

.sn-nav{display:flex;align-items:center;gap:24px}
.sn-nav a{font:500 14px/1 var(--sn-sans);color:#3f4d63;transition:color .15s}
.sn-nav a:hover,.sn-nav .current-menu-item>a{color:var(--sn-blue)}
.sn-nav ul{list-style:none;display:flex;align-items:center;gap:24px;margin:0;padding:0}

.sn-header__cta{display:flex;align-items:center;gap:16px}

.sn-burger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:8px}
.sn-burger span{width:20px;height:2px;background:var(--sn-ink);border-radius:2px;transition:.2s}
.sn-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.sn-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.sn-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Mobile menu hidden by default; revealed only under the burger breakpoint */
.sn-mobile-menu{display:none}

/* ============================================================
   BUTTONS
   ============================================================ */
.sn-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font:600 13.5px/1 var(--sn-sans);color:#fff;background:var(--sn-blue);
  padding:11px 17px;border-radius:var(--sn-r-sm);border:none;cursor:pointer;
  transition:background .15s,box-shadow .15s,transform .05s;
}
.sn-btn:hover{background:var(--sn-blue-700)}
.sn-btn:active{transform:translateY(1px)}
.sn-btn--lg{font-size:15px;font-weight:700;padding:15px;width:100%;border-radius:var(--sn-r-md);box-shadow:var(--sn-sh-cta)}
.sn-btn--ghost{background:transparent;color:var(--sn-blue);border:1px solid var(--sn-line-card-2)}
.sn-btn--ghost:hover{background:var(--sn-blue-tint);color:var(--sn-blue-700)}
.sn-btn--navy{background:var(--sn-navy)}
.sn-btn--navy:hover{background:#16315c}

/* ============================================================
   HERO
   ============================================================ */
.sn-hero{background:var(--sn-surface);border-bottom:1px solid var(--sn-line)}
.sn-hero__inner{max-width:var(--sn-max);margin:0 auto;padding:42px var(--sn-gutter) 30px}
.sn-eyebrow{font:600 12px/1 var(--sn-mono);letter-spacing:.12em;color:var(--sn-blue);text-transform:uppercase}
.sn-hero h1{margin:13px 0 0;font:800 40px/1.1 var(--sn-sans);letter-spacing:-.03em;color:var(--sn-ink-2);max-width:760px}
.sn-hero__lead{margin:15px 0 0;font:400 18px/1.6 var(--sn-sans);color:var(--sn-text-2);max-width:680px}
.sn-hero__meta{margin:18px 0 0;display:flex;gap:18px;flex-wrap:wrap;font:500 12px/1.4 var(--sn-mono);color:var(--sn-muted)}
.sn-hero__meta span{display:inline-flex;align-items:center;gap:6px}

/* ============================================================
   STAT STRIP (chiffres clés)
   ============================================================ */
.sn-stats-wrap{max-width:var(--sn-max);margin:0 auto;padding:0 var(--sn-gutter) 30px}
.sn-stats{display:flex;border:1px solid var(--sn-line-card-2);border-radius:14px;overflow:hidden;background:var(--sn-surface-tint);flex-wrap:wrap}
.sn-stat{flex:1 1 140px;padding:17px 20px;border-right:1px solid var(--sn-line)}
.sn-stat:last-child{border-right:none}
.sn-stat__n{font:800 26px/1 var(--sn-sans);letter-spacing:-.02em;color:var(--sn-navy)}
.sn-stat__l{font:500 12px/1.3 var(--sn-mono);color:var(--sn-muted);margin-top:5px}

/* ============================================================
   TABLE OF CONTENTS (sommaire)
   ============================================================ */
.sn-toc{
  background:var(--sn-surface);border:1px solid var(--sn-line-card);
  border-radius:14px;padding:6px;box-shadow:var(--sn-sh-card);
}
.sn-toc__label{font:600 11px/1 var(--sn-mono);letter-spacing:.12em;color:var(--sn-muted-2);padding:12px 12px 10px}
.sn-toc a{display:block;padding:10px 12px;border-radius:9px;transition:background .15s}
.sn-toc a span{font:500 13.5px/1.4 var(--sn-sans);color:var(--sn-muted-3)}
.sn-toc a .sn-toc__num{color:inherit}
.sn-toc a:hover{background:var(--sn-blue-tint-2)}
.sn-toc a.is-active{background:var(--sn-blue-tint);border-left:3px solid var(--sn-blue);padding-left:9px}
.sn-toc a.is-active span{font-weight:600;color:var(--sn-navy)}

/* mobile accordion ToC */
.sn-toc-mobile{display:none;margin:0 0 22px;background:var(--sn-surface);border:1px solid var(--sn-line-card);border-radius:12px;overflow:hidden}
.sn-toc-mobile summary{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;font:600 12.5px/1 var(--sn-mono);letter-spacing:.05em;color:var(--sn-navy)}
.sn-toc-mobile a{display:block;font:500 13px/1.4 var(--sn-sans);color:var(--sn-muted-3);padding:9px 15px;border-top:1px solid var(--sn-line-soft)}

/* ============================================================
   ARTICLE PROSE
   ============================================================ */
.sn-prose{color:var(--sn-text)}
.sn-prose>h2,.sn-article-section>h2,.sn-prose .wp-block-heading{
  margin:38px 0 0;font:800 26px/1.22 var(--sn-sans);letter-spacing:-.02em;color:var(--sn-ink);
}
.sn-prose>h2:first-child,.sn-prose>.wp-block-heading:first-child{margin-top:0}
.sn-prose h3{margin:26px 0 0;font:700 19px/1.3 var(--sn-sans);letter-spacing:-.01em;color:var(--sn-ink)}
.sn-prose h4{margin:22px 0 0;font:700 16px/1.4 var(--sn-sans);color:var(--sn-ink)}
.sn-prose p{margin:13px 0 0;font:400 16.5px/1.7 var(--sn-sans);color:var(--sn-text)}
.sn-prose a:not(.sn-btn):not(.wp-block-button__link){color:var(--sn-blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:rgba(47,109,240,.35);transition:text-decoration-color .15s}
.sn-prose a:not(.sn-btn):not(.wp-block-button__link):hover{text-decoration-color:var(--sn-blue)}
.sn-prose ul,.sn-prose ol{margin:13px 0 0;padding-left:22px;font:400 16.5px/1.7 var(--sn-sans);color:var(--sn-text)}
.sn-prose li{margin:6px 0}
.sn-prose li::marker{color:var(--sn-blue)}
.sn-prose strong,.sn-prose b{color:var(--sn-ink);font-weight:700}
.sn-prose img,.sn-prose .wp-block-image{margin-top:20px;border-radius:var(--sn-r-lg)}
.sn-prose figcaption{margin-top:8px;font:400 12.5px/1.5 var(--sn-mono);color:var(--sn-muted-2);text-align:center}

/* quote → Newsreader (legal citation) */
.sn-prose blockquote,.sn-prose .wp-block-quote{
  margin:18px 0 0;padding:4px 0 4px 20px;border-left:3px solid var(--sn-blue);background:none;
}
.sn-prose blockquote p,.sn-prose .wp-block-quote p{margin:0;font:500 19px/1.5 var(--sn-serif);font-style:italic;color:#23344f}
.sn-prose blockquote cite,.sn-prose .wp-block-quote cite{display:block;margin-top:7px;font:500 12px/1 var(--sn-mono);font-style:normal;color:var(--sn-muted-2)}

/* tables */
.sn-prose .wp-block-table{margin-top:20px}
.sn-prose table{width:100%;border-collapse:collapse;font:500 14.5px/1.5 var(--sn-sans);border:1px solid var(--sn-line-card);border-radius:var(--sn-r-lg);overflow:hidden}
.sn-prose th{background:var(--sn-blue-tint);color:var(--sn-navy);font-weight:700;text-align:left;padding:12px 14px;border-bottom:1px solid var(--sn-line-card)}
.sn-prose td{padding:12px 14px;border-bottom:1px solid var(--sn-line-soft);color:var(--sn-text-3)}
.sn-prose tr:last-child td{border-bottom:none}

/* ============================================================
   CALLOUTS  (.sn-note / variants)
   ============================================================ */
.sn-note{margin-top:16px;border-radius:var(--sn-r-lg);padding:14px 16px;display:flex;gap:11px}
.sn-note__ico{flex-shrink:0;margin-top:1px}
.sn-note__label{font:600 11px/1 var(--sn-mono);letter-spacing:.06em;text-transform:uppercase}
.sn-note p{margin:5px 0 0;font:500 14.5px/1.5 var(--sn-sans)}

/* info / à retenir (default) */
.sn-note,.sn-note--info{background:var(--sn-blue-tint);border:1px solid var(--sn-line-tint)}
.sn-note--info .sn-note__label{color:var(--sn-navy)}
.sn-note--info p{color:#2a3852}

/* warning / point de vigilance */
.sn-note--warn{background:var(--sn-warn-bg);border:1px solid var(--sn-warn-line)}
.sn-note--warn .sn-note__label{color:var(--sn-warn-ink)}
.sn-note--warn p{color:var(--sn-warn-text)}

/* ============================================================
   CARDS GRID (lettered / numbered)
   ============================================================ */
.sn-cards{margin-top:15px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sn-card-mini{background:var(--sn-surface);border:1px solid #e0e8f3;border-radius:12px;padding:14px 15px}
.sn-card-mini__k{font:700 13px/1 var(--sn-mono);color:var(--sn-blue)}
.sn-card-mini p{margin:7px 0 0;font:500 14px/1.45 var(--sn-sans);color:var(--sn-text-3)}

/* ============================================================
   INLINE CTA BANNER (navy)
   ============================================================ */
.sn-cta-banner{
  margin-top:17px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:var(--sn-navy);border-radius:14px;padding:18px 20px;flex-wrap:wrap;
}
.sn-cta-banner__t{font:700 17px/1.2 var(--sn-sans);color:#fff}
.sn-cta-banner__s{font:400 13.5px/1.4 var(--sn-sans);color:#a9c0e6;margin-top:3px}
.sn-cta-banner .sn-btn{flex-shrink:0;white-space:nowrap}

/* ============================================================
   FAQ
   ============================================================ */
.sn-faq{margin-top:13px}
.sn-faq__h{margin:0 0 4px;font:800 23px/1.2 var(--sn-sans);letter-spacing:-.02em;color:var(--sn-ink)}
.sn-faq details{border-bottom:1px solid #e6ecf5;padding:14px 0}
.sn-faq summary{display:flex;justify-content:space-between;gap:14px;font:600 15.5px/1.4 var(--sn-sans);color:#1b2c46;cursor:pointer}
.sn-faq summary::-webkit-details-marker{display:none}
.sn-faq summary .sn-faq__sign{color:var(--sn-blue);transition:transform .2s;font-weight:600}
.sn-faq details[open] summary .sn-faq__sign{transform:rotate(45deg)}
.sn-faq details p{margin:9px 0 0;font:400 15px/1.6 var(--sn-sans);color:#4a566c}

/* ============================================================
   AFFILIATE DISCLOSURE
   ============================================================ */
.sn-disclosure{margin-top:24px;font:400 12px/1.6 var(--sn-mono);color:#9aa6b8}

/* section reset utility (anchored article blocks) */
.sn-article-section{margin-top:38px}
.sn-article-section:first-child{margin-top:0}

/* ============================================================
   OFFER CARD (CTA partenaire — sidebar)
   ============================================================ */
.sn-offer{background:var(--sn-surface);border:1px solid var(--sn-line-card-3);border-radius:var(--sn-r-xl);overflow:hidden;box-shadow:var(--sn-sh-offer)}
.sn-offer__head{background:var(--sn-navy);padding:15px 18px}
.sn-offer__head-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sn-offer__brand{font:800 16px/1 var(--sn-sans);color:#fff}
.sn-offer__badge{font:600 10px/1 var(--sn-mono);letter-spacing:.06em;color:#a9c0e6;border:1px solid rgba(255,255,255,.28);padding:5px 7px;border-radius:6px;white-space:nowrap}
.sn-offer__tag{margin:9px 0 0;font:500 13px/1.45 var(--sn-sans);color:var(--sn-on-navy)}
.sn-offer__body{padding:18px}
.sn-offer__title{margin:0;font:800 18px/1.25 var(--sn-sans);letter-spacing:-.01em;color:var(--sn-ink)}
.sn-offer__list{margin-top:13px;display:flex;flex-direction:column;gap:9px;list-style:none;padding:0}
.sn-offer__li{display:flex;gap:9px;align-items:center}
.sn-offer__li svg{flex-shrink:0}
.sn-offer__li span{font:500 13.5px/1.4 var(--sn-sans);color:#34405a}
.sn-offer__note{margin-top:9px;text-align:center;font:500 11.5px/1.4 var(--sn-mono);color:var(--sn-muted-2)}
.sn-offer__expert{margin-top:14px;padding-top:13px;border-top:1px solid var(--sn-line-soft);display:flex;align-items:center;gap:9px}
.sn-offer__fr{flex-shrink:0;font:600 10px/1 var(--sn-mono);letter-spacing:.04em;color:var(--sn-navy);border:1px solid #c9d8ef;background:var(--sn-blue-tint-2);padding:4px 6px;border-radius:5px}
.sn-offer__expert span{font:500 12.5px/1.45 var(--sn-sans);color:var(--sn-muted-3)}
.sn-offer__foot{background:var(--sn-surface-tint-2);border-top:1px solid #e7eef7;padding:10px 18px;display:flex;align-items:center;justify-content:space-between}
.sn-offer__foot span{font:400 11px/1.4 var(--sn-mono);color:var(--sn-muted-2)}
.sn-offer__foot a{font:500 11px/1.4 var(--sn-mono);color:var(--sn-blue)}
.sn-offer__btn-wrap{margin-top:16px}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.sn-crumb{font:500 12px/1.5 var(--sn-mono);color:var(--sn-muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.sn-crumb a{color:var(--sn-muted);transition:color .15s}
.sn-crumb a:hover{color:var(--sn-blue)}
.sn-crumb .sn-crumb__sep{color:#b9c4d6}
.sn-crumb span[aria-current]{color:var(--sn-navy)}

/* ============================================================
   POST CARDS (archives / related grid)
   ============================================================ */
.sn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.sn-pcard{
  background:var(--sn-surface);border:1px solid var(--sn-line-card);border-radius:var(--sn-r-lg);
  padding:18px 20px;display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s,border-color .18s;
}
.sn-pcard:hover{box-shadow:var(--sn-sh-card);transform:translateY(-2px);border-color:var(--sn-line-card-2)}
.sn-pcard__cocon{font:600 10.5px/1 var(--sn-mono);letter-spacing:.08em;color:var(--sn-blue);text-transform:uppercase}
.sn-pcard__title{margin:9px 0 0;font:700 17px/1.32 var(--sn-sans);letter-spacing:-.01em;color:var(--sn-ink)}
.sn-pcard:hover .sn-pcard__title{color:var(--sn-navy)}
.sn-pcard__excerpt{margin:8px 0 0;font:400 14px/1.55 var(--sn-sans);color:var(--sn-text-2)}
.sn-pcard__more{margin-top:14px;font:600 12.5px/1 var(--sn-mono);color:var(--sn-blue)}

/* related block */
.sn-related{margin-top:44px;border-top:1px solid var(--sn-line);padding-top:24px}
.sn-related__h{margin:0 0 16px;font:800 23px/1.2 var(--sn-sans);letter-spacing:-.02em;color:var(--sn-ink)}
.sn-related .sn-grid{grid-template-columns:1fr 1fr}

/* ============================================================
   SILO GRID (homepage)
   ============================================================ */
.sn-silos{margin-top:0}
.sn-silo-card{
  background:var(--sn-surface);border:1px solid var(--sn-line-card);border-radius:14px;
  padding:20px 22px;display:flex;flex-direction:column;height:100%;
  transition:box-shadow .18s,transform .18s,border-color .18s;
}
.sn-silo-card:hover{box-shadow:var(--sn-sh-card);transform:translateY(-2px);border-color:var(--sn-line-card-2)}
.sn-silo-card__ico{width:36px;height:36px;border-radius:9px;background:var(--sn-blue-tint);display:inline-flex;align-items:center;justify-content:center;margin-bottom:13px}
.sn-silo-card__name{font:800 17px/1.25 var(--sn-sans);letter-spacing:-.01em;color:var(--sn-ink)}
.sn-silo-card__desc{margin:7px 0 0;font:400 14px/1.55 var(--sn-sans);color:var(--sn-text-2);flex:1}
.sn-silo-card__count{margin-top:14px;font:500 11.5px/1 var(--sn-mono);color:var(--sn-muted-2)}

/* section heading for homepage blocks */
.sn-section{padding:48px var(--sn-gutter);max-width:var(--sn-max);margin:0 auto}
.sn-section--tight{padding-top:0}
.sn-section__head{margin-bottom:24px}
.sn-section__eyebrow{font:600 11px/1 var(--sn-mono);letter-spacing:.12em;color:var(--sn-blue);text-transform:uppercase}
.sn-section__title{margin:11px 0 0;font:800 29px/1.18 var(--sn-sans);letter-spacing:-.025em;color:var(--sn-ink)}
.sn-section__sub{margin:10px 0 0;font:400 16px/1.6 var(--sn-sans);color:var(--sn-text-2);max-width:640px}

/* big CTA section (full-width navy) */
.sn-cta-full{background:var(--sn-navy-deep);position:relative;overflow:hidden}
.sn-cta-full__inner{max-width:var(--sn-max);margin:0 auto;padding:54px var(--sn-gutter);display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.sn-cta-full__eyebrow{font:600 11px/1 var(--sn-mono);letter-spacing:.12em;color:var(--sn-blue)}
.sn-cta-full__t{margin:12px 0 0;font:800 30px/1.18 var(--sn-sans);letter-spacing:-.025em;color:#fff;max-width:560px}
.sn-cta-full__s{margin:11px 0 0;font:400 15.5px/1.6 var(--sn-sans);color:var(--sn-on-navy);max-width:520px}

/* ============================================================
   FOOTER
   ============================================================ */
.sn-footer{background:var(--sn-navy-deep);color:var(--sn-on-navy-soft)}
.sn-footer__cols{max-width:var(--sn-max);margin:0 auto;padding:48px var(--sn-gutter) 32px;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:36px}
.sn-footer__brand{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.sn-footer__brand-name{font:800 16px/1 var(--sn-sans);color:#e6eefb}
.sn-footer__about{font:400 13.5px/1.65 var(--sn-sans);color:var(--sn-on-navy-mute);max-width:300px}
.sn-footer__coltitle{font:600 11px/1 var(--sn-mono);letter-spacing:.1em;color:#8ea3c4;text-transform:uppercase;margin-bottom:14px}
.sn-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.sn-footer__col a{font:400 13.5px/1.5 var(--sn-sans);color:var(--sn-on-navy-soft);transition:color .15s}
.sn-footer__col a:hover{color:#fff}
.sn-footer__bar{border-top:1px solid rgba(255,255,255,.08)}
.sn-footer__bar-row{max-width:var(--sn-max);margin:0 auto;padding:18px var(--sn-gutter);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.sn-footer__legal{font:400 11.5px/1.5 var(--sn-mono);color:var(--sn-on-navy-mute)}

/* ============================================================
   PAGINATION
   ============================================================ */
.sn-pagination{margin-top:40px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.sn-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--sn-line-card);border-radius:var(--sn-r-sm);background:var(--sn-surface);font:600 14px/1 var(--sn-sans);color:var(--sn-text-3);transition:.15s}
.sn-pagination .page-numbers:hover{border-color:var(--sn-blue);color:var(--sn-blue)}
.sn-pagination .page-numbers.current{background:var(--sn-blue);border-color:var(--sn-blue);color:#fff}
.sn-pagination .page-numbers.dots{border:none;background:none}

/* ============================================================
   SEARCH FORM
   ============================================================ */
.sn-search{display:flex;gap:8px;max-width:420px}
.sn-search input[type=search]{flex:1;padding:11px 14px;border:1px solid var(--sn-line-card);border-radius:var(--sn-r-sm);font:400 14px/1.4 var(--sn-sans);color:var(--sn-ink);background:var(--sn-surface)}
.sn-search input[type=search]:focus{outline:none;border-color:var(--sn-blue);box-shadow:0 0 0 3px var(--sn-blue-tint)}

/* ============================================================
   404 / EMPTY STATES
   ============================================================ */
.sn-empty{text-align:center;padding:80px var(--sn-gutter)}
.sn-empty__code{font:800 64px/1 var(--sn-sans);letter-spacing:-.04em;color:var(--sn-navy)}
.sn-empty__t{margin:14px 0 0;font:800 26px/1.2 var(--sn-sans);color:var(--sn-ink)}
.sn-empty__s{margin:11px auto 0;font:400 16px/1.6 var(--sn-sans);color:var(--sn-text-2);max-width:440px}
.sn-empty__actions{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* page header (generic) */
.sn-page-head{background:var(--sn-surface);border-bottom:1px solid var(--sn-line)}
.sn-page-head__inner{max-width:var(--sn-max);margin:0 auto;padding:40px var(--sn-gutter) 30px}
.sn-page-head h1{margin:13px 0 0;font:800 36px/1.12 var(--sn-sans);letter-spacing:-.03em;color:var(--sn-ink-2)}
.sn-page-head__sub{margin:13px 0 0;font:400 17px/1.6 var(--sn-sans);color:var(--sn-text-2);max-width:680px}

/* WordPress core alignment helpers inside prose */
.sn-prose .alignwide{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw}
.sn-prose .alignfull{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw}
.sn-prose .aligncenter{margin-left:auto;margin-right:auto}
@media(min-width:1000px){
  .sn-prose .alignwide{margin-left:-70px;margin-right:-70px;max-width:none;width:auto}
}

/* sticky mobile CTA (hidden on desktop) */
.sn-mobile-cta{display:none}

/* WP admin bar offset */
body.admin-bar .sn-shell__aside-left,
body.admin-bar .sn-shell__aside-right{top:calc(var(--sn-sticky) + 32px)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1080px){
  .sn-shell__aside-right{flex-basis:270px}
}
@media(max-width:920px){
  .sn-nav{display:none}
  .sn-burger{display:flex}
  .sn-header__cta .sn-btn{display:none}
  /* slide-down mobile menu */
  .sn-mobile-menu{display:none;border-top:1px solid var(--sn-line);background:var(--sn-surface)}
  .sn-mobile-menu.is-open{display:block}
  .sn-mobile-menu ul{list-style:none;margin:0;padding:8px var(--sn-gutter) 16px;display:flex;flex-direction:column}
  .sn-mobile-menu a{display:block;padding:13px 4px;border-bottom:1px solid var(--sn-line-soft);font:600 15px/1 var(--sn-sans);color:var(--sn-text-3)}
  .sn-mobile-menu .sn-btn{margin-top:14px;width:100%}

  /* 3-col → single col */
  .sn-shell{flex-direction:column;gap:0;padding-bottom:40px}
  .sn-shell__aside-left{display:none}      /* desktop ToC hidden, mobile accordion shows */
  .sn-shell__main{max-width:100%;width:100%}
  .sn-shell__aside-right{position:static;flex-basis:auto;width:100%;margin-top:40px}
  .sn-toc-mobile{display:block}

  .sn-footer__cols{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:720px){
  :root{--sn-gutter:18px}
  .sn-hero h1{font-size:31px}
  .sn-hero__lead{font-size:16px}
  .sn-prose>h2,.sn-prose .wp-block-heading{font-size:23px}
  .sn-prose p,.sn-prose ul,.sn-prose ol{font-size:16px}
  .sn-cards{grid-template-columns:1fr}
  .sn-related .sn-grid{grid-template-columns:1fr}
  .sn-section{padding:36px var(--sn-gutter)}
  .sn-section__title{font-size:24px}
  .sn-cta-full__t{font-size:24px}
  .sn-footer__cols{grid-template-columns:1fr}
  /* utility bar: hide second item */
  .sn-utility__row span:last-child{display:none}
  /* stat strip: 2x2 */
  .sn-stat{flex:1 1 45%;border-bottom:1px solid var(--sn-line)}
  .sn-stat:nth-child(2n){border-right:none}
  .sn-stat:nth-last-child(-n+2){border-bottom:none}

  /* sticky mobile CTA bar */
  .sn-mobile-cta{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:var(--sn-surface);border-top:1px solid #e1e9f3;padding:11px 16px;
    box-shadow:0 -10px 24px -16px rgba(15,40,90,.4);align-items:center;gap:11px;
  }
  .sn-mobile-cta__txt{flex:1;min-width:0}
  .sn-mobile-cta__t{font:800 14px/1.1 var(--sn-sans);color:var(--sn-ink)}
  .sn-mobile-cta__s{font:500 11px/1.3 var(--sn-mono);color:var(--sn-muted-2);margin-top:2px}
  .sn-mobile-cta .sn-btn{flex-shrink:0;white-space:nowrap}
  body.sn-has-mobile-cta{padding-bottom:74px}
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
  .sn-pcard:hover,.sn-silo-card:hover{transform:none}
}

/* ============================================================
   HOMEPAGE HERO ACTIONS (front-page CTA row)
   ============================================================ */
.sn-hero__cta{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.sn-hero__cta .sn-btn{margin:0}
@media(max-width:520px){.sn-hero__cta{flex-direction:column;align-items:stretch}.sn-hero__cta .sn-btn{text-align:center;justify-content:center}}
