  :root{
    color-scheme: light;
    --pink: #c97fae;
    --pink-dark: #a85a8c;
    --pink-soft: #f3dceb;
    --peach: #f3d9c0;
    --cream: #fbf3e6;
    --ink: #3c2f38;
    --ink-soft: #6b5b64;
    --white: #fffdfb;
    --shadow: 0 20px 50px -25px rgba(60,47,56,.35);
    --radius: 22px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Jost', sans-serif;
    color:var(--ink);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  h1,h2,h3,.display{
    font-family:'Cormorant Garamond', serif;
    font-weight:600;
    line-height:1.1;
    margin:0 0 .4em;
    letter-spacing:.01em;
  }
  a{color:inherit;}
  .wrap{max-width:1140px; margin:0 auto; padding-inline:24px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--pink-dark); font-weight:500; margin-bottom:14px;
  }
  .eyebrow::before{content:""; width:26px; height:1px; background:var(--pink-dark);}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px; border-radius:999px;
    background:var(--pink); color:var(--white);
    font-family:'Jost',sans-serif; font-size:.95rem; font-weight:500; letter-spacing:.03em;
    text-decoration:none; border:1px solid var(--pink);
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
    box-shadow: 0 14px 30px -14px rgba(169,90,140,.6);
  }
  .btn:hover{transform:translateY(-2px); background:var(--pink-dark); border-color:var(--pink-dark);}
  .btn.ghost{
    background:transparent; color:var(--white); border-color:rgba(255,255,255,.7);
    box-shadow:none;
  }
  .btn.ghost:hover{background:rgba(255,255,255,.15); border-color:#fff;}
  .btn.outline{
    background:transparent; color:var(--pink-dark); border-color:var(--pink);
    box-shadow:none;
  }
  .btn.outline:hover{background:var(--pink); color:#fff;}

  /* Header */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding-top:env(safe-area-inset-top,0px);
    transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
  }
  header .bar{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 24px; max-width:1140px; margin:0 auto;
  }
  header .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  header .brand img{
    width:46px; height:46px; border-radius:50%; object-fit:cover;
    border:2px solid rgba(255,255,255,.85);
  }
  header .brand .name{
    font-family:'Cormorant Garamond', serif; font-weight:600; font-size:1.35rem;
    color:#fff; letter-spacing:.02em;
  }
  header .brand .name small{display:block; font-family:'Jost',sans-serif; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.85); font-weight:400;}
  nav.links{display:flex; align-items:center; gap:32px;}
  nav.links a{
    text-decoration:none; color:#fff; font-size:.92rem; letter-spacing:.03em; font-weight:400;
    position:relative; padding-bottom:4px;
  }
  nav.links a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:#fff; transition:width .25s ease;}
  nav.links a:hover::after{width:100%;}
  .menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; color:#fff;}
  .menu-toggle svg{width:26px; height:26px;}

  header.scrolled{background:rgba(251,243,230,.92); backdrop-filter:blur(10px); box-shadow:0 8px 24px -18px rgba(60,47,56,.4);}
  header.scrolled .brand .name{color:var(--ink);}
  header.scrolled .brand .name small{color:var(--pink-dark);}
  header.scrolled nav.links a{color:var(--ink);}
  header.scrolled nav.links a::after{background:var(--ink);}
  header.scrolled .menu-toggle{color:var(--ink);}
  header.scrolled .btn.ghost{color:var(--pink-dark); border-color:var(--pink);}
  header.scrolled .btn.ghost:hover{background:var(--pink); color:#fff;}

  /* Hero */
  .hero{
    position:relative; min-height:100svh; display:flex; align-items:center;
    padding-top:calc(90px + env(safe-area-inset-top,0px));
    padding-bottom:80px;
    color:#fff; isolation:isolate;
  }
  .hero .bg{
    position:absolute; inset:0; z-index:-2;
    background:url('images/salle-massage.jpg') center 38%/cover no-repeat;
  }
  .hero .bg::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(60,35,50,.55) 0%, rgba(60,35,50,.45) 45%, rgba(60,35,50,.78) 100%);
  }
  .hero-inner{max-width:640px;}
  .hero h1{font-size:clamp(2.4rem, 5.4vw, 3.8rem); color:#fff;}
  .hero h1 em{font-style:italic; color:var(--pink-soft);}
  .hero p.lead{font-size:1.1rem; line-height:1.7; color:rgba(255,255,255,.92); max-width:520px; margin-bottom:34px;}
  .hero .cta-row{display:flex; flex-wrap:wrap; gap:16px; margin-bottom:46px;}
  .hero .price-tag{
    display:inline-flex; align-items:baseline; gap:8px;
    background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35);
    padding:10px 20px; border-radius:999px; font-size:.9rem; backdrop-filter:blur(6px);
  }
  .hero .price-tag b{font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--pink-soft);}
  .scroll-cue{
    position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px;
    font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.75);
  }
  .scroll-cue .line{width:1px; height:34px; background:linear-gradient(180deg, rgba(255,255,255,.9), transparent); animation:pulse 2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:.4;} 50%{opacity:1;}}

  /* Value props */
  .values{padding:64px 0 20px; background:var(--white);}
  .values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
  .value-card{text-align:center; padding:18px 10px;}
  .value-card .icon{
    width:64px; height:64px; margin:0 auto 18px; border-radius:50%;
    background:var(--pink-soft); display:flex; align-items:center; justify-content:center;
  }
  .value-card .icon svg{width:30px; height:30px; stroke:var(--pink-dark); fill:none;}
  .value-card h3{font-size:1.15rem; margin-bottom:8px;}
  .value-card p{font-size:.92rem; color:var(--ink-soft); line-height:1.6; margin:0;}

  section{padding:100px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head.center{margin-inline:auto; text-align:center;}
  .section-head p{color:var(--ink-soft); font-size:1.05rem; line-height:1.7;}

  /* Techniques */
  .techniques{background:var(--cream); position:relative; overflow:hidden;}
  .techniques::before{
    content:""; position:absolute; top:-120px; right:-120px; width:420px; height:420px;
    border-radius:50%; background:radial-gradient(circle, var(--peach) 0%, transparent 70%); opacity:.6;
  }
  .tech-featured{
    position:relative; background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow);
    display:grid; grid-template-columns:1.1fr 1fr; overflow:hidden; margin-bottom:34px;
  }
  .tech-featured .side{
    background:linear-gradient(155deg, var(--pink) 0%, var(--pink-dark) 100%);
    color:#fff; padding:52px 44px; display:flex; flex-direction:column; justify-content:center; position:relative;
  }
  .tech-featured .side .badge{
    align-self:flex-start; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
    background:rgba(255,255,255,.18); padding:6px 14px; border-radius:999px; margin-bottom:18px;
  }
  .tech-featured .side svg{width:74px; height:74px; stroke:#fff; fill:none; opacity:.9; margin-bottom:22px;}
  .tech-featured .side h3{color:#fff; font-size:1.9rem;}
  .tech-featured .side .price{font-family:'Cormorant Garamond',serif; font-size:1.05rem; margin-top:20px; opacity:.95;}
  .tech-featured .side .price b{font-size:1.5rem;}
  .tech-featured .content{padding:52px 48px;}
  .tech-featured .content p{color:var(--ink-soft); line-height:1.75; margin-bottom:22px;}
  .benefits{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
  .benefits li{display:flex; align-items:flex-start; gap:12px; font-size:.95rem; color:var(--ink);}
  .benefits li svg{width:18px; height:18px; flex:none; margin-top:3px; stroke:var(--pink-dark); fill:none;}

  .tech-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  .tech-card{
    background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow);
    padding:40px; position:relative;
  }
  .tech-card .icon{
    width:58px; height:58px; border-radius:16px; background:var(--pink-soft);
    display:flex; align-items:center; justify-content:center; margin-bottom:22px;
  }
  .tech-card .icon svg{width:28px; height:28px; stroke:var(--pink-dark); fill:none;}
  .tech-card h3{font-size:1.4rem; margin-bottom:12px;}
  .tech-card p{color:var(--ink-soft); line-height:1.7; font-size:.96rem; margin-bottom:14px;}
  .tech-card .for-who{font-size:.82rem; color:var(--pink-dark); font-weight:500;}
  .tech-card .for-who b{font-weight:600;}

  /* About */
  .about{background:var(--white);}
  .about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:center;}
  .about-media{position:relative;}
  .about-media img{border-radius:var(--radius); box-shadow:var(--shadow); width:100%; aspect-ratio:4/5; object-fit:cover;}
  .about-media .ring{
    position:absolute; width:160px; height:160px; border:1px solid var(--pink); border-radius:50%;
    top:-30px; left:-30px; z-index:-1;
  }
  .about-text p{color:var(--ink-soft); line-height:1.85; font-size:1.02rem; margin-bottom:18px;}
  .about-stats{display:flex; gap:40px; margin-top:34px;}
  .about-stats div b{display:block; font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--pink-dark);}
  .about-stats div span{font-size:.82rem; color:var(--ink-soft);}

  /* Pricing */
  .pricing{background:var(--cream); text-align:center;}
  .price-card{
    max-width:460px; margin:0 auto; background:var(--white); border-radius:var(--radius);
    box-shadow:var(--shadow); padding:52px 44px; position:relative; border:1px solid var(--pink-soft);
  }
  .price-card .eyebrow{justify-content:center;}
  .price-card h3{font-size:1.6rem; margin-bottom:6px;}
  .price-card .duration{color:var(--ink-soft); font-size:.92rem; margin-bottom:26px;}
  .price-card .amount{font-family:'Cormorant Garamond',serif; font-size:3.4rem; color:var(--pink-dark); font-weight:700; margin-bottom:6px;}
  .price-card .amount span{font-size:1.1rem; font-weight:400; color:var(--ink-soft);}
  .price-card ul{list-style:none; padding:0; margin:26px 0 32px; display:grid; gap:10px; text-align:left;}
  .price-card ul li{display:flex; gap:10px; font-size:.92rem; color:var(--ink-soft);}
  .price-card ul li svg{width:16px; height:16px; stroke:var(--pink-dark); fill:none; flex:none; margin-top:3px;}
  .price-note{margin-top:22px; font-size:.9rem; color:var(--ink-soft);}

  /* CTA band */
  .cta-band{
    background:linear-gradient(155deg, var(--pink) 0%, var(--pink-dark) 100%);
    color:#fff; text-align:center; padding:90px 0;
  }
  .cta-band h2{color:#fff; font-size:clamp(1.9rem,3.4vw,2.6rem);}
  .cta-band p{color:rgba(255,255,255,.9); max-width:560px; margin:0 auto 32px; line-height:1.7;}

  /* Contact */
  .contact{background:var(--white);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
  .contact-list{display:grid; gap:26px;}
  .contact-item{display:flex; gap:18px; align-items:flex-start;}
  .contact-item .icon{
    width:50px; height:50px; border-radius:14px; background:var(--pink-soft); flex:none;
    display:flex; align-items:center; justify-content:center;
  }
  .contact-item .icon svg{width:22px; height:22px; stroke:var(--pink-dark); fill:none;}
  .contact-item h4{margin:0 0 4px; font-size:1rem; font-family:'Jost',sans-serif; font-weight:500;}
  .contact-item p{margin:0; color:var(--ink-soft); font-size:.95rem;}
  .contact-item a{color:var(--pink-dark); text-decoration:none; font-weight:500;}
  .todo{
    background:var(--pink-soft); border:1px dashed var(--pink); border-radius:16px;
    padding:16px 20px; font-size:.85rem; color:var(--pink-dark); margin-top:6px;
  }
  .contact-panel{
    background:var(--cream); border-radius:var(--radius); padding:44px; box-shadow:var(--shadow);
  }
  .contact-panel h3{font-size:1.5rem;}
  .contact-panel p{color:var(--ink-soft); line-height:1.7; margin-bottom:26px;}
  .hours{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
  .hours li{display:flex; justify-content:space-between; font-size:.92rem; padding:9px 0; border-bottom:1px solid rgba(60,47,56,.08);}
  .hours li span:last-child{color:var(--ink-soft);}

  footer{background:#2f2530; color:rgba(255,255,255,.75); padding:56px 0 30px;}
  .footer-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px; margin-bottom:36px;}
  .footer-brand{display:flex; align-items:center; gap:12px;}
  .footer-brand img{width:44px; height:44px; border-radius:50%; object-fit:cover;}
  .footer-brand .name{font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:#fff;}
  footer nav{display:flex; gap:26px; flex-wrap:wrap;}
  footer nav a{color:rgba(255,255,255,.75); text-decoration:none; font-size:.9rem;}
  footer nav a:hover{color:#fff;}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.12); padding-top:24px; font-size:.8rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color:rgba(255,255,255,.5);}

  /* Mobile */
  @media (max-width: 880px){
    .values-grid{grid-template-columns:1fr 1fr;}
    .tech-featured{grid-template-columns:1fr;}
    .tech-grid{grid-template-columns:1fr;}
    .about-grid{grid-template-columns:1fr;}
    .about-media{order:-1;}
    .contact-grid{grid-template-columns:1fr;}
  }
  @media (max-width: 720px){
    nav.links{
      position:fixed; inset:0; top:0; background:var(--pink-dark);
      flex-direction:column; justify-content:center; align-items:center; gap:30px;
      transform:translateX(100%); transition:transform .35s ease; padding-top:env(safe-area-inset-top,0px);
    }
    nav.links.open{transform:translateX(0);}
    nav.links a{font-size:1.3rem; color:#fff;}
    nav.links .btn{margin-top:10px;}
    .menu-toggle{display:block; z-index:110;}
    .hero .cta-row{flex-direction:column; align-items:flex-start;}
    .values-grid{grid-template-columns:1fr;}
    .tech-featured .side, .tech-featured .content{padding:36px 26px;}
    section{padding:70px 0;}
  }

  /* Legal / content pages */
  .page-hero{
    background:linear-gradient(155deg, var(--pink) 0%, var(--pink-dark) 100%);
    color:#fff; padding:calc(150px + env(safe-area-inset-top,0px)) 0 80px; text-align:center;
  }
  .page-hero h1{color:#fff; font-size:clamp(2rem,4vw,2.8rem);}
  .page-hero p{color:rgba(255,255,255,.9); max-width:560px; margin:0 auto;}
  .legal{background:var(--white);}
  .legal .wrap{max-width:820px;}
  .legal h2{font-size:1.5rem; margin-top:48px; color:var(--pink-dark);}
  .legal h2:first-child{margin-top:0;}
  .legal p, .legal li{color:var(--ink-soft); line-height:1.8; font-size:1rem;}
  .legal ul{padding-left:22px;}
  .legal .notice{
    background:var(--pink-soft); border-left:4px solid var(--pink-dark);
    border-radius:12px; padding:24px 28px; margin:20px 0;
  }
  .legal .notice p{color:var(--ink); margin:0;}
  .legal .notice strong{color:var(--pink-dark);}
  .back-link{display:inline-flex; align-items:center; gap:8px; margin-bottom:20px; color:var(--pink-dark); text-decoration:none; font-size:.9rem;}
