/*
Theme Name: Méridien Digital
Theme URI: https://meridien.digital
Author: Méridien Digital
Author URI: https://meridien.digital
Description: Thème vitrine premium pour Méridien Digital — agence web Montpellier
Version: 2.0
License: Proprietary
Text Domain: meridien-digital
*/

/* ── VARIABLES & RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#070706;--bg2:#0D0C0A;--bg3:#141311;
  --line:rgba(255,255,255,.06);--line2:rgba(255,255,255,.12);
  --w:#EDE8DC;--w2:rgba(237,232,220,.52);--w3:rgba(237,232,220,.22);
  --acc:#C4A35A;--acc2:#DDB96E;--acc3:rgba(196,163,90,.1);
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--w);font-family:'DM Sans',sans-serif;font-weight:300;overflow-x:hidden;cursor:none}

/* ── CURSOR ── */
#cur{width:5px;height:5px;background:var(--acc);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%)}
#cur-r{width:26px;height:26px;border:1px solid rgba(196,163,90,.35);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s}
body:has(a:hover) #cur-r,body:has(button:hover) #cur-r{width:42px;height:42px;border-color:var(--acc)}
@media(max-width:900px){#cur,#cur-r{display:none}body{cursor:auto}}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:300;display:flex;align-items:center;justify-content:space-between;padding:34px 68px;transition:padding .4s,background .4s}
nav.s{background:rgba(7,7,6,.94);backdrop-filter:blur(20px);padding:18px 68px;border-bottom:1px solid var(--line)}
.nlogo{font-family:'Unbounded';font-size:13px;font-weight:400;letter-spacing:.1em;color:var(--w);text-decoration:none;display:flex;align-items:center;gap:10px}
.nlogo b{color:var(--acc);font-weight:400}
.nlogo-img{height:34px;width:auto}
.nlinks{display:flex;gap:36px;list-style:none}
.nlinks a{font-size:10.5px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--w2);text-decoration:none;transition:color .2s}
.nlinks a:hover{color:var(--acc)}
.nbtn{font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--bg);background:var(--acc);padding:11px 26px;text-decoration:none;transition:background .2s}
.nbtn:hover{background:var(--acc2)}
/* Burger */
.burger{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:5px}
.burger span{display:block;width:22px;height:1.5px;background:var(--w);transition:transform .3s,opacity .3s}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* Mobile menu overlay */
.mobile-menu{position:fixed;inset:0;z-index:250;background:rgba(7,7,6,.97);backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;opacity:0;pointer-events:none;transition:opacity .3s}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mm-link{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--w2);text-decoration:none;transition:color .2s}
.mm-link:hover{color:var(--acc)}
.mm-cta{margin-top:12px;background:var(--acc);color:var(--bg);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:14px 32px;text-decoration:none}

@media(max-width:900px){nav{padding:20px 24px}.nlinks{display:none}.nbtn-desk{display:none}.burger{display:flex}nav.s{padding:14px 24px}.nlogo-img{height:28px}}

/* ── HERO SCROLL ── */
#hero-wrap{position:relative;height:200vh}
#hero-sticky{position:sticky;top:0;width:100%;height:100vh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}
.h-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:70px 70px;mask-image:radial-gradient(ellipse 90% 80% at 50% 50%,black 20%,transparent 100%);pointer-events:none}
.h-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:700px;height:500px;background:radial-gradient(ellipse,rgba(196,163,90,.07),transparent 65%);pointer-events:none}
#hero-text{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:10;padding:0 40px;will-change:opacity,transform}
.h-eye{font-size:9.5px;letter-spacing:.38em;text-transform:uppercase;color:var(--acc);display:flex;align-items:center;gap:12px;margin-bottom:28px}
.h-eye::before,.h-eye::after{content:'';width:28px;height:1px;background:var(--acc)}
#hero-text h1{font-family:'Unbounded';font-size:clamp(40px,6.5vw,90px);font-weight:700;line-height:.95;letter-spacing:-.025em;color:var(--w);margin-bottom:20px}
#hero-text h1 em{font-family:'Instrument Serif';font-style:italic;font-weight:400;color:var(--acc);letter-spacing:0;font-size:1.05em}
.h-sub{font-family:'Instrument Serif';font-style:italic;font-size:clamp(16px,2vw,22px);color:var(--w2);max-width:520px;line-height:1.65;margin-bottom:40px}
.h-cta{display:inline-flex;align-items:center;gap:10px;background:var(--acc);color:var(--bg);font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding:15px 36px;text-decoration:none;transition:background .2s,transform .2s}
.h-cta:hover{background:var(--acc2);transform:translateY(-2px)}
.h-scroll{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--w3)}
.h-scroll-line{width:1px;height:36px;background:var(--acc);animation:sc 2s 1.2s ease-in-out infinite}
@keyframes sc{0%,100%{transform:scaleY(.35);opacity:.25}50%{transform:scaleY(1);opacity:1}}
@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

/* Hero JS-driven entrance */
.hero-anim{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.hero-anim.in{opacity:1;transform:translateY(0)}

/* ── LETTRES EXPLOSIVES ── */
.hero-char{display:inline-block;transition:none;will-change:transform,opacity;white-space:pre}
.hero-br{display:block;width:0;height:0}

/* ── CODE TYPING ── */
.code-typing{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:0 10vw;opacity:0;pointer-events:none}
.ct-block{font-family:'DM Sans',monospace;font-size:clamp(11px,1.3vw,15px);line-height:2;white-space:pre-wrap;max-width:600px;overflow:hidden}
.ct-block .ck{color:rgba(255,85,85,.7)}
.ct-block .ca{color:rgba(196,163,90,.75)}
.ct-block .cs{color:rgba(78,205,196,.7)}
.ct-block .cv{color:rgba(198,120,221,.7)}
.ct-block .cf{color:rgba(97,175,239,.7)}
.ct-block .cd{color:rgba(237,232,220,.3)}
.ct-block .ct{color:rgba(237,232,220,.5)}
.ct-cursor{display:inline-block;width:2px;height:1.1em;background:var(--acc);vertical-align:text-bottom;animation:blink .8s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ── MARQUEE ── */
.mq{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg2);padding:14px 0}
.mq-t{display:flex;animation:mq 30s linear infinite;white-space:nowrap}
@keyframes mq{to{transform:translateX(-50%)}}
.mi{display:inline-flex;align-items:center;gap:24px;font-family:'Unbounded';font-size:11px;font-weight:200;letter-spacing:.2em;color:rgba(237,232,220,.2);padding:0 24px;text-transform:uppercase}
.mi::after{content:'◆';color:var(--acc);font-size:7px}

/* ── SECTIONS ── */
.sec{padding:110px 68px}
.sec-eye{font-size:9.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--acc);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.sec-eye::before{content:'';width:22px;height:1px;background:var(--acc)}
h2{font-family:'Unbounded';font-size:clamp(30px,4vw,50px);font-weight:700;line-height:1.02;letter-spacing:-.02em;color:var(--w);margin-bottom:14px}
h2 em{font-family:'Instrument Serif';font-style:italic;font-weight:400;color:var(--acc);letter-spacing:0}
.lead{font-size:14.5px;line-height:1.88;color:var(--w2);max-width:540px}
@media(max-width:900px){.sec{padding:72px 24px}}

/* ── RÉALISATIONS ── */
.works{background:var(--bg2)}
.works-intro{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:52px;flex-wrap:wrap;gap:24px}
/* Cards réalisations — 3 en ligne */
.works-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wcard-v{position:relative;display:flex;flex-direction:column;background:var(--bg3);border:1px solid var(--line);overflow:hidden;text-decoration:none;transition:border-color .4s,transform .4s}
.wcard-v:hover{border-color:rgba(196,163,90,.3);transform:translateY(-4px)}
.wcard-v-img{aspect-ratio:16/10;overflow:hidden;position:relative}
.wcard-v-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(20%) brightness(.7) contrast(1.1);transition:transform .7s,filter .5s}
.wcard-v:hover .wcard-v-img img{transform:scale(1.05);filter:grayscale(0%) brightness(.8) contrast(1.05)}
.wcard-v-body{padding:24px 22px 28px;flex:1}
.wcard-tag{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.wcard-name{font-family:'Unbounded';font-size:17px;font-weight:400;color:var(--w);margin-bottom:8px}
.wcard-desc{font-size:12px;color:var(--w2);line-height:1.65}
.wcard-live{position:absolute;top:16px;right:16px;background:var(--acc);color:var(--bg);font-size:8px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:5px 12px;display:flex;align-items:center;gap:6px;z-index:2}
.live-d{width:5px;height:5px;border-radius:50%;background:var(--bg);animation:lp 1.4s infinite}
@keyframes lp{0%,100%{opacity:1}50%{opacity:.3}}
@media(max-width:900px){.works-row{grid-template-columns:1fr}}

/* ── PROCESS ── */
.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:52px}
.proc{background:var(--bg);padding:40px 30px;position:relative;overflow:hidden;transition:background .3s}
.proc:hover{background:var(--bg2)}
.proc::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.proc:hover::before{transform:scaleX(1)}
.proc-n{font-family:'Unbounded';font-size:52px;font-weight:700;color:rgba(196,163,90,.05);line-height:1;margin-bottom:18px}
.proc-name{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--w);margin-bottom:10px}
.proc-desc{font-size:12.5px;line-height:1.75;color:var(--w2)}
@media(max-width:900px){.proc-grid{grid-template-columns:1fr 1fr}}

/* ── AGENCE ── */
.about{background:var(--bg)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.about-right{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.about-stat{background:var(--bg);padding:32px 24px}
.about-stat-n{font-family:'Unbounded';font-size:36px;font-weight:700;color:var(--acc);line-height:1;margin-bottom:10px}
.about-stat-l{font-size:12.5px;color:var(--w2);line-height:1.65}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:40px}.about-right{grid-template-columns:1fr}}

/* ── TARIFS ── */
.pricing{background:var(--bg2)}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:52px}
.pc{background:var(--bg2);padding:44px 32px;position:relative;transition:background .3s}
.pc.feat{background:var(--bg3);border:1px solid rgba(196,163,90,.28)}
.pc.feat::before{content:'Recommandé';position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--acc);color:var(--bg);font-size:8.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:5px 16px;white-space:nowrap}
.pc-name{font-size:10px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin-bottom:18px}
.pc-val{font-family:'Unbounded';font-size:48px;font-weight:700;color:var(--w);line-height:1;margin-bottom:4px}
.pc-val sup{font-size:18px;font-weight:300;vertical-align:super}
.pc-note{font-size:11px;color:var(--w3);margin-bottom:24px}
.pc-div{height:1px;background:var(--line2);margin-bottom:24px}
.pc-feats{display:flex;flex-direction:column;gap:11px;margin-bottom:32px}
.pf{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--w2);line-height:1.55}
.pf::before{content:'✓';color:var(--acc);flex-shrink:0;margin-top:1px}
.pc-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:1px solid var(--line2);color:var(--w);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:14px;text-decoration:none;transition:background .2s,border-color .2s,color .2s}
.pc-btn:hover,.pc.feat .pc-btn{background:var(--acc);border-color:var(--acc);color:var(--bg)}
.pc.feat .pc-btn:hover{background:var(--acc2)}
@media(max-width:900px){.price-grid{grid-template-columns:1fr}}

/* ── RÉCURRENT ── */
.recur{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:80px 68px;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;background:var(--bg3)}
.recur-right{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rc{padding:22px;border:1px solid var(--line);background:var(--bg2);transition:border-color .3s}
.rc:hover{border-color:rgba(196,163,90,.28)}
.rc.wide{grid-column:1/-1}
.rc-price{font-family:'Unbounded';font-size:26px;font-weight:700;color:var(--acc);margin-bottom:4px}
.rc-name{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--w);margin-bottom:8px}
.rc-desc{font-size:11.5px;color:var(--w2);line-height:1.6}
@media(max-width:900px){.recur{grid-template-columns:1fr;padding:60px 24px;gap:40px}.recur-right{grid-template-columns:1fr}}

/* ── CONTACT / CTA ── */
.cta{padding:110px 68px;text-align:left;position:relative;overflow:hidden}
.cta-bg{position:absolute;inset:0;background:radial-gradient(ellipse 55% 55% at 50% 50%,rgba(196,163,90,.055),transparent 70%)}
.cta-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:58px 58px;mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,black,transparent)}
.contact-wrap{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.2fr;gap:72px;align-items:start}
.contact-left h2{font-size:clamp(28px,3.5vw,44px);margin-bottom:0}
.contact-info{margin-top:40px;display:flex;flex-direction:column;gap:20px}
.ci-label{font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--acc);margin-bottom:4px}
.ci-val{font-size:14px;color:var(--w2);text-decoration:none;transition:color .2s}
a.ci-val:hover{color:var(--acc)}

/* ── Formulaire ── */
.cf{display:flex;flex-direction:column;gap:20px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cf-field{display:flex;flex-direction:column;gap:6px}
.cf-field.cf-full{width:100%}
.cf-field label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--w2);font-weight:400}
.cf-opt{color:var(--w3);font-size:9px;letter-spacing:.1em;text-transform:none}
.cf-field input,.cf-field select,.cf-field textarea{
  background:var(--bg2);border:1px solid var(--line2);color:var(--w);
  font-family:'DM Sans',sans-serif;font-size:14px;font-weight:300;
  padding:14px 16px;outline:none;transition:border-color .3s,background .3s;
  -webkit-appearance:none;appearance:none;border-radius:0;
}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:var(--w3)}
.cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{
  border-color:var(--acc);background:rgba(196,163,90,.04);
}
.cf-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C4A35A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
  padding-right:40px;cursor:pointer;
}
.cf-field select option{background:var(--bg2);color:var(--w)}
.cf-field textarea{resize:vertical;min-height:120px}
.cf-submit{
  background:var(--acc);color:var(--bg);border:none;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;padding:16px 36px;
  transition:background .2s,transform .2s;align-self:flex-start;
}
.cf-submit:hover{background:var(--acc2);transform:translateY(-2px)}
.cf-note{font-size:11px;color:var(--w3);margin-top:-8px}

/* Succès */
.form-success{text-align:center;padding:60px 20px}
.fs-icon{width:56px;height:56px;border-radius:50%;border:2px solid var(--acc);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--acc);margin:0 auto 20px}
.fs-title{font-family:'Unbounded';font-size:22px;font-weight:700;color:var(--w);margin-bottom:10px}
.fs-text{font-size:14px;color:var(--w2)}

/* Erreur */
.form-error{background:rgba(220,53,69,.1);border:1px solid rgba(220,53,69,.3);color:#f87171;font-size:12px;padding:12px 16px;margin-bottom:4px}

@media(max-width:900px){
  .cta{padding:72px 24px}
  .contact-wrap{grid-template-columns:1fr;gap:48px}
  .cf-row{grid-template-columns:1fr}
}

/* ── FOOTER ── */
footer{background:var(--bg);border-top:1px solid var(--line);padding:40px 68px;display:flex;align-items:center;justify-content:space-between}
.flogo{font-family:'Unbounded';font-size:13px;font-weight:400;color:var(--w)}
.flogo b{color:var(--acc);font-weight:400}
.fcopy{font-size:10px;color:var(--w3)}
.flinks{display:flex;gap:22px;list-style:none}
.flinks a{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--w3);text-decoration:none;transition:color .2s}
.flinks a:hover{color:var(--acc)}
@media(max-width:900px){footer{flex-direction:column;gap:20px;text-align:center;padding:32px 24px}.flinks{flex-wrap:wrap;justify-content:center}}

/* ── REVEAL ── */
.r{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}
.r.v{opacity:1;transform:none}
.r.d1{transition-delay:.1s}.r.d2{transition-delay:.2s}.r.d3{transition-delay:.3s}.r.d4{transition-delay:.4s}

/* ── PAGES LÉGALES ── */
.legal-page{background:var(--bg);min-height:100vh;padding:140px 68px 80px}
.legal-inner{max-width:800px;margin:0 auto}
.legal-back{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);text-decoration:none;display:inline-block;margin-bottom:40px;transition:opacity .2s}
.legal-back:hover{opacity:.7}
.legal-page h1{font-family:'Unbounded';font-size:clamp(28px,4vw,44px);font-weight:700;color:var(--w);margin-bottom:40px;line-height:1.1}
.legal-content{font-size:14px;line-height:1.9;color:var(--w2)}
.legal-content h2{font-size:18px;font-weight:500;color:var(--w);margin:40px 0 12px;font-family:'DM Sans';letter-spacing:0}
.legal-content h3{font-size:15px;font-weight:500;color:var(--w);margin:28px 0 8px;font-family:'DM Sans';letter-spacing:0}
.legal-content p{margin-bottom:14px}
.legal-content ul{margin:0 0 14px 20px}
.legal-content li{margin-bottom:6px}
.legal-content a{color:var(--acc);text-decoration:none}
.legal-content a:hover{text-decoration:underline}
.legal-content strong{color:var(--w);font-weight:500}
@media(max-width:900px){.legal-page{padding:100px 24px 60px}}

/* ══════════════════════════════════
   MOBILE GLOBAL
   ══════════════════════════════════ */
@media(max-width:600px){
  /* Hero */
  #hero-wrap{height:180vh}
  #hero-text{padding:0 20px}
  #hero-text h1{font-size:clamp(28px,8vw,40px)!important}
  .h-sub{font-size:clamp(14px,3.5vw,18px)}
  .h-cta{padding:13px 24px;font-size:9.5px}
  .h-eye{font-size:8px;letter-spacing:.25em}

  /* Code typing */
  .code-typing{padding:0 6vw}
  .ct-block{font-size:10px;line-height:1.8}

  /* Marquee */
  .mi{font-size:9px;padding:0 16px}

  /* Sections */
  .sec{padding:60px 20px}
  h2{font-size:clamp(24px,6vw,36px)}
  .lead{font-size:13px}

  /* Réalisations */
  .works-intro{flex-direction:column;gap:16px;margin-bottom:32px}
  .wcard-v-body{padding:18px 16px 22px}
  .wcard-name{font-size:15px}

  /* Process */
  .proc-grid{grid-template-columns:1fr!important}
  .proc{padding:28px 20px}
  .proc-n{font-size:36px}

  /* Agence */
  .about-stat{padding:24px 18px}
  .about-stat-n{font-size:28px}

  /* Tarifs */
  .pc{padding:32px 22px}
  .pc-val{font-size:38px}

  /* Récurrent */
  .recur{padding:48px 20px!important}
  .rc-price{font-size:22px}

  /* Formulaire contact */
  .contact-wrap{gap:36px}
  .contact-left h2{font-size:clamp(24px,6vw,36px)}
  .cf-submit{width:100%;text-align:center}

  /* Footer */
  footer{padding:28px 20px}
  .flinks{gap:14px}
  .flinks a{font-size:9px}
  .fcopy{font-size:9px}
}
