/* Novastream France Editable — site styles (frontend + editor).
   Built from the approved source: fonts.css, tokens.css, base.css, theme.css, components.css.
   See tools/build_css.py in the build workspace for the exact transformations. */

/* Local webfonts (latin + latin-ext subsets), downloaded from Google Fonts.
   Unbounded, Figtree: variable fonts. IBM Plex Mono: static weights.
   All three are licensed under the SIL Open Font License 1.1 — see assets/fonts/licenses/. */
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:swap;src:url('../fonts/figtree-400-800-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400 800;font-display:swap;src:url('../fonts/figtree-400-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/unbounded-400-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/unbounded-400-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Design tokens — IPTV Website Master token architecture (colour, type, spacing, shape,
   elevation, motion, layout). The Nightfall theme values override these in theme.css. */

/* ---- colors.css ---- */
:root{
  /* --- ground: neutral near-black, no hue cast --- */
  --ink-950:#08090a;
  --ink-900:#0d0e10;
  --ink-850:#121316;
  --ink-800:#181a1d;
  --ink-750:#1f2125;
  --ink-700:#282b30;
  --ink-600:#3a3e45;
  --ink-500:#565b63;
  --ink-400:#7c828b;
  --ink-300:#a3a9b2;
  --ink-200:#c9ced5;
  --ink-100:#e6e9ed;
  --ink-050:#f4f5f7;
  --ink-000:#ffffff;

  /* --- copper: the one brand accent --- */
  --copper-100:#fbe6d5;
  --copper-200:#f4c9a6;
  --copper-300:#edaa77;
  --copper-400:#e6904f;
  --copper-500:#d9762e;
  --copper-600:#b65c1f;
  --copper-700:#8c4417;
  --copper-800:#5e2d10;
  --copper-900:#331907;

  /* --- signals: used for status only, never decoration --- */
  --signal-live:#ff4438;
  --signal-good:#5fb98b;
  --signal-warn:#e8b23c;

  /* --- semantic: surfaces --- */
  --surface-page:var(--ink-950);
  --surface-raised:var(--ink-900);
  --surface-card:var(--ink-850);
  --surface-card-hover:var(--ink-800);
  --surface-sunken:var(--ink-900);
  --surface-inverse:var(--ink-050);
  --surface-accent:var(--copper-500);
  --surface-accent-soft:#1a1109;
  --surface-accent-quiet:#231509;

  /* --- semantic: text --- */
  --text-primary:var(--ink-050);
  --text-secondary:var(--ink-300);
  --text-muted:var(--ink-400);
  --text-accent:var(--copper-300);
  --text-on-accent:var(--ink-950);
  --text-on-inverse:var(--ink-950);
  --text-link:var(--copper-300);
  --text-link-hover:var(--copper-200);

  /* --- semantic: lines --- */
  --border-hairline:var(--ink-700);
  --border-strong:var(--ink-600);
  --border-accent:var(--copper-700);
  --border-accent-strong:var(--copper-500);
  --rule-grid:#16181b;
}

/* ---- typography.css ---- */
:root{
  --font-display:"Anton",'Arial Narrow',sans-serif;
  --font-sans:"Manrope",system-ui,-apple-system,sans-serif;
  --font-mono:"DM Mono",ui-monospace,SFMono-Regular,monospace;

  /* fixed steps */
  --text-11:11px;
  --text-12:12px;
  --text-13:13px;
  --text-14:14px;
  --text-15:15px;
  --text-16:16px;
  --text-18:18px;
  --text-20:20px;
  --text-24:24px;
  --text-28:28px;
  --text-34:34px;
  --text-42:42px;
  --text-52:52px;
  --text-64:64px;
  --text-80:80px;

  /* fluid display steps */
  --display-hero:clamp(44px,7.4vw,92px); /* @kind font */
  --display-1:clamp(34px,4.6vw,58px); /* @kind font */
  --display-2:clamp(28px,3.2vw,42px); /* @kind font */
  --display-3:clamp(22px,2.2vw,28px); /* @kind font */

  --leading-display:0.92;
  --leading-tight:1.08;
  --leading-snug:1.3;
  --leading-body:1.62;
  --leading-loose:1.75;

  --tracking-display:-0.01em;
  --tracking-tight:-0.015em;
  --tracking-normal:0;
  --tracking-label:0.14em;
  --tracking-mono:0.02em;

  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --weight-black:800;
}

/* ---- spacing.css ---- */
:root{
  --space-1:2px;
  --space-2:4px;
  --space-3:6px;
  --space-4:8px;
  --space-5:12px;
  --space-6:16px;
  --space-7:20px;
  --space-8:24px;
  --space-9:32px;
  --space-10:40px;
  --space-11:48px;
  --space-12:64px;
  --space-13:80px;
  --space-14:96px;
  --space-15:120px;

  --gutter:clamp(20px,4vw,40px); /* @kind spacing */
  --section-y:clamp(56px,7vw,96px); /* @kind spacing */
  --section-y-lg:clamp(72px,9vw,120px); /* @kind spacing */
  --stack-card:20px;
}

/* ---- shape.css ---- */
:root{
  --radius-0:0px;
  --radius-2:2px;
  --radius-4:4px;
  --radius-8:8px;
  --radius-12:12px;
  --radius-16:16px;
  --radius-pill:999px;

  --radius-card:4px;
  --radius-control:4px;
  --radius-media:6px;

  /* signature notch: top-right corner cut off every panel */
  --notch:18px; /* @kind radius */
  --notch-sm:10px; /* @kind radius */
  --notch-lg:28px; /* @kind radius */

  --hairline:1px; /* @kind other */
}

/* ---- elevation.css ---- */
:root{
  --elev-1:0 1px 2px rgba(0,0,0,.6);
  --elev-2:0 8px 24px -8px rgba(0,0,0,.7);
  --elev-3:0 24px 64px -24px rgba(0,0,0,.85);

  /* copper spotlight: the only "glow" in the system */
  --glow-copper:0 0 0 1px var(--copper-800),0 18px 60px -28px rgba(217,118,46,.55);
  --glow-copper-soft:0 24px 80px -40px rgba(217,118,46,.45);
  --glow-live:0 0 0 1px rgba(255,68,56,.4),0 0 24px -6px rgba(255,68,56,.35);

  --ring-focus:0 0 0 2px var(--surface-page),0 0 0 4px var(--copper-500);
}

/* ---- motion.css ---- */
:root{
  --ease-out:cubic-bezier(.2,.7,.3,1); /* @kind other */
  --ease-in-out:cubic-bezier(.5,0,.5,1); /* @kind other */
  --dur-fast:120ms; /* @kind other */
  --dur-base:200ms; /* @kind other */
  --dur-slow:480ms; /* @kind other */
  --dur-reveal:560ms; /* @kind other */
  --marquee-dur:46s; /* @kind other */
}
@keyframes ixm-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@keyframes ixm-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes ixm-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---- layout.css ---- */
:root{
  --page-max:1280px; /* @kind spacing */
  --prose-max:720px; /* @kind spacing */
  --measure-lede:560px; /* @kind spacing */
  --header-h:68px; /* @kind spacing */
  --promo-h:40px; /* @kind spacing */
  --z-promo:40; /* @kind other */
  --z-header:50; /* @kind other */
  --z-overlay:80; /* @kind other */
}

/* Base reset, link colours, helpers and keyframes (from the Master token utilities). */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-16);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:var(--tracking-display);line-height:var(--leading-tight);margin:0}
p{margin:0}
:focus-visible{outline:none;box-shadow:var(--ring-focus)}
::selection{background:var(--copper-700);color:var(--ink-050)}

/* signature notched panel — cut the top-right corner */
.ixm-notch{clip-path:polygon(0 0,calc(100% - var(--notch)) 0,100% var(--notch),100% 100%,0 100%)}
.ixm-notch-sm{clip-path:polygon(0 0,calc(100% - var(--notch-sm)) 0,100% var(--notch-sm),100% 100%,0 100%)}
.ixm-notch-lg{clip-path:polygon(0 0,calc(100% - var(--notch-lg)) 0,100% var(--notch-lg),100% 100%,0 100%)}
/* hairline-bordered notched panel: outer = line colour, inner = surface */
.ixm-notch-frame{background:var(--border-hairline);padding:var(--hairline);clip-path:polygon(0 0,calc(100% - var(--notch)) 0,100% var(--notch),100% 100%,0 100%)}
.ixm-notch-frame>*{clip-path:polygon(0 0,calc(100% - var(--notch)) 0,100% var(--notch),100% 100%,0 100%)}

/* broadcast rule grid, used behind heroes only */
.ixm-rulegrid{background-image:repeating-linear-gradient(var(--rule-grid) 0 1px,transparent 1px 72px),repeating-linear-gradient(90deg,var(--rule-grid) 0 1px,transparent 1px 72px)}

.ixm-mono-label{font-family:var(--font-mono);font-size:var(--text-12);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-accent)}
.ixm-page{max-width:var(--page-max);margin:0 auto;padding-inline:var(--gutter)}
@media (prefers-reduced-motion:reduce){*{animation-duration:0s!important;transition-duration:0s!important}}

/* Nightfall — the approved visual direction.
   Token overrides (midnight-indigo ground, coral accent, Unbounded / Figtree / IBM Plex Mono,
   capsule controls, rounded panels), component refinements, the "What you'll be watching"
   cover-flow poster layout, and the responsive breakpoints (1100px / 900px / 640px). */
:root{
--ink-950:#070817;--ink-900:#0c0e22;--ink-850:#11142d;--ink-800:#171b3a;--ink-750:#1e2347;--ink-700:#282e57;--ink-600:#3a4170;--ink-500:#585f8e;--ink-400:#8c92b8;--ink-300:#b4b9d6;--ink-200:#d4d7ea;--ink-100:#eaecf6;--ink-050:#f5f6fb;--ink-000:#ffffff;
--copper-100:#ffe4e1;--copper-200:#ffc1b9;--copper-300:#ff9d90;--copper-400:#ff7a69;--copper-500:#ff5c4a;--copper-600:#e5432f;--copper-700:#a52f24;--copper-800:#5e1c1f;--copper-900:#2c0e14;
--signal-good:#4fd1a1;
--surface-accent-soft:#170f27;--surface-accent-quiet:#221231;
--rule-grid:#262c5c;
--font-display:"Unbounded",system-ui,sans-serif;--font-sans:"Figtree",system-ui,-apple-system,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;
--display-hero:clamp(36px,5.2vw,68px);--display-1:clamp(28px,3.6vw,46px);--display-2:clamp(24px,2.6vw,34px);--display-3:clamp(19px,1.7vw,24px);
--text-64:54px;--text-42:36px;--text-34:28px;
--leading-display:1.02;--leading-tight:1.12;--tracking-display:-0.025em;--tracking-label:0.12em;
--radius-2:999px;--radius-4:12px;--radius-control:999px;--radius-card:20px;--radius-media:16px;
--notch:0px;--notch-sm:0px;--notch-lg:0px;
--glow-copper:0 0 0 1px var(--copper-800),0 30px 90px -40px rgba(255,92,74,.55);
--glow-copper-soft:0 30px 100px -40px rgba(255,92,74,.42),0 40px 120px -60px rgba(109,92,255,.55);
--ring-focus:0 0 0 2px var(--surface-page),0 0 0 4px var(--copper-500);
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans)}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
::selection{background:#a52f24;color:#f5f6fb}
@keyframes ixm-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@keyframes ixm-pulse{0%,100%{opacity:1}50%{opacity:.35}}
h1,h2,h3,h4{text-transform:none;font-weight:600;letter-spacing:-0.025em}
[style*="padding:var(--hairline)"]{border-radius:20px!important;clip-path:none!important}
[style*="padding:var(--hairline)"]>*{border-radius:19px!important;clip-path:none!important;overflow:hidden}
[style*="gap:1px"][style*="background:var(--border-hairline)"]{border-radius:20px;overflow:hidden}
[style*="100% 72%"]{clip-path:none!important;width:12px!important;height:12px!important;border-radius:50%;box-shadow:0 0 0 4px rgba(255,92,74,.18),0 0 18px rgba(255,92,74,.7)}
[style*="width:28px"][style*="height:2px"]{width:8px!important;height:8px!important;border-radius:50%}
[style*="217, 118, 46"],[style*="217,118,46"]{background:radial-gradient(42% 52% at 34% 42%,rgba(255,92,74,.20),transparent 70%),radial-gradient(46% 56% at 68% 50%,rgba(109,92,255,.26),transparent 72%)!important}
[style*="rgba(8, 9, 10, 0.92)"],[style*="rgba(8,9,10,.92)"]{background:rgba(7,8,23,.94)!important}
.ixm-rulegrid{background-image:radial-gradient(circle at 1px 1px,#262c5c 1px,transparent 1.5px)!important;background-size:26px 26px!important}
.ixm-posters{max-width:980px;margin-inline:auto}
.ixm-posters>div{transition:background .2s cubic-bezier(.2,.7,.3,1),box-shadow .2s cubic-bezier(.2,.7,.3,1),translate .2s cubic-bezier(.2,.7,.3,1)}
.ixm-posters>div:hover{background:#ff5c4a!important;box-shadow:0 24px 60px -24px rgba(255,92,74,.65);z-index:3}
.ixm-posters>div>div{position:relative}
.ixm-posters>div>div::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(180deg,transparent,rgba(7,8,23,.85));pointer-events:none}
.ps-stagger .ixm-posters{gap:16px!important;padding-bottom:48px}
.ps-stagger .ixm-posters>:nth-child(even){translate:0 48px}
.ps-stagger .ixm-posters>:nth-child(odd):hover{translate:0 -6px}
.ps-stagger .ixm-posters>:nth-child(even):hover{translate:0 42px}
.ps-fan .ixm-posters{gap:0!important;padding:28px 12px 64px}
.ps-fan .ixm-posters>div{transform-origin:50% 100%;margin-inline:-6px;box-shadow:0 20px 50px -20px rgba(0,0,0,.8)}
.ps-fan .ixm-posters>:nth-child(1){rotate:-9deg;translate:0 44px}
.ps-fan .ixm-posters>:nth-child(2){rotate:-5.5deg;translate:0 16px;z-index:1}
.ps-fan .ixm-posters>:nth-child(3){rotate:-2deg;z-index:2}
.ps-fan .ixm-posters>:nth-child(4){rotate:2deg;z-index:2}
.ps-fan .ixm-posters>:nth-child(5){rotate:5.5deg;translate:0 16px;z-index:1}
.ps-fan .ixm-posters>:nth-child(6){rotate:9deg;translate:0 44px}
.ps-fan .ixm-posters>div:hover{rotate:0deg;z-index:4}
.ps-flow .ixm-posters{gap:0!important;padding:24px 0 36px;perspective:1100px;max-width:1040px}
.ps-flow .ixm-posters>div{margin-inline:-10px;transform-style:preserve-3d;transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .2s,background .2s;box-shadow:0 30px 60px -28px rgba(0,0,0,.9)}
.ps-flow .ixm-posters>:nth-child(1){transform:rotateY(40deg) scale(.8);z-index:1}
.ps-flow .ixm-posters>:nth-child(2){transform:rotateY(26deg) scale(.9);z-index:2}
.ps-flow .ixm-posters>:nth-child(3){transform:rotateY(10deg) scale(1.02);z-index:3}
.ps-flow .ixm-posters>:nth-child(4){transform:rotateY(-10deg) scale(1.02);z-index:3}
.ps-flow .ixm-posters>:nth-child(5){transform:rotateY(-26deg) scale(.9);z-index:2}
.ps-flow .ixm-posters>:nth-child(6){transform:rotateY(-40deg) scale(.8);z-index:1}
.ps-flow .ixm-posters>div:hover{transform:rotateY(0) scale(1.08);z-index:5}
.ps-flow .ixm-posters>:nth-child(1)>div::after,.ps-flow .ixm-posters>:nth-child(6)>div::after{height:100%;background:rgba(7,8,23,.5)}
.ps-flow .ixm-posters>:nth-child(2)>div::after,.ps-flow .ixm-posters>:nth-child(5)>div::after{height:100%;background:linear-gradient(180deg,rgba(7,8,23,.25),rgba(7,8,23,.8))}
.ps-rail .ixm-posters{grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:clamp(130px,16vw,190px);max-width:none;gap:16px!important;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:#3a4170 transparent}
.ps-rail .ixm-posters>div{scroll-snap-align:start}
.ixm-posters>div>div::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#ff5c4a,#6d5cff);z-index:1;pointer-events:none}
.ixm-posters>div>div{background-image:linear-gradient(160deg,#221231 0%,#11142d 55%,#0c0e22 100%)!important}
@media (max-width:1100px){
.ps-fan .ixm-posters{gap:14px!important;padding:12px 8px 40px;max-width:620px}
.ps-fan .ixm-posters>div{margin:0}
.ps-fan .ixm-posters>:nth-child(3n+1){rotate:-4deg;translate:0 22px}
.ps-fan .ixm-posters>:nth-child(3n+2){rotate:0deg;translate:0 0;z-index:2}
.ps-fan .ixm-posters>:nth-child(3n+3){rotate:4deg;translate:0 22px}
.ps-stagger .ixm-posters>:nth-child(even){translate:none}.ps-stagger .ixm-posters>:nth-child(3n+2){translate:0 32px}
.ps-flow .ixm-posters{max-width:640px;gap:14px 0!important}
.ps-flow .ixm-posters>:nth-child(3n+1){transform:rotateY(28deg) scale(.88)}
.ps-flow .ixm-posters>:nth-child(3n+2){transform:scale(1.02);z-index:3}
.ps-flow .ixm-posters>:nth-child(3n+3){transform:rotateY(-28deg) scale(.88)}}
@media (max-width:640px){
.ps-fan .ixm-posters>:nth-child(odd){rotate:-3deg;translate:0 0}
.ps-fan .ixm-posters>:nth-child(even){rotate:3deg;translate:0 18px}
.ps-stagger .ixm-posters>:nth-child(3n+2){translate:none}.ps-stagger .ixm-posters>:nth-child(even){translate:0 28px}}
.ixm-burger{display:none!important}
@media (max-width:1100px){.ixm-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ixm-posters{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media (max-width:900px){.ixm-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ixm-split,.ixm-hero-top{grid-template-columns:minmax(0,1fr)!important}.ixm-desktop-nav{display:none!important}.ixm-burger{display:flex!important}}
@media (max-width:1040px){.ixm-desktop-nav{display:none!important}.ixm-burger{display:flex!important}}
@media (max-width:640px){.ixm-grid-3,.ixm-grid-4{grid-template-columns:minmax(0,1fr)!important}.ixm-posters{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (prefers-reduced-motion:reduce){*{animation-duration:0s!important;transition-duration:0s!important}}

/* fr-FR QA fix: footer columns overflowed below 430px */
@media (max-width:640px){footer>div:first-child{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:32px 24px!important}footer>div:first-child>div:first-child{grid-column:1/-1}}


/* ---- theme.json palette drives the design tokens (Apparence > Éditeur > Styles > Couleurs) ---- */
:root{
--ink-950:var(--wp--preset--color--fond,#070817);
--ink-900:var(--wp--preset--color--surface,#0c0e22);
--ink-850:var(--wp--preset--color--carte,#11142d);
--ink-800:var(--wp--preset--color--carte-survol,#171b3a);
--ink-700:var(--wp--preset--color--filet,#282e57);
--ink-600:var(--wp--preset--color--filet-fort,#3a4170);
--ink-400:var(--wp--preset--color--texte-discret,#8c92b8);
--ink-300:var(--wp--preset--color--texte-secondaire,#b4b9d6);
--ink-050:var(--wp--preset--color--texte,#f5f6fb);
--copper-500:var(--wp--preset--color--accent,#ff5c4a);
--copper-400:var(--wp--preset--color--accent-vif,#ff7a69);
--copper-300:var(--wp--preset--color--accent-clair,#ff9d90);
--font-display:var(--wp--preset--font-family--unbounded,"Unbounded"),system-ui,sans-serif;
--font-sans:var(--wp--preset--font-family--figtree,"Figtree"),system-ui,-apple-system,sans-serif;
--font-mono:var(--wp--preset--font-family--ibm-plex-mono,"IBM Plex Mono"),ui-monospace,monospace;
}

/* Interaction states.
   .x-btnlink / .x-cardlink: page-navigation links that keep the look of the original buttons and cards.
   .x-press: pressed state for buttons.
   .h-*: hover states (button lighten, card lift), one class per distinct hover treatment. */
a.x-btnlink{display:inline-block;line-height:normal;text-align:center;text-decoration:none}
a.x-cardlink{display:block;color:inherit;text-decoration:none}
a.x-cardlink:hover{color:inherit}
.x-press:active{transform:translateY(1px)!important}
[data-gallery-cell]{outline-offset:2px}
.h-xfeo8o:not(.has-background):hover{background:var(--copper-400) !important;border-color:var(--copper-400) !important}
.h-1qjypag:not(.has-border-color):hover{border-color:var(--copper-600) !important}
.h-2r4p4a:hover{background:var(--border-strong) !important;transform:translateY(-3px) !important}
.h-1gapyby:not(.has-background):hover{background:var(--copper-600) !important;transform:translateY(-3px) !important}
.h-9vtmhz:not(.has-text-color):hover{color:var(--text-primary) !important}


/* ==== WordPress integration (theme-specific, not in the static source) ==== */
.wp-site-blocks{padding:0}
.wp-site-blocks>*{margin-block:0}
/* Template parts are transparent wrappers so the sticky header behaves like the source */
.wp-block-template-part.ns-part{display:contents}
:where(.wp-site-blocks) main{display:block}
:where(main.wp-block-post-content)>*{margin-block:0}
/* screen-reader text used by WordPress */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}

/* Navigation: current page (computed by the theme, not hard-coded per page) */
.ns-navlink{color:var(--text-secondary)}
.ns-navlink:hover{color:var(--text-secondary)}
.ns-navlink.is-current,.ns-navlink.is-current:hover{color:var(--copper-300)}

/* FAQ: closed answers stay hidden until opened (state lives in data-faq) */
[data-faq="closed"]>p,[data-faq="closed"]>.ns-faq-answer{display:none}
[data-faq]>button>span:last-child{transform:none;transition:transform var(--dur-base) var(--ease-out);color:var(--ink-400)}
[data-faq="open"]>button>span:last-child{transform:rotate(45deg);color:var(--copper-400)}

/* Media slots */
.ns-media>img{display:block;width:100%;height:100%;object-fit:cover}
.ns-media.is-contain>img{object-fit:contain}

/* Automatic blog lists (Query Loop) */
.ns-post-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ns-post-grid>li{display:flex;flex-direction:column;margin:0;min-width:0}
.ns-post-grid>li>*{flex:1}
.ns-post-grid>li:has(>.ns-card-featured){grid-column:1/-1}
.ns-post-grid>li>.ns-card-featured{flex:none}
@media (max-width:900px){.ns-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ns-post-grid{grid-template-columns:minmax(0,1fr)}}
.ns-featured-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:center}
@media (max-width:900px){.ns-featured-grid{grid-template-columns:minmax(0,1fr)}}
.ns-blog-empty{color:var(--text-secondary);font-size:var(--text-16)}
.ns-pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ns-pagination a,.ns-pagination span{text-decoration:none}

/* Article body (core blocks inside Post Content) — same look as the source article */
.ns-prose>*{margin:0}
.ns-prose>p,.ns-prose .wp-block-post-content>p{font-size:var(--text-18);line-height:var(--leading-loose);color:var(--text-secondary);margin:0}
.ns-prose .wp-block-post-content>*{margin-block:0}
.ns-prose .wp-block-post-content>p+p{margin-top:18px}
.ns-prose .wp-block-post-content>h2{font-family:var(--font-display);font-size:var(--text-28);letter-spacing:-0.025em;font-weight:600;text-transform:none;line-height:var(--leading-tight);color:var(--text-primary);margin:40px 0 14px}
.ns-prose .wp-block-post-content>h3{font-family:var(--font-display);font-size:var(--text-20);letter-spacing:-0.025em;font-weight:600;line-height:var(--leading-tight);color:var(--text-primary);margin:32px 0 12px}
.ns-prose .wp-block-post-content>ul,.ns-prose .wp-block-post-content>ol{font-size:var(--text-18);line-height:var(--leading-loose);color:var(--text-secondary);margin:14px 0 0;padding-left:1.3em}
.ns-prose .wp-block-post-content>.wp-block-quote{border-left:2px solid var(--copper-500);padding-left:22px;margin:26px 0;font-size:var(--text-20);line-height:var(--leading-snug);color:var(--text-primary)}
.ns-prose .wp-block-post-content>.wp-block-quote p{margin:0}
.ns-prose .wp-block-post-content>.wp-block-image{margin:28px 0}
.ns-prose .wp-block-post-content>.wp-block-image img{max-width:100%;height:auto;border-radius:var(--radius-media)}
.ns-prose .wp-block-post-content a{color:var(--text-link);text-decoration:underline;text-underline-offset:3px}

/* Visibility helpers (Inspector > Visibilité) */
@media (max-width:640px){.ns-hide-mobile{display:none!important}}
@media (min-width:641px) and (max-width:1040px){.ns-hide-tablet{display:none!important}}
@media (min-width:1041px){.ns-hide-desktop{display:none!important}}

/* Dynamic prices are inline tokens: they must not become separate flex items */
.ns-price{display:contents}
