/* ==========================================================================
   T.E. COUVERTURE — Design system
   Palette : noir profond + cuivre métallique + zinc ardoise (issue du logo)
   ========================================================================== */

:root{
  /* Fonds */
  --ink:#07070A;
  --ink-2:#0C0D11;
  --ink-3:#111319;
  --ink-4:#171A21;

  /* Zinc / ardoise (cheminée du logo) */
  --zinc:#242832;
  --zinc-2:#3A404C;
  --zinc-3:#5C6472;

  /* Chrome (typo blanche du logo) */
  --chrome:#EDF1F5;
  --chrome-2:#C6CDD6;
  --mist:#8F98A5;

  /* Cuivre */
  --cu-1:#7C401C;
  --cu-2:#B9662F;
  --cu-3:#D98A50;
  --cu-4:#EFB582;
  --cu-5:#FBDCB8;
  --tuile:#C85A2C;

  --grad-cu:linear-gradient(102deg,#7C401C 0%,#C4713F 22%,#EFB582 42%,#FBDCB8 50%,#E39A63 60%,#B9662F 80%,#7C401C 100%);
  --grad-cu-soft:linear-gradient(135deg,rgba(217,138,80,.16),rgba(124,64,28,.06));

  --radius:18px;
  --radius-s:12px;
  --radius-l:28px;

  --shadow-1:0 2px 10px rgba(0,0,0,.5);
  --shadow-2:0 18px 50px -18px rgba(0,0,0,.85);
  --shadow-cu:0 18px 46px -20px rgba(217,138,80,.55);

  --maxw:1280px;
  --gut:clamp(18px,4vw,40px);

  --ff-display:'Archivo','Arial Narrow',system-ui,sans-serif;
  --ff-body:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ff-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --header-h:76px;
}

/* --------------------------------------------------------- reset & base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 20px)}
body{
  margin:0;background:var(--ink);color:var(--chrome-2);
  font-family:var(--ff-body);font-size:16.5px;line-height:1.65;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg,video{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{
  font-family:var(--ff-display);color:var(--chrome);
  font-weight:800;line-height:1.06;margin:0;
  font-stretch:112%;letter-spacing:-.005em;
}
h1{font-size:clamp(2.1rem,5.4vw,4.15rem);text-transform:uppercase;letter-spacing:.005em}
h2{font-size:clamp(1.72rem,3.7vw,2.85rem);text-transform:uppercase;letter-spacing:.012em}
h3{font-size:clamp(1.12rem,1.9vw,1.42rem);letter-spacing:.01em}
h4{font-size:1.02rem;font-weight:700;letter-spacing:.02em}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
strong{color:var(--chrome);font-weight:700}
::selection{background:var(--cu-2);color:#fff}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--cu-2);color:#fff;padding:12px 20px;border-radius:0 0 10px 0}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--cu-4);outline-offset:3px;border-radius:4px}

/* texte cuivre dégradé */
.cu{
  background:var(--grad-cu);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  background-size:220% 100%;animation:cuShift 9s linear infinite;
}
@keyframes cuShift{to{background-position:220% 0}}

/* --------------------------------------------------------- bandeau haut */
.ticker{
  position:relative;z-index:60;background:linear-gradient(90deg,#5E2F13,#B9662F 30%,#EFB582 50%,#B9662F 70%,#5E2F13);
  color:#1A0E06;overflow:hidden;border-bottom:1px solid rgba(0,0,0,.35);
}
.ticker__track{display:flex;width:max-content;animation:tick 38s linear infinite}
.ticker:hover .ticker__track{animation-play-state:paused}
.ticker__seq{display:flex;align-items:center;gap:0;flex:none}
.ticker span{
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 26px;font-size:.775rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  white-space:nowrap;font-family:var(--ff-display);font-stretch:110%;
}
.ticker span::after{content:"◆";font-size:.5rem;opacity:.45;margin-left:18px}
@keyframes tick{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* --------------------------------------------------------- header */
.hdr{
  position:sticky;top:0;z-index:70;
  background:rgba(7,7,10,.72);backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .3s var(--ease),border-color .3s,box-shadow .3s;
}
.hdr.is-stuck{background:rgba(7,7,10,.94);box-shadow:0 12px 34px -22px #000;border-bottom-color:rgba(217,138,80,.24)}
.hdr__in{display:flex;align-items:center;gap:22px;height:var(--header-h)}
.hdr__logo{display:flex;align-items:center;flex:none;height:100%;padding:9px 0}
.hdr__logo img{height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 3px 10px rgba(0,0,0,.6));transition:transform .4s var(--ease-out)}
.hdr__logo:hover img{transform:scale(1.04)}

.nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.nav a{
  position:relative;padding:9px 13px;border-radius:9px;font-size:.855rem;font-weight:600;
  color:var(--chrome-2);letter-spacing:.015em;transition:color .25s,background .25s;
}
.nav a::after{
  content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1.5px;
  background:var(--grad-cu);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out);
}
.nav a:hover,.nav a[aria-current="page"]{color:var(--chrome);background:rgba(255,255,255,.045)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}

.drop{position:relative}
.drop__btn{background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border-radius:9px;font-size:.855rem;font-weight:600;color:var(--chrome-2);transition:color .25s,background .25s}
.drop__btn:hover,.drop.is-open .drop__btn{color:var(--chrome);background:rgba(255,255,255,.045)}
.drop__btn svg{transition:transform .3s}
.drop.is-open .drop__btn svg{transform:rotate(180deg)}
.drop__menu{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-8px);
  min-width:270px;background:rgba(14,15,19,.97);backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.09);border-radius:var(--radius);padding:8px;
  box-shadow:var(--shadow-2);opacity:0;visibility:hidden;transition:.28s var(--ease-out);
}
.drop.is-open .drop__menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop__menu a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:.85rem}
.drop__menu a::after{display:none}
.drop__menu a:hover{background:var(--grad-cu-soft);color:var(--chrome)}
.drop__menu i{width:6px;height:6px;border-radius:50%;background:var(--cu-3);flex:none}

.hdr__cta{display:flex;align-items:center;gap:10px;flex:none}
.burger{display:none;background:none;border:1px solid rgba(255,255,255,.14);border-radius:11px;width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4.5px}
.burger i{display:block;width:19px;height:1.8px;background:var(--chrome);border-radius:2px;transition:.32s var(--ease)}
.burger.is-on i:nth-child(1){transform:translateY(6.3px) rotate(45deg)}
.burger.is-on i:nth-child(2){opacity:0;transform:scaleX(.2)}
.burger.is-on i:nth-child(3){transform:translateY(-6.3px) rotate(-45deg)}

/* menu mobile */
.mnav{
  position:fixed;inset:0;top:0;z-index:65;background:rgba(7,7,10,.985);backdrop-filter:blur(10px);
  padding:calc(var(--header-h) + 26px) var(--gut) 40px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-12px);transition:.35s var(--ease-out);
}
.mnav.is-open{opacity:1;visibility:visible;transform:none}
.mnav a{display:block;padding:14px 4px;font-family:var(--ff-display);font-size:1.12rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--chrome);border-bottom:1px solid rgba(255,255,255,.07)}
.mnav a:active{color:var(--cu-4)}
.mnav__grp{margin-top:18px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cu-3);font-weight:800;font-family:var(--ff-display)}
.mnav__sub a{font-size:.95rem;font-family:var(--ff-body);text-transform:none;letter-spacing:0;font-weight:600;color:var(--chrome-2);padding:11px 4px}

/* --------------------------------------------------------- boutons */
.btn{
  --bg:var(--grad-cu);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 26px;border-radius:13px;border:0;cursor:pointer;
  font-family:var(--ff-display);font-weight:800;font-size:.87rem;letter-spacing:.075em;text-transform:uppercase;
  color:#1B0D04;background:var(--bg);background-size:200% 100%;
  box-shadow:var(--shadow-cu);overflow:hidden;isolation:isolate;
  transition:transform .3s var(--ease-out),box-shadow .3s,background-position .6s var(--ease);
  min-height:50px;text-align:center;
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.75) 50%,transparent 80%);
  transform:translateX(-120%);transition:transform .75s var(--ease-out);
}
.btn:hover{transform:translateY(-3px);box-shadow:0 24px 54px -18px rgba(239,181,130,.6);background-position:100% 0}
.btn:hover::before{transform:translateX(120%)}
.btn:active{transform:translateY(-1px)}
.btn--ghost{
  background:rgba(255,255,255,.03);color:var(--chrome);border:1px solid rgba(239,181,130,.32);
  box-shadow:none;backdrop-filter:blur(8px);
}
.btn--ghost:hover{border-color:var(--cu-4);background:rgba(239,181,130,.1);box-shadow:0 16px 40px -22px rgba(239,181,130,.7)}
.btn--lg{padding:18px 34px;font-size:.95rem;min-height:58px}
.btn--sm{padding:11px 18px;font-size:.76rem;min-height:42px;border-radius:11px}
.btn--block{width:100%}
.btn svg{flex:none}

/* pastille pulse tel */
.btn--tel .pulse{position:relative;display:inline-flex;width:9px;height:9px}
.btn--tel .pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:#1B0D04;animation:pulse 1.9s ease-out infinite}
.btn--tel .pulse::before{content:"";position:absolute;inset:0;border-radius:50%;background:#1B0D04;opacity:.35}
@keyframes pulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(2.6);opacity:0}100%{opacity:0}}

/* --------------------------------------------------------- sections */
.sec{position:relative;padding:clamp(62px,8.5vw,118px) 0}
.sec--tight{padding:clamp(46px,6vw,78px) 0}
.sec--alt{background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 12%,var(--ink-2) 88%,var(--ink) 100%)}
.sec__head{max-width:770px;margin-bottom:clamp(34px,4vw,56px)}
.sec__head--c{margin-inline:auto;text-align:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:11px;margin-bottom:16px;
  font-family:var(--ff-mono);font-size:.715rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--cu-4);
}
.eyebrow::before{content:"";width:34px;height:1.5px;background:var(--grad-cu)}
.sec__head--c .eyebrow::after{content:"";width:34px;height:1.5px;background:var(--grad-cu)}
.lead{font-size:clamp(1.02rem,1.35vw,1.14rem);color:var(--mist);margin-top:18px;max-width:66ch}
.sec__head--c .lead{margin-inline:auto}

/* frise de tuiles — motif signature du métier */
.tiles-rule{height:16px;width:100%;opacity:.5;
  background:radial-gradient(circle at 50% 120%,transparent 58%,var(--cu-2) 59%,var(--cu-2) 63%,transparent 64%) repeat-x;
  background-size:34px 22px;
}

/* --------------------------------------------------------- hero */
.hero{position:relative;min-height:min(94vh,880px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;background:var(--ink)}
.hero--page{min-height:auto;padding-top:clamp(58px,8vw,96px);align-items:center}
.hero__bg{position:absolute;inset:0;z-index:-3}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);animation:kb 26s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{transform:scale(1.09) translate3d(-1.4%,1%,0)}to{transform:scale(1.2) translate3d(1.6%,-1.6%,0)}}
.hero__veil{position:absolute;inset:0;z-index:-2;
  background:
    linear-gradient(180deg,rgba(7,7,10,.9) 0%,rgba(7,7,10,.42) 32%,rgba(7,7,10,.72) 66%,var(--ink) 100%),
    linear-gradient(90deg,rgba(7,7,10,.92) 0%,rgba(7,7,10,.45) 52%,rgba(7,7,10,.2) 100%);
}
.hero__sweep{position:absolute;inset:-30% -10%;z-index:-1;pointer-events:none;
  background:linear-gradient(74deg,transparent 38%,rgba(239,181,130,.13) 48%,rgba(251,220,184,.2) 51%,rgba(239,181,130,.1) 54%,transparent 64%);
  transform:translateX(-60%);animation:sweep 9s var(--ease-out) infinite;mix-blend-mode:screen;
}
@keyframes sweep{0%{transform:translateX(-70%)}55%,100%{transform:translateX(70%)}}
.hero__grid{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.28;
  background-image:linear-gradient(rgba(239,181,130,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(239,181,130,.09) 1px,transparent 1px);
  background-size:78px 78px;mask-image:radial-gradient(ellipse 80% 60% at 30% 40%,#000 10%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 30% 40%,#000 10%,transparent 75%);
}
.hero__in{position:relative;padding-block:clamp(70px,10vw,110px) clamp(38px,5vw,58px);width:100%}
.hero__cols{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);gap:clamp(28px,4vw,60px);align-items:end}

.hero__badge{
  display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;padding:8px 16px 8px 9px;
  border:1px solid rgba(239,181,130,.3);border-radius:100px;background:rgba(239,181,130,.07);
  backdrop-filter:blur(8px);font-size:.755rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--cu-5);
}
.hero__badge b{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:50%;background:var(--grad-cu);color:#1B0D04;font-size:.66rem}
.hero h1{margin-bottom:0}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line>span{display:block;animation:rise 1s var(--ease-out) both}
.hero h1 .line:nth-child(2)>span{animation-delay:.11s}
.hero h1 .line:nth-child(3)>span{animation-delay:.22s}
@keyframes rise{from{transform:translateY(105%);opacity:0}to{transform:none;opacity:1}}
.rotator{display:inline-grid;vertical-align:bottom;overflow:hidden;height:1.06em}
.rotator span{grid-area:1/1;opacity:0;transform:translateY(70%);transition:.6s var(--ease-out)}
.rotator span.on{opacity:1;transform:none}
.hero__sub{margin-top:24px;font-size:clamp(1.02rem,1.4vw,1.16rem);color:var(--chrome-2);max-width:56ch}
.hero__acts{display:flex;flex-wrap:wrap;gap:13px;margin-top:32px}
.hero__meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:30px;font-size:.83rem;color:var(--mist)}
.hero__meta span{display:inline-flex;align-items:center;gap:8px}
.hero__meta svg{color:var(--cu-3);flex:none}

/* panneau flottant */
.glasspanel{
  background:rgba(12,13,17,.62);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-l);padding:26px;
  box-shadow:var(--shadow-2);animation:rise2 1.1s .3s var(--ease-out) both;
}
@keyframes rise2{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.glasspanel h3{font-size:.79rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cu-4);font-family:var(--ff-mono);font-weight:600;margin-bottom:16px}
.gp-list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:.9rem;font-weight:600;color:var(--chrome);transition:.3s var(--ease)}
.gp-list li:last-child{border-bottom:0}
.gp-list li:hover{padding-left:7px;color:var(--cu-4)}
.gp-list b{width:26px;height:26px;border-radius:8px;background:var(--grad-cu-soft);border:1px solid rgba(239,181,130,.24);display:grid;place-items:center;flex:none;color:var(--cu-4)}
.gp-foot{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.09);display:grid;gap:9px;font-size:.82rem;color:var(--mist)}
.gp-foot a{display:flex;align-items:center;gap:9px;transition:color .25s}
.gp-foot a:hover{color:var(--cu-4)}
.gp-foot svg{color:var(--cu-3);flex:none}

.scrollcue{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:2;display:grid;justify-items:center;gap:7px;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);font-family:var(--ff-mono)}
.scrollcue i{width:1.5px;height:34px;background:linear-gradient(180deg,var(--cu-4),transparent);animation:cue 2.1s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25;transform:scaleY(.55);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}

/* --------------------------------------------------------- bande stats */
.stats{border-block:1px solid rgba(255,255,255,.07);background:var(--ink-2)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stats__i{padding:30px 22px;text-align:center;border-right:1px solid rgba(255,255,255,.07);position:relative;overflow:hidden;transition:background .35s}
.stats__i:last-child{border-right:0}
.stats__i::after{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:var(--grad-cu);transform:scaleX(0);transition:transform .45s var(--ease-out)}
.stats__i:hover{background:rgba(239,181,130,.045)}
.stats__i:hover::after{transform:scaleX(1)}
.stats__n{font-family:var(--ff-display);font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:900;line-height:1;font-stretch:118%}
.stats__l{margin-top:9px;font-size:.755rem;letter-spacing:.15em;text-transform:uppercase;color:var(--mist);font-weight:600}

/* --------------------------------------------------------- cartes services */
.grid{display:grid;gap:20px}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(226px,1fr))}

.card{
  position:relative;border-radius:var(--radius-l);overflow:hidden;background:var(--ink-3);
  border:1px solid rgba(255,255,255,.075);isolation:isolate;
  transition:transform .45s var(--ease-out),border-color .4s,box-shadow .45s;
}
.card:hover{transform:translateY(-8px);border-color:rgba(239,181,130,.36);box-shadow:0 30px 60px -30px rgba(0,0,0,.95),0 0 0 1px rgba(239,181,130,.12)}
.card__img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ink-4)}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out),filter .6s;filter:saturate(.88) contrast(1.06)}
.card:hover .card__img img{transform:scale(1.09);filter:saturate(1.06) contrast(1.1)}
.card__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(12,13,17,.86) 100%)}
.card__tag{
  position:absolute;left:16px;top:16px;z-index:2;padding:6px 12px;border-radius:8px;
  background:rgba(7,7,10,.72);backdrop-filter:blur(8px);border:1px solid rgba(239,181,130,.3);
  font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cu-4);
}
.card__body{padding:24px 24px 26px}
.card__body p{font-size:.925rem;color:var(--mist);margin-top:11px}
.card__list{margin-top:16px;display:grid;gap:8px}
.card__list li{position:relative;padding-left:20px;font-size:.855rem;color:var(--chrome-2)}
.card__list li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--grad-cu);transform:rotate(45deg)}
.card__link{display:inline-flex;align-items:center;gap:9px;margin-top:20px;font-family:var(--ff-display);font-size:.79rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cu-4);transition:gap .3s var(--ease-out)}
.card:hover .card__link{gap:15px}
.card__glow{position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .45s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(239,181,130,.14),transparent 62%)}
.card:hover .card__glow{opacity:1}

/* mini cartes atouts */
.pill{
  display:flex;gap:15px;align-items:flex-start;padding:22px;border-radius:var(--radius);
  background:linear-gradient(150deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.075);transition:.4s var(--ease-out);
}
.pill:hover{transform:translateY(-5px);border-color:rgba(239,181,130,.35);background:linear-gradient(150deg,rgba(239,181,130,.09),rgba(255,255,255,.015))}
.pill__ic{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--grad-cu-soft);border:1px solid rgba(239,181,130,.24);color:var(--cu-4);transition:.4s var(--ease-out)}
.pill:hover .pill__ic{background:var(--grad-cu);color:#1B0D04;transform:rotate(-6deg) scale(1.06)}
.pill h3{font-size:1rem;margin-bottom:6px}
.pill p{font-size:.865rem;color:var(--mist);margin:0}

/* --------------------------------------------------------- carte Aveyron */
.zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:clamp(24px,3.4vw,46px);align-items:start}
.mapbox{
  position:relative;border-radius:var(--radius-l);padding:16px;
  background:radial-gradient(ellipse at 50% 0%,rgba(239,181,130,.09),transparent 62%),var(--ink-3);
  border:1px solid rgba(255,255,255,.085);box-shadow:var(--shadow-2);overflow:hidden;
}
.mapbox::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(239,181,130,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(239,181,130,.05) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(circle at 50% 45%,#000,transparent 78%);-webkit-mask-image:radial-gradient(circle at 50% 45%,#000,transparent 78%)}
#av-map{width:100%;height:auto;display:block;position:relative;z-index:1;touch-action:pan-y}
#av-map path{fill:rgba(58,64,76,.4);stroke:rgba(146,156,170,.28);stroke-width:.8;cursor:pointer;transition:fill .22s,stroke .22s}
#av-map path:hover{fill:rgba(239,181,130,.85);stroke:#FBDCB8;stroke-width:1.5}
#av-map path.is-hit{fill:var(--cu-3);stroke:#FBDCB8;stroke-width:1.8}
#av-map .base{fill:rgba(200,90,44,.9);stroke:#FBDCB8}
.map-tip{
  position:absolute;z-index:5;pointer-events:none;padding:8px 13px;border-radius:10px;
  background:rgba(7,7,10,.94);border:1px solid rgba(239,181,130,.4);color:var(--chrome);
  font-size:.79rem;font-weight:700;white-space:nowrap;opacity:0;transform:translate(-50%,-140%);transition:opacity .18s;box-shadow:var(--shadow-1);
}
.map-tip.on{opacity:1}
.map-tip small{display:block;font-weight:500;color:var(--cu-4);font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.06em}
.map-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);font-size:.775rem;color:var(--mist);position:relative;z-index:1}
.map-legend span{display:inline-flex;align-items:center;gap:8px}
.map-legend i{width:12px;height:12px;border-radius:3px;flex:none}

/* vérificateur de zone */
.checker{background:var(--ink-3);border:1px solid rgba(255,255,255,.085);border-radius:var(--radius-l);padding:clamp(22px,3vw,32px);box-shadow:var(--shadow-2)}
.checker h3{margin-bottom:8px}
.checker>p{font-size:.9rem;color:var(--mist)}
.field{position:relative;margin-top:18px}
.field label{display:block;font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;color:var(--cu-4);font-weight:700;margin-bottom:8px;font-family:var(--ff-mono)}
.input,.checker input,.form input,.form select,.form textarea{
  width:100%;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);color:var(--chrome);font-size:.95rem;transition:.25s;
}
.input::placeholder,.form input::placeholder,.form textarea::placeholder{color:#6B7480}
.input:focus,.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--cu-3);background:rgba(239,181,130,.07);box-shadow:0 0 0 4px rgba(239,181,130,.11)}
.form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23D98A50' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:42px}
.form textarea{min-height:128px;resize:vertical}
.ac{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;max-height:250px;overflow-y:auto;background:rgba(14,15,19,.98);border:1px solid rgba(239,181,130,.25);border-radius:12px;box-shadow:var(--shadow-2);display:none}
.ac.on{display:block}
.ac button{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:0;padding:11px 15px;cursor:pointer;font-size:.89rem;color:var(--chrome-2);border-bottom:1px solid rgba(255,255,255,.05)}
.ac button:hover,.ac button.sel{background:var(--grad-cu-soft);color:var(--chrome)}
.ac em{font-style:normal;font-family:var(--ff-mono);font-size:.74rem;color:var(--cu-4)}
.check-out{margin-top:18px;padding:18px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);display:none}
.check-out.on{display:block;animation:rise2 .5s var(--ease-out) both}
.check-out.ok{border-color:rgba(110,200,140,.4);background:rgba(80,190,120,.08)}
.check-out.no{border-color:rgba(239,181,130,.4);background:rgba(239,181,130,.07)}
.check-out h4{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.check-out p{font-size:.88rem;color:var(--chrome-2);margin:0}
.check-out .btn{margin-top:14px}

/* --------------------------------------------------------- avant / après */
.ba{position:relative;border-radius:var(--radius-l);overflow:hidden;border:1px solid rgba(255,255,255,.09);box-shadow:var(--shadow-2);user-select:none;touch-action:pan-y;background:var(--ink-3)}
.ba__frame{position:relative;aspect-ratio:3/2}
.ba__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba__after{clip-path:inset(0 0 0 var(--pos,50%))}
.ba__bar{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:2.5px;background:var(--grad-cu);cursor:ew-resize;z-index:3;box-shadow:0 0 22px rgba(239,181,130,.75)}
.ba__knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:rgba(7,7,10,.85);border:2px solid var(--cu-4);display:grid;place-items:center;color:var(--cu-4);backdrop-filter:blur(6px);transition:transform .28s var(--ease-out),box-shadow .28s}
.ba__bar:hover .ba__knob,.ba.is-drag .ba__knob{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 32px rgba(239,181,130,.6)}
.ba__lab{position:absolute;top:14px;z-index:2;padding:6px 13px;border-radius:8px;background:rgba(7,7,10,.78);backdrop-filter:blur(6px);font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--chrome)}
.ba__lab--a{left:14px}
.ba__lab--b{right:14px;color:var(--cu-4);border:1px solid rgba(239,181,130,.35)}
.ba__cap{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}
.ba__cap b{font-family:var(--ff-display);font-size:.94rem;letter-spacing:.03em;color:var(--chrome)}
.ba__cap span{font-size:.79rem;color:var(--mist);font-family:var(--ff-mono)}

/* --------------------------------------------------------- galerie */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;grid-auto-rows:200px}
.gal a{position:relative;overflow:hidden;border-radius:16px;border:1px solid rgba(255,255,255,.07);display:block;background:var(--ink-3)}
.gal a.tall{grid-row:span 2}
.gal a.wide{grid-column:span 2}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out),filter .5s;filter:saturate(.9)}
.gal a:hover img{transform:scale(1.08);filter:saturate(1.1) brightness(1.06)}
.gal a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,7,10,.8));opacity:0;transition:opacity .4s}
.gal a:hover::after{opacity:1}
.gal a::before{
  content:"⤢";position:absolute;z-index:2;right:12px;bottom:12px;width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;background:rgba(7,7,10,.72);border:1px solid rgba(239,181,130,.35);color:var(--cu-4);
  opacity:0;transform:translateY(8px);transition:.4s var(--ease-out);font-size:1rem;
}
.gal a:hover::before{opacity:1;transform:none}

.lb{position:fixed;inset:0;z-index:200;background:rgba(3,3,5,.96);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:24px}
.lb.on{display:flex;animation:fade .3s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.lb img{max-width:min(1180px,94vw);max-height:86vh;object-fit:contain;border-radius:14px;box-shadow:0 40px 90px -30px #000}
.lb__x,.lb__p,.lb__n{position:absolute;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:var(--chrome);width:50px;height:50px;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:.3s;font-size:1.3rem}
.lb__x:hover,.lb__p:hover,.lb__n:hover{background:var(--cu-2);border-color:var(--cu-4);transform:scale(1.08)}
.lb__x{top:20px;right:20px}
.lb__p{left:20px;top:50%;transform:translateY(-50%)}
.lb__n{right:20px;top:50%;transform:translateY(-50%)}
.lb__c{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-family:var(--ff-mono);font-size:.78rem;color:var(--mist);letter-spacing:.1em}

/* filtres */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}
.filters button{
  padding:9px 18px;border-radius:100px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11);
  cursor:pointer;font-size:.82rem;font-weight:600;color:var(--chrome-2);transition:.3s var(--ease);
}
.filters button:hover{border-color:var(--cu-3);color:var(--chrome)}
.filters button.on{background:var(--grad-cu);color:#1B0D04;border-color:transparent;font-weight:800;box-shadow:var(--shadow-cu)}

/* --------------------------------------------------------- process */
.steps{display:grid;gap:0;counter-reset:st}
.step{display:grid;grid-template-columns:86px 1fr;gap:24px;padding:26px 0;border-top:1px solid rgba(255,255,255,.08);position:relative;transition:.4s var(--ease)}
.step:last-child{border-bottom:1px solid rgba(255,255,255,.08)}
.step:hover{background:linear-gradient(90deg,rgba(239,181,130,.06),transparent 65%);padding-left:14px}
.step__n{font-family:var(--ff-display);font-size:2.4rem;font-weight:900;line-height:1;font-stretch:118%;
  background:var(--grad-cu);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;opacity:.85}
.step h3{margin-bottom:8px}
.step p{font-size:.92rem;color:var(--mist);margin:0;max-width:70ch}

/* --------------------------------------------------------- météo */
.wx{
  border-radius:var(--radius-l);padding:26px;border:1px solid rgba(255,255,255,.09);
  background:radial-gradient(ellipse at 15% 0%,rgba(239,181,130,.12),transparent 60%),var(--ink-3);
  box-shadow:var(--shadow-2);
}
.wx__top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.wx__now{display:flex;align-items:center;gap:18px}
.wx__ic{width:66px;height:66px;flex:none;color:var(--cu-4)}
.wx__t{font-family:var(--ff-display);font-size:2.9rem;font-weight:900;line-height:1;color:var(--chrome);font-stretch:114%}
.wx__d{font-size:.88rem;color:var(--mist)}
.wx__badge{padding:9px 15px;border-radius:11px;font-size:.79rem;font-weight:700;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04)}
.wx__badge.good{border-color:rgba(110,200,140,.45);color:#8EE0AC;background:rgba(80,190,120,.09)}
.wx__badge.warn{border-color:rgba(239,181,130,.5);color:var(--cu-4);background:rgba(239,181,130,.08)}
.wx__days{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:9px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}
.wx__day{text-align:center;padding:13px 6px;border-radius:13px;background:rgba(255,255,255,.032);border:1px solid rgba(255,255,255,.06);transition:.35s var(--ease-out)}
.wx__day:hover{transform:translateY(-4px);border-color:rgba(239,181,130,.35);background:rgba(239,181,130,.07)}
.wx__day b{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cu-4);font-family:var(--ff-mono)}
.wx__day svg{margin:9px auto;color:var(--chrome-2)}
.wx__day span{font-size:.85rem;font-weight:700;color:var(--chrome);font-family:var(--ff-mono)}
.wx__day i{font-style:normal;font-size:.76rem;color:var(--mist)}

/* --------------------------------------------------------- tarifs */
.price{position:relative;border-radius:var(--radius-l);padding:28px;background:var(--ink-3);border:1px solid rgba(255,255,255,.08);transition:.42s var(--ease-out)}
.price:hover{transform:translateY(-7px);border-color:rgba(239,181,130,.35);box-shadow:var(--shadow-2)}
.price h3{font-size:1.06rem}
.price__v{margin:14px 0 4px;font-family:var(--ff-display);font-size:1.9rem;font-weight:900;font-stretch:114%;
  background:var(--grad-cu);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.price__u{font-size:.78rem;color:var(--mist);font-family:var(--ff-mono);letter-spacing:.08em}
.price p{font-size:.87rem;color:var(--mist);margin-top:12px}

/* --------------------------------------------------------- avis */
.revs{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
.revs::-webkit-scrollbar{height:6px}
.revs::-webkit-scrollbar-thumb{background:var(--zinc-2);border-radius:10px}
.rev{flex:0 0 min(400px,86vw);scroll-snap-align:start;padding:26px;border-radius:var(--radius-l);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012));border:1px solid rgba(255,255,255,.08);transition:.4s var(--ease-out)}
.rev:hover{border-color:rgba(239,181,130,.32);transform:translateY(-5px)}
.rev__stars{color:var(--cu-4);letter-spacing:.18em;font-size:.95rem}
.rev p{margin:14px 0 18px;font-size:.94rem;color:var(--chrome-2);font-style:italic}
.rev__who{display:flex;align-items:center;gap:12px;font-size:.85rem}
.rev__av{width:40px;height:40px;border-radius:50%;background:var(--grad-cu);display:grid;place-items:center;color:#1B0D04;font-weight:900;font-family:var(--ff-display);flex:none}
.rev__who b{display:block;color:var(--chrome)}
.rev__who span{color:var(--mist);font-size:.78rem}

/* --------------------------------------------------------- FAQ */
.faq{border-top:1px solid rgba(255,255,255,.08)}
.faq__i{border-bottom:1px solid rgba(255,255,255,.08)}
.faq__q{width:100%;background:none;border:0;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4px;font-family:var(--ff-display);font-size:1.02rem;font-weight:700;color:var(--chrome);letter-spacing:.01em;transition:color .3s,padding .3s}
.faq__q:hover{color:var(--cu-4);padding-left:12px}
.faq__q i{flex:none;width:30px;height:30px;border-radius:9px;border:1px solid rgba(239,181,130,.3);display:grid;place-items:center;color:var(--cu-4);font-style:normal;transition:.35s var(--ease-out)}
.faq__i.on .faq__q i{background:var(--grad-cu);color:#1B0D04;transform:rotate(135deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease-out)}
.faq__a div{padding:0 4px 24px;font-size:.93rem;color:var(--mist);max-width:82ch}

/* --------------------------------------------------------- formulaire */
.form{display:grid;gap:16px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:block;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cu-4);font-weight:700;margin-bottom:8px;font-family:var(--ff-mono)}
.form__note{font-size:.78rem;color:var(--mist)}
.form__ok{padding:16px;border-radius:12px;border:1px solid rgba(110,200,140,.4);background:rgba(80,190,120,.09);color:#9CE7B8;font-size:.9rem;display:none}
.form__ok.on{display:block}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{display:inline-block;padding:10px 16px;border-radius:100px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.035);font-size:.83rem;font-weight:600;cursor:pointer;transition:.28s var(--ease)}
.chip span:hover{border-color:var(--cu-3);color:var(--chrome)}
.chip input:checked+span{background:var(--grad-cu);color:#1B0D04;border-color:transparent;font-weight:800}
.chip input:focus-visible+span{outline:2px solid var(--cu-4);outline-offset:3px}

/* CTA final */
.cta{position:relative;overflow:hidden;border-radius:var(--radius-l);padding:clamp(32px,5vw,60px);text-align:center;
  background:radial-gradient(ellipse at 50% -10%,rgba(239,181,130,.2),transparent 62%),linear-gradient(160deg,var(--ink-3),var(--ink-2));
  border:1px solid rgba(239,181,130,.22)}
.cta::before{content:"";position:absolute;inset:-40% -10%;background:conic-gradient(from 0deg,transparent,rgba(239,181,130,.12),transparent 30%);animation:spin 14s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.cta>*{position:relative}
.cta .lead{margin-inline:auto}
.cta__acts{display:flex;flex-wrap:wrap;gap:13px;justify-content:center;margin-top:30px}

/* --------------------------------------------------------- communes */
.com-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.com-grid a,.com-grid span{display:block;padding:9px 13px;border-radius:9px;font-size:.845rem;color:var(--chrome-2);border:1px solid transparent;transition:.25s var(--ease)}
.com-grid a:hover{background:var(--grad-cu-soft);border-color:rgba(239,181,130,.28);color:var(--chrome);transform:translateX(4px)}
.com-grid em{font-style:normal;font-family:var(--ff-mono);font-size:.72rem;color:var(--zinc-3);margin-left:6px}
.alpha{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.alpha button{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);cursor:pointer;font-weight:700;font-size:.82rem;color:var(--chrome-2);transition:.25s}
.alpha button:hover{border-color:var(--cu-3);color:var(--chrome)}
.alpha button.on{background:var(--grad-cu);color:#1B0D04;border-color:transparent}

/* --------------------------------------------------------- footer */
.ft{background:var(--ink-2);border-top:1px solid rgba(255,255,255,.08);padding-top:clamp(48px,6vw,76px)}
.ft__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:clamp(26px,3.4vw,50px)}
.ft__logo img{width:210px;margin-bottom:18px}
.ft p{font-size:.885rem;color:var(--mist)}
.ft h4{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cu-4);font-weight:600;margin-bottom:16px}
.ft li{margin-bottom:9px}
.ft li a{display:inline-flex;align-items:center;gap:9px;font-size:.885rem;color:var(--mist);transition:.25s var(--ease)}
.ft li a:hover{color:var(--cu-4);transform:translateX(4px)}
.ft li svg{color:var(--zinc-3);flex:none;transition:color .25s}
.ft li a:hover svg{color:var(--cu-4)}
.ft__bot{margin-top:clamp(34px,4vw,54px);padding:22px 0;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-wrap:wrap;gap:12px 26px;justify-content:space-between;font-size:.79rem;color:var(--zinc-3)}
.ft__bot a:hover{color:var(--cu-4)}

/* barre mobile */
.mbar{
  position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;
  background:rgba(7,7,10,.94);backdrop-filter:blur(16px);border-top:1px solid rgba(239,181,130,.25);
  padding:9px 10px calc(9px + env(safe-area-inset-bottom));gap:9px;
}
.mbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:12px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--chrome-2);transition:.25s}
.mbar a.hot{background:var(--grad-cu);color:#1B0D04}
.mbar a svg{flex:none}

/* bouton flottant */
.fab{position:fixed;right:18px;bottom:18px;z-index:88;display:grid;gap:10px}
.fab a{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;box-shadow:var(--shadow-2);transition:.35s var(--ease-out);border:1px solid rgba(255,255,255,.14)}
.fab a:hover{transform:scale(1.09) translateY(-2px)}
.fab .up{background:rgba(20,22,28,.9);color:var(--chrome);backdrop-filter:blur(10px)}
.fab .tel{background:var(--grad-cu);background-size:200% 100%;color:#1B0D04;border-color:transparent;position:relative}
.fab .tel::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--cu-4);animation:fabRing 2.2s ease-out infinite;pointer-events:none}
@keyframes fabRing{0%{transform:scale(.92);opacity:.85}70%{transform:scale(1.5);opacity:0}100%{opacity:0}}
.fab .tel:hover{background-position:100% 0}

/* --------------------------------------------------------- reveal */
.rv{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.09s}.rv-d2{transition-delay:.18s}.rv-d3{transition-delay:.27s}.rv-d4{transition-delay:.36s}

/* fil d'ariane */
.crumb{font-size:.79rem;color:var(--zinc-3);font-family:var(--ff-mono);letter-spacing:.05em;padding-top:20px}
.crumb a:hover{color:var(--cu-4)}
.crumb span{margin:0 8px;opacity:.55}

/* contenu éditorial */
.prose h2{margin-top:2.1em;margin-bottom:.65em}
.prose h3{margin-top:1.7em;margin-bottom:.5em;color:var(--cu-4)}
.prose p,.prose li{color:var(--mist);font-size:1rem}
.prose ul{margin:0 0 1.2em;display:grid;gap:9px}
.prose ul li{position:relative;padding-left:22px}
.prose ul li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;background:var(--grad-cu);transform:rotate(45deg);border-radius:2px}
.prose a{color:var(--cu-4);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(239,181,130,.4)}
.prose a:hover{text-decoration-color:var(--cu-4)}
.prose>:first-child{margin-top:0}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:clamp(26px,4vw,60px);align-items:center}
.split--rev>:first-child{order:2}
.figure{position:relative;border-radius:var(--radius-l);overflow:hidden;border:1px solid rgba(255,255,255,.09);box-shadow:var(--shadow-2)}
.figure img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1s var(--ease-out)}
.figure:hover img{transform:scale(1.05)}
.figure figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 22px 18px;background:linear-gradient(180deg,transparent,rgba(7,7,10,.9));font-size:.83rem;color:var(--chrome-2)}

.note{padding:20px 22px;border-radius:var(--radius);border-left:3px solid var(--cu-3);background:var(--grad-cu-soft);font-size:.92rem;color:var(--chrome-2)}

.badges{display:flex;flex-wrap:wrap;gap:10px}
.badge{display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border-radius:100px;border:1px solid rgba(239,181,130,.28);background:rgba(239,181,130,.06);font-size:.79rem;font-weight:700;letter-spacing:.04em;color:var(--cu-5)}
.badge svg{color:var(--cu-3)}

/* tableau */
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th,.tbl td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}
.tbl th{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cu-4);font-weight:600}
.tbl td{color:var(--chrome-2)}
.tbl tr:hover td{background:rgba(239,181,130,.04)}
.tbl-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid rgba(255,255,255,.08);background:var(--ink-3)}

/* --------------------------------------------------------- responsive */
@media (max-width:1080px){
  .hero__cols{grid-template-columns:1fr}
  .hero__side{display:none}
  .zone{grid-template-columns:1fr}
  .ft__grid{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .split--rev>:first-child{order:0}
}
@media (max-width:960px){
  .nav,.hdr__cta .btn--ghost{display:none}
  .burger{display:flex}
  .stats__grid{grid-template-columns:1fr 1fr}
  .stats__i:nth-child(2){border-right:0}
  .stats__i:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.07)}
}
@media (max-width:720px){
  :root{--header-h:64px}
  body{font-size:16px;padding-bottom:70px}
  .mbar{display:flex}
  .fab{bottom:82px}
  .hero{min-height:auto}
  .hero__in{padding-block:52px 46px}
  .scrollcue{display:none}
  .form__row{grid-template-columns:1fr}
  .gal{grid-auto-rows:150px;grid-template-columns:repeat(2,1fr);gap:10px}
  .gal a.wide{grid-column:span 2}
  .step{grid-template-columns:56px 1fr;gap:16px}
  .step__n{font-size:1.7rem}
  .ft__grid{grid-template-columns:1fr}
  .ba__lab{font-size:.62rem;padding:5px 10px}
  .hdr__cta .btn{padding:12px 16px;font-size:.76rem;min-height:44px}
  .card__body{padding:20px}
}
@media (max-width:420px){
  .hdr__cta .btn span{display:none}
  .hdr__cta .btn{padding:12px;width:46px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}

@media print{
  .hdr,.mbar,.fab,.ticker,.mnav{display:none!important}
  body{background:#fff;color:#000}
}
