html,body{overflow-x:clip}
/* HONO A KAHUNA — langage META (Spectral+Inter, dégradé profond, constellation, pills)
   palette tropicale Polynésie : lagon · corail/hibiscus · or */
:root{
  --ocean:#0A0A0B; --sea:#111113; --sea2:#17171A; --card:#131316; --raise:#1A1A1E;
  --lagoon:#E9E9EC; --lagoon-lit:#F5F5F7; --lagoon-deep:#A5A5AB;
  --coral:#9A9AA0; --coral-lit:#C9C9CE;
  --gold:#E6E6E9; --gold-lit:#FFFFFF;
  --ink:#F5F4F2; --body:#C6C6CA; --muted:#9C9CA2; --faint:#6E6E74;
  --line:rgba(255,255,255,.12); --line-lit:rgba(255,255,255,.18);
  --serif:'Spectral',Georgia,'Times New Roman',serif;
  --sans:'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --shadow:0 2px 8px rgba(0,0,0,.35),0 30px 70px -34px rgba(0,0,0,.7);
  --glow-coral:0 14px 40px -12px rgba(255,255,255,.22);
  --glow-teal:0 14px 40px -12px rgba(255,255,255,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;color:var(--body);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;
  background:var(--ocean);
  background-image:radial-gradient(80% 60% at 82% 8%,rgba(255,255,255,.07),transparent 60%),radial-gradient(70% 55% at 8% 100%,rgba(255,255,255,.05),transparent 60%),linear-gradient(160deg,#111112,#0A0A0B 60%,#070708);
  background-attachment:fixed;}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
h1,h2,h3{font-family:var(--serif);font-weight:800;margin:0;color:var(--ink);letter-spacing:-.015em;line-height:1.05;text-wrap:balance}
p{margin:0}
a{color:inherit}
::selection{background:rgba(255,255,255,.3);color:#000}
.eyebrow{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--lagoon-lit);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:26px;height:2px;background:linear-gradient(90deg,#FFF,#6E6E74);border-radius:2px}
em,.i{font-style:italic}
.lang-en{display:none}
html[data-lang="en"] .lang-fr{display:none}
html[data-lang="en"] .lang-en{display:inline}
html[data-lang="en"] .lang-en.block{display:block}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* Barre utilitaire + bandeau démo */
.util{background:rgba(0,0,0,.6);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.util .wrap{display:flex;align-items:center;gap:20px;height:40px;flex-wrap:wrap}
.util a{color:var(--muted);text-decoration:none;transition:color .2s}
.util a:hover{color:var(--lagoon-lit)}
.util .sep{margin-left:auto}
.demobar{height:34px;line-height:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(90deg,#FFFFFF,#B9B9BD);color:#0B0B0C;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.05em;text-align:center;padding:0 16px}
.demobar b{color:#000}

/* Header */
header{position:sticky;top:0;z-index:50;background:rgba(10,10,11,.72);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:28px;height:74px}
.logo{display:flex;align-items:center;gap:13px;text-decoration:none;margin-right:auto}
.logo img{height:44px;width:auto}
.logo b{font-family:var(--serif);font-weight:800;font-size:clamp(15px,4vw,20px);white-space:nowrap;letter-spacing:.01em;color:var(--ink)}
.nav a.link{font-size:14.5px;color:var(--body);text-decoration:none;transition:color .2s}
.nav a.link:hover{color:var(--lagoon-lit)}
@media (max-width:940px){.nav a.link{display:none}}
.langtog{border:1px solid var(--line-lit);border-radius:999px;overflow:hidden;display:inline-flex}
.langtog button{font-family:var(--sans);font-size:12.5px;font-weight:600;border:0;background:transparent;color:var(--muted);padding:7px 12px;cursor:pointer;transition:.2s}
.langtog button[aria-pressed="true"]{background:#F2F2F2;color:#0B0B0C}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:600;font-size:14.5px;padding:13px 24px;border-radius:999px;text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .25s,background .2s;border:1px solid transparent}
.btn-primary{background:linear-gradient(120deg,#FFFFFF,#CFCFD4);color:#0B0B0C;box-shadow:var(--glow-coral)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 46px -12px rgba(255,255,255,.3)}
.btn.ghost{background:rgba(255,255,255,.07);color:#EAF6F3;border-color:rgba(255,255,255,.42)}
.btn.ghost:hover{border-color:var(--lagoon-lit);color:var(--lagoon-lit)}
.arrow{transition:transform .2s}.btn:hover .arrow{transform:translateX(3px)}

/* HERO */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);min-height:calc(100vh - 146px);min-height:calc(100dvh - 146px);display:flex;align-items:center}
#stars{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-photo{position:absolute;inset:0;z-index:0;background:center/cover no-repeat;opacity:.5;mask-image:linear-gradient(90deg,transparent 30%,#000 78%);-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 78%)}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.22fr .78fr;gap:44px;align-items:center;padding:32px 0;width:100%}
@media (max-width:940px){.hero-inner{grid-template-columns:1fr;gap:32px;padding:56px 0}.hero-photo{opacity:.32;mask-image:linear-gradient(0deg,transparent 5%,#000 60%);-webkit-mask-image:linear-gradient(0deg,transparent 5%,#000 60%)}}
.hero h1{font-size:clamp(36px,4.6vw,58px);margin:22px 0 0}
.hero h1 em{color:var(--gold);background:linear-gradient(120deg,#FFFFFF,#9A9AA0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-style:italic}
.hero .sub{font-size:clamp(17px,2vw,20px);color:#D8D8DB;line-height:1.6;margin:26px 0 0;max-width:46ch}
.hero .acts{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.tags{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;color:var(--body);border:1px solid var(--line-lit);background:rgba(255,255,255,.03);border-radius:999px;padding:9px 16px}
.tag::before{content:"";width:7px;height:7px;border-radius:50%;background:#FFFFFF}
.tag:nth-child(2)::before{background:#C9C9CE}
.tag:nth-child(3)::before{background:#9A9AA0}
.tag:nth-child(4)::before{background:#6E6E74}
.hero-visual{position:relative;perspective:1300px;width:100%;max-width:380px;margin-left:auto;aspect-ratio:4/5}
.hero-visual .card{position:relative;z-index:2;width:100%;height:100%;margin:0;border-radius:18px;overflow:hidden;box-shadow:0 44px 90px -32px rgba(0,0,0,.92),0 0 0 1px var(--line-lit);transform:rotateY(-15deg) rotateX(5deg);transform-style:preserve-3d;will-change:transform;background:#000;animation:floatA 8s ease-in-out infinite;transition:transform .5s}
.hero-visual .card img{width:100%;height:100%;object-fit:cover;display:block}
.hero-visual:hover .card{transform:rotateY(-8deg) rotateX(3deg)}
.hero-visual .glow{position:absolute;inset:-10% -8%;z-index:0;background:radial-gradient(55% 55% at 55% 45%,rgba(255,255,255,.14),transparent 70%),radial-gradient(45% 45% at 70% 80%,rgba(255,255,255,.08),transparent 70%);filter:blur(26px)}
@keyframes floatA{0%,100%{transform:rotateY(-15deg) rotateX(5deg) translateY(0)}50%{transform:rotateY(-15deg) rotateX(5deg) translateY(-14px)}}
@media (prefers-reduced-motion:reduce){.hero-visual .card{animation:none}}
@media (max-width:940px){.hero-visual{max-width:300px;margin:0 auto}.hero-visual .card{transform:rotateY(-10deg) rotateX(3deg);animation:none}}

section{padding:clamp(56px,9vw,96px) 0;border-top:1px solid var(--line);min-height:0}
.shead{max-width:60ch;margin-bottom:48px}
.shead h2{font-size:clamp(32px,4.6vw,52px);margin:16px 0 0}
.shead h2 em{color:var(--gold);font-style:italic;background:linear-gradient(120deg,#FFFFFF,#9A9AA0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.shead p{color:var(--body);margin-top:16px;font-size:17px}

/* Matières */
.mats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media (max-width:900px){.mats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.mats{grid-template-columns:1fr}}
.mat{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);transition:transform .35s,border-color .35s,box-shadow .35s}
.mat:hover{transform:translateY(-8px);border-color:var(--lagoon);box-shadow:var(--glow-teal)}
.mat .swatch{height:200px;overflow:hidden;position:relative}
.mat .swatch img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.mat:hover .swatch img{transform:scale(1.08)}
.mat .swatch::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(6,42,51,.75))}
.mat .body{padding:20px 22px 24px}
.mat h3{font-size:20px;min-height:1.2em;text-wrap:balance}
.mat p{font-size:13.5px;color:var(--body);margin-top:9px;line-height:1.6}

/* Galerie */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;grid-auto-flow:dense}
@media (max-width:760px){.gal{grid-template-columns:1fr 1fr;gap:14px}}
.gal figure{margin:0;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#000;aspect-ratio:4/5;cursor:pointer}
.gal figure.tall{grid-row:span 2;aspect-ratio:auto}
@media (max-width:760px){.gal figure.tall{grid-row:span 1;aspect-ratio:4/5}}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gal figure::after{content:"";position:absolute;inset:0;border-radius:16px;box-shadow:inset 0 0 0 2px rgba(255,255,255,0);transition:box-shadow .4s;pointer-events:none}
.gal figure:hover img{transform:scale(1.07)}
.gal figure:hover::after{box-shadow:inset 0 0 0 2px rgba(255,255,255,.5)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 16px 15px;font-size:13px;font-weight:500;color:#F2F2F2;background:linear-gradient(transparent,rgba(0,0,0,.8));opacity:.9;transform:translateY(6px);transition:.4s}
.gal figure:hover figcaption{opacity:1;transform:none}

/* Process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:760px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:440px){.steps{grid-template-columns:1fr}}
.step{padding:26px 22px;background:var(--card);border:1px solid var(--line);border-radius:16px;transition:.3s}
.step:hover{border-color:var(--lagoon);transform:translateY(-4px)}
.step .n{font-family:var(--serif);font-weight:800;font-size:26px;background:linear-gradient(120deg,var(--gold-lit),var(--coral));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.step h3{font-size:17px;margin-top:12px}
.step p{font-size:13.5px;color:var(--body);margin-top:9px;line-height:1.6}

/* Boutique */
.shop{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:760px){.shop{grid-template-columns:1fr}}
.prod{border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;display:flex;flex-direction:column;transition:.35s}
.prod:hover{transform:translateY(-8px);border-color:var(--coral);box-shadow:var(--glow-coral)}
.prod .ph{height:230px;overflow:hidden}
.prod .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.prod:hover .ph img{transform:scale(1.07)}
.prod .body{padding:18px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.prod h3{font-size:18px}
.prod .price{font-size:13px;font-weight:600;color:var(--gold)}
.prod .buy{margin-top:auto;font-size:13.5px;color:var(--lagoon-lit);text-decoration:none;font-weight:600}
.prod .buy:hover{color:var(--coral-lit)}
.note{font-size:12.5px;color:var(--faint);margin-top:16px;font-style:italic}

/* Atelier */
.about{display:grid;grid-template-columns:.72fr 1.28fr;gap:56px;align-items:center}
@media (max-width:760px){.about{grid-template-columns:1fr;gap:30px}}
.about .por{border-radius:16px;overflow:hidden;border:1px solid var(--line-lit);box-shadow:var(--shadow);max-width:300px}
.about p{color:var(--body);margin-top:18px;line-height:1.8}
.about p strong{color:var(--ink);font-weight:600}
.about .big{font-size:clamp(28px,3.8vw,42px)}
.about .big em{color:var(--gold);font-style:italic;background:linear-gradient(120deg,#FFFFFF,#9A9AA0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* Contact */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:56px}
@media (max-width:760px){.contact{grid-template-columns:1fr;gap:30px}}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.field label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.field input,.field textarea{font-family:var(--sans);font-size:15px;padding:13px 16px;border:1px solid var(--line-lit);border-radius:12px;background:rgba(255,255,255,.04);color:var(--ink);transition:border-color .2s}
.field input:focus,.field textarea:focus{border-color:var(--lagoon-lit);outline:none}
.field textarea{min-height:120px;resize:vertical}
.cinfo{display:flex;flex-direction:column;gap:18px}
.cinfo .row{display:flex;gap:14px;align-items:flex-start}
.cinfo .k{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);width:92px;flex:none;padding-top:3px}
.cinfo a{color:var(--lagoon-lit);text-decoration:none}
.cinfo a:hover{color:var(--coral-lit)}

/* Footer */
footer{background:#070708;color:var(--muted);padding:56px 0 48px;border-top:1px solid var(--line)}
footer .wrap{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap;align-items:flex-start}
footer .brand{font-family:var(--serif);font-weight:800;font-size:23px;color:var(--ink)}
footer a{color:var(--lagoon-lit);text-decoration:none}
footer a:hover{color:var(--coral-lit)}
footer nav{display:flex;flex-direction:column;gap:9px;font-size:13.5px}
footer .made{font-size:13px;color:var(--faint);width:100%;border-top:1px solid var(--line);padding-top:20px;margin-top:8px}

/* Legal */
.legal{max-width:760px;margin:0 auto;padding:60px 0 84px}
.legal h1{font-size:clamp(34px,5vw,48px);margin-bottom:10px}
.legal .upd{font-size:12.5px;color:var(--muted);letter-spacing:.05em;margin-bottom:36px}
.legal h2{font-size:23px;margin:36px 0 12px;color:var(--gold);font-style:italic}
.legal p{color:var(--body);margin:0 0 15px;line-height:1.85}
.legal ul{color:var(--body);line-height:1.85;padding-left:20px}
.legal a{color:var(--lagoon-lit)}
.legal .back{display:inline-block;margin-top:10px;font-size:13.5px;font-weight:600;color:var(--gold);text-decoration:none}
.legal .idcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);margin:8px 0 22px}
.legal .idcard div{margin:5px 0;font-size:15px;color:var(--ink)}
.legal .idcard .k{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);display:inline-block;width:155px}

.reveal{opacity:0;transform:translateY(24px)}
.reveal.in{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}#stars{display:none}}


/* fix clipping du dernier glyphe des mots en dégradé (background-clip:text + italique) */
.hero h1 em,.shead h2 em,.about .big em{padding-right:.16em;margin-right:-.12em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* ===== Carousel hero ===== */
.carousel{position:relative;height:calc(100vh - 146px);height:calc(100dvh - 146px);min-height:520px;max-height:860px;overflow:hidden;border-bottom:1px solid var(--line)}
.carousel .slides,.carousel .slide{position:absolute;inset:0}
.carousel .slide{background:#050506 right center/contain no-repeat;opacity:0;transition:opacity .9s ease;display:flex;align-items:center}
.carousel .slide.on{opacity:1;z-index:2}
.carousel .veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,6,.96) 0%,rgba(5,5,6,.78) 38%,rgba(5,5,6,.08) 66%,transparent 82%),linear-gradient(0deg,rgba(5,5,6,.55),transparent 40%)}
.carousel .scontent{position:relative;z-index:2;width:100%}
.carousel h1{font-size:clamp(34px,4.4vw,56px);line-height:1.12;margin:20px 0 0;max-width:15ch}
.carousel h1 em{color:var(--gold);font-style:italic;background:linear-gradient(120deg,#FFFFFF,#9A9AA0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:.14em;margin-right:-.1em}
.carousel .sub{font-size:clamp(16px,1.9vw,19px);color:#D8D8DB;margin:20px 0 0;max-width:44ch}
.carousel .acts{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.cbtn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-lit);background:rgba(0,0,0,.55);color:var(--ink);font-size:26px;line-height:1;cursor:pointer;transition:.2s;backdrop-filter:blur(6px)}
.cbtn:hover{border-color:var(--gold);color:var(--gold)}
.cbtn.prev{left:18px}.cbtn.next{right:18px}
.cdots{position:absolute;left:0;right:0;bottom:6px;z-index:5;display:flex;gap:10px;justify-content:center}

@media (max-width:700px){.cbtn{display:none}.carousel{min-height:560px}.carousel .slide{background-position:center bottom;background-size:contain}.carousel .scontent{align-self:flex-start;padding-top:26px}}

/* ===== Nav dropdown + état actif ===== */
.nav a.link.on,.dd.on .ddbtn{color:var(--gold)}
.dd{position:relative;display:inline-block}
.ddbtn{font-family:var(--sans);font-size:14.5px;color:var(--body);background:none;border:0;cursor:pointer;padding:24px 0;transition:color .2s}
.ddbtn:hover{color:var(--lagoon-lit)}
.ddmenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);min-width:190px;background:#121214;border:1px solid var(--line-lit);border-radius:12px;box-shadow:var(--shadow);padding:8px;display:none;z-index:60}
.dd:hover .ddmenu,.dd:focus-within .ddmenu{display:block}
.ddmenu a{display:block;padding:10px 14px;border-radius:8px;font-size:14px;color:var(--body);text-decoration:none}
.ddmenu a:hover{background:rgba(255,255,255,.06);color:var(--gold)}
@media (max-width:940px){.dd{display:none}}

/* ===== En-têtes de page + galerie page ===== */
.pagehead{padding:64px 0 28px}
.pgtitle{font-size:clamp(34px,5vw,58px);margin:16px 0 0}
.pgtitle em{color:var(--gold);font-style:italic;background:linear-gradient(120deg,#FFFFFF,#9A9AA0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:.14em;margin-right:-.1em}
.pgsub{color:var(--body);margin-top:16px;font-size:17px;max-width:66ch}
.gal-page figure{aspect-ratio:1/1}
.gal figure a{display:block;width:100%;height:100%}
.gal figure a img{width:100%;height:100%;object-fit:cover}
.mat{text-decoration:none;color:inherit;display:flex;flex-direction:column}


.porstack{display:flex;flex-direction:column;gap:16px;max-width:300px}
.porstack img{border-radius:16px;border:1px solid var(--line-lit);box-shadow:var(--shadow);width:100%}

/* ===== Menu mobile (burger) ===== */
.burger{display:none;font-size:24px;line-height:1;background:none;border:1px solid var(--line-lit);border-radius:10px;color:var(--ink);width:46px;height:46px;cursor:pointer}
.mobilemenu{display:none}
@media (max-width:940px){
  .burger{display:inline-flex;align-items:center;justify-content:center}
  .navdevis{display:none}
  .mobilemenu.open{display:flex;flex-direction:column;background:#101012;border-top:1px solid var(--line);padding:10px 24px 16px}
  .mobilemenu a{padding:14px 6px;font-size:16px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
  .mobilemenu a:last-child{border-bottom:0;color:var(--gold);font-weight:600}
}
/* ===== Carousel : pause accessible + dots cliquables ===== */
.cplay{position:absolute;right:18px;bottom:14px;z-index:6;width:44px;height:44px;border-radius:50%;border:1px solid #666;background:rgba(255,255,255,.10);color:#DDD;font-size:15px;cursor:pointer;backdrop-filter:blur(6px)}
.cplay:hover{border-color:var(--gold);color:var(--gold)}
.cdots button{width:44px;height:44px;background:transparent!important;border:0;position:relative;cursor:pointer;padding:0}
.cdots button::after{content:"";position:absolute;left:6px;right:6px;top:21px;height:2px;border-radius:1px;background:rgba(255,255,255,.28);transition:all .3s ease}
.cdots button.on::after{background:#FFF;height:3px;left:2px;right:2px}
/* ===== Overflow mobile + cibles tactiles ===== */
.util .wrap{flex-wrap:wrap;height:auto;min-height:40px;padding-top:4px;padding-bottom:4px;row-gap:0}
.util a{padding:0 3px;display:inline-flex;align-items:center;min-height:44px}
.cinfo div{overflow-wrap:anywhere}
.cinfo a{overflow-wrap:normal}
@media (max-width:700px){.util .wrap span:not(.sep){display:none}}
footer nav a{padding:8px 0;display:inline-flex;min-height:40px;align-items:center}

/* [7] Section CTA de clôture */
.cta-final{text-align:center;display:grid;gap:14px;justify-items:center;padding:clamp(56px,9vw,88px) 0}
.cta-final h2{font-size:clamp(26px,3.8vw,40px)}
.cta-final p{color:var(--muted);font-size:16px}
/* [6] cibles tactiles complémentaires */
.langtog button{min-height:40px;min-width:44px}
footer p a{display:inline-flex;align-items:center;min-height:40px;padding:0 3px}
/* [12] bandeau démo court en mobile */
.demo-short{display:none}
@media (max-width:520px){.demobar .lang-fr .demo-full,.demobar .lang-en .demo-full{display:none}.demo-short{display:inline}}
/* [18] contact : colonnes équilibrées */
.contact .cinfo{align-self:stretch;justify-content:flex-start;row-gap:20px}
.cinfo .row div:last-child{min-width:0}

/* ===== Audit v2 ===== */
/* [P4] tablette/mobile : pas de flèches (swipe + lignes), plus de collision avec le H1 */
@media (max-width:1023px){.cbtn{display:none}}
/* [P3] mobile : hero carousel compact, image plus présente */
@media (max-width:700px){
  .carousel{min-height:640px}
  .carousel h1{font-size:clamp(30px,8.6vw,38px)}
  .carousel .slide{background-position:center calc(100% - 8px);background-size:auto 46%}
  .cdots{bottom:2px}
}
/* [P7] étapes : 2 colonnes en tablette */
@media (min-width:640px) and (max-width:1023px){.steps{grid-template-columns:repeat(2,1fr)}}
/* [P10] présentation tablette : portrait ancré au texte */
@media (min-width:761px) and (max-width:1023px){.about{grid-template-columns:280px 1fr;gap:44px}}
/* [P11] galeries multiples de 4 : 4 colonnes desktop = rangées pleines */
@media (min-width:1100px){.gal-page.cols4{grid-template-columns:repeat(4,1fr)}}
/* [P12] topbar mobile : téléphone seul (email/réseaux vivent dans footer+contact) */
@media (max-width:480px){.util a[href^="mailto"],.util a[href*="facebook"],.util a[href*="tiktok"],.util a[href*="instagram"],.util .sep{display:none}}
/* [P15] footer mobile : familles séparées, colonnes aérées */
@media (max-width:640px){footer .wrap{flex-direction:column;gap:18px}footer nav{gap:4px}}
/* [P16] titres : jamais contraints en tablette */
@media (max-width:1023px){.pgtitle,.shead h2{max-width:100%}}
/* [P19] galerie mobile : gouttières uniformes */
@media (max-width:760px){.gal{gap:14px}}
/* [P22] contact : colonne infos alignée */
.contact .cinfo{align-self:start}
/* [P23] note RGPD sous le formulaire */
.form-note{font-size:13px;color:var(--faint);margin-top:12px}
.form-note a{color:var(--muted)}
/* [P24] textarea : resize vertical desktop, aucun au doigt */
textarea{resize:vertical}
@media (max-width:768px){textarea{resize:none}}
/* [P17] sous-titres présentation */
.subh{font-family:var(--serif);font-size:19px;letter-spacing:.02em;color:var(--ink);margin:26px 0 8px}
/* header mobile : rien ne se chevauche */
.langtog,.burger{flex:0 0 auto}
.logo{min-width:0}
@media (max-width:940px){.nav{gap:10px}}
@media (max-width:480px){.logo b{display:none}.logo img{height:40px}}



/* ===== Lightbox ===== */
.lb{position:fixed;inset:0;z-index:200;background:rgba(3,3,4,.94);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb img{max-width:88vw;max-height:82vh;border-radius:8px;box-shadow:0 40px 120px rgba(0,0,0,.9)}
.lb-x{position:absolute;top:18px;right:20px;width:46px;height:46px;border-radius:50%;border:1px solid #555;background:rgba(255,255,255,.08);color:#EEE;font-size:18px;cursor:pointer}
.lb-x:hover{border-color:#FFF;color:#FFF}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:1px solid #555;background:rgba(255,255,255,.08);color:#EEE;font-size:28px;line-height:1;cursor:pointer}
.lb-nav:hover{border-color:#FFF;color:#FFF}
.lb-prev{left:18px}.lb-next{right:18px}
.lb-cap{position:absolute;left:0;right:0;bottom:20px;text-align:center;color:#CCC;font-size:14px}
@media (max-width:700px){.lb-nav{display:none}.lb img{max-width:94vw}}
.gal figure img{cursor:zoom-in}
/* ===== Chips filtres ===== */
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.chip{font-family:var(--sans);font-size:14px;font-weight:600;padding:10px 18px;border-radius:999px;border:1px solid var(--line-lit);background:transparent;color:var(--body);cursor:pointer;transition:.2s;min-height:44px}
.chip:hover{border-color:#FFF;color:#FFF}
.chip.on{background:#F2F2F2;color:#0B0B0C;border-color:#F2F2F2}
