/* ==========================================================================
   CABALION — styles sur-mesure (palette premium froide)
   ========================================================================== */
:root {
  --bg-0:#06141B;  /* fond le plus profond */
  --bg-1:#11212D;  /* fond secondaire */
  --bg-2:#253745;  /* surfaces */
  --mut:#4A5C6A;   /* accent / bordures */
  --soft:#9BA8AB;  /* texte secondaire */
  --light:#CCD0CF; /* texte principal / titres */
  --overlay:rgba(6,20,27,.97);
  --glow:rgba(37,55,69,.55);
  --bar-bg:rgba(6,20,27,.82);
  --line:rgba(155,168,171,.12);
  --font-mono:'Space Mono', ui-monospace, monospace;
  --font-body:'Inter', system-ui, -apple-system, sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}

/* ===== Variante claire (toggle, valable sur tout le site) ===== */
body.cab-light{
  --bg-0:#E9ECEB; --bg-1:#DCE0DF; --bg-2:#CCD0CF;
  --mut:#9BA8AB; --soft:#46555F; --light:#0C1B24;
  --overlay:rgba(233,236,235,.97);
  --glow:rgba(74,92,106,.28);
  --bar-bg:rgba(233,236,235,.88);
  --line:rgba(12,27,36,.12);
}

/* ===== Base sombre (accueil + pages internes) ===== */
body.cab-home, body.cab-inner{margin:0;background:var(--bg-0);color:var(--light);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .4s var(--ease),color .4s var(--ease);}
body.cab-home.menu-open, body.cab-inner.menu-open{overflow:hidden;}
.cab-hero, .cab-hero *{box-sizing:border-box;}

/* ===== Barre du haut (commune) ===== */
.cab-topbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:22px clamp(20px,4vw,48px);}
.cab-topbar--solid{position:sticky;background:var(--bar-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding-block:14px;}
.cab-brand{font-family:var(--font-mono);font-size:.95rem;letter-spacing:.05em;color:var(--light);text-decoration:none;text-transform:uppercase;transition:color .25s;}
.cab-brand:hover{color:var(--soft);}

/* Interrupteur clair / sombre */
.cab-theme{position:relative;width:54px;height:28px;border-radius:999px;border:1px solid var(--mut);background:transparent;cursor:pointer;padding:0;transition:border-color .25s;flex:0 0 auto;}
.cab-theme:hover{border-color:var(--soft);}
.cab-theme-knob{position:absolute;top:50%;left:4px;transform:translateY(-50%);width:18px;height:18px;border-radius:50%;background:var(--light);transition:transform .35s var(--ease),background .25s;}
body.cab-light .cab-theme-knob{transform:translateY(-50%) translateX(24px);}

/* Burger */
.cab-burger{position:relative;z-index:80;width:42px;height:42px;display:inline-flex;flex-direction:column;justify-content:center;gap:6px;align-items:flex-start;background:none;border:0;cursor:pointer;padding:10px;}
.cab-burger span{display:block;height:2px;width:22px;background:var(--light);border-radius:2px;transition:transform .35s var(--ease),opacity .35s var(--ease),background .2s;}
.cab-burger:hover span{background:var(--soft);}
body.menu-open .cab-burger span:first-child{transform:translateY(4px) rotate(45deg);}
body.menu-open .cab-burger span:last-child{transform:translateY(-4px) rotate(-45deg);}

/* Menu plein ecran */
.cab-menu{position:fixed;inset:0;z-index:70;background:var(--overlay);backdrop-filter:blur(10px);display:flex;align-items:center;padding-left:clamp(28px,10vw,160px);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;}
.cab-menu.is-open{opacity:1;visibility:visible;}
.cab-menu-list{list-style:none;margin:0;padding:0;}
.cab-menu-list li{overflow:hidden;padding:2px 0;}
.cab-menu-list a{font-family:var(--font-mono);font-size:clamp(2rem,7vw,4.4rem);font-weight:700;text-transform:uppercase;color:var(--soft);text-decoration:none;line-height:1.18;display:inline-block;transform:translateY(115%);transition:transform .55s var(--ease),color .25s;}
.cab-menu.is-open .cab-menu-list a{transform:translateY(0);}
.cab-menu-list a:hover{color:var(--light);}
.cab-menu.is-open .cab-menu-list li:nth-child(1) a{transition-delay:.06s;}
.cab-menu.is-open .cab-menu-list li:nth-child(2) a{transition-delay:.12s;}
.cab-menu.is-open .cab-menu-list li:nth-child(3) a{transition-delay:.18s;}
.cab-menu.is-open .cab-menu-list li:nth-child(4) a{transition-delay:.24s;}
.cab-menu.is-open .cab-menu-list li:nth-child(5) a{transition-delay:.30s;}

/* ===================== HERO (accueil) ===================== */
.cab-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;padding:96px 0 90px;}
.cab-hero::after{content:"";position:absolute;width:70vw;height:70vw;max-width:900px;max-height:900px;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle, var(--glow) 0%, rgba(6,20,27,0) 65%);pointer-events:none;z-index:0;}
.cab-hero-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;width:100%;}
.cab-name{margin:0;font-family:var(--font-mono);font-weight:700;text-transform:uppercase;color:var(--light);text-align:center;line-height:.82;letter-spacing:-.02em;}
.cab-line{display:block;font-size:clamp(3rem,15vw,13rem);}
.cab-portrait{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;width:clamp(94px,12vw,148px);height:clamp(150px,19vw,238px);border-radius:90px;overflow:hidden;box-shadow:0 34px 90px -22px rgba(0,0,0,.85);}
.cab-portrait img{width:100%;height:100%;object-fit:cover;display:block;}

/* Animation blur */
.cab-letter{display:inline-block;filter:blur(12px);opacity:0;transform:translateY(-18px);transition:filter .6s var(--ease),opacity .6s var(--ease),transform .6s var(--ease);}
.cab-letter.is-in{filter:blur(0);opacity:1;transform:none;}
.cab-word{display:inline-block;filter:blur(10px);opacity:0;transform:translateY(10px);transition:filter .55s var(--ease),opacity .55s var(--ease),transform .55s var(--ease);}
.cab-word.is-in{filter:blur(0);opacity:1;transform:none;}

.cab-tagline{position:absolute;bottom:clamp(74px,12vh,120px);left:0;right:0;margin:0;text-align:center;font-family:var(--font-mono);font-size:clamp(.8rem,1.6vw,1.05rem);letter-spacing:.04em;color:var(--soft);padding:0 20px;z-index:3;}
.cab-scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:var(--soft);z-index:3;animation:cabBob 2.2s var(--ease) infinite;}
.cab-scroll:hover{color:var(--light);}
.cab-scroll svg{display:block;}
@keyframes cabBob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(6px);}}

/* Section intro + CTA (accueil) */
.cab-intro{background:var(--bg-0);padding:clamp(80px,16vh,180px) 24px;display:flex;justify-content:center;transition:background .4s var(--ease);}
.cab-intro-inner{max-width:680px;text-align:center;}
.cab-intro-text{font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.5;color:var(--light);font-weight:300;margin:0 0 36px;}
.cab-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;color:var(--light);text-decoration:none;border:1px solid var(--mut);padding:16px 30px;border-radius:999px;transition:background .3s var(--ease),border-color .3s,color .3s,transform .3s;cursor:pointer;}
.cab-btn:hover{background:var(--soft);border-color:var(--soft);color:var(--bg-0);transform:translateY(-2px);}

/* ===================== PAGES INTERNES ===================== */
.cab-main{min-height:62vh;}
.cab-page{max-width:820px;margin:0 auto;padding:clamp(56px,9vh,110px) 24px clamp(56px,9vh,110px);}
.cab-page-head{margin-bottom:34px;}
.cab-page-title{font-family:var(--font-mono);font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(2.2rem,6vw,4rem);line-height:.95;color:var(--light);margin:0;}
.cab-page-content{font-size:1.05rem;line-height:1.75;color:var(--soft);}
.cab-page-content p{margin:0 0 1.2em;}
.cab-page-content h2{font-family:var(--font-mono);color:var(--light);text-transform:uppercase;font-size:1.4rem;letter-spacing:.01em;margin:2em 0 .6em;}
.cab-page-content h3{color:var(--light);font-size:1.15rem;margin:1.6em 0 .5em;}
.cab-page-content a{color:var(--light);text-decoration:underline;text-decoration-color:var(--mut);text-underline-offset:3px;transition:color .2s,text-decoration-color .2s;}
.cab-page-content a:hover{color:var(--soft);text-decoration-color:var(--soft);}
.cab-page-content strong{color:var(--light);}
.cab-page-content img{border-radius:14px;margin:1.5em 0;}
.cab-page-content ul,.cab-page-content ol{margin:0 0 1.2em;padding-left:1.3em;}
.cab-page-content li{margin:.3em 0;}

/* Footer */
.cab-footer{border-top:1px solid var(--line);padding:34px 24px;background:var(--bg-0);transition:background .4s var(--ease);}
.cab-footer-inner{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:var(--soft);}
.cab-footer-inner a{color:var(--soft);text-decoration:none;}
.cab-footer-inner a:hover{color:var(--light);}

/* Reveal generique */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.is-visible{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  .cab-letter,.cab-word,.reveal{opacity:1!important;filter:none!important;transform:none!important;}
  .cab-scroll{animation:none;}
}
@media (max-width:600px){
  .cab-portrait{border-radius:60px;}
}

/* Pastille recherche alternance (hero) */
.cab-availpill{display:inline-flex;align-items:center;gap:9px;margin:26px auto 0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);text-decoration:none;border:1px solid var(--mut);padding:9px 18px;border-radius:999px;background:rgba(37,55,69,.18);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:relative;z-index:3;transition:color .25s,border-color .25s,transform .3s var(--ease);}
.cab-availpill:hover{color:var(--light);border-color:var(--soft);transform:translateY(-2px);}
.cab-availpill i{width:8px;height:8px;border-radius:50%;background:var(--soft);box-shadow:0 0 0 4px rgba(155,168,171,.15);animation:cabPulse 2s ease-in-out infinite;}
@keyframes cabPulse{0%,100%{opacity:1;}50%{opacity:.35;}}

/* Icone jour / nuit a cote du toggle */
.cab-topbar-right{display:inline-flex;align-items:center;gap:12px;}
.cab-theme-icon{display:inline-flex;align-items:center;color:var(--soft);}
.cab-theme-icon svg{width:18px;height:18px;display:block;}
.cab-theme-icon .cab-ico-sun{display:none;}
body.cab-light .cab-theme-icon .cab-ico-sun{display:block;}
body.cab-light .cab-theme-icon .cab-ico-moon{display:none;}

/* ===== Page Contact ===== */
.cab-contact{max-width:1100px;margin:0 auto;padding:clamp(40px,7vh,90px) 24px 90px;}
.cab-contact-sub{color:var(--soft);font-family:var(--font-mono);font-size:.95rem;margin:12px 0 0;}
.cab-contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;margin-top:40px;align-items:start;}
@media(max-width:760px){.cab-contact-grid{grid-template-columns:1fr;gap:30px;}}
.cab-contact-info{display:flex;flex-direction:column;gap:26px;}
.cab-info-block{display:flex;flex-direction:column;gap:5px;}
.cab-info-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);}
.cab-info-block a,.cab-info-block p{color:var(--light);font-size:1.05rem;margin:0;text-decoration:none;word-break:break-word;}
.cab-info-block a:hover{color:var(--soft);}
.cab-form{display:flex;flex-direction:column;gap:18px;background:var(--bg-1);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,3vw,34px);}
.cab-field{display:flex;flex-direction:column;gap:7px;}
.cab-field label{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);}
.cab-field input,.cab-field textarea{background:var(--bg-0);border:1px solid var(--line);border-radius:10px;padding:13px 14px;color:var(--light);font-family:var(--font-body);font-size:1rem;transition:border-color .2s;}
.cab-field input:focus,.cab-field textarea:focus{outline:none;border-color:var(--soft);}
.cab-field textarea{resize:vertical;min-height:130px;}
.cab-form .cab-btn{align-self:flex-start;border-color:var(--soft);}
.cab-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.cab-alert{border-radius:12px;padding:16px 20px;margin-top:24px;font-size:.98rem;border:1px solid var(--line);}
.cab-alert--ok{background:rgba(74,92,106,.25);color:var(--light);border-color:var(--soft);}
.cab-alert--err{background:rgba(240,71,59,.12);color:#f0b8b3;border-color:rgba(240,71,59,.4);}
/* Actions encart alternance + bouton plein */
.cab-alt-actions{display:flex;flex-wrap:wrap;gap:12px;}
.cab-btn--fill{background:var(--soft);color:var(--bg-0);border-color:var(--soft);}
.cab-btn--fill:hover{background:var(--light);border-color:var(--light);color:var(--bg-0);}
/* Barre de progression entre les pages */
#cab-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--mut),var(--light));box-shadow:0 0 10px rgba(155,168,171,.55);z-index:99999;opacity:0;transition:width .4s ease,opacity .3s ease;pointer-events:none;}
/* Sous-menu (Evenements sous Portfolio) */
.cab-menu-list li.menu-item-has-children{overflow:visible;}
.cab-menu-list .sub-menu{list-style:none;margin:8px 0 4px;padding:0 0 0 6px;max-height:0;overflow:hidden;opacity:0;transition:max-height .35s var(--ease),opacity .3s var(--ease);}
.cab-menu-list .sub-menu a{font-size:clamp(1.05rem,3vw,1.9rem);color:var(--soft);text-transform:uppercase;font-weight:700;}
.cab-menu-list .sub-menu a:hover{color:var(--light);}
@media(hover:hover){.cab-menu-list > li:hover > .sub-menu,.cab-menu-list > li:focus-within > .sub-menu{max-height:220px;opacity:1;}}
@media(hover:none){.cab-menu-list .sub-menu{max-height:220px;opacity:1;}}