  :root{
    --pink:#FF216E;
    --pink-deep:#D2135A;
    --blush:#F7EDE9;
    --blush-2:#FBEFF0;
    --paper:#FFFFFF;
    --ink:#1A1416;
    --ink-soft:#6f5f63;
    --line:#ecdcd8;
    --gold:#c9a24a;
    --radius:14px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
  }
  body{
    margin:0;background:var(--blush);color:var(--ink);
    font-family:'Poppins',sans-serif;font-weight:400;line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{margin:0;font-weight:600;}
  a{color:inherit;}
  /* height:auto est indispensable : les images déclarent leurs dimensions
     réelles dans le HTML (pour réserver la place et éviter que la page
     saute au chargement), et sans cette règle elles seraient déformées
     dès que la largeur est contrainte par la mise en page. */
  img{max-width:100%;display:block;height:auto;}
  :focus-visible{outline:2px solid var(--pink);outline-offset:3px;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 26px;}
  .script{font-family:'Dancing Script',cursive;color:var(--pink);}
  .eyebrow{
    font-size:12px;letter-spacing:.22em;text-transform:uppercase;
    color:var(--pink);font-weight:600;
  }

  /* Header */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(247,237,233,.9);backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;
    padding:12px 26px;max-width:1080px;margin:0 auto;}
  .nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
  .nav-brand img{width:44px;height:44px;object-fit:contain;border-radius:8px;}
  .nav-brand span{font-family:'Playfair Display',serif;font-weight:500;font-size:16px;}
  .nav-links{display:flex;gap:26px;list-style:none;margin:0;padding:0;font-size:14px;align-items:center;}
  .nav-links a{text-decoration:none;color:var(--ink-soft);transition:color .2s;}
  .nav-links a:hover{color:var(--pink);}
  .nav-cta{background:var(--pink);color:#fff !important;padding:9px 18px;border-radius:50px;
    font-size:13px;font-weight:500;transition:background .2s;}
  .nav-cta:hover{background:var(--pink-deep);}
  .nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;
    padding:11px 14px;min-height:44px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);}
  .nav-mobile-bar{display:none;align-items:center;gap:8px;}
  .nav-social{display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:50%;border:1.5px solid var(--pink);color:var(--pink);
    transition:background .2s,color .2s;flex-shrink:0;}
  .nav-social:hover{background:var(--pink);color:#fff;}
  @media(max-width:860px){
    .nav-links{display:none;}
    .nav-toggle{display:block;}
    .nav-mobile-bar{display:flex;}
    .nav-links.open{display:flex;flex-direction:column;align-items:flex-start;
      position:absolute;top:68px;left:0;right:0;background:var(--paper);
      padding:20px 26px;border-bottom:1px solid var(--line);gap:16px;}
  }

  .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:50px;
    text-decoration:none;font-size:14px;font-weight:500;border:1.5px solid transparent;
    cursor:pointer;transition:transform .15s,background .2s,border-color .2s;font-family:inherit;}
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--pink);color:#fff;}
  .btn-primary:hover{background:var(--pink-deep);}
  .btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent;}
  .btn-ghost:hover{border-color:var(--pink);color:var(--pink);}

  /* Hero */
  .hero{padding:70px 0 60px;position:relative;overflow:hidden;}
  .hero::before{content:"";position:absolute;top:-120px;right:-120px;width:360px;height:360px;
    background:radial-gradient(circle,rgba(255,33,110,.14),transparent 70%);pointer-events:none;}
  .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;}
  .hero-logo{width:120px;margin-bottom:8px;}
  .hero h1{font-family:'Playfair Display',serif;font-weight:500;
    font-size:clamp(34px,5vw,56px);line-height:1.08;margin:6px 0 20px;}
  .hero h1 .script{font-size:1.15em;display:inline-block;}
  .hero .lede{font-size:16.5px;color:var(--ink-soft);max-width:44ch;margin-bottom:30px;}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
  .hero-photo{position:relative;}
  .hero-photo img{width:100%;border-radius:20px;object-fit:cover;aspect-ratio:3/4;
    box-shadow:0 30px 60px -30px rgba(210,19,90,.4);}
  .hero-photo .badge{position:absolute;bottom:-18px;left:-18px;background:#fff;
    border-radius:50px;padding:12px 22px;box-shadow:0 12px 30px -12px rgba(0,0,0,.25);
    font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px;}
  .hero-photo .badge b{color:var(--pink);}
  @media(max-width:860px){
    .hero .wrap{grid-template-columns:1fr;}
    .hero-photo{max-width:340px;margin:0 auto;}
  }

  section{padding:70px 0;}
  section+section{border-top:1px solid var(--line);}
  .section-head{max-width:60ch;margin-bottom:38px;}
  /* h1 et h2 sont présentés de la même façon : sur la page d'accueil le
     titre principal est ailleurs (le grand titre du haut), tandis que sur
     les pages Prestations c'est ce titre-ci qui fait office de titre
     principal. Même apparence, structure correcte pour Google. */
  .section-head h1,
  .section-head h2{font-family:'Playfair Display',serif;font-weight:500;
    font-size:clamp(26px,3.2vw,36px);margin-top:8px;}
  .section-head p{color:var(--ink-soft);margin-top:10px;font-size:15.5px;}

  /* Bio */
  .bio{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
    background:var(--paper);border-radius:24px;padding:40px;border:1px solid var(--line);}
  .bio-text p{color:var(--ink-soft);font-size:15.5px;margin:0 0 14px;}
  .bio-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;font-size:13px;}
  .bio-facts div{border-top:2px solid var(--pink);padding-top:8px;}
  .bio-facts b{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:2px;}
  .bio-illus{display:flex;align-items:center;justify-content:center;}
  .bio-illus img{width:78%;}
  @media(max-width:760px){.bio{grid-template-columns:1fr;padding:28px;} .bio-illus{order:-1;max-width:200px;margin:0 auto;}}

  /* Menu / tarifs */
  .tarif-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
  .tarif-col h3{font-family:'Dancing Script',cursive;color:var(--pink);font-size:28px;
    font-weight:700;margin-bottom:6px;}
  .tarif-sub{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
    font-weight:600;margin:22px 0 4px;}
  .services-intro{max-width:70ch;margin-bottom:28px;}
  .services-intro p{color:var(--ink-soft);font-size:15px;margin:0 0 16px;}
  .services-list{list-style:none;margin:0 0 32px;padding:0;display:grid;
    grid-template-columns:1fr 1fr;gap:6px 32px;}
  .services-list li{position:relative;padding-left:18px;font-size:14.5px;color:var(--ink);
    padding-top:6px;padding-bottom:6px;}
  .services-list li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:7px;
    border-radius:50%;background:var(--pink);}
  @media(max-width:600px){.services-list{grid-template-columns:1fr;}}
  .menu-item{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px dotted var(--line);}
  a.menu-item-link{color:inherit;text-decoration:none;border-radius:8px;transition:background .15s,padding .15s;}
  a.menu-item-link:hover,a.menu-item-link:focus-visible{background:var(--paper);padding-left:10px;padding-right:10px;}
  a.menu-item-link .menu-name{text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .15s;}
  a.menu-item-link:hover .menu-name{text-decoration-color:var(--pink);}
  .menu-name{font-size:15.5px;}
  .menu-tag{font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:#fff;
    background:var(--pink);padding:2px 8px;border-radius:20px;margin-left:6px;vertical-align:middle;font-weight:600;}
  .menu-lead{flex:1;}
  .menu-price{font-weight:600;color:var(--pink);white-space:nowrap;font-size:15.5px;}
  @media(max-width:760px){.tarif-grid{grid-template-columns:1fr;gap:12px;}}

  /* Gift card */
  .gift{background:linear-gradient(180deg,var(--blush-2),var(--blush));}
  .gift-panel{display:grid;grid-template-columns:.95fr 1.05fr;border-radius:24px;overflow:hidden;
    box-shadow:0 30px 70px -40px rgba(210,19,90,.5);background:var(--paper);}
  .gift-visual{position:relative;padding:40px;display:flex;flex-direction:column;justify-content:space-between;
    min-height:360px;color:var(--ink);
    background:
      repeating-linear-gradient(60deg,rgba(255,33,110,.05) 0 2px,transparent 2px 16px),
      repeating-linear-gradient(-60deg,rgba(255,33,110,.05) 0 2px,transparent 2px 16px),
      var(--blush-2);}
  .gift-visual .gv-logo{width:80px;}
  .gift-visual .gv-title{font-family:'Dancing Script',cursive;color:var(--pink);font-size:44px;
    font-weight:700;line-height:1;margin-top:auto;}
  .gift-visual .gv-amount{font-family:'Playfair Display',serif;font-size:42px;margin-top:10px;}
  .gift-visual .gv-valid{font-size:11px;color:var(--ink-soft);margin-top:14px;white-space:nowrap;}
  @media(max-width:400px){.gift-visual .gv-valid{font-size:9.5px;}}
  .gift-form{padding:40px;}
  .gift-form label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ink-soft);margin-bottom:8px;font-weight:600;}
  .amount-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
  .chip{border:1.5px solid var(--line);background:var(--blush);padding:12px 18px;border-radius:50px;
    font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;color:var(--ink);min-height:44px;}
  .chip.active,.chip:hover{border-color:var(--pink);color:var(--pink);background:#fff;}
  .field{margin-bottom:16px;}
  .field input,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);
    border-radius:12px;background:var(--blush);font-family:inherit;font-size:14.5px;color:var(--ink);}
  .field input:focus,.field textarea:focus{border-color:var(--pink);outline:none;background:#fff;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .gift-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:14px;
    border-top:1px solid var(--line);margin:6px 0 18px;}
  .gift-total .num{font-family:'Playfair Display',serif;font-size:26px;color:var(--pink);}
  .gift-disc{font-size:11.5px;color:var(--ink-soft);margin-top:12px;line-height:1.5;}
  @media(max-width:820px){.gift-panel{grid-template-columns:1fr;}.field-row{grid-template-columns:1fr;}}

  /* Contact */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
  .contact-card{border:1px solid var(--line);border-radius:20px;padding:30px;background:var(--paper);}
  .contact-card h3{font-family:'Playfair Display',serif;font-weight:500;font-size:20px;margin-bottom:8px;}
  .contact-card p{color:var(--ink-soft);font-size:14.5px;margin:0 0 18px;}
  .info-line{display:flex;gap:10px;align-items:center;font-size:14px;margin-bottom:8px;}
  .info-line svg{flex-shrink:0;color:var(--pink);}
  @media(max-width:700px){.contact-grid{grid-template-columns:1fr;}}

  footer{padding:40px 0;text-align:center;}
  footer img{width:70px;margin:0 auto 14px;}
  footer .socials{display:flex;gap:14px;justify-content:center;align-items:center;margin:14px 0;font-size:14px;flex-wrap:wrap;}
  footer .socials a{text-decoration:none;color:var(--pink);font-weight:500;}
  footer .social-btn{display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;border-radius:50%;border:1.5px solid var(--pink);color:var(--pink);
    transition:background .2s,color .2s;}
  footer .social-btn:hover{background:var(--pink);color:#fff;}
  footer .copy{font-size:12px;color:var(--ink-soft);}
