@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Work+Sans:wght@400;500;600;700&display=swap');

  /* Kozy & Klean's identity is a deep pine green — this is the site's real
     look, not a conditional "dark mode": it renders this way by default,
     whatever the visitor's OS preference. A lighter alternative only shows
     up if the surrounding app explicitly asks for a light theme. */
  :root{
    --ink:#F2E9D8;
    --pine:#8FB39B;
    --pine-dark:#7BA189;
    --pine-deep:#0A130F;
    --blush:#E3A896;
    --blush-soft:#2E2119;
    --blush-deep:#D89684;
    --gold:#D9B872;
    --cream:#0F1E17;
    --paper:#182A21;
    --line:#2C4136;
    --muted:#9FB0A3;
    --shadow: 0 24px 55px -26px rgba(0,0,0,0.6);
    --radius: 12px;
    --radius-sm: 10px;
    --radius-md: 18px;
    --radius-lg: 28px;
    /* Hero panel is a fixed palette (the poster's deep tunic green), a shade
       brighter than the page itself so it still reads as a framed panel. */
    --hero-1:#152A20;
    --hero-2:#1E3F2C;
    --hero-3:#2F5A40;
    --hero-glow:#E3AFA0;
    --hero-glow-2:#D9B872;
  }
  @media (prefers-reduced-motion: reduce){ :root{ scroll-behavior:auto; } }
  @media (prefers-reduced-motion: no-preference){ :root{ scroll-behavior:smooth; } }
  :root[data-theme="dark"]{
    --ink:#F2E9D8;
    --pine:#8FB39B;
    --pine-dark:#7BA189;
    --pine-deep:#0A130F;
    --blush:#E3A896;
    --blush-soft:#2E2119;
    --blush-deep:#D89684;
    --gold:#D9B872;
    --cream:#0F1E17;
    --paper:#182A21;
    --line:#2C4136;
    --muted:#9FB0A3;
    --shadow: 0 24px 55px -26px rgba(0,0,0,0.6);
  }
  /* Opt-out only: shows up if the host app explicitly forces a light theme. */
  :root[data-theme="light"]{
    --ink:#2B2521;
    --pine:#3B5A46;
    --pine-dark:#2A4432;
    --pine-deep:#1E3226;
    --blush:#CC8F80;
    --blush-soft:#F1DCCF;
    --blush-deep:#E3AFA0;
    --gold:#B4924F;
    --cream:#F4E9CE;
    --paper:#FFFDF7;
    --line:#E6D6B4;
    --muted:#7C6B54;
    --shadow: 0 24px 50px -28px rgba(122,88,72,0.38);
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    padding-inline:0;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', Georgia, 'Times New Roman', serif;
    font-weight:500;
    color:var(--ink);
    margin:0;
    text-wrap:balance;
  }
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%;}
  .wrap{max-width:1120px;margin-inline:auto;padding-inline:24px;}
  @media (max-width:640px){ .wrap{padding-inline:18px;} }

  .eyebrow{
    font-family:'Work Sans',sans-serif;
    font-size:12.5px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--gold);
    font-weight:600;
  }

  /* ---------- nav ---------- */
  header.nav{
    position:sticky;
    top:env(safe-area-inset-top,0px);
    z-index:50;
    background:var(--cream);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    display:flex;align-items:center;justify-content:space-between;
    padding-block:16px;
    gap:16px;
  }
  .brand{
    font-family:'Fraunces',serif;
    font-size:20px;
    letter-spacing:.02em;
    font-weight:600;
    white-space:nowrap;
    color:var(--gold);
    flex-shrink:1;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .brand span{color:var(--gold);}
  nav.links{display:flex;gap:28px;align-items:center;}
  nav.links a{
    font-size:13.5px;
    text-decoration:none;
    color:var(--ink);
    letter-spacing:.02em;
    opacity:.82;
  }
  nav.links a:hover{opacity:1;}
  [hidden]{display:none !important;}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:12px 22px;
    border-radius:var(--radius);
    font-size:13.5px;
    font-weight:600;
    letter-spacing:.03em;
    text-decoration:none;
    cursor:pointer;
    border:1px solid transparent;
    transition:transform .15s ease, opacity .15s ease, background .15s ease, box-shadow .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--gold);color:#231a09;}
  .btn-primary:hover{opacity:.9;box-shadow:0 10px 24px -12px rgba(217,184,114,0.55);}
  .btn-ghost{background:transparent;border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--gold);}
  .btn-gold{background:var(--gold);color:#231a09;}
  .btn-gold:hover{opacity:.9;}
  .btn-block{width:100%;}
  .nav-cta{
    display:inline-flex;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease, visibility .25s ease;
  }
  body.show-nav-cta .nav-cta{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  @media (max-width:600px){
    .nav-inner{gap:10px;}
    .nav-actions{gap:6px;}
    .nav-cta{
      padding:10px 12px;
      font-size:11.5px;
      white-space:nowrap;
      flex-shrink:0;
    }
    .mobile-menu-btn{
      flex-shrink:0;
      padding:8px;
    }
  }
  @media (max-width:480px){
    .nav-inner{gap:8px;}
    .nav-actions{gap:4px;}
    .brand{font-size:15px;}
    .brand-mark{width:18px;height:18px;margin-right:6px;}
    .nav-cta{padding:7px 9px;font-size:10px;}
    .mobile-menu-btn{padding:6px;}
  }
  nav.links{display:none;}
  @media (min-width:900px){ nav.links{display:flex;} }

  .mobile-menu-btn{
    display:inline-flex;
    background:none;border:1px solid var(--line);
    border-radius:var(--radius);
    padding:8px 10px;
    cursor:pointer;
    color:var(--ink);
  }
  @media (min-width:900px){ .mobile-menu-btn{display:none;} }
  #mobileNav{
    display:none;
    flex-direction:column;
    gap:2px;
    padding-block:6px 16px;
    border-top:1px solid var(--line);
  }
  #mobileNav.open{display:flex;}
  #mobileNav a{
    padding:10px 4px;
    text-decoration:none;
    color:var(--ink);
    font-size:14.5px;
    border-bottom:1px solid var(--line);
  }

  /* ---------- language switcher ---------- */
  .lang-switch{
    display:flex;
    align-items:center;
    gap:2px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:3px;
    flex-shrink:0;
  }
  .lang-switch a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 9px;
    font-size:11.5px;
    font-weight:600;
    letter-spacing:.04em;
    text-decoration:none;
    color:var(--muted);
    border-radius:calc(var(--radius) - 3px);
    transition:background .2s ease, color .2s ease;
  }
  .lang-switch a:hover{color:var(--ink);}
  .lang-switch a.is-active{background:var(--gold);color:#231a09;}
  @media (max-width:600px){
    .lang-switch a{padding:5px 7px;font-size:10.5px;}
  }

  section{padding-block:88px;}
  @media (max-width:640px){ section{padding-block:56px;} }
  .band-paper{background:var(--paper);}
  .band-cream{background:var(--cream);}

  .divider{
    display:flex;align-items:center;justify-content:center;gap:14px;
    color:var(--gold);
    padding-block:6px;
  }
  .divider .rule{height:1px;width:56px;background:var(--line);}

  /* ---------- hero ---------- */
  .hero{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:56px;
    align-items:center;
    padding-block:72px 96px;
  }
  @media (max-width:900px){ .hero{grid-template-columns:1fr;padding-block:40px 56px;} }
  .hero h1{
    font-size:clamp(38px,5.4vw,64px);
    line-height:1.04;
    margin-top:14px;
  }
  .hero .lede{
    margin-top:22px;
    font-size:18px;
    color:var(--muted);
    max-width:46ch;
  }
  .hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}
  .hero .quote{
    margin-top:44px;
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:19px;
    color:var(--pine);
    border-left:2px solid var(--gold);
    padding-left:18px;
    max-width:44ch;
  }
  .trustbar{
    margin-top:40px;
    display:flex;flex-wrap:wrap;gap:10px 28px;
  }
  .trustbar span{
    font-size:12.5px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--gold);
    display:flex;align-items:center;gap:8px;
  }
  .trustbar span::before{content:"";width:5px;height:5px;background:var(--gold);border-radius:50%;display:inline-block;}

  .hero-art{
    position:relative;
    aspect-ratio:4/5;
    background:
      radial-gradient(120% 90% at 18% 4%, rgba(227,175,160,.22) 0%, transparent 58%),
      radial-gradient(100% 100% at 90% 96%, rgba(217,184,114,.22) 0%, transparent 55%),
      linear-gradient(160deg, var(--hero-3), var(--hero-2) 55%, var(--hero-1));
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  /* repeating house + palm "tapestry" behind everything, like a subtle wallpaper */
  .hero-tapestry{
    position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20120%20120%22%3E%3Cg%20stroke%3D%22%23F4E9CE%22%20stroke-width%3D%223%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M33%2091%20C31%2079%2033%2067%2038%2057%20C40%2053%2040%2049%2042%2044%22/%3E%3C/g%3E%3Cg%20fill%3D%22%23F4E9CE%22%20stroke%3D%22none%22%3E%3Cpath%20d%3D%22M42%2044%20C34%2042%2026%2044%2020%2051%20C29%2052%2037%2050%2042%2044%20Z%22/%3E%3Cpath%20d%3D%22M42%2044%20C36%2035%2028%2030%2019%2030%20C24%2039%2033%2044%2042%2044%20Z%22/%3E%3Cpath%20d%3D%22M42%2044%20C41%2034%2044%2025%2049%2018%20C53%2027%2051%2037%2042%2044%20Z%22/%3E%3Cpath%20d%3D%22M42%2044%20C49%2034%2058%2030%2067%2031%20C62%2040%2053%2045%2042%2044%20Z%22/%3E%3Cpath%20d%3D%22M42%2044%20C50%2041%2058%2042%2064%2048%20C56%2051%2047%2050%2042%2044%20Z%22/%3E%3C/g%3E%3Cg%20stroke%3D%22%23F4E9CE%22%20stroke-width%3D%223%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M56%2091%20L56%2063%20L73%2047%20L90%2063%20L90%2091%22/%3E%3Cpath%20d%3D%22M69%2091%20L69%2075%20L80%2075%20L80%2091%22/%3E%3C/g%3E%3C/svg%3E");
    background-size:92px 92px;
    background-position:-10px -10px;
    opacity:.10;
  }
  /* soft ambient glows, like light through leaves */
  .hero-glow-a, .hero-glow-b{position:absolute;border-radius:50%;filter:blur(30px);animation:float 9s ease-in-out infinite;}
  .hero-glow-a{width:46%;aspect-ratio:1;background:rgba(227,175,160,.20);top:2%;left:4%;}
  .hero-glow-b{width:38%;aspect-ratio:1;background:rgba(217,184,114,.20);bottom:4%;right:2%;animation-delay:-4s;}
  @keyframes float{0%,100%{transform:translateY(0) translateX(0);}50%{transform:translateY(-16px) translateX(8px);}}
  @media (prefers-reduced-motion: reduce){ .hero-glow-a,.hero-glow-b{animation:none;} }

  /* soft grounding glow beneath the ladies, like light pooling on a floor */
  .hero-ground{
    position:absolute;left:50%;top:78%;width:70%;height:14%;
    transform:translate(-50%,-50%);
    background:radial-gradient(closest-side, rgba(244,233,206,.30), transparent 75%);
    filter:blur(2px);
  }
  .hero-photo{
    position:absolute;left:50%;top:50%;
    width:84%;max-width:340px;
    transform:translate(-50%,-50%);
    filter:drop-shadow(0 22px 30px rgba(10,20,14,.45));
    animation:heroFloat 7s ease-in-out infinite;
  }
  .hero-photo img{display:block;width:100%;height:auto;}
  @keyframes heroFloat{0%,100%{transform:translate(-50%,-50%);}50%{transform:translate(-50%,calc(-50% - 8px));}}
  @media (prefers-reduced-motion: reduce){ .hero-photo{animation:none;} }

  .hero-sparkles{position:absolute;inset:0;pointer-events:none;}
  .spark{animation:twinkle 3.6s ease-in-out infinite;transform-origin:center;}
  @keyframes twinkle{0%,100%{opacity:0;transform:scale(.5);}50%{opacity:1;transform:scale(1);}}
  @media (prefers-reduced-motion: reduce){ .spark{animation:none;opacity:.7;} }

  /* ---- small brand mark used in header / footer ---- */
  .brand-mark{width:22px;height:22px;color:var(--gold);flex:none;margin-right:9px;vertical-align:-5px;}

  /* ---------- section headers ---------- */
  .sec-head{max-width:64ch;margin-bottom:52px;}
  .sec-head h2{font-size:clamp(28px,3.6vw,40px);margin-top:10px;}
  .sec-head p{color:var(--muted);margin-top:14px;font-size:16.5px;}
  .sec-head.center{margin-inline:auto;text-align:center;}

  /* ---------- about ---------- */
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
  @media (max-width:840px){ .about-grid{grid-template-columns:1fr;gap:36px;} }
  .about-grid p + p{margin-top:16px;}
  .about-grid .body{color:var(--ink);font-size:16.5px;}
  .pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);}
  .pillar{
    padding:32px 24px;border-left:1px solid var(--line);
    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  }
  .pillar:first-child{border-left:none;}
  .pillar h4{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-family:'Work Sans',sans-serif;color:var(--gold);}
  .pillar p{color:var(--muted);font-size:14px;margin-top:9px;line-height:1.55;max-width:26ch;}
  @media (max-width:900px){
    .pillars{grid-template-columns:1fr 1fr;}
    .pillar:nth-child(2n+1){border-left:none;}
    .pillar:nth-child(n+3){border-top:1px solid var(--line);padding-top:24px;}
  }
  @media (max-width:480px){
    .pillars{grid-template-columns:1fr;}
    .pillar{border-left:none !important;padding:22px 0 !important;border-top:1px solid var(--line);}
    .pillar:first-child{border-top:none;padding-top:0 !important;}
  }
  .signature-block{
    margin-top:28px;
    display:flex;gap:14px;align-items:center;
    font-size:14px;color:var(--gold);
  }
  .avatar-mark{
    width:40px;height:40px;border-radius:50%;
    background:var(--pine-deep);
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;color:var(--gold);font-size:15px;flex:none;
  }

  /* ---------- services ---------- */

  /* ---------- approach ---------- */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0 36px;position:relative;}
  @media (max-width:860px){ .steps{grid-template-columns:1fr 1fr;gap:36px 32px;} }
  @media (max-width:520px){ .steps{grid-template-columns:1fr;gap:34px;} }
  .step{
    position:relative;
    padding-bottom:16px;
    opacity:.62;
    cursor:pointer;
    transition:opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
    transform:scale(1);
    z-index:1;
  }
  a.step{display:block;text-decoration:none;color:inherit;}
  .step::before{
    content:"";
    position:absolute;
    inset:-16px -14px -14px -14px;
    border-radius:var(--radius-md);
    border:1px solid transparent;
    background:var(--paper);
    opacity:0;
    transition:opacity .5s ease, border-color .5s ease;
    pointer-events:none;
    z-index:-1;
  }
  .step.is-active{opacity:1;z-index:2;}
  .step.is-active::before{opacity:1;border-color:var(--gold);background:rgba(217,184,114,.1);}
  .step-num{
    font-family:'Fraunces',serif;font-size:34px;color:var(--gold);line-height:1;
  }
  .step h4{margin-top:14px;font-size:17px;font-weight:500;color:var(--gold);}
  .step p{margin-top:10px;color:var(--muted);font-size:14.5px;}

  /* ---------- methods ---------- */
  .services-footnote{display:flex;flex-wrap:wrap;gap:14px 32px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}
  .sf-item{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--muted);}
  .sf-item svg{flex:none;color:var(--gold);}

  /* ---------- nos services : onglets + carrousel des catégories ---------- */
  #services .sec-head p{margin-top:8px;}
  .offer-tabs{
    display:flex;flex-wrap:nowrap;gap:8px;margin-top:18px;
    overflow-x:auto;padding-bottom:6px;
    scrollbar-width:none;-ms-overflow-style:none;
  }
  .offer-tabs.is-scrollable{
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent 100%);
    mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent 100%);
  }
  .offer-tabs::-webkit-scrollbar{display:none;}
  .tab-btn{
    display:flex;align-items:center;gap:9px;padding:9px 15px;border-radius:var(--radius);flex:none;
    border:1px solid var(--line);background:var(--paper);color:var(--muted);cursor:pointer;
    font-family:'Work Sans',sans-serif;font-size:13px;font-weight:600;white-space:nowrap;
    transition:border-color .25s ease,color .25s ease,background .25s ease;
  }
  .tab-btn svg{flex:none;}
  .tab-btn.is-on{border-color:var(--gold);color:var(--gold);background:rgba(217,184,114,.1);}
  .offer-carousel{
    position:relative;margin-top:14px;background:var(--paper);border:1px solid var(--line);
    border-radius:var(--radius-md);min-height:200px;overflow:hidden;
  }
  .car-arrow{
    position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:34px;border-radius:50%;
    border:1px solid var(--line);background:var(--cream);color:var(--gold);cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:border-color .2s ease;
  }
  .car-arrow:hover{border-color:var(--gold);}
  .car-arrow.prev{left:12px;}
  .car-arrow.next{right:12px;}
  .car-track{position:relative;min-height:200px;}
  .car-slide{
    padding:26px 60px;opacity:0;position:absolute;inset:0;transition:opacity .35s ease, transform .35s ease;
    transform:translateX(14px);display:flex;flex-direction:column;align-items:center;text-align:center;
    pointer-events:none;
  }
  .car-slide.is-on{position:relative;opacity:1;transform:translateX(0);pointer-events:auto;}
  @media (max-width:640px){ .car-slide{padding:22px 40px;} }
  .car-head{display:flex;align-items:center;gap:14px;width:100%;max-width:640px;text-align:left;}
  .car-icon{
    width:44px;height:44px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);
    background:color-mix(in srgb, var(--gold) 12%, transparent);
    display:flex;align-items:center;justify-content:center;flex:none;
  }
  .car-head-text{display:flex;flex-direction:column;gap:3px;min-width:0;}
  .car-slide h3{font-size:18px;font-weight:500;color:var(--gold);font-family:'Fraunces',serif;text-align:left;}
  .car-slide .car-tag{color:var(--muted);font-size:13.5px;text-align:left;}
  .car-slide ul{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);
    display:flex;flex-direction:column;gap:7px;max-width:640px;width:100%;}
  .car-slide li{display:flex;gap:9px;font-size:14px;color:var(--muted);text-align:left;}
  .car-slide li svg{flex:none;color:var(--pine);margin-top:2px;}
  .car-slide .desc-only{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);max-width:640px;width:100%;text-align:left;}
  .car-dots{display:flex;justify-content:center;gap:6px;margin-top:10px;}
  .car-dot{width:6px;height:6px;border-radius:50%;background:var(--line);cursor:pointer;transition:background .2s ease;}
  .car-dot.is-on{background:var(--gold);}
  .fm-open{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:14.5px;font-style:italic;}

  .freq-row{
    margin-top:14px;
    display:flex;flex-wrap:wrap;gap:10px;
  }
  .freq-tile{
    position:relative;
    display:flex;align-items:baseline;gap:6px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:transparent;
    padding:8px 16px;
    cursor:pointer;
    transition:border-color .4s ease, background-color .5s ease;
  }
  .freq-tile.is-active{
    border-color:var(--gold);
    background:rgba(217,184,114,.1);
  }
  .freq-tile b{font-family:'Work Sans',sans-serif;font-size:13px;font-weight:600;color:var(--ink);}
  .freq-tile span{font-size:11.5px;color:var(--gold);letter-spacing:.02em;}

  /* ---------- zone desservie ---------- */
  .zones-wrap{max-width:720px;margin-inline:auto;}

  .zone-checker{max-width:520px;margin-inline:auto;}
  .zone-checker label{display:block;font-size:12.5px;font-weight:600;letter-spacing:.16em;color:var(--gold);text-transform:uppercase;margin-bottom:8px;text-align:center;}
  .zone-checker-row{display:flex;gap:10px;}
  .zone-checker-row input{
    font:inherit;flex:1;min-width:0;
    padding:12px 13px;border:1px solid var(--line);background:var(--paper);color:var(--ink);
    border-radius:var(--radius-sm);
  }
  .zone-checker-row input:focus{outline:2px solid var(--pine);outline-offset:1px;}
  .zone-checker-row .btn{padding:12px 18px;white-space:nowrap;}
  @media (max-width:480px){ .zone-checker-row{flex-direction:column;} }
  .zone-checker-result{margin-top:12px;font-size:13.5px;color:var(--muted);min-height:1.4em;text-align:center;}
  .zone-checker-result.is-found{color:var(--ink);}
  .zone-checker-result b{color:var(--gold);}

  /* ---------- simulator / form ---------- */
  .atelier{
    background:var(--paper);
    border:1px solid var(--gold);
    border-radius:var(--radius-md);
    padding:40px;
    box-shadow:var(--shadow);
  }
  @media (max-width:640px){ .atelier{padding:24px;} }
  .field{display:flex;flex-direction:column;gap:7px;}
  .field label{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--gold);}
  .field label .opt{color:var(--muted);font-weight:400;}
  .field-hint{color:var(--muted);font-weight:400;font-size:12.5px;margin-top:-2px;}
  .field-suggest{color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
  .field-suggest[hidden]{display:none;}
  .field input[type="text"],
  .field input[type="tel"],
  .field input[type="email"],
  .field input[type="date"],
  .field select,
  .field textarea{
    font:inherit;
    padding:12px 13px;
    border:1px solid var(--line);
    background:var(--cream);
    color:var(--ink);
    border-radius:var(--radius-sm);
    width:100%;
  }
  .field textarea{resize:vertical;min-height:90px;}
  .tel-group{display:flex;flex-wrap:wrap;gap:8px;}
  .tel-group select{flex:1 1 140px;min-width:126px;}
  .tel-group input{flex:2 1 160px;min-width:140px;}
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:2px solid var(--pine);outline-offset:1px;
  }
  .field-error{
    display:none;
    color:#E4A0A0;font-size:12.5px;
    margin-top:-2px;
  }
  :root[data-theme="light"] .field-error{color:#8B3A3A;}
  .field.has-error input{border-color:#E4A0A0;}
  :root[data-theme="light"] .field.has-error input{border-color:#8B3A3A;}
  .field.has-error .field-error{display:block;}
  .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
  .grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;}
  .form-section-title{
    margin-top:38px;margin-bottom:18px;
    display:flex;align-items:center;gap:12px;
  }
  .form-section-title span.n{
    font-family:'Fraunces',serif;color:var(--gold);font-size:15px;border:1px solid var(--gold);
    width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;
  }
  .form-section-title h4,
  .contact-row h4{font-size:15px;font-weight:600;font-family:'Work Sans',sans-serif;letter-spacing:.01em;color:var(--gold);}
  .form-section-title:first-child{margin-top:0;}


  .step-intro{color:var(--muted);font-size:14px;margin-bottom:16px;}

  .choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
  .choice-grid.freq{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));}
  .choice-grid.services{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;}
  .choice-grid.type{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
  .choice{
    position:relative;
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    padding:14px 14px 14px 40px;
    cursor:pointer;
    font-size:14px;
    background:var(--cream);
    transition:border-color .2s ease, background .3s ease, transform .15s ease, box-shadow .3s ease;
  }
  .choice:hover{border-color:var(--gold);transform:translateY(-2px);}
  .choice input{position:absolute;left:14px;top:16px;accent-color:var(--gold);}
  .choice b{display:block;font-size:14.5px;}
  .choice span{display:block;color:var(--muted);font-size:12.5px;margin-top:3px;}
  .choice:has(input:checked){
    border-color:var(--gold);
    background:var(--pine-deep);
    box-shadow:0 0 0 1px var(--gold), 0 0 32px 6px rgba(217,184,114,.35);
  }
  .choice:has(input:checked) b{color:var(--gold);}

  /* ---------- service-category cards (soumission, étape "Vos besoins") ---------- */
  .choice-grid.services .choice{
    padding:19px 44px 18px 20px;
    border-radius:var(--radius);
  }
  .choice-grid.services .choice input{left:auto;right:16px;top:18px;}
  .choice .choice-head{display:flex;align-items:center;gap:9px;margin:0;color:var(--gold);}
  .choice-head svg{flex:none;opacity:.9;}
  .choice-grid.services .choice b{color:var(--gold);font-size:14.5px;letter-spacing:.005em;}
  .choice-grid.services .choice > span:last-child{display:block;margin-top:7px;line-height:1.5;}

  /* ---------- compact single-digit pills (chambres, salles de bain) ---------- */
  .choice-grid.compact{grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:8px;}
  .choice-grid.compact .choice{
    padding:13px 8px 11px;
    text-align:center;
  }
  .choice-grid.compact .choice input{position:static;display:block;margin:0 auto 7px;}
  .choice-grid.compact .choice b{font-size:15px;}

  .consent{display:flex;gap:12px;align-items:flex-start;margin-top:28px;font-size:13.5px;color:var(--muted);}
  .consent input{margin-top:3px;accent-color:var(--gold);}

  /* ---------- wizard ---------- */
  .wizard-progress{margin-bottom:30px;}
  .wp-bar{height:5px;background:var(--line);border-radius:6px;overflow:hidden;}
  .wp-fill{height:100%;width:20%;background:linear-gradient(90deg, var(--blush), var(--gold));border-radius:6px;transition:width .35s ease;}
  .wp-label{margin-top:10px;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold);}
  .wizard-step{animation:stepIn .35s ease;}
  @keyframes stepIn{from{opacity:0;transform:translateX(10px);}to{opacity:1;transform:translateX(0);}}
  @media (prefers-reduced-motion: reduce){ .wizard-step{animation:none;} }
  .wizard-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:34px;padding-top:26px;border-top:1px solid var(--line);}
  @media (max-width:480px){ .wizard-nav .btn{padding:12px 16px;font-size:12.5px;} }
  .wizard-nav #wizNext, .wizard-nav #wizSubmit{margin-left:auto;}
  .wizard-nav .btn:disabled{opacity:.35;cursor:not-allowed;transform:none;}

  #formError{display:none;color:#E4A0A0;font-size:13.5px;margin-top:14px;padding:10px 12px;border:1px solid #E4A0A0;}
  :root[data-theme="light"] #formError{color:#8B3A3A;border-color:#8B3A3A;}

  #resumePanel{display:none;margin-top:36px;border-top:2px solid var(--gold);padding-top:28px;}
  .atelier h3{font-size:20px;margin-top:10px;}
  .resume-hint{margin-top:8px;font-size:13px;color:var(--muted);}
  #resumeBody{margin-top:16px;font-size:14.5px;background:var(--cream);border:1px solid var(--line);padding:20px;white-space:pre-wrap;font-family:'Work Sans',sans-serif;line-height:1.7;cursor:text;border-radius:var(--radius-sm);}
  #resumeBody:focus{outline:2px solid var(--pine);outline-offset:2px;}
  .resume-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;}
  .send-status{margin-top:12px;font-size:14.5px;line-height:1.6;}
  .send-status.is-ok{color:var(--gold);}
  .send-status.is-error{color:#E4A0A0;}
  :root[data-theme="light"] .send-status.is-error{color:#8B3A3A;}
  .mail-fallback-link{display:inline-block;margin-top:10px;font-size:13px;color:var(--muted);text-decoration:underline;}
  .mail-fallback-link:hover{color:var(--ink);}
  #sendQuoteBtn:disabled{opacity:.65;cursor:default;pointer-events:none;}

  /* ---------- chargement : nuage d'étincelles (poussière qui scintille) qui tourne,
     affiché le temps de préparer la soumission avant de révéler le résumé ---------- */
  .loading-overlay{
    position:fixed;
    inset:0;
    z-index:80;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:22px;
    background:rgba(10,19,15,.86);
    backdrop-filter:blur(3px);
    animation:overlay-fade-in .25s ease both;
  }
  .loading-overlay[hidden]{display:none;}
  .loading-overlay p{
    color:var(--ink);
    font-family:'Work Sans',sans-serif;
    font-size:13.5px;
    letter-spacing:.03em;
  }
  @keyframes overlay-fade-in{from{opacity:0;}to{opacity:1;}}
  .dust-loader{
    width:64px;height:64px;
    fill:var(--gold);
    animation:dust-spin 2.4s cubic-bezier(.45,0,.55,1) infinite;
    filter:drop-shadow(0 0 10px rgba(217,184,114,.45));
  }
  @keyframes dust-spin{
    0%{transform:rotate(0deg) scale(.9);}
    50%{transform:rotate(180deg) scale(1.08);}
    100%{transform:rotate(360deg) scale(.9);}
  }
  /* chaque étincelle scintille l'une après l'autre pendant que tout le nuage tourne,
     comme les grains de poussière qui accrochent la lumière */
  .dust-spark{animation:twinkle 1.2s ease-in-out infinite;transform-origin:center;}
  @media (prefers-reduced-motion: reduce){
    .loading-overlay{animation:none;}
    .dust-loader{animation:none;filter:none;}
    .dust-spark{animation:none;opacity:.75;}
  }

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr;gap:36px;} }
  .contact-row{display:flex;gap:16px;padding-block:18px;border-top:1px solid var(--line);}
  .contact-row:last-child{border-bottom:1px solid var(--line);}
  .contact-row svg{flex:none;color:var(--pine);margin-top:2px;}
  .contact-row p{margin-top:4px;color:var(--muted);font-size:14.5px;}
  .contact-row a{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--gold);}

  footer{background:var(--pine-deep);color:#D9E0D6;padding-block:34px 0;}
  .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 32px;align-items:flex-start;}
  .footer-inner .brand{color:var(--gold);}
  footer .fnote{font-size:13px;color:#9FAE9B;max-width:46ch;}
  footer .foot-quote{margin-top:22px;font-family:'Fraunces',serif;font-style:italic;color:#EDE7D8;font-size:15px;max-width:60ch;}
  .copyright-bar{margin-top:36px;padding:18px 24px;background:#050C08;color:#D9E0D6;text-align:center;font-family:'Work Sans',sans-serif;font-weight:400;font-size:13px;letter-spacing:.02em;}

  .reveal{opacity:0;transform:translateY(14px);animation:rise .7s ease forwards;}
  @keyframes rise{to{opacity:1;transform:translateY(0);}}
  @media (prefers-reduced-motion: reduce){ .reveal{animation:none;opacity:1;transform:none;} }

  /* ---------- pop-up de confirmation (fusée) au succès de l'envoi ---------- */
  .modal-backdrop{
    position:fixed;inset:0;
    background:rgba(5,10,7,0.6);
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
    z-index:80;
  }
  .modal-backdrop[hidden]{display:none;}
  .success-modal{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
    width:min(440px,92vw);
    background:rgba(15,30,23,0.92);
    backdrop-filter:blur(18px) saturate(150%);
    -webkit-backdrop-filter:blur(18px) saturate(150%);
    border:1px solid rgba(217,184,114,0.3);
    border-radius:var(--radius-lg);
    box-shadow:0 24px 70px rgba(0,0,0,0.5), inset 0 1px 0 rgba(242,233,216,0.06);
    padding:48px 36px 40px;
    text-align:center;
    z-index:81;
    animation:modal-pop-in .22s ease both;
  }
  .success-modal[hidden]{display:none;}
  @keyframes modal-pop-in{from{opacity:0;}to{opacity:1;}}
  .modal-close{
    position:absolute;top:14px;right:16px;width:34px;height:34px;border-radius:50%;
    border:none;background:rgba(242,233,216,0.12);color:var(--ink);
    font-size:1.4rem;line-height:1;cursor:pointer;
  }
  .modal-close:hover{background:var(--gold);color:#231a09;}
  .success-icon{
    font-size:3rem;line-height:1;margin-bottom:16px;
    animation:rocket-launch .6s cubic-bezier(.22,.85,.32,1.2) both;
  }
  @keyframes rocket-launch{
    0%{transform:translateY(16px) scale(.6);opacity:0;}
    65%{transform:translateY(-3px) scale(1.06);opacity:1;}
    100%{transform:translateY(0) scale(1);opacity:1;}
  }
  .success-modal h3{color:var(--gold);font-size:1.5rem;margin-bottom:10px;font-family:'Fraunces',serif;}
  .success-modal p{color:var(--muted);font-size:15px;line-height:1.6;max-width:34ch;margin:0 auto;}
  body.modal-open{overflow:hidden;}
  @media (prefers-reduced-motion: reduce){
    .success-modal{animation:none;}
    .success-icon{animation:none;}
  }
  @media (max-width:480px){
    .success-modal{padding:40px 24px 32px;}
  }


@media print {

  header.nav, footer, .hero .ctas, #quoteForm, .offer-tabs, .offer-carousel, .car-dots, #approche, .freq-row, .zones-wrap, .contact-grid, .hero-art, nav { display:none !important; }
  #resumePanel{ display:block !important; border:none; }
  body{ background:#fff; }

}
  /* =====================================================================
     Confidentialité (Loi 25) — bannière de consentement (assets/consent.js),
     liens légaux du pied de page, avis sous les formulaires, pages de
     politique de confidentialité.
     ===================================================================== */
  .kk-consent{
    position:fixed;left:16px;right:16px;bottom:16px;z-index:75;
    display:flex;justify-content:flex-start;pointer-events:none;
  }
  .kkc-card{
    pointer-events:auto;width:100%;max-width:480px;
    max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;
    background:var(--paper);color:var(--ink);
    border:1px solid var(--line);border-radius:var(--radius-md);
    box-shadow:0 24px 60px -20px rgba(0,0,0,.65);
    padding:22px 22px 16px;
  }
  @media (min-width:640px){
    .kk-consent{left:24px;right:auto;bottom:24px;}
    .kkc-card{width:460px;}
  }
  .kkc-title{font-size:20px;line-height:1.25;margin-bottom:10px;}
  .kkc-title:focus{outline:none;}
  .kkc-desc{font-size:13.5px;line-height:1.55;color:var(--muted);}
  .kkc-policy{margin-top:10px;font-size:13.5px;}
  .kkc-policy a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);}
  .kkc-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
  /* « Refuser » et « Accepter » : style strictement identique (exigence d'un choix libre) */
  .kkc-btn{
    font:inherit;font-size:14px;font-weight:600;letter-spacing:.02em;
    padding:12px 14px;border-radius:var(--radius);
    border:1.5px solid var(--gold);background:transparent;color:var(--ink);
    cursor:pointer;transition:background .15s ease, color .15s ease;
  }
  .kkc-btn:hover{background:var(--gold);color:#231a09;}
  .kkc-btn:focus-visible,.kkc-link:focus-visible,.kk-switch:focus-visible,
  .footer-legal a:focus-visible,.footer-legal button:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
  .kkc-link{
    display:block;margin:10px auto 0;padding:6px;background:none;border:0;
    font:inherit;font-size:13px;color:var(--muted);cursor:pointer;
    text-decoration:underline;text-underline-offset:3px;
  }
  .kkc-link:hover{color:var(--ink);}
  .kkc-row{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line);}
  .kkc-row h3{font-family:'Work Sans',sans-serif;font-size:14.5px;font-weight:600;line-height:1.35;}
  .kkc-row label{cursor:pointer;}
  .kkc-row p{font-size:12.5px;line-height:1.5;color:var(--muted);margin-top:4px;}
  .kkc-always{flex:none;font-size:12px;font-weight:600;color:var(--pine);white-space:nowrap;margin-top:2px;}
  .kk-switch{
    flex:none;appearance:none;-webkit-appearance:none;margin:0;cursor:pointer;
    width:44px;height:26px;border-radius:999px;background:var(--line);position:relative;
    transition:background .2s ease;
  }
  .kk-switch::after{
    content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
    background:var(--ink);transition:transform .2s ease, background .2s ease;
  }
  .kk-switch:checked{background:var(--gold);}
  .kk-switch:checked::after{transform:translateX(18px);background:#231a09;}
  @media (prefers-reduced-motion: reduce){ .kk-switch,.kk-switch::after,.kkc-btn{transition:none;} }
  @media print{ .kk-consent{display:none !important;} }

  /* liens légaux du pied de page */
  /* liens superposés à droite (un peu vers le centre), alignés à gauche entre eux, un peu plus bas que le logo */
  .footer-legal{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:14px;margin-left:auto;margin-right:clamp(16px,8vw,120px);font-size:13px;text-align:left;}
  /* grille du pied de page : logo, citation et note à gauche; liens en colonne à droite
     (sans pousser la citation vers le bas) */
  footer > .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:32px;align-items:start;}
  footer .footer-inner{display:contents;}
  footer .footer-inner .brand{grid-column:1;grid-row:1;}
  footer .footer-legal{grid-column:2;grid-row:1 / span 3;}
  footer .foot-quote, footer .fnote{grid-column:1;}
  @media (max-width:560px){
    footer > .wrap{grid-template-columns:minmax(0,1fr);}
    footer .footer-legal{grid-column:1;grid-row:auto;}
  }
  .footer-legal a,.footer-legal button{
    color:#FFFFFF;background:none;border:0;padding:0;font:inherit;line-height:1.5;cursor:pointer;
    text-decoration:none;
  }
  .footer-legal a:hover,.footer-legal button:hover{color:var(--gold);}

  /* avis de confidentialité sous les formulaires */
  .privacy-note{margin-top:12px;font-size:12.5px;line-height:1.5;color:var(--muted);}
  .privacy-note a,.consent a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);}

  /* pages « Politique de confidentialité » */
  .legal{max-width:780px;padding-block:56px 80px;}
  .legal h1,.legal h2,.legal h3,.legal-details summary{color:var(--gold);}
  .legal h1{font-size:clamp(30px,5vw,44px);line-height:1.12;margin-top:10px;}
  .legal .legal-updated{color:var(--muted);font-size:14px;margin-top:12px;}
  .legal .legal-lede{font-size:17px;margin-top:22px;}
  .legal h2{font-size:clamp(21px,3vw,25px);line-height:1.25;margin-top:48px;margin-bottom:12px;}
  .legal h3{font-family:'Work Sans',sans-serif;font-size:16px;font-weight:600;margin-top:22px;margin-bottom:6px;}
  .legal p,.legal li{font-size:15.5px;}
  .legal p + p{margin-top:12px;}
  .legal ul{padding-left:20px;margin:10px 0 0;}
  .legal li{margin-top:6px;}
  .legal li::marker{color:var(--gold);}
  .legal a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold);}
  .legal .muted{color:var(--muted);}
  .legal-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-top:14px;}
  .legal-card p{font-size:15px;}
  .legal-toc{margin-top:28px;}
  .legal-toc ol{margin:8px 0 0;padding-left:22px;columns:2 240px;column-gap:28px;}
  .legal-toc li{font-size:14.5px;margin-top:4px;break-inside:avoid;}
  .legal-table-wrap{overflow-x:auto;margin-top:14px;border:1px solid var(--line);border-radius:var(--radius);}
  .legal table{border-collapse:collapse;width:100%;min-width:600px;font-size:14px;}
  .legal th,.legal td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;}
  .legal th{font-weight:600;color:var(--gold);font-size:12px;letter-spacing:.08em;text-transform:uppercase;background:var(--paper);}
  .legal tr:last-child td{border-bottom:0;}
  .legal code{font-size:13px;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:1px 6px;}
  .legal .btn{margin-top:16px;}
  .legal-back{display:inline-block;margin-top:40px;}
  .brand-link{text-decoration:none;}
  .legal section{padding-block:0;}

  /* politique de confidentialité : bloc « Détails techniques » replié */
  .legal-details{margin-top:48px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);}
  .legal-details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;font-weight:600;font-size:15px;}
  .legal-details summary::-webkit-details-marker{display:none;}
  .legal-details summary::after{content:"+";font-size:20px;line-height:1;color:var(--gold);}
  .legal-details[open] summary::after{content:"−";}
  .legal-details summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--radius);}
  .legal-details-body{padding:0 20px 20px;}
  .legal-details-body h3:first-child{margin-top:0;}
  .legal-details-body p,.legal-details-body li{font-size:14.5px;}

  /* politique de confidentialité en fenêtre déroulante (assets/privacy-modal.js) */
  .privacy-modal{
    position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
    width:min(760px,92vw);max-height:86vh;max-height:86dvh;
    display:flex;flex-direction:column;
    background:rgba(15,30,23,0.94);
    backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
    border:1px solid rgba(217,184,114,0.3);border-radius:var(--radius-lg);
    box-shadow:0 24px 70px rgba(0,0,0,0.5), inset 0 1px 0 rgba(242,233,216,0.06);
    z-index:81;animation:modal-pop-in .22s ease both;
  }
  .privacy-modal[hidden]{display:none;}
  .privacy-modal .modal-close{z-index:2;}
  .privacy-modal-body{overflow-y:auto;overscroll-behavior:contain;max-width:none;padding:40px 40px 36px;outline:none;}
  .privacy-modal-body .privacy-modal-title{font-size:clamp(26px,4vw,34px);line-height:1.15;margin-top:8px;padding-right:40px;}
  .privacy-modal-body h2:not(.privacy-modal-title){font-size:21px;margin-top:34px;}
  .privacy-modal-body .legal-lede{font-size:16px;margin-top:16px;}
  .privacy-modal-body p,.privacy-modal-body li{font-size:15px;}
  .privacy-modal-body .legal-details{margin-top:36px;}
  @media (max-width:640px){
    .privacy-modal{top:0;left:0;transform:none;width:100%;height:100%;max-height:none;border:0;border-radius:0;}
    .privacy-modal .modal-close{top:calc(14px + env(safe-area-inset-top,0px));}
    .privacy-modal-body{padding:calc(56px + env(safe-area-inset-top,0px)) 20px calc(32px + env(safe-area-inset-bottom,0px));}
  }
  @media (prefers-reduced-motion: reduce){ .privacy-modal{animation:none;} }

  /* politique : titres de chaque point en or */
  .legal li > strong,.legal-card strong{color:var(--gold);}
  .legal a.btn{border-bottom-color:transparent;}
  .legal a.btn-primary{color:#231a09;}
