:root{
    --accent:#2E6B5F;
    --ink:#1C2B27;
    --ink-soft:#3A4A45;
    --muted:#4F5E59;
    --gold:#A8812F;
    --gold-2:#D4AE5A;
    --paper:#F9F8F5;
    --sand:#EFEDE8;
    --sand-2:#E0DED9;
    --line:#D9D5CC;
    --line-2:#C9C4B8;
    --forest:#1F3D37;
    --forest-line:#4A6A62;
    --footer-bg:#1C2B27;
    --footer-fg:#C9D1CD;
    --footer-fg-strong:#F1EFEA;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; font-family:'Jost','Helvetica Neue',sans-serif; background:var(--sand); color:var(--ink);}
  a{color:var(--accent); text-decoration:none;}
  a:hover{color:#1F4F45;}
  img{max-width:100%; display:block;}
  .serif{font-family:'Playfair Display', Georgia, serif;}
  .wrap{width:100%; max-width:1440px; margin:0 auto;}
  .eyebrow{font-size:14px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted);}
  .btn{display:inline-flex; align-items:center; gap:12px; height:60px; padding:0 32px; background:var(--accent); color:#F9F8F5; border-radius:999px; font-size:18px; font-weight:500; border:none; cursor:pointer;}
  .btn:hover{color:#F9F8F5; background:#1F4F45;}
  .btn-outline{display:inline-flex; align-items:center; height:48px; padding:0 24px; border:1px solid var(--accent); border-radius:999px; color:var(--accent); font-weight:500;}

  /* Nav */
  nav{height:88px; box-sizing:border-box; padding:0 96px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:var(--sand);}
  .brand{font-family:'Playfair Display', Georgia, serif; font-size:24px; letter-spacing:0.02em;}
  .nav-links{display:flex; align-items:center; gap:40px; font-size:16px;}
  .nav-links a{color:var(--ink);}
  .nav-cta{display:flex; align-items:center; height:44px; padding:0 22px; background:var(--accent); color:#F9F8F5; border-radius:999px; font-weight:500;}
  .nav-cta:hover{color:#F9F8F5;}

  /* Hero */
  .hero{box-sizing:border-box; padding:104px 96px 112px; display:flex; align-items:center; justify-content:space-between; gap:80px;}
  .hero-copy{display:flex; flex-direction:column; gap:30px; max-width:660px;}
  .hero-kicker{display:flex; align-items:center; gap:14px;}
  .hero-kicker .rule{display:block; width:40px; height:1px; background:var(--gold);}
  h1.title{margin:0; font-size:116px; line-height:0.95; font-weight:400; letter-spacing:-0.01em;}
  h2.subtitle{margin:0; font-style:italic; font-size:34px; line-height:1.25; font-weight:400; color:#2E4A43;}
  .checklist{display:flex; flex-direction:column; gap:14px; font-size:20px; line-height:1.4;}
  .checklist div{display:flex; align-items:center; gap:14px;}
  .hero-cta-row{display:flex; align-items:center; gap:24px; padding-top:8px;}
  .hero-cta-note{font-size:15px; color:var(--muted); line-height:1.5;}
  .hero-img{width:540px; height:654px; object-fit:cover; border-radius:28px; flex-shrink:0; box-shadow:0 30px 70px rgba(28,43,39,0.16); animation:heroFloat 5s ease-in-out infinite;}
  @keyframes heroFloat{
    0%, 100%{ transform:rotate(1deg) translateY(0px); }
    50%{ transform:rotate(1deg) translateY(-16px); }
  }
  @media (prefers-reduced-motion: reduce){ .hero-img{animation:none;} }

  /* Intro */
  .intro{box-sizing:border-box; padding:120px 96px; background:var(--paper); display:flex; justify-content:center;}
  .intro-inner{max-width:820px; display:flex; flex-direction:column; gap:28px; text-align:center; align-items:center;}
  .intro h2{margin:0; font-size:52px; line-height:1.15; font-weight:400;}
  .intro p{margin:0; font-size:20px; line-height:1.7; color:var(--ink-soft);}
  .intro .callout{font-style:italic; font-size:28px; line-height:1.4; color:var(--ink); font-weight:400;}

  /* Lifestyle strip — auto-scrolling carousel */
  .lifestyle{box-sizing:border-box; padding:0 0 24px; background:var(--paper);}
  .lifestyle-viewport{overflow:hidden; width:100%; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 96px, #000 calc(100% - 96px), transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 96px, #000 calc(100% - 96px), transparent 100%);}
  .lifestyle-track{display:flex; gap:24px; width:max-content; padding:0 10px 16px; animation:lifestyleMarquee 46s linear infinite;}
  .lifestyle-track img{width:360px; height:450px; object-fit:cover; border-radius:20px; flex-shrink:0; box-shadow:0 14px 34px rgba(28,43,39,0.12);}
  @keyframes lifestyleMarquee{
    0%{ transform:translateX(0); }
    100%{ transform:translateX(-50%); }
  }
  @media (prefers-reduced-motion: reduce){ .lifestyle-track{animation:none; overflow-x:auto;} }

  /* Quote */
  .quote{box-sizing:border-box; padding:96px 160px; background:var(--sand-2); display:flex; flex-direction:column; align-items:center; gap:24px; text-align:center;}
  .quote .eyebrow{transition:opacity 0.4s ease;}
  .quote-stage{display:grid; width:100%; max-width:980px;}
  .quote-stage p{grid-area:1/1; margin:0; font-style:italic; font-size:44px; line-height:1.3; color:var(--ink); opacity:0; transition:opacity 0.7s ease; pointer-events:none; align-self:center; justify-self:center; text-align:center;}
  .quote-stage p.is-active{opacity:1; pointer-events:auto;}
  .quote .rule{display:block; width:64px; height:2px; background:var(--gold);}
  @media (prefers-reduced-motion: reduce){ .quote-stage p{transition:none;} .quote .eyebrow{transition:none;} }

  /* Parcours */
  .parcours{box-sizing:border-box; padding:120px 96px; display:flex; flex-direction:column; gap:64px;}
  .section-head{display:flex; flex-direction:column; gap:16px; align-items:center; text-align:center;}
  .section-head h2{margin:0; font-size:52px; line-height:1.15; font-weight:400;}
  .cards3{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:32px;}
  .card{background:var(--paper); border-radius:24px; padding:44px 40px; display:flex; flex-direction:column; gap:18px;}
  .card .num{font-size:60px; line-height:1; color:var(--gold);}
  .card h3{margin:0; font-size:30px; font-weight:400;}
  .card p{margin:0; font-size:18px; line-height:1.6; color:var(--ink-soft);}
  .eval-box{align-self:center; max-width:900px; box-sizing:border-box; padding:28px 44px; border:1px solid var(--line-2); border-radius:24px; display:flex; align-items:center; gap:24px;}
  .eval-box div{font-size:19px; line-height:1.6;}

  /* Day preview — flip-through */
  .day-preview{align-self:center; display:flex; flex-direction:column; align-items:center; gap:20px;}
  .day-preview-viewer{display:flex; align-items:center; gap:24px;}
  .day-preview-img{width:300px; height:451px; object-fit:contain; background:#FFFFFF; border:1px solid var(--sand-2); box-shadow:0 24px 50px rgba(28,43,39,0.12); border-radius:4px;}

  /* Ce qui change */
  .change{box-sizing:border-box; padding:120px 96px; background:var(--forest); color:#F1EFEA; display:flex; gap:96px; align-items:center;}
  .change-head{width:440px; flex-shrink:0; display:flex; flex-direction:column; gap:20px;}
  .change-head .eyebrow{color:var(--gold-2);}
  .change-head h2{margin:0; font-size:52px; line-height:1.15; font-weight:400; color:#F1EFEA;}
  .change-grid{flex-grow:1; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:40px; row-gap:28px;}
  .change-grid .change-item{border-top:1px solid var(--forest-line); padding-top:20px;}
  .change-grid .change-item h3{margin:0 0 8px; font-size:24px; line-height:1.3; font-weight:400; color:#F1EFEA;}
  .change-grid .change-item p{margin:0; font-size:16px; line-height:1.55; color:var(--footer-fg);}

  /* Avis */
  .avis{box-sizing:border-box; padding:120px 96px; display:flex; flex-direction:column; gap:56px;}
  .rating{display:flex; align-items:center; gap:14px; font-size:18px;}
  .stars{display:flex; gap:3px;}
  .cards2{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:32px;}
  .review{background:var(--paper); border-radius:24px; padding:40px; display:flex; flex-direction:column; gap:16px;}
  .review .stars{margin-bottom:0;}
  .review h3{margin:0; font-size:26px; line-height:1.25; font-weight:400;}
  .review p{margin:0; font-size:17px; line-height:1.65; color:var(--ink-soft);}
  .review .meta{margin-top:auto; padding-top:16px; border-top:1px solid var(--sand-2); display:flex; justify-content:space-between; align-items:center; font-size:15px; gap:16px;}
  .review .meta .verified{color:var(--accent); flex-shrink:0;}
  .review .meta .author{font-weight:500;}
  .review .meta-who{display:flex; flex-direction:column; gap:4px;}
  .review .meta-sub{font-size:13px; font-weight:400; color:var(--muted);}
  .avis-cta{align-self:center; display:flex; align-items:center; gap:18px; font-size:18px;}

  /* Extrait */
  .extrait{box-sizing:border-box; padding:120px 96px; background:var(--paper); display:flex; flex-direction:column; gap:40px; align-items:center;}
  .chips{display:flex; gap:12px; flex-wrap:wrap; justify-content:center;}
  .chip{height:44px; padding:0 18px; border-radius:999px; font-family:inherit; font-size:15px; cursor:pointer; background:transparent; color:var(--ink); border:1px solid var(--line-2);}
  .chip.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
  .extrait-viewer{display:flex; align-items:center; gap:40px;}
  .extrait-img{width:440px; height:661px; object-fit:contain; background:#FFFFFF; border:1px solid var(--sand-2); box-shadow:0 24px 50px rgba(28,43,39,0.12);}
  .round-btn{width:56px; height:56px; border-radius:999px; border:1px solid var(--line-2); background:var(--sand); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;}
  .page-count{font-size:16px; color:var(--muted);}

  /* Closing */
  .closing{box-sizing:border-box; padding:120px 96px; display:flex; align-items:center; justify-content:center; gap:96px;}
  .closing-cover{width:320px; height:451px; object-fit:cover; flex-shrink:0; box-shadow:0 24px 50px rgba(28,43,39,0.20);}
  .closing-copy{display:flex; flex-direction:column; gap:24px; max-width:580px;}
  .closing-copy h2{margin:0; font-size:88px; line-height:1; font-weight:400;}
  .closing-copy .byline{margin:0; font-style:italic; font-size:28px; line-height:1.35; color:#2E4A43;}

  /* Footer */
  footer{margin-top:auto; box-sizing:border-box; padding:64px 96px 48px; background:var(--footer-bg); color:var(--footer-fg); display:flex; flex-direction:column; gap:40px;}
  .footer-top{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:24px;}
  .footer-brand{font-size:26px; letter-spacing:0.12em; color:var(--footer-fg-strong);}
  .footer-sub{font-size:16px;}
  .footer-social{display:flex; gap:28px; font-size:16px;}
  .footer-social a{color:var(--footer-fg-strong);}
  .footer-bottom{display:flex; justify-content:space-between; border-top:1px solid #3A4A45; padding-top:24px; font-size:14px; flex-wrap:wrap; gap:12px;}
  .footer-legal{display:flex; gap:28px; flex-wrap:wrap;}
  .footer-legal a{color:var(--footer-fg);}

  /* Mobile */
  @media (max-width: 860px){
    .nav-links a:not(.nav-cta){display:none;}
    nav{padding:0 20px; height:64px;}
    .brand{font-size:20px;}
    .nav-cta{height:44px; padding:0 18px; font-size:15px;}

    .hero{flex-direction:column; align-items:stretch; padding:44px 24px 64px; gap:22px;}
    .hero-copy{display:contents;}
    .hero-kicker{order:1;}
    h1.title{order:2; font-size:60px;}
    h2.subtitle{order:3; font-size:24px;}
    .hero-img{order:4; width:100%; height:auto; aspect-ratio:342/414; border-radius:22px;}
    .checklist{order:5; font-size:18px; gap:12px;}
    .hero-cta-row{order:6; flex-direction:column; align-items:stretch; gap:12px;}
    .hero-cta-row .btn{justify-content:center; height:56px;}
    .hero-cta-note{text-align:center;}

    .intro{padding:64px 24px;}
    .intro h2{font-size:34px;}
    .intro p{font-size:17px;}
    .intro .callout{font-size:22px;}

    .lifestyle-viewport{-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);}
    .lifestyle-track{padding:0 10px 14px; gap:16px; animation-duration:31s;}
    .lifestyle-track img{width:240px; height:300px; border-radius:16px;}

    .quote{padding:56px 24px;}
    .quote-stage p{font-size:27px;}

    .parcours{padding:64px 24px; gap:20px;}
    .section-head h2{font-size:34px;}
    .cards3{grid-template-columns:1fr; gap:20px;}
    .card{padding:28px 24px;}
    .card .num{font-size:42px;}
    .eval-box{padding:20px 22px;}
    .day-preview-viewer{gap:12px;}
    .day-preview-img{width:210px; height:316px;}

    .change{flex-direction:column; align-items:stretch; padding:64px 24px; gap:18px;}
    .change-head{width:auto;}
    .change-head h2{font-size:34px;}
    .change-grid{grid-template-columns:1fr; row-gap:14px;}
    .change-grid .change-item{padding-top:14px;}
    .change-grid .change-item h3{font-size:21px;}
    .change-grid .change-item p{font-size:15px;}

    .avis{padding:64px 24px; gap:20px;}
    .cards2{grid-template-columns:1fr; gap:16px;}
    .review{padding:28px 24px;}
    .review h3{font-size:22px;}
    .review p, .review .meta{font-size:16px;}

    .extrait{padding:64px 24px;}
    .extrait-viewer{gap:24px;}
    .extrait-img{width:auto; max-width:310px; height:466px;}
    .round-btn{width:48px; height:48px;}

    .closing{flex-direction:column; padding:64px 24px; gap:20px; text-align:center; align-items:center;}
    .closing-cover{width:210px; height:296px;}
    .closing-copy{align-items:center;}
    .closing-copy h2{font-size:52px;}
    .closing-copy .byline{font-size:21px;}
    .closing-copy .btn{align-self:stretch; justify-content:center;}

    footer{padding:48px 24px 32px; gap:22px;}
    .footer-top{flex-direction:column; gap:14px;}
    .footer-bottom{flex-direction:column; align-items:flex-start;}

    .legal{padding:64px 24px;}
    .legal h1{font-size:40px;}
  }

/* Simple content pages (mentions légales, confidentialité, contact) */
.legal{box-sizing:border-box; padding:120px 96px; background:var(--paper); display:flex; justify-content:center;}
.legal-inner{max-width:760px; width:100%; display:flex; flex-direction:column; gap:20px;}
.legal h1{margin:0 0 12px; font-size:52px; line-height:1.15; font-weight:400;}
.legal h2{margin:32px 0 4px; font-size:26px; font-weight:500; font-family:'Jost','Helvetica Neue',sans-serif;}
.legal p, .legal li{font-size:17px; line-height:1.7; color:var(--ink-soft); margin:0;}
.legal ul{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:6px;}
.legal a.back{align-self:flex-start; font-size:15px; margin-bottom:12px;}

/* Contact form */
.contact-form{display:flex; flex-direction:column; gap:20px; margin-top:12px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:15px; font-weight:500; color:var(--ink);}
.field input, .field textarea{font-family:inherit; font-size:16px; padding:14px 16px; border:1px solid var(--line-2); border-radius:12px; background:#fff; color:var(--ink);}
.field textarea{resize:vertical; min-height:140px;}
.field input:focus, .field textarea:focus{outline:2px solid var(--accent); outline-offset:1px;}
.contact-form button{align-self:flex-start; border:none; cursor:pointer;}
.form-note{font-size:14px; color:var(--muted);}
.form-success{background:#EAF3EF; border:1px solid var(--accent); color:var(--ink); padding:20px 24px; border-radius:16px; font-size:16px;}
