
:root{
  --pms-blue: #0C253C;
  --pms-red: #DD343B;
  --text: #eaf2f7;
  --muted: rgba(234,242,247,.75);
  --card: rgba(12,37,60,.62);
  --card2: rgba(12,37,60,.38);
  --border: rgba(234,242,247,.14);
  --shadow: 0 20px 60px rgba(0,0,0,.35);
  --radius: 18px;
  --maxw: 1180px;
  --header-h: 76px;
  --bg-zoom: 1.00; /* JS updates this slightly for ken-burns */
  --bg-shift: 0px; /* JS updates for parallax translate */
  --pms-bg-fade: 1.15s; /* durée du fondu (modifiable via Customizer) */
}

/* Baseline */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background: #030a10;
  overflow-x:hidden;
}

/* Fixed background layer (switches per section) */
.pms-bg{
  position:fixed;
  inset:0;
  z-index:-2;
  background-size:cover;
  background-position:center;
  transform: translate3d(0,var(--bg-shift),0) scale(var(--bg-zoom));
  filter: saturate(1.05) contrast(1.02);
  will-change: transform, opacity, background-image;
  opacity:0;
  transition: opacity var(--pms-bg-fade) ease;
}
.pms-bg.is-active{
  opacity:1;
}
.pms-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(1200px 700px at 20% 10%, rgba(221,52,59,.16), transparent 55%),
              linear-gradient(180deg, rgba(3,10,16,.72), rgba(3,10,16,.78));
}

/* Soft vignette + grain */
.pms-grain{
  position:fixed;
  inset:-20%;
  z-index:-1;
  pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.10'/%3E%3C/svg%3E");
  opacity:.38;
  mix-blend-mode: overlay;
}

/* Header + Nav */
.site-header{
  position:sticky;
  top:var(--pms-header-top, 0px);
  z-index:50;
  height:var(--header-h);
  display:flex;
  align-items:center;
  backdrop-filter: blur(14px);
  background: rgba(3,10,16,.38);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.header-inner{
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: var(--pms-header-pad-l, 18px);
  padding-right: var(--pms-header-pad-r, 18px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.brand{
  display:flex; align-items:var(--pms-brand-align, center); gap:12px; min-width: 220px;
}
@media (min-width: 861px){
  .brand{ margin-left: var(--pms-brand-offset-x, 0px); }
}
.brand .logo img{ width:var(--pms-logo-size, 42px); height:var(--pms-logo-size, 42px); object-fit:contain; display:block;}
.brand .titles{ display:flex; flex-direction:column; line-height:1.1; }
.brand .titles strong{ letter-spacing:.4px; font-size:15px; }
.brand .titles span{ color:var(--muted); font-size:12px; }

.pms-nav{
  display:flex; align-items:center; gap:14px;
}
.pms-nav a{
  color: rgba(234,242,247,.92);
  text-decoration:none;
  font-size: var(--pms-nav-font, 13px);
  padding:10px 10px;
  border-radius:999px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.pms-nav a:hover{ background: rgba(255,255,255,.08); transform: translateY(-1px); }
.pms-nav a.is-active{
  background: rgba(221,52,59,.18);
  border: 1px solid rgba(221,52,59,.35);
}

.cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background: linear-gradient(135deg, rgba(221,52,59,.90), rgba(221,52,59,.68));
  color:white;
  font-weight:650;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 10px 26px rgba(221,52,59,.25);
}
.cta:hover{ filter: brightness(1.03); transform: translateY(-1px); }

.burger{
  display:none;
  width:44px; height:44px;
  border-radius:12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--text);
}
.burger svg{ width:22px; height:22px; }

.mobile-drawer{
  position: fixed;
  inset: 0 0 auto 0;
  top: var(--header-h);
  z-index: 60;
  display:none;
  padding: 14px;
  background: rgba(3,10,16,.82);
  backdrop-filter: blur(14px);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.mobile-drawer a{
  display:block;
  padding:12px 12px;
  margin:6px 0;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  color: var(--text);
  text-decoration:none;
  border:1px solid rgba(255,255,255,.10);
}

/* Mobile submenu (collapsed by default) */
.mobile-drawer li{ list-style:none; }
.mobile-drawer ul.sub-menu{
  display:none;
  margin: 6px 0 2px 10px;
  padding: 0 0 0 10px;
  border-left: 1px solid rgba(255,255,255,.10);
}
.mobile-drawer li.menu-item-has-children > a{
  position: relative;
  padding-right: 44px;
}
.mobile-drawer li.menu-item-has-children > a::after{
  content:"▾";
  position:absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-52%);
  opacity: .78;
  font-size: 14px;
}
.mobile-drawer li.menu-item-has-children.is-open > a::after{
  transform: translateY(-52%) rotate(180deg);
  opacity: 1;
}
.mobile-drawer li.menu-item-has-children.is-open > ul.sub-menu{ display:block; }
.mobile-drawer ul.sub-menu a{
  background: rgba(12,37,60,.45);
  border: 1px solid rgba(255,255,255,.08);
}

/* Layout */
.container{
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 18px;
}
.section{
  padding: 92px 0;
  position:relative;
}
.section .kicker{
  color: rgba(221,52,59,.95);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-size: 12px;
}
.section h2{
  margin: 12px 0 10px;
  font-size: clamp(26px, 3vw, 46px);
  letter-spacing: -0.6px;
}
.section p.lead{
  margin: 0;
  max-width: 70ch;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
}

.hero{
  padding: 96px 0 70px;
  min-height: calc(100vh - var(--header-h));
  display:flex;
  align-items:flex-end;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 22px;
  align-items:end;
}
.hero h1{
  margin: 10px 0 12px;
  font-size: clamp(38px, 4.4vw, 64px);
  letter-spacing: -1.2px;
  line-height: 1.03;
}
.hero .sub{
  max-width: 68ch;
  color: rgba(234,242,247,.82);
  font-size: 16px;
  line-height: 1.7;
}
.hero-card{
  border-radius: var(--radius);
  border:1px solid var(--border);
  background: rgba(12,37,60,.55);
  box-shadow: var(--shadow);
  padding: 18px;
}
.badges{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.badges span{
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  color: rgba(234,242,247,.92);
}

.cards{
  margin-top: 26px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.card{
  border-radius: var(--radius);
  border:1px solid var(--border);
  background: var(--card2);
  padding: 16px;
  box-shadow: 0 18px 46px rgba(0,0,0,.25);
}
.card h3{ margin: 6px 0 8px; font-size: 16px; }
.card p{ margin: 0; color: var(--muted); line-height:1.6; font-size: 13px; }

.divider{
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
}

.footer{
  padding: 44px 0;
  border-top:1px solid rgba(255,255,255,.10);
  background: rgba(3,10,16,.55);
  backdrop-filter: blur(10px);
}
.footer .cols{
  display:grid;
  grid-template-columns: var(--pms-footer-cols, 1.2fr .8fr .8fr);
  gap: 16px;
}
.footer a{ color: rgba(234,242,247,.85); text-decoration:none; }
.footer a:hover{ text-decoration:underline; }

/* Footer builder (Customizer) */
.footer .pms-footer-grid{
  grid-template-areas: "left mid right";
  align-items: start;
}
.pms-footer-left{ grid-area:left; }
.pms-footer-mid{ grid-area:mid; }
.pms-footer-right{ grid-area:right; }

.pms-footer-order-lmr{ grid-template-areas:"left mid right"; }
.pms-footer-order-lrm{ grid-template-areas:"left right mid"; }
.pms-footer-order-mlr{ grid-template-areas:"mid left right"; }
.pms-footer-order-mrl{ grid-template-areas:"mid right left"; }
.pms-footer-order-rlm{ grid-template-areas:"right left mid"; }
.pms-footer-order-rml{ grid-template-areas:"right mid left"; }

.pms-footer-title{ display:block; letter-spacing:.3px; }
.pms-footer-text{ margin:10px 0 0; max-width: 52ch; }

.pms-footer-align-left{ text-align:left; }
.pms-footer-align-center{ text-align:center; }
.pms-footer-align-right{ text-align:right; }
.pms-footer-align-left .pms-footer-actions{ justify-content:flex-start; }
.pms-footer-align-center .pms-footer-actions{ justify-content:center; }
.pms-footer-align-right .pms-footer-actions{ justify-content:flex-end; }
.pms-footer-align-left .pms-footer-social{ justify-content:flex-start; }
.pms-footer-align-center .pms-footer-social{ justify-content:center; }
.pms-footer-align-right .pms-footer-social{ justify-content:flex-end; }
/* Align entire column content (nav + contact) */
.pms-footer-nav,
.pms-footer-contact,
.pms-footer-actions,
.pms-footer-social{ text-align: inherit; }

.pms-footer-align-center .pms-footer-nav{ justify-items:center; }
.pms-footer-align-right  .pms-footer-nav{ justify-items:end; }
.pms-footer-align-center .pms-footer-nav > a{ justify-self:center; }
.pms-footer-align-right  .pms-footer-nav > a{ justify-self:end; }

.pms-footer-align-center .pms-footer-contact{ justify-items:center; }
.pms-footer-align-right  .pms-footer-contact{ justify-items:end; }

.pms-footer-align-center .pms-footer-contact__item{ justify-content:center; }
.pms-footer-align-center .pms-footer-contact__item{ text-align:center; }
.pms-footer-align-right  .pms-footer-contact__item{
  justify-content:flex-end;
  text-align:right;
}
/* Keep icons close when right-aligned */
.pms-footer-align-right  .pms-footer-contact__item{ flex-direction: row-reverse; }
.pms-footer-align-right  .pms-footer-contact__item .pms-ico{ margin-top:1px; }


.pms-footer-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.pms-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  font-weight:650;
  text-decoration:none !important;
  border:1px solid rgba(255,255,255,.18);
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease, border-color .18s ease;
  white-space: nowrap;
}
.pms-btn--primary{
  background: linear-gradient(135deg, rgba(221,52,59,.92), rgba(221,52,59,.70));
  color: #fff;
  box-shadow: 0 10px 26px rgba(221,52,59,.22);
}
.pms-btn--ghost{
  background: rgba(255,255,255,.06);
  color: rgba(234,242,247,.92);
}
.pms-btn:hover{ transform: translateY(-1px); filter: brightness(1.03); border-color: rgba(221,52,59,.28); }

.pms-footer-nav{
  margin-top:10px;
  display:grid;
  gap:8px;
}
.pms-footer-nav--2{
  grid-template-columns: 1fr 1fr;
  column-gap: 18px;
  row-gap: 8px;
}

.pms-footer-contact{
  margin-top:10px;
  display:grid;
  gap:8px;
}
.pms-footer-contact__item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  text-decoration:none;
  color: rgba(234,242,247,.90);
}
.pms-footer-contact__item .small{ margin:0; }
.pms-ico{
  width:18px; height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  opacity:.9;
  margin-top:1px;
}
.pms-ico svg{ width:18px; height:18px; fill: currentColor; }

.pms-footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}
.pms-social-btn{
  width:42px; height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(234,242,247,.92);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
}
.pms-social-btn svg{ width:20px; height:20px; fill: currentColor; }
.pms-social-btn:hover{
  transform: translateY(-1px);
  border-color: rgba(221,52,59,.35);
  box-shadow: 0 12px 30px rgba(221,52,59,.16);
  filter: brightness(1.04);
}

/* Footer bottom bar */
.pms-footer-bottom{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.pms-footer-bottom--glass{
  background: rgba(12,37,60,.46);
  border: 1px solid rgba(234,242,247,.14);
  backdrop-filter: blur(14px);
  border-radius: 18px;
  padding: 14px 16px;
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}
.pms-footer-bottom--left{ justify-content:flex-start; }
.pms-footer-bottom--center{ justify-content:center; }
.pms-footer-bottom__text{ margin:0; }
.pms-footer-bottom__links{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
}
.pms-footer-bottom__right{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap: 12px;
}
.pms-footer-bottom__links a{
  color: rgba(234,242,247,.78);
  border-bottom: 1px dashed rgba(255,255,255,.18);
  padding-bottom: 2px;
}
.pms-footer-bottom__links a:hover{
  color: rgba(234,242,247,.92);
  border-bottom-color: rgba(221,52,59,.35);
  text-decoration: none;
}
.pms-footer-bottom__social{ display:flex; gap:10px; }
.pms-footer-bottom__social .pms-social-btn{
  width: 36px;
  height: 36px;
  border-radius: 12px;
}
.pms-footer-bottom__social .pms-social-btn svg{ width: 18px; height: 18px; }

@media (max-width: 980px){
  .footer .pms-footer-grid{
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "left"
      "mid"
      "right";
  }
  .pms-footer-order-lrm{ grid-template-areas:"left" "right" "mid"; }
  .pms-footer-order-mlr{ grid-template-areas:"mid" "left" "right"; }
  .pms-footer-order-mrl{ grid-template-areas:"mid" "right" "left"; }
  .pms-footer-order-rlm{ grid-template-areas:"right" "left" "mid"; }
  .pms-footer-order-rml{ grid-template-areas:"right" "mid" "left"; }

  .pms-footer-nav--2{ grid-template-columns: 1fr; }

  .pms-footer-bottom{ justify-content:center; text-align:center; }
  .pms-footer-bottom__links{ justify-content:center; }
}

.small{ color: var(--muted); font-size: 12px; line-height:1.6; }

/* WP content */
.entry-content{ margin:0; }
.alignfull{ width:100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: 1fr; }
  .pms-nav{ display:none; }
  .burger{ display:inline-flex; align-items:center; justify-content:center; }
  .footer .cols{ grid-template-columns: 1fr; }
  :root{ --header-h: 70px; }
}

/* Header contact zone */
.pms-header-contact{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  color: rgba(234,242,247,.92);
  font-size: 12px;
  white-space: nowrap;
}
.pms-header-contact a{ color: rgba(234,242,247,.92); text-decoration:none; }
.pms-header-contact a:hover{ text-decoration: underline; }
@media (max-width: 980px){ .pms-header-contact{ display:none; } }

/* PMS Section block (front-end) */
.pms-section{ padding: 92px 0; }

/* PMS Menu + Submenus */
.pms-nav .pms-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:6px;
}
.pms-nav .pms-menu > li{ position:relative; }
.pms-nav .pms-menu li{ margin:0; padding:0; }

/* Desktop dropdown */
.pms-nav .pms-menu .sub-menu{
  display:none;
  position:absolute;
  top: calc(100% + 6px);
  left:0;
  min-width: 240px;
  list-style:none;
  margin:0;
  padding:10px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(3,10,16,.86);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
}
.pms-nav .pms-menu .sub-menu li a{
  width:100%;
  padding:10px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  margin: 6px 0;
}
.pms-nav .pms-menu > li:hover > .sub-menu,
.pms-nav .pms-menu > li:focus-within > .sub-menu{ display:block; }

/* Mobile drawer menu */
.mobile-drawer .pms-menu-mobile{
  list-style:none;
  margin:0;
  padding:0;
}
.mobile-drawer .pms-menu-mobile > li > a{
  display:block;
  padding:12px 12px;
  margin:6px 0;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  color: var(--text);
  text-decoration:none;
  border:1px solid rgba(255,255,255,.10);
}
.mobile-drawer .pms-menu-mobile .sub-menu{
  list-style:none;
  margin: 6px 0 10px 0;
  padding-left: 12px;
  display:none; /* collapsed by default */
}
.mobile-drawer .pms-menu-mobile .sub-menu a{
  display:block;
  padding:10px 12px;
  margin:6px 0;
  border-radius: 14px;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  color: rgba(234,242,247,.92);
  text-decoration:none;
}

/* PMS Nav (li-based) - keeps original look while enabling submenus */
.pms-nav > li{ list-style:none; margin:0; padding:0; position:relative; }
.pms-nav > li > a{ display:inline-flex; align-items:center; gap:8px; }

/* Desktop dropdown */
.pms-nav .sub-menu{
  display:none;
  position:absolute;
  top: calc(100% + 6px);
  left:0;
  min-width: 240px;
  list-style:none;
  margin:0;
  padding:10px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(3,10,16,.86);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 60px rgba(0,0,0,.45);
}
.pms-nav .sub-menu li{ list-style:none; margin:0; padding:0; }
.pms-nav .sub-menu a{
  display:block;
  width:100%;
  padding:10px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  margin: 6px 0;
}
.pms-nav > li:hover > .sub-menu,
.pms-nav > li:focus-within > .sub-menu,
.pms-nav > li > .sub-menu:hover{ display:block; }

/* Mobile drawer: show submenus indented */
.mobile-drawer > li{ list-style:none; margin:0; padding:0; }
.mobile-drawer > li > a{
  display:block;
  padding:12px 12px;
  margin:6px 0;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  color: var(--text);
  text-decoration:none;
  border:1px solid rgba(255,255,255,.10);
}
.mobile-drawer .sub-menu{
  list-style:none;
  margin: 6px 0 10px 0;
  padding-left: 12px;
  display:none; /* collapsed by default */
}
.mobile-drawer .sub-menu a{
  display:block;
  padding:10px 12px;
  margin:6px 0;
  border-radius: 14px;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  color: rgba(234,242,247,.92);
  text-decoration:none;
}

/* Hover bridge: avoids losing hover between parent item and dropdown */
.pms-nav .sub-menu:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-8px;
  height:8px;
}
