/* Polices auto-hébergées (Google Fonts, subset latin, variables) */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/inter.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700 800;font-display:swap;src:url('/assets/fonts/montserrat.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500 600;font-display:swap;src:url('/assets/fonts/jetbrains-mono.woff2') format('woff2')}
/* ============================================================
   Sam-Azing Consulting — feuille de style statique
   Site statique — identité document control
   ============================================================ */

:root{
  --anthracite:#1f2329;
  --anthracite-soft:#2b2f36;
  --raspberry:#c8133e;
  --raspberry-dark:#a30f33;
  --royal:#1f3a8a;
  --bone:#f7f5f2;
  --card:#ffffff;
  --border:#e2dfd9;
  --input:#e2dfd9;
  --muted:#ecebe6;
  --muted-foreground:#5b6066;
  --font-display:"Montserrat",ui-sans-serif,system-ui,sans-serif;
  --font-sans:"Inter",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --maxw:80rem;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans);
  background:var(--bone);
  color:var(--anthracite);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;line-height:1.1}
section[id]{scroll-margin-top:84px}
:focus-visible{outline:2px solid var(--raspberry);outline-offset:2px}

/* ---------- helpers ---------- */
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:1.25rem}
@media(min-width:768px){.container{padding-inline:2rem}}
.mono{font-family:var(--font-mono)}
.kicker{font-family:var(--font-mono);color:var(--raspberry);font-size:.875rem}
@media(min-width:768px){.kicker{font-size:1rem}}
.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}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-size:.875rem;font-weight:600;border-radius:.5rem;cursor:pointer;
  padding:.875rem 1.5rem;border:1px solid transparent;transition:.18s ease;line-height:1}
.btn svg{width:1rem;height:1rem}
.btn-primary{background:var(--raspberry);color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.btn-primary:hover{background:var(--raspberry-dark)}
.btn-secondary{background:transparent;color:var(--anthracite);border-color:rgba(31,35,41,.2)}
.btn-secondary:hover{border-color:rgba(31,35,41,.4);background:rgba(31,35,41,.05)}
.btn-sm{padding:.5rem 1rem;border-radius:.375rem}

/* tampon "Approuvé" */
@keyframes stamp-in{
  0%{opacity:0;transform:scale(2.5) rotate(var(--rot,-8deg))}
  55%{opacity:.95;transform:scale(.92) rotate(var(--rot,-8deg))}
  80%{transform:scale(1.04) rotate(var(--rot,-8deg))}
  100%{opacity:.85;transform:scale(1) rotate(var(--rot,-8deg))}
}
.stamp{font-family:var(--font-mono);font-weight:700;text-transform:uppercase;
  letter-spacing:.22em;color:rgba(200,19,62,.8);border:2px double currentColor;
  padding:.4rem .9rem;border-radius:.15rem;transform:rotate(-8deg);display:inline-block}
.js .stamp-anim{animation:stamp-in .35s cubic-bezier(.5,0,.6,1) both;transform-origin:center}

/* reveal au scroll (désactivé sans JS pour ne pas masquer le contenu) */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;transition:none}
  .js .stamp-anim{animation:none}
  html{scroll-behavior:auto}
}

/* check bullet */
.check{width:1.125rem;height:1.125rem;color:var(--raspberry);flex-shrink:0}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{position:fixed;inset-inline:0;top:0;z-index:50;transition:.3s ease;background:transparent}
.site-header.scrolled{background:rgba(247,245,242,.9);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.header-bar{max-width:var(--maxw);margin-inline:auto;display:flex;align-items:center;
  justify-content:space-between;padding:.75rem 1.25rem}
@media(min-width:768px){.header-bar{padding:.75rem 2rem}}
.brand{display:flex;align-items:center;gap:.75rem}
.brand img{height:2.5rem;width:2.5rem;object-fit:contain}
@media(min-width:768px){.brand img{height:2.75rem;width:2.75rem}}
.brand-text{display:none;flex-direction:column;line-height:1.1}
@media(min-width:640px){.brand-text{display:flex}}
.brand-name{font-family:var(--font-display);font-weight:800;color:var(--anthracite);font-size:1rem;letter-spacing:-.01em}
.brand-sub{font-family:var(--font-display);font-weight:600;color:var(--royal);font-size:.625rem;letter-spacing:.25em}
.nav-desktop{display:none;align-items:center;gap:2rem}
@media(min-width:768px){.nav-desktop{display:flex}}
.nav-desktop a{font-size:.875rem;font-weight:500;color:rgba(31,35,41,.8);transition:.15s}
.nav-desktop a:hover{color:var(--raspberry)}
.menu-toggle{display:inline-flex;padding:.5rem;color:var(--anthracite);background:none;border:0;cursor:pointer}
@media(min-width:768px){.menu-toggle{display:none}}
.nav-mobile{display:none;border-top:1px solid var(--border);background:var(--bone)}
.nav-mobile.open{display:block}
@media(min-width:768px){.nav-mobile{display:none!important}}
.nav-mobile nav{display:flex;flex-direction:column;padding:1rem 1.25rem;gap:.25rem}
.nav-mobile a{padding:.75rem 0;font-size:.875rem;font-weight:500;color:var(--anthracite);border-bottom:1px solid rgba(226,223,217,.6)}
.nav-mobile .btn{margin-top:.75rem}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding:8rem 0 5rem;overflow:hidden}
@media(min-width:768px){.hero{padding:10rem 0 7rem}}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.3;z-index:0}
.hero-video{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;opacity:.3;z-index:0}
.hero-overlay{position:absolute;inset:0;background:rgba(247,245,242,.65);z-index:1}
.hero-grid{position:absolute;inset:0;z-index:1;opacity:.04;
  background-image:linear-gradient(var(--anthracite) 1px,transparent 1px),linear-gradient(90deg,var(--anthracite) 1px,transparent 1px);
  background-size:48px 48px}
.hero-halo{position:absolute;top:-8rem;right:-10rem;height:24rem;width:24rem;border-radius:50%;
  background:rgba(200,19,62,.05);filter:blur(64px);z-index:1}
.hero-inner{position:relative;z-index:2}
.hero-stamp{display:none}
@media(min-width:768px){.hero-stamp{display:block;position:absolute;top:7rem;right:1.5rem;z-index:3;font-size:.8rem}}
.badge{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;border:1px solid rgba(31,35,41,.15);
  background:var(--bone);padding:.375rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.05em;color:rgba(31,35,41,.7)}
.badge .dot{height:.375rem;width:.375rem;border-radius:50%;background:var(--raspberry)}
.hero h1{margin-top:1.5rem;font-weight:800;color:var(--anthracite);
  font-size:clamp(2.25rem,6vw,4.5rem);line-height:1.05;max-width:64rem}
.hero h1 .accent{color:var(--raspberry)}
.hero-lead{margin-top:1.5rem;max-width:48rem;font-size:1.125rem;color:rgba(31,35,41,.75);line-height:1.7}
@media(min-width:768px){.hero-lead{font-size:1.25rem}}
.hero-cta{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:.75rem}
.reassurance{margin-top:4rem;display:grid;gap:1rem;border-top:1px solid var(--border);padding-top:2rem}
@media(min-width:640px){.reassurance{grid-template-columns:repeat(3,1fr)}}
.reassurance li{display:flex;align-items:flex-start;gap:.75rem;font-size:.9375rem;font-weight:500;color:rgba(31,35,41,.85)}
@media(min-width:768px){.reassurance li{font-size:1rem}}

/* section heading commun */
.section{padding:5rem 0}
@media(min-width:768px){.section{padding:7rem 0}}
.section-head{max-width:48rem}
.section h2{margin-top:.75rem;font-weight:800;color:var(--anthracite);
  font-size:clamp(1.875rem,4vw,3rem);line-height:1.1}
.section-lead{margin-top:1.5rem;font-size:1.125rem;line-height:1.7;color:rgba(31,35,41,.75)}

/* ============================================================
   SERVICES
   ============================================================ */
#services{background:var(--bone)}
.cards-grid{margin-top:3.5rem;display:grid;gap:1.5rem}
@media(min-width:768px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.cards-grid{grid-template-columns:repeat(3,1fr)}}
.service-card{height:100%;background:var(--card);border:1px solid var(--border);border-radius:.75rem;
  padding:1.75rem;transition:.2s ease}
.service-card:hover{border-color:var(--raspberry);transform:translateY(-4px);
  box-shadow:0 12px 40px -12px rgba(31,35,41,.18)}
.service-ico{height:3rem;width:3rem;border-radius:.5rem;background:var(--anthracite);color:var(--bone);
  display:flex;align-items:center;justify-content:center;transition:.2s}
.service-card:hover .service-ico{background:var(--raspberry)}
.service-ico svg{width:1.375rem;height:1.375rem}
.service-card h3{margin-top:1.25rem;font-weight:700;color:var(--anthracite);font-size:1.25rem}
.service-card p{margin-top:.75rem;color:rgba(31,35,41,.7);font-size:.9375rem}
.service-foot{margin-top:.75rem;font-size:.75rem;color:rgba(31,35,41,.55);font-style:italic}
.service-rule{margin-top:1.5rem;height:1px;width:2.5rem;background:var(--raspberry);transition:width .2s}
.service-card:hover .service-rule{width:5rem}

/* ============================================================
   PROCEDURES (section sombre)
   ============================================================ */
#procedures{background:var(--anthracite);color:var(--bone);position:relative;overflow:hidden}
#procedures .halo{position:absolute;top:-10rem;left:-10rem;height:24rem;width:24rem;border-radius:50%;
  background:rgba(200,19,62,.1);filter:blur(64px)}
#procedures .grid-bg{position:absolute;inset:0;opacity:.06;
  background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);
  background-size:64px 64px}
.proc-grid{position:relative;display:grid;gap:3rem;align-items:start}
@media(min-width:1024px){.proc-grid{grid-template-columns:repeat(2,1fr);gap:4rem}}
#procedures h2{color:var(--bone)}
.proc-lead{margin-top:1.5rem;color:rgba(247,245,242,.75);font-size:1.125rem;line-height:1.7;max-width:36rem}
.proc-note{margin-top:1.5rem;font-size:.875rem;color:rgba(247,245,242,.6);font-style:italic}
.proc-list{display:grid;gap:1rem}
.proc-item{display:flex;align-items:flex-start;gap:1rem;border-radius:.5rem;border:1px solid rgba(247,245,242,.1);
  background:rgba(43,47,54,.4);padding:1.25rem;transition:.2s}
.proc-item:hover{border-color:rgba(200,19,62,.6);background:rgba(43,47,54,.7)}
.proc-bullet{height:1.75rem;width:1.75rem;flex-shrink:0;border-radius:.375rem;background:rgba(200,19,62,.15);
  display:flex;align-items:center;justify-content:center;transition:.2s}
.proc-item:hover .proc-bullet{background:rgba(200,19,62,.25)}
.proc-item .check{width:1rem;height:1rem}
.proc-item span.t{font-family:var(--font-display);font-weight:600;color:var(--bone);font-size:1rem;line-height:1.35}
@media(min-width:768px){.proc-item span.t{font-size:1.125rem}}

/* ============================================================
   REFERENCES (timeline)
   ============================================================ */
#references{background:var(--bone)}
.timeline{margin-top:4rem;position:relative}
.timeline::before{content:"";position:absolute;left:1.25rem;top:.5rem;bottom:.5rem;width:1px;background:var(--border)}
@media(min-width:768px){.timeline::before{left:1.75rem}}
.timeline ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:2.5rem}
.sector{position:relative;padding-left:4rem}
@media(min-width:768px){.sector{padding-left:5rem}}
.sector-ico{position:absolute;left:0;top:0;height:2.75rem;width:2.75rem;border-radius:50%;
  background:var(--anthracite);color:var(--bone);display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 6px rgba(0,0,0,.1);box-shadow:0 0 0 4px var(--bone),0 4px 6px rgba(0,0,0,.1)}
@media(min-width:768px){.sector-ico{height:3.5rem;width:3.5rem}}
.sector-ico svg{width:1.25rem;height:1.25rem}
.sector h3{font-weight:700;color:var(--royal);font-size:1.25rem}
@media(min-width:768px){.sector h3{font-size:1.5rem}}
.sector ul{list-style:none;padding:0;margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}
.sector ul li{display:flex;gap:.75rem;color:rgba(31,35,41,.8)}
.sector ul li::before{content:"";margin-top:.55rem;height:.375rem;width:.375rem;flex-shrink:0;border-radius:.125rem;background:var(--raspberry)}
.clients-box{margin-top:4rem;border:1px solid var(--border);background:var(--card);border-radius:.75rem;padding:2rem}
@media(min-width:768px){.clients-box{padding:2.5rem}}
.clients-box .lbl{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:rgba(31,35,41,.6)}
.clients{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.75rem 2rem}
.clients span{font-family:var(--font-display);font-weight:700;color:var(--anthracite);font-size:1.125rem}
@media(min-width:768px){.clients span{font-size:1.25rem}}
.ref-quote{margin-top:3rem;max-width:48rem;color:rgba(31,35,41,.75);font-size:1.125rem;font-style:italic;
  line-height:1.7;border-left:2px solid var(--raspberry);padding-left:1.25rem}

/* ============================================================
   CERTIFICATIONS
   ============================================================ */
#certifications{background:var(--bone);border-top:1px solid var(--border);padding:4rem 0}
@media(min-width:768px){#certifications{padding:5rem 0}}
.certs-grid{margin-top:2rem;display:grid;gap:1.25rem}
@media(min-width:768px){.certs-grid{grid-template-columns:repeat(3,1fr)}}
.cert{height:100%;background:var(--card);border:1px solid var(--border);border-radius:.5rem;padding:1.25rem;
  display:flex;align-items:flex-start;gap:1rem;transition:.2s}
.cert:hover{border-color:rgba(200,19,62,.6)}
.cert .check{margin-top:.25rem}
.cert h3{font-weight:700;color:var(--anthracite);font-size:.9375rem}
.cert .org{margin-top:.25rem;color:var(--royal);font-weight:600;font-size:.875rem}
.cert .yr{margin-top:.125rem;font-size:.75rem;color:rgba(31,35,41,.55)}

/* ============================================================
   ABOUT
   ============================================================ */
#a-propos{background:var(--card)}
.about-grid{display:grid;gap:3rem;align-items:start}
@media(min-width:768px){.about-grid{grid-template-columns:auto 1fr;gap:4rem}}
.about-portrait{position:relative;justify-self:start}
.about-portrait img{height:12rem;width:12rem;border-radius:50%;object-fit:cover;
  box-shadow:0 0 0 4px rgba(200,19,62,.2),0 10px 15px rgba(0,0,0,.1)}
@media(min-width:768px){.about-portrait img{height:15rem;width:15rem}}
.about-badge{position:absolute;bottom:-.75rem;right:-.75rem;background:var(--raspberry);color:#fff;
  padding:.25rem .75rem;border-radius:.375rem;font-family:var(--font-mono);font-weight:600;font-size:.6875rem;
  text-transform:uppercase;letter-spacing:.18em;box-shadow:0 4px 6px rgba(0,0,0,.15)}
.about-stamp{position:absolute;top:-.5rem;left:-1rem;font-size:.75rem;color:rgba(200,19,62,.7)}
#a-propos h2{margin-top:.75rem}
.about-sub{margin-top:.75rem;font-family:var(--font-display);font-weight:600;color:var(--royal);font-size:1.125rem}
.about-body{margin-top:2rem;display:flex;flex-direction:column;gap:1.25rem;color:rgba(31,35,41,.8);
  line-height:1.7;font-size:1.0625rem}
.about-body .quote{border-left:2px solid var(--raspberry);padding-left:1.25rem;font-style:italic;color:rgba(31,35,41,.9)}

/* ============================================================
   FAQ
   ============================================================ */
#faq{background:var(--card);border-top:1px solid var(--border)}
#faq .container{max-width:48rem}
.faq-head{text-align:center}
.faq-head h2{margin-top:.75rem}
.faq{margin-top:3rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:last-child{border-bottom:0}
.faq-q{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.25rem 0;text-align:left;background:none;border:0;cursor:pointer}
.faq-q h3{font-family:var(--font-display);font-weight:700;color:var(--anthracite);font-size:1.125rem;transition:.15s}
@media(min-width:768px){.faq-q h3{font-size:1.25rem}}
.faq-q:hover h3{color:var(--raspberry)}
.faq-icon{flex-shrink:0;width:1.25rem;height:1.25rem;color:var(--raspberry)}
.faq-icon .minus{display:none}
.faq-item.open .faq-icon .plus{display:none}
.faq-item.open .faq-icon .minus{display:block}
.faq-a{padding:0 2.5rem 0 0;max-height:0;overflow:hidden;color:rgba(31,35,41,.75);line-height:1.7;
  transition:max-height .3s ease,padding .3s ease}
.faq-item.open .faq-a{max-height:30rem;padding-bottom:1.5rem}

/* ============================================================
   CONTACT
   ============================================================ */
#contact{background:var(--bone)}
#contact .container{max-width:48rem}
.contact-head{text-align:center}
.contact-head h2{margin-top:.75rem}
.contact-head p{margin-top:1.25rem;color:rgba(31,35,41,.75);font-size:1.125rem;line-height:1.7}
.contact-card{margin-top:3rem;background:var(--card);border:1px solid var(--border);border-radius:.75rem;
  padding:1.5rem;box-shadow:0 1px 2px rgba(0,0,0,.05)}
@media(min-width:768px){.contact-card{padding:2.5rem}}
.form-row{display:grid;gap:1.25rem}
@media(min-width:768px){.form-row.two{grid-template-columns:repeat(2,1fr)}}
.field{display:flex;flex-direction:column;margin-bottom:1.25rem}
.field label{font-family:var(--font-mono);font-size:.75rem;color:rgba(31,35,41,.7);text-transform:uppercase;
  letter-spacing:.05em;margin-bottom:.5rem}
.field input,.field textarea{width:100%;border-radius:.375rem;border:1px solid var(--input);
  background:rgba(247,245,242,.4);padding:.75rem 1rem;color:var(--anthracite);font:inherit}
.field textarea{resize:none}
.field input::placeholder,.field textarea::placeholder{color:rgba(31,35,41,.4)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--raspberry);box-shadow:0 0 0 2px rgba(200,19,62,.35)}
.field .err{font-size:.75rem;color:var(--raspberry);margin-top:.35rem;min-height:1rem}
.honeypot{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.form-foot{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}
@media(min-width:640px){.form-foot{flex-direction:row;align-items:center;justify-content:space-between}}
.form-note{font-size:.75rem;color:rgba(31,35,41,.55)}
.form-status{margin-top:1rem;font-size:.875rem;min-height:1.25rem}
.form-status.ok{color:var(--royal)}
.form-status.ko{color:var(--raspberry)}
.contact-sent{text-align:center;padding:1rem 0}
.contact-sent .stamp{color:#fff;background:var(--raspberry);border-color:rgba(255,255,255,.65);
  transform:rotate(-3deg);--rot:-3deg;font-size:.875rem;padding:.75rem 1.5rem}
.contact-sent h3{margin-top:1.25rem;font-weight:700;color:var(--anthracite);font-size:1.5rem}
.contact-sent p{margin-top:.5rem;color:rgba(31,35,41,.7)}
.contact-linkedin{margin-top:2rem;display:flex;justify-content:center}
.contact-linkedin a{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:rgba(31,35,41,.7);transition:.15s}
.contact-linkedin a:hover{color:var(--raspberry)}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--anthracite);color:rgba(247,245,242,.8)}
.footer-inner{max-width:var(--maxw);margin-inline:auto;padding:2.5rem 1.25rem 3rem}
@media(min-width:768px){.footer-inner{padding:2.5rem 2rem 3rem}}
.cartouche{margin-bottom:2.5rem;border:1px solid rgba(247,245,242,.15);border-radius:2px;
  display:flex;flex-wrap:wrap}
.cartouche .cell{flex:1;min-width:150px;padding:.625rem 1rem;font-family:var(--font-mono);font-size:.6875rem;
  border-top:1px solid rgba(247,245,242,.15)}
@media(min-width:768px){.cartouche .cell{border-top:0;border-left:1px solid rgba(247,245,242,.15)}
  .cartouche .cell:first-child{border-left:0}}
.cartouche .lbl{color:rgba(247,245,242,.45);text-transform:uppercase;letter-spacing:.05em}
.cartouche .val{margin-top:.25rem;color:rgba(247,245,242,.9)}
.cartouche .val.ok{color:var(--raspberry);font-weight:600}
.footer-grid{display:grid;gap:2.5rem}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(3,1fr);align-items:start}}
.footer-brand{display:flex;align-items:center;gap:.75rem}
.footer-brand img{height:3rem;width:3rem;object-fit:contain;background:var(--bone);border-radius:.375rem;padding:.25rem}
.footer-brand .brand-name{color:var(--bone)}
.footer-brand .brand-sub{color:rgba(247,245,242,.7);font-size:.6875rem}
.footer-nav{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-family:var(--font-mono);font-size:.75rem}
@media(min-width:768px){.footer-nav{justify-content:center}}
.footer-nav a:hover{color:var(--raspberry)}
.footer-col3{font-size:.875rem;display:flex;flex-direction:column;gap:.5rem}
@media(min-width:768px){.footer-col3{text-align:right;align-items:flex-end}}
.footer-col3 .muted{font-family:var(--font-mono);font-size:.75rem;color:rgba(247,245,242,.7)}
.footer-col3 a{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.75rem}
.footer-col3 a:hover{color:var(--raspberry)}
.footer-bottom{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(247,245,242,.1);
  font-family:var(--font-mono);font-size:.6875rem;color:rgba(247,245,242,.45);
  display:flex;flex-direction:column;gap:.5rem}
@media(min-width:768px){.footer-bottom{flex-direction:row;justify-content:space-between}}

/* ============================================================
   PAGE /carte (vCard)
   ============================================================ */
.vcard-page{min-height:100vh;background:rgba(236,235,230,.4);display:flex;align-items:flex-start;
  justify-content:center;padding:1.5rem 1rem;font-family:var(--font-sans)}
@media(min-width:640px){.vcard-page{align-items:center;padding:3rem 1rem}}
.vcard{width:100%;max-width:420px;background:var(--card);border-radius:1rem;overflow:hidden;
  box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);border:1px solid var(--border)}
.vcard-header{position:relative;background:var(--anthracite);color:var(--bone);padding:1.25rem 1.5rem 3.5rem;text-align:center}
.vcard-header .grid-bg{position:absolute;inset:0;opacity:.05;
  background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);
  background-size:24px 24px}
.vcard-header .k1{position:relative;font-family:var(--font-mono);font-size:10px;letter-spacing:.25em;color:rgba(247,245,242,.65)}
.vcard-header .k2{position:relative;margin-top:.375rem;font-family:var(--font-mono);font-size:13px;
  letter-spacing:.32em;font-weight:600;color:var(--raspberry)}
.vcard-portrait{position:relative;z-index:10;margin-top:-3rem;display:flex;justify-content:center}
.vcard-portrait img{height:6rem;width:6rem;border-radius:50%;object-fit:cover;background:var(--card);
  box-shadow:0 0 0 4px var(--raspberry),0 10px 15px rgba(0,0,0,.15)}
.vcard-id{padding:.5rem 1.5rem 1rem;text-align:center}
.vcard-id h1{font-family:var(--font-display);font-weight:800;color:var(--anthracite);font-size:1.5rem;line-height:1.2}
.vcard-id .role{margin-top:.25rem;font-size:13px;color:rgba(31,35,41,.7);line-height:1.35}
.vcard-id .sectors{margin-top:.375rem;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;color:var(--raspberry);text-transform:uppercase}
.vcard-sep{margin:0 1.5rem;border-top:1px solid var(--border)}
.vcard-list{list-style:none;padding:1.25rem 1rem;margin:0;display:flex;flex-direction:column;gap:.625rem}
.vcard-rowwrap{display:flex;align-items:stretch;gap:.5rem}
.vcrow{display:flex;align-items:flex-start;gap:.875rem;border-radius:.5rem;border:1px solid var(--border);
  padding:.625rem .875rem;transition:.15s;flex:1}
.vcrow:hover{border-color:var(--raspberry);background:rgba(247,245,242,.6)}
.vcrow .ico{height:2.25rem;width:2.25rem;flex-shrink:0;border-radius:.375rem;background:var(--bone);color:var(--royal);
  display:flex;align-items:center;justify-content:center}
.vcrow .ico svg{width:17px;height:17px}
.vcrow .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;color:rgba(31,35,41,.55);text-transform:uppercase}
.vcrow .val{font-size:.875rem;color:var(--anthracite);font-weight:500;line-height:1.35;word-break:break-word}
.vcrow .sub{font-size:.75rem;color:rgba(31,35,41,.65);line-height:1.35;margin-top:.125rem}
.vc-wa{width:3.5rem;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-radius:.5rem;border:1px solid var(--border);transition:.15s;gap:.15rem}
.vc-wa:hover{transform:scale(1.05);border-color:var(--raspberry)}
.vc-wa img{height:2.75rem;width:2.75rem;object-fit:contain}
.vc-wa span{font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(31,35,41,.7)}
.vcard-actions{padding:0 1rem 1.5rem;display:flex;flex-direction:column;gap:.625rem}
.vc-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;
  font-family:var(--font-mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  cursor:pointer;transition:.15s;border:1px solid transparent}
.vc-btn svg{width:15px;height:15px}
.vc-btn.primary{background:var(--anthracite);color:var(--bone);padding:.875rem 1.25rem}
.vc-btn.primary:hover{background:var(--anthracite-soft)}
.vc-btn.ghost{background:var(--card);border-color:var(--border);color:var(--anthracite);padding:.75rem 1.25rem}
.vc-btn.ghost:hover{border-color:var(--raspberry);color:var(--raspberry)}
.vcard-foot{border-top:1px solid var(--border);background:var(--bone);padding:1rem 1.5rem;text-align:center}
.vcard-foot span{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;color:rgba(31,35,41,.5);text-transform:uppercase}

/* QR modal */
.qr-overlay{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;
  background:rgba(31,35,41,.7);backdrop-filter:blur(4px);padding:1rem}
.qr-overlay.open{display:flex}
.qr-box{position:relative;background:var(--card);border-radius:1rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.4);
  padding:1.5rem;max-width:20rem;width:100%;text-align:center}
.qr-close{position:absolute;top:.75rem;right:.75rem;background:none;border:0;cursor:pointer;color:var(--anthracite)}
.qr-box .k{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;color:var(--raspberry);text-transform:uppercase}
.qr-box img{margin:1rem auto;width:240px;height:240px;border-radius:.375rem}
.qr-box .u{font-family:var(--font-mono);font-size:10px;color:rgba(31,35,41,.6);word-break:break-all}

/* ============================================================
   MENTIONS LEGALES
   ============================================================ */
.legal-page{min-height:100vh;background:var(--bone);display:flex;flex-direction:column}
.legal-main{flex:1;max-width:720px;width:100%;margin-inline:auto;padding:4rem 1.25rem}
@media(min-width:768px){.legal-main{padding:6rem 2rem}}
.legal-back{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(31,35,41,.7)}
.legal-back:hover{color:var(--raspberry)}
.legal-main h1{margin-top:2rem;font-weight:800;color:var(--anthracite);font-size:clamp(2.25rem,5vw,3rem);line-height:1.1}
.legal-section{margin-top:3rem}
.legal-section h2{display:flex;align-items:baseline;gap:.75rem;font-weight:800;color:var(--anthracite);
  font-size:1.5rem}
@media(min-width:768px){.legal-section h2{font-size:1.875rem}}
.legal-section h2 .num{font-family:var(--font-mono);color:var(--raspberry);font-size:1rem;letter-spacing:-.02em}
.legal-body{margin-top:1rem;display:flex;flex-direction:column;gap:1rem;color:rgba(31,35,41,.8);line-height:1.7}
.legal-body a{color:var(--royal);text-underline-offset:2px}
.legal-body a:hover{text-decoration:underline;color:var(--raspberry)}
.legal-editor{border-left:2px solid rgba(200,19,62,.6);padding-left:1rem;display:flex;flex-direction:column;gap:.25rem}
.legal-editor strong{color:var(--anthracite)}
.legal-cartouche{margin-top:4rem;border-top:1px solid rgba(31,35,41,.15);padding-top:1.5rem;text-align:center;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(31,35,41,.55)}
@media(min-width:768px){.legal-cartouche{font-size:.75rem}}

/* 404 simple */
.nf{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:1rem;text-align:center}
.nf h1{font-size:4.5rem;font-weight:800;color:var(--anthracite)}
.nf h2{margin-top:1rem;font-size:1.25rem;font-weight:600}
.nf p{margin-top:.5rem;font-size:.875rem;color:var(--muted-foreground)}
.nf a{margin-top:1.5rem;display:inline-block}
