  :root{
    --cream: #F6EFE4;
    --cream-deep: #EFE4D3;
    --cream-light: #FBF6EE;
    --rose: #E2B8AB;
    --rose-soft: #EED2C8;
    --rose-deep: #C98F80;
    --ocre: #B58751;
    --ocre-soft: #D4AE7B;
    --gold: #D4A24E;
    --gold-light: #E8C079;
    --earth: #3A2A1F;
    --earth-soft: #6B5A4E;
    --earth-muted: #9A8B7D;
    --sky: #C9D4DC;
    --line: #D9CBB8;

    --f-display: 'Fraunces', 'Times New Roman', serif;
    --f-body: 'Inter', -apple-system, sans-serif;
    --f-sans: 'Inter', -apple-system, sans-serif;

    --max: 1400px;
  }

  *{margin:0;padding:0;box-sizing:border-box}

  html{scroll-behavior:smooth}

  body{
    font-family:var(--f-body);
    background:var(--cream);
    color:var(--earth);
    font-weight:400;
    font-size:17px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    overflow-x:hidden;
  }

  /* Grain overlay global */
  body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:1000;
    opacity:.035;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  a{color:inherit;text-decoration:none}

  ::selection{background:var(--rose-deep);color:var(--cream)}

  /* ========== NAV ========== */
  nav{
    position:fixed;top:0;left:0;right:0;z-index:100;
    padding:22px 40px;
    display:flex;justify-content:space-between;align-items:center;
    mix-blend-mode:multiply;
    transition:background .4s ease, backdrop-filter .4s ease, padding .4s ease;
  }
  nav.scrolled{
    background:rgba(246,239,228,.82);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    mix-blend-mode:normal;
    padding:14px 40px;
    border-bottom:1px solid rgba(217,203,184,.4);
  }
  nav .brand{
    font-family:var(--f-sans);
    font-weight:500;
    font-size:17px;
    letter-spacing:.22em;
  }
  nav ul{display:flex;gap:28px;list-style:none;font-size:12.5px;letter-spacing:.08em}
  nav ul a{color:var(--earth);font-weight:400;position:relative;padding-bottom:2px;text-transform:uppercase}
  nav ul a::after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--earth);transition:width .4s ease}
  nav ul a:hover::after{width:100%}
  .nav-cta{
    font-size:13px;
    padding:10px 22px;
    border:1px solid var(--earth);
    border-radius:999px;
    transition:all .3s ease;
    letter-spacing:.05em;
  }
  .nav-cta:hover{background:var(--earth);color:var(--cream)}

  @media (max-width:860px){
    nav{padding:18px 22px}
    nav.scrolled{padding:12px 22px}
    nav ul{display:none}
  }

  /* ========== HERO ========== */
  .hero{
    min-height:100vh;
    padding:140px 40px 80px;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:80px;
    align-items:center;
    max-width:var(--max);
    margin:0 auto;
    position:relative;
  }

  .hero-left{position:relative;z-index:2}

  .hero-meta{
    font-size:12px;
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--earth-soft);
    margin-bottom:30px;
    display:flex;align-items:center;gap:14px;
  }
  .hero-meta::before{content:"";width:40px;height:1px;background:var(--earth-soft)}

  .wordmark{
    font-family:var(--f-display);
    font-weight:300;
    font-size:clamp(90px, 18vw, 240px);
    line-height:.85;
    letter-spacing:-.04em;
    font-variation-settings:"SOFT" 80, "opsz" 144;
    color:var(--earth);
    margin-bottom:40px;
    position:relative;
  }
  .wordmark .dot{
    display:inline-block;
    width:14px;height:14px;
    background:var(--gold);
    border-radius:50%;
    vertical-align:.15em;
    margin-left:.05em;
  }

  .baseline{
    font-family:var(--f-display);
    font-style:italic;
    font-weight:300;
    font-size:clamp(22px, 2.6vw, 32px);
    line-height:1.35;
    color:var(--earth);
    max-width:520px;
    margin-bottom:20px;
    font-variation-settings:"SOFT" 100, "opsz" 60;
  }

  .hero-sub{
    max-width:440px;
    color:var(--earth-soft);
    font-size:15px;
    line-height:1.7;
    margin-bottom:46px;
  }

  .hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}

  .btn-primary{
    display:inline-flex;align-items:center;gap:14px;
    background:var(--earth);
    color:var(--cream);
    padding:18px 34px;
    border-radius:999px;
    font-size:14px;
    letter-spacing:.06em;
    font-weight:500;
    transition:all .35s cubic-bezier(.2,.8,.2,1);
  }
  .btn-primary:hover{background:var(--rose-deep);transform:translateY(-2px)}
  .btn-primary .arrow{
    width:26px;height:1px;background:currentColor;position:relative;
    transition:width .35s ease;
  }
  .btn-primary .arrow::after{
    content:"";position:absolute;right:0;top:50%;
    width:8px;height:8px;
    border-top:1px solid currentColor;border-right:1px solid currentColor;
    transform:translateY(-50%) rotate(45deg);
  }
  .btn-primary:hover .arrow{width:34px}

  .btn-link{
    color:var(--earth);
    font-size:14px;
    letter-spacing:.04em;
    border-bottom:1px solid var(--earth-muted);
    padding-bottom:4px;
    transition:border-color .3s ease;
  }
  .btn-link:hover{border-color:var(--earth)}

  /* Portrait hero */
  .hero-portrait{
    position:relative;
    aspect-ratio:4/5;
    border-radius:2px;
    overflow:hidden;
    background:
      linear-gradient(180deg, rgba(58,42,31,0) 55%, rgba(58,42,31,.35) 100%),
      url("assets/Raphael_zenger.png") center 30%/cover no-repeat,
      var(--cream-deep);
  }
  .hero-portrait::before{
    content:"";
    position:absolute;inset:0;
    background:radial-gradient(circle at 50% 0%, rgba(246,239,228,.18), transparent 55%);
    mix-blend-mode:screen;
    pointer-events:none;
  }
  .hero-portrait::after{
    content:"";
    position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity:.12;
    mix-blend-mode:multiply;
  }
  .portrait-label{
    position:absolute;
    bottom:22px;left:22px;
    z-index:2;
    color:var(--cream);
    font-size:11px;letter-spacing:.2em;text-transform:uppercase;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
  }
  .portrait-caption{
    position:absolute;
    top:22px;right:22px;z-index:2;
    text-align:right;
    font-family:var(--f-display);
    font-style:italic;font-weight:300;
    font-size:14px;color:var(--cream);
    max-width:160px;line-height:1.3;
  }

  .hero-scroll{
    position:absolute;bottom:40px;left:50%;transform:translateX(-50%);
    font-size:11px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--earth-soft);
    display:flex;flex-direction:column;align-items:center;gap:14px;
    animation:floaty 3s ease-in-out infinite;
  }
  .hero-scroll::after{content:"";width:1px;height:30px;background:var(--earth-soft)}
  @keyframes floaty{
    0%,100%{transform:translateX(-50%) translateY(0)}
    50%{transform:translateX(-50%) translateY(6px)}
  }

  @media (max-width:960px){
    .hero{grid-template-columns:1fr;gap:50px;padding-top:120px;min-height:auto}
    .hero-portrait{aspect-ratio:4/4.5;max-width:500px}
    .hero-scroll{display:none}
  }

  /* ========== COMPASS / Phrase boussole ========== */
  .compass{
    padding:140px 40px;
    text-align:center;
    position:relative;
  }
  .compass-label{
    font-size:11px;letter-spacing:.3em;text-transform:uppercase;
    color:var(--earth-soft);margin-bottom:60px;
    display:flex;align-items:center;justify-content:center;gap:14px;
  }
  .compass-label::before,.compass-label::after{content:"";width:40px;height:1px;background:var(--earth-soft)}

  .compass p{
    font-family:var(--f-display);
    font-weight:300;
    font-style:italic;
    font-size:clamp(28px, 4.5vw, 56px);
    line-height:1.25;
    letter-spacing:-.01em;
    max-width:1080px;
    margin:0 auto;
    color:var(--earth);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }
  .compass p em{
    font-style:normal;
    color:var(--rose-deep);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }

  @media (max-width:760px){
    .compass{padding:90px 24px}
  }

  /* ========== SIGNALS / Quand le corps se fait entendre ========== */
  .signals{
    background:var(--cream-deep);
    padding:140px 40px;
    position:relative;
    overflow:hidden;
  }
  .signals::before{
    content:"03";
    position:absolute;
    top:80px;right:40px;
    font-family:var(--f-display);
    font-weight:200;
    font-size:clamp(100px,14vw,220px);
    color:var(--cream);
    line-height:1;
    font-variation-settings:"opsz" 144;
    z-index:0;
    user-select:none;
  }

  .signals-inner{
    max-width:var(--max);
    margin:0 auto;
    display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:100px;
    position:relative;
    z-index:1;
  }

  .section-eyebrow{
    font-size:11px;letter-spacing:.3em;text-transform:uppercase;
    color:var(--earth-soft);margin-bottom:26px;
    display:flex;align-items:center;gap:14px;
  }
  .section-eyebrow::before{content:"";width:40px;height:1px;background:var(--earth-soft)}

  .section-title{
    font-family:var(--f-display);
    font-weight:300;
    font-size:clamp(38px, 5vw, 72px);
    line-height:1;
    letter-spacing:-.02em;
    color:var(--earth);
    font-variation-settings:"SOFT" 70, "opsz" 144;
  }
  .section-title em{
    font-style:italic;
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }

  .signals-intro{
    margin-top:40px;
    max-width:360px;
    color:var(--earth-soft);
    font-size:16px;
  }

  .signals-list{
    list-style:none;
    counter-reset:sig;
  }
  .signals-list li{
    counter-increment:sig;
    padding:26px 0;
    border-top:1px solid var(--line);
    font-family:var(--f-display);
    font-weight:300;
    font-style:italic;
    font-size:clamp(24px, 3vw, 38px);
    line-height:1.25;
    color:var(--earth);
    display:flex;align-items:baseline;gap:30px;
    font-variation-settings:"SOFT" 100, "opsz" 100;
  }
  .signals-list li:last-child{border-bottom:1px solid var(--line)}
  .signals-list li::before{
    content:counter(sig, decimal-leading-zero);
    font-family:var(--f-body);
    font-style:normal;
    font-size:12px;
    letter-spacing:.1em;
    color:var(--earth-muted);
    font-weight:500;
  }

  .signals-quote{
    margin-top:60px;
    max-width:640px;
    font-family:var(--f-display);
    font-weight:300;
    font-size:20px;
    line-height:1.6;
    color:var(--earth-soft);
    font-variation-settings:"SOFT" 80, "opsz" 60;
  }

  .signals-cta{
    margin-top:50px;
    display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  }
  .signals-cta span{
    font-family:var(--f-display);
    font-style:italic;
    color:var(--earth);
    font-size:18px;
  }

  @media (max-width:960px){
    .signals{padding:90px 24px}
    .signals-inner{grid-template-columns:1fr;gap:50px}
    .signals::before{top:40px;right:24px;font-size:120px}
  }

  /* ========== PILLARS / 3 piliers ========== */
  .pillars{
    padding:160px 40px;
    max-width:var(--max);
    margin:0 auto;
  }
  .pillars-header{
    display:grid;grid-template-columns:1fr 1fr;gap:80px;
    margin-bottom:100px;align-items:end;
  }
  .pillars-intro{color:var(--earth-soft);max-width:420px;font-size:16px;line-height:1.75}

  .pillars-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:50px;
  }
  .pillar{
    position:relative;
    padding-top:40px;
    border-top:1px solid var(--earth);
  }
  .pillar-num{
    font-family:var(--f-display);
    font-style:italic;
    font-weight:300;
    font-size:14px;
    color:var(--gold);
    letter-spacing:.1em;
    margin-bottom:26px;
    font-variation-settings:"SOFT" 100;
  }
  .pillar h3{
    font-family:var(--f-display);
    font-weight:400;
    font-size:36px;
    line-height:1.1;
    margin-bottom:24px;
    font-variation-settings:"SOFT" 80, "opsz" 144;
    letter-spacing:-.01em;
  }
  .pillar p{color:var(--earth-soft);font-size:15px;line-height:1.7}

  @media (max-width:860px){
    .pillars{padding:100px 24px}
    .pillars-header{grid-template-columns:1fr;gap:30px;margin-bottom:60px}
    .pillars-grid{grid-template-columns:1fr;gap:40px}
  }

  /* ========== TOOLS / Disciplines ========== */
  .tools{
    padding:160px 40px;
    max-width:var(--max);
    margin:0 auto;
  }
  .tools-header{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    margin-bottom:80px;
    align-items:end;
  }
  .tools-intro{
    color:var(--earth-soft);
    max-width:440px;
    font-size:16px;
    line-height:1.75;
  }

  .tools-grid{
    display:flex;
    flex-direction:column;
  }

  .tool{
    display:grid;
    grid-template-columns:.55fr 1.45fr;
    gap:80px;
    padding:54px 0;
    border-top:1px solid var(--line);
    align-items:start;
  }
  .tool:last-child{
    border-bottom:1px solid var(--line);
  }

  .tool-head{
    display:flex;
    flex-direction:column;
    gap:24px;
  }

  .tool-icon{
    width:44px;
    height:44px;
    color:var(--gold);
    opacity:.9;
  }
  .tool-icon svg{
    width:100%;
    height:100%;
    display:block;
  }

  .tool h3{
    font-family:var(--f-display);
    font-weight:400;
    font-size:clamp(26px, 2.6vw, 34px);
    line-height:1.1;
    letter-spacing:-.01em;
    color:var(--earth);
    font-variation-settings:"SOFT" 80, "opsz" 144;
  }

  .tool p{
    color:var(--earth-soft);
    font-size:16px;
    line-height:1.75;
    max-width:620px;
  }

  @media (max-width:860px){
    .tools{padding:100px 24px}
    .tools-header{grid-template-columns:1fr;gap:30px;margin-bottom:60px;align-items:start}
    .tool{
      grid-template-columns:1fr;
      gap:24px;
      padding:40px 0;
    }
  }

  /* ========== BREUSS / Section dédiée ========== */
  .breuss{
    background:var(--cream-light);
    padding:160px 40px;
    position:relative;
    overflow:hidden;
  }
  .breuss-inner{
    max-width:var(--max);margin:0 auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center;
  }
  .breuss-visual{
    aspect-ratio:3/4;
    background:
      linear-gradient(165deg, rgba(201,143,128,.08), rgba(201,212,220,.1)),
      url("assets/illustration-breuss.jpg") center/cover no-repeat,
      var(--cream-deep);
    position:relative;
    border-radius:2px;
    overflow:hidden;
  }
  .breuss-visual::before{
    content:"";
    position:absolute;inset:0;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity:.15;mix-blend-mode:multiply;
  }
  .breuss-visual-text{
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--f-display);
    font-style:italic;
    font-weight:400;
    font-size:clamp(28px,3.6vw,48px);
    line-height:1.3;
    color:var(--earth);
    padding:40px;
    text-align:center;
    font-variation-settings:"SOFT" 100, "opsz" 144;
    text-shadow:0 2px 30px rgba(246,239,228,.8), 0 0 40px rgba(246,239,228,.5);
  }

  .breuss-content h2{
    font-family:var(--f-display);
    font-weight:300;
    font-size:clamp(38px,4.8vw,64px);
    line-height:1;
    margin-bottom:30px;
    letter-spacing:-.02em;
    font-variation-settings:"SOFT" 70, "opsz" 144;
  }
  .breuss-content h2 em{
    font-style:italic;
    color:var(--rose-deep);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }
  .breuss-tagline{
    font-family:var(--f-display);
    font-style:italic;
    font-size:20px;
    color:var(--earth-soft);
    margin-bottom:30px;
    font-variation-settings:"SOFT" 100;
  }
  .breuss-content p{
    color:var(--earth-soft);
    margin-bottom:22px;
    font-size:16px;
    line-height:1.75;
  }
  .breuss-pair{
    display:flex;gap:40px;
    padding:30px 0;margin-top:30px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .breuss-pair div{flex:1}
  .breuss-pair strong{
    display:block;
    font-family:var(--f-display);
    font-style:italic;
    font-weight:400;
    font-size:20px;
    margin-bottom:8px;
    color:var(--earth);
    font-variation-settings:"SOFT" 100;
  }
  .breuss-pair p{font-size:14px;margin:0}

  @media (max-width:960px){
    .breuss{padding:100px 24px}
    .breuss-inner{grid-template-columns:1fr;gap:50px}
    .breuss-pair{flex-direction:column;gap:20px}
  }

  /* ========== BREATH / Respiration ========== */
  .breath{
    padding:140px 40px;
    text-align:center;
    background:var(--cream-deep);
  }
  .breath p{
    font-family:var(--f-display);
    font-weight:300;
    font-style:italic;
    font-size:clamp(26px, 3.8vw, 48px);
    line-height:1.3;
    letter-spacing:-.01em;
    max-width:940px;
    margin:0 auto;
    color:var(--earth);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }
  .breath p em{
    font-style:normal;
    color:var(--gold);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }
  @media (max-width:760px){
    .breath{padding:90px 24px}
  }

  /* ========== ABOUT / Parcours ========== */
  .about{
    padding:160px 40px;
    max-width:var(--max);
    margin:0 auto;
  }
  .about-inner{
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:100px;
    align-items:start;
  }

  .about-portrait{
    aspect-ratio:3/4;
    background:
      linear-gradient(180deg, rgba(58,42,31,0) 60%, rgba(58,42,31,.5) 100%),
      url("assets/portrait-about.jpg") center/cover no-repeat,
      var(--earth);
    position:relative;
    border-radius:2px;
    overflow:hidden;
    position:sticky;top:100px;
  }
  .about-portrait::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 50% 80%, rgba(226,184,171,.08), transparent 70%);
    mix-blend-mode:screen;
    pointer-events:none;
  }
  .about-portrait-caption{
    position:absolute;bottom:24px;left:24px;right:24px;
    color:var(--cream);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
    display:flex;justify-content:space-between;
  }

  .about-content .section-title{margin-bottom:50px;max-width:600px}

  .about-content p{
    color:var(--earth-soft);
    margin-bottom:26px;
    font-size:16px;
    line-height:1.8;
    max-width:580px;
  }
  .about-content p.first-letter::first-letter{
    font-family:var(--f-display);
    font-size:76px;
    font-weight:300;
    float:left;
    line-height:.9;
    margin:8px 14px 0 0;
    color:var(--rose-deep);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }

  .about-signature{
    margin-top:50px;
    font-family:var(--f-display);
    font-style:italic;
    font-weight:400;
    font-size:28px;
    color:var(--earth);
    font-variation-settings:"SOFT" 100;
  }
  .about-signature em{
    font-style:normal;
    color:var(--gold);
  }

  @media (max-width:960px){
    .about{padding:100px 24px}
    .about-inner{grid-template-columns:1fr;gap:50px}
    .about-portrait{position:relative;top:0;max-width:400px}
  }

  /* ========== OFFERS / Offres d'accompagnement ========== */
  .offers{
    background:var(--cream-deep);
    padding:160px 40px;
  }
  .offers-inner{max-width:var(--max);margin:0 auto}

  .offers-header{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:end;
    margin-bottom:100px;
  }
  .offers-intro{
    color:var(--earth-soft);
    max-width:460px;
    font-size:16px;
    line-height:1.75;
  }

  .offers-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:30px;
  }

  .offer{
    background:var(--cream-light);
    padding:48px 40px 40px;
    display:flex;
    flex-direction:column;
    position:relative;
    border-top:1px solid var(--earth);
    transition:transform .5s cubic-bezier(.2,.8,.2,1);
  }
  .offer:hover{transform:translateY(-6px)}

  .offer-featured{
    background:var(--earth);
    color:var(--cream);
    border-top-color:var(--gold);
  }
  .offer-featured .offer-name,
  .offer-featured .offer-title{color:var(--cream)}
  .offer-featured .offer-pitch,
  .offer-featured .offer-content li{color:rgba(246,239,228,.72)}
  .offer-featured .offer-price-detail{color:var(--rose-soft)}

  .offer-icon{
    width:36px;
    height:36px;
    color:var(--gold);
    margin-bottom:32px;
    opacity:.9;
  }
  .offer-icon svg{
    width:100%;
    height:100%;
    display:block;
  }
  .offer-featured .offer-icon{color:var(--gold-light)}

  .offer-refund{
    margin-top:18px;
    font-family:var(--f-display);
    font-style:italic;
    font-weight:400;
    font-size:14px;
    color:var(--rose-deep);
    letter-spacing:.01em;
    font-variation-settings:"SOFT" 100, "opsz" 60;
  }
  .offer-featured .offer-refund{color:var(--rose-soft)}

  .offer-name{
    font-family:var(--f-display);
    font-style:italic;
    font-weight:400;
    font-size:22px;
    color:var(--rose-deep);
    margin-bottom:14px;
    font-variation-settings:"SOFT" 100, "opsz" 60;
  }

  .offer-title{
    font-family:var(--f-display);
    font-weight:400;
    font-size:24px;
    line-height:1.2;
    color:var(--earth);
    margin-bottom:24px;
    letter-spacing:-.01em;
    font-variation-settings:"SOFT" 80, "opsz" 100;
  }

  .offer-pitch{
    color:var(--earth-soft);
    font-size:14.5px;
    line-height:1.7;
    margin-bottom:28px;
  }

  .offer-content{
    list-style:none;
    margin-bottom:36px;
    flex:1;
  }
  .offer-content li{
    color:var(--earth-soft);
    font-size:14px;
    line-height:1.6;
    padding:10px 0 10px 22px;
    position:relative;
    border-top:1px solid var(--line);
  }
  .offer-content li::before{
    content:"";
    position:absolute;
    left:0;top:18px;
    width:10px;
    height:1px;
    background:var(--gold);
  }
  .offer-content li:first-child{border-top:none}

  .offer-featured .offer-content li{border-top-color:rgba(217,203,184,.18)}
  .offer-featured .offer-content li::before{background:var(--gold-light)}

  .offer-price{
    display:flex;
    align-items:baseline;
    gap:14px;
    padding-top:24px;
    border-top:1px solid var(--line);
  }
  .offer-featured .offer-price{border-top-color:rgba(217,203,184,.2)}

  .offer-price-amount{
    font-family:var(--f-display);
    font-weight:400;
    font-size:36px;
    color:var(--earth);
    line-height:1;
    font-variation-settings:"SOFT" 80, "opsz" 100;
  }
  .offer-featured .offer-price-amount{color:var(--cream)}

  .offer-price-detail{
    font-size:13px;
    color:var(--earth-muted);
    letter-spacing:.02em;
  }

  .offers-note{
    margin-top:80px;
    max-width:780px;
    color:var(--earth-soft);
    font-size:14px;
    line-height:1.7;
    font-style:italic;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
  .offers-note em{
    font-style:normal;
    font-weight:500;
    color:var(--rose-deep);
  }

  @media (max-width:960px){
    .offers{padding:100px 24px}
    .offers-header{grid-template-columns:1fr;gap:30px;align-items:start;margin-bottom:60px}
    .offers-grid{grid-template-columns:1fr;gap:20px}
    .offer{padding:36px 28px 32px}
  }

  /* ========== PRICING / Consultations & tarifs ========== */
  .pricing{
    padding:160px 40px;
    max-width:var(--max);
    margin:0 auto;
  }

  .pricing-header{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:end;
    margin-bottom:80px;
  }
  .pricing-intro{
    color:var(--earth-soft);
    max-width:460px;
    font-size:16px;
    line-height:1.75;
  }

  .pricing-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-top:1px solid var(--line);
  }

  .price-item{
    padding:40px 40px 40px 0;
    border-bottom:1px solid var(--line);
  }
  .price-item:nth-child(2n){padding-left:40px;border-left:1px solid var(--line);padding-right:0}

  .price-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:20px;
    margin-bottom:20px;
  }

  .price-head h4{
    font-family:var(--f-display);
    font-weight:400;
    font-size:22px;
    line-height:1.2;
    color:var(--earth);
    font-variation-settings:"SOFT" 80, "opsz" 100;
    letter-spacing:-.005em;
  }

  .price-meta{
    display:flex;
    align-items:baseline;
    gap:8px;
    flex-shrink:0;
    color:var(--gold);
    font-size:14px;
    letter-spacing:.04em;
    white-space:nowrap;
  }
  .price-meta span:first-child{
    font-family:var(--f-display);
    font-weight:500;
    font-size:18px;
    color:var(--earth);
    font-variation-settings:"SOFT" 60, "opsz" 60;
  }

  .price-item p{
    color:var(--earth-soft);
    font-size:14.5px;
    line-height:1.7;
    max-width:520px;
  }

  .pricing-footer{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:50px;
    margin-top:80px;
    padding-top:60px;
    border-top:1px solid var(--line);
  }
  .pricing-footer-item h5{
    font-size:11px;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--earth-soft);
    margin-bottom:16px;
    font-weight:500;
  }
  .pricing-footer-item p{
    color:var(--earth);
    font-size:14px;
    line-height:1.7;
  }

  @media (max-width:860px){
    .pricing{padding:100px 24px}
    .pricing-header{grid-template-columns:1fr;gap:30px;align-items:start;margin-bottom:60px}
    .pricing-grid{grid-template-columns:1fr}
    .price-item{padding:32px 0!important;border-left:none!important}
    .price-head{flex-direction:column;gap:8px}
    .pricing-footer{grid-template-columns:1fr;gap:32px;margin-top:60px;padding-top:40px}
  }

  /* ========== CONTACT / Final CTA ========== */
  .contact{
    background:var(--rose-soft);
    padding:160px 40px 80px;
    position:relative;
    overflow:hidden;
  }
  .contact::before{
    content:"";
    position:absolute;
    width:700px;height:700px;
    top:-200px;right:-200px;
    background:radial-gradient(circle, var(--rose-deep), transparent 70%);
    opacity:.4;
    pointer-events:none;
  }

  .contact-inner{
    max-width:var(--max);margin:0 auto;
    position:relative;z-index:1;
  }

  .contact h2{
    font-family:var(--f-display);
    font-weight:300;
    font-size:clamp(52px,9vw,130px);
    line-height:.95;
    letter-spacing:-.03em;
    margin-bottom:50px;
    max-width:1100px;
    font-variation-settings:"SOFT" 70, "opsz" 144;
  }
  .contact h2 em{
    font-style:italic;
    color:var(--earth);
    font-variation-settings:"SOFT" 100, "opsz" 144;
  }

  .contact-cta{
    display:flex;gap:30px;align-items:center;flex-wrap:wrap;
    margin-bottom:100px;
  }
  .contact .btn-primary{background:var(--earth);padding:22px 42px;font-size:15px}
  .contact .btn-primary:hover{background:var(--rose-deep)}

  .contact-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:40px;
    padding-top:60px;
    border-top:1px solid rgba(58,42,31,.2);
  }
  .contact-block h5{
    font-size:11px;letter-spacing:.25em;text-transform:uppercase;
    color:var(--earth-soft);margin-bottom:18px;font-weight:500;
  }
  .contact-block p, .contact-block a{
    font-family:var(--f-display);
    font-weight:300;
    font-size:20px;
    line-height:1.4;
    color:var(--earth);
    font-variation-settings:"SOFT" 80, "opsz" 60;
  }
  .contact-block a{
    display:block;
    border-bottom:1px solid transparent;
    transition:border-color .3s ease;
    padding-bottom:2px;
  }
  .contact-block a:hover{border-color:var(--earth)}
  .contact-block .insurance{
    display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;
  }
  .contact-block .insurance span{
    padding:6px 14px;
    border:1px solid var(--earth);
    border-radius:999px;
    font-family:var(--f-body);
    font-size:12px;
    letter-spacing:.08em;
  }

  @media (max-width:960px){
    .contact{padding:100px 24px 60px}
    .contact-grid{grid-template-columns:1fr 1fr;gap:30px}
  }
  @media (max-width:540px){
    .contact-grid{grid-template-columns:1fr}
  }

  /* ========== FOOTER ========== */
  footer{
    background:var(--earth);
    color:var(--cream-light);
    padding:60px 40px 40px;
  }
  .footer-inner{
    max-width:var(--max);margin:0 auto;
    display:flex;justify-content:space-between;align-items:center;
    flex-wrap:wrap;gap:24px;
  }
  .footer-brand{
    font-family:var(--f-sans);
    font-weight:500;
    font-size:16px;
    letter-spacing:.22em;
  }
  .footer-inner p{font-size:13px;opacity:.6}
  .footer-inner .links{display:flex;gap:28px;font-size:13px;opacity:.7}
  .footer-inner .links a:hover{opacity:1;text-decoration:underline}
  .footer-credit{
    max-width:var(--max);margin:32px auto 0;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.1);
    text-align:center;
    font-size:12px;opacity:.45;
    letter-spacing:.02em;
  }
  .footer-credit a{color:inherit;text-decoration:none}
  .footer-credit a:hover{opacity:1;text-decoration:underline}

  /* ========== REVEAL ========== */
  .reveal{
    opacity:0;
    transform:translateY(30px);
    transition:opacity 1s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1);
  }
  .reveal.in{opacity:1;transform:translateY(0)}
  .reveal-stagger > *{
    opacity:0;
    transform:translateY(20px);
    transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1);
  }
  .reveal-stagger.in > *{opacity:1;transform:translateY(0)}
  .reveal-stagger.in > *:nth-child(1){transition-delay:.05s}
  .reveal-stagger.in > *:nth-child(2){transition-delay:.15s}
  .reveal-stagger.in > *:nth-child(3){transition-delay:.25s}
  .reveal-stagger.in > *:nth-child(4){transition-delay:.35s}
  .reveal-stagger.in > *:nth-child(5){transition-delay:.45s}
  .reveal-stagger.in > *:nth-child(6){transition-delay:.55s}

