    :root{
      --bg:#f6f3ed;
      --surface:#ffffff;
      --text:#1c2a29;
      --muted:#65706e;
      --accent:#846f55;
      --accent-dark:#66523d;
      --line:#ddd7cd;
      --max:1180px;
      --radius:26px;
      --shadow:0 20px 55px rgba(38,47,45,.10);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:Inter, Arial, Helvetica, sans-serif;
      background:var(--bg);
      color:var(--text);
      line-height:1.6;
    }

    img{display:block;max-width:100%}
    a{color:inherit;text-decoration:none}
    button,a{transition:.2s ease}

    .container{
      width:min(calc(100% - 40px), var(--max));
      margin-inline:auto;
    }

    header{
      position:sticky;
      top:0;
      z-index:20;
      background:rgba(246,243,237,.92);
      backdrop-filter:blur(14px);
      border-bottom:1px solid rgba(221,215,205,.8);
    }

    .nav{
      min-height:82px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:24px;
    }

    .brand{
      display:flex;
      align-items:center;
      width:min(280px, 42vw);
      min-width:170px;
    }

    .brand-logo{
      width:100%;
      max-height:62px;
      object-fit:contain;
      object-position:left center;
    }

    .nav-links{
      display:flex;
      align-items:center;
      gap:28px;
      font-size:.96rem;
    }

    .nav-links a:not(.btn){
      color:var(--muted);
      font-weight:700;
    }

    .nav-links a:not(.btn):hover{
      color:var(--accent-dark);
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:50px;
      padding:0 24px;
      border-radius:999px;
      border:1px solid var(--accent);
      font-weight:700;
      cursor:pointer;
    }

    .btn-primary{
      background:var(--accent);
      color:#fff;
    }

    .btn-primary:hover{background:var(--accent-dark)}
    .btn-outline:hover{background:#eee8df}

    .hero{
      padding:72px 0 54px;
    }

    .hero-grid{
      display:grid;
      grid-template-columns:1.05fr .95fr;
      align-items:center;
      gap:58px;
    }

    .eyebrow{
      text-transform:uppercase;
      letter-spacing:.18em;
      font-size:.78rem;
      font-weight:800;
      color:var(--accent);
      margin:0 0 16px;
    }

    h1,h2,h3{
      font-family:Georgia, "Times New Roman", serif;
      font-weight:500;
      line-height:1.05;
      margin-top:0;
    }

    h1{
      font-size:clamp(3.3rem,7vw,6.8rem);
      margin-bottom:24px;
      letter-spacing:-.045em;
    }

    .hero p{
      max-width:680px;
      font-size:1.15rem;
      color:var(--muted);
      margin-bottom:30px;
    }

    .actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
    }

    .hero-media{
      position:relative;
    }

    .hero-media img{
      width:100%;
      height:660px;
      object-fit:cover;
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }

    .experience-card{
      position:absolute;
      left:-28px;
      bottom:36px;
      width:230px;
      padding:24px;
      border-radius:20px;
      background:#fff;
      box-shadow:var(--shadow);
    }

    .experience-card strong{
      display:block;
      font-family:Georgia, "Times New Roman", serif;
      font-size:2rem;
      color:var(--accent-dark);
    }

    section{
      padding:86px 0;
    }

    .section-head{
      display:flex;
      justify-content:space-between;
      align-items:end;
      gap:32px;
      margin-bottom:42px;
    }

    .section-head h2{
      font-size:clamp(2.4rem,5vw,4.5rem);
      max-width:800px;
      margin-bottom:0;
    }

    .section-head p{
      max-width:430px;
      color:var(--muted);
      margin:0;
    }

    .services{
      background:var(--surface);
    }

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

    .service-card{
      overflow:hidden;
      border-radius:22px;
      background:var(--bg);
      border:1px solid var(--line);
    }

    .service-card img{
      width:100%;
      height:260px;
      object-fit:cover;
    }

    .service-card-content{
      padding:27px;
    }

    .service-card h3{
      font-size:1.7rem;
      margin-bottom:14px;
    }

    .service-card p{
      margin:0;
      color:var(--muted);
    }

    .about-grid{
      display:grid;
      grid-template-columns:.8fr 1.2fr;
      gap:70px;
      align-items:start;
    }

    .about-label{
      position:sticky;
      top:120px;
    }

    .about h2{
      font-size:clamp(2.7rem,5vw,5rem);
      margin-bottom:30px;
    }

    .about p{
      font-size:1.14rem;
      color:var(--muted);
      max-width:780px;
    }

    .contact{
      padding-top:42px;
    }

    .contact-box{
      background:var(--text);
      color:#fff;
      border-radius:30px;
      padding:64px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:40px;
    }

    .contact-box h2{
      font-size:clamp(2.7rem,5vw,5rem);
      max-width:700px;
      margin-bottom:20px;
    }

    .contact-box p{
      color:rgba(255,255,255,.72);
      max-width:680px;
    }

    .contact-box .btn-outline{
      border-color:rgba(255,255,255,.55);
      color:#fff;
    }

    footer{
      padding:34px 0;
      border-top:1px solid var(--line);
      margin-top:80px;
    }

    .footer-inner{
      display:flex;
      justify-content:space-between;
      gap:30px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:.94rem;
    }

    @media (max-width:900px){
      .nav-links a:not(.btn){display:none}
      .menu-toggle{display:inline-flex}
      .hero-grid,.about-grid{grid-template-columns:1fr}
      .hero-media img{height:520px}
      .experience-card{left:18px}
      .service-grid{grid-template-columns:1fr}
      .section-head{display:block}
      .section-head p{margin-top:18px}
      .contact-box{padding:42px;display:block}
      .contact-box .actions{margin-top:28px}
      .about-label{position:static}
    }

    @media (max-width:560px){
      .container{width:min(calc(100% - 24px), var(--max))}
      .brand{
        width:190px;
        min-width:150px;
      }
      .nav .btn{padding:0 16px;min-height:44px}
      .hero{padding-top:42px}
      h1{font-size:3.6rem}
      .hero-media img{height:430px}
      section{padding:62px 0}
      .contact-box{padding:30px 24px}
    }
  
    .whatsapp-float{
      position:fixed;
      right:24px;
      bottom:24px;
      z-index:9999;
      width:64px;
      height:64px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:50%;
      background:#25d366;
      box-shadow:0 8px 24px rgba(0,0,0,.24);
      transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
    }

    .whatsapp-float:hover{
      transform:translateY(-2px) scale(1.04);
      background:#20bd5a;
      box-shadow:0 12px 30px rgba(0,0,0,.3);
    }

    .whatsapp-float:focus-visible{
      outline:3px solid #ffffff;
      outline-offset:3px;
    }

    .whatsapp-float svg{
      width:36px;
      height:36px;
      fill:#ffffff;
    }

    @media (max-width:560px){
      .whatsapp-float{
        right:18px;
        bottom:18px;
        width:58px;
        height:58px;
      }

      .whatsapp-float svg{
        width:32px;
        height:32px;
      }
    }

  



    .menu-toggle{
      display:none;
      gap:10px;
      border:0;
      font-size:1rem;
    }

    @media (max-width:900px){
      .menu-toggle{display:inline-flex}
    }

    .menu-icon{
      width:22px;
      display:grid;
      gap:4px;
    }

    .menu-icon span{
      display:block;
      height:2px;
      border-radius:999px;
      background:currentColor;
    }

    .menu-overlay{
      position:fixed;
      inset:0;
      z-index:10000;
      background:rgba(18,26,25,.52);
      opacity:0;
      visibility:hidden;
      transition:opacity .28s ease, visibility .28s ease;
    }

    .side-menu{
      position:fixed;
      top:0;
      right:0;
      z-index:10001;
      width:min(86vw,390px);
      height:100dvh;
      padding:28px;
      display:flex;
      flex-direction:column;
      background:var(--bg);
      box-shadow:-18px 0 50px rgba(0,0,0,.18);
      transform:translateX(105%);
      transition:transform .32s ease;
      overflow-y:auto;
    }

    body.menu-open{
      overflow:hidden;
    }

    body.menu-open .menu-overlay{
      opacity:1;
      visibility:visible;
    }

    body.menu-open .side-menu{
      transform:translateX(0);
    }

    .side-menu-header{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:20px;
      padding-bottom:24px;
      border-bottom:1px solid var(--line);
    }

    .side-menu-title{
      width:min(250px, 62vw);
    }

    .side-menu-logo{
      width:100%;
      max-height:82px;
      object-fit:contain;
      object-position:left center;
    }

    .menu-close{
      width:46px;
      height:46px;
      flex:0 0 46px;
      border:1px solid var(--line);
      border-radius:50%;
      background:var(--surface);
      color:var(--text);
      font-size:1.8rem;
      line-height:1;
      cursor:pointer;
    }

    .side-menu-links{
      display:grid;
      margin-top:34px;
    }

    .side-menu-links a{
      padding:18px 4px;
      border-bottom:1px solid var(--line);
      font-family:Georgia, "Times New Roman", serif;
      font-size:1.65rem;
      line-height:1.15;
    }

    .side-menu-links a:hover{
      color:var(--accent-dark);
      padding-left:8px;
    }

    .side-menu-contact{
      margin-top:auto;
      padding-top:32px;
    }

    .side-menu-contact .btn{
      width:100%;
    }

    @media (max-width:560px){
      .menu-toggle{
        min-width:122px;
      }

      .side-menu{
        width:88vw;
        padding:24px;
      }
    }

    @media (prefers-reduced-motion:reduce){
      .menu-overlay,
      .side-menu{
        transition:none;
      }
    }


    .faq-section{
      background:var(--surface);
    }

    .faq-heading{
      max-width:790px;
      margin-bottom:46px;
    }

    .faq-heading h2{
      font-size:clamp(2.7rem,5vw,4.8rem);
      margin-bottom:20px;
    }

    .faq-heading > p:last-child{
      color:var(--muted);
      font-size:1.08rem;
      max-width:700px;
    }

    .faq-groups{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:26px;
    }

    .faq-group{
      padding:30px;
      border:1px solid var(--line);
      border-radius:24px;
      background:var(--bg);
    }

    .faq-group h3{
      font-size:1.85rem;
      margin-bottom:20px;
      color:var(--accent-dark);
    }

    .faq-item{
      border-top:1px solid var(--line);
    }

    .faq-item:last-child{
      border-bottom:1px solid var(--line);
    }

    .faq-item summary{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      padding:19px 0;
      cursor:pointer;
      list-style:none;
      font-weight:750;
      line-height:1.35;
    }

    .faq-item summary::-webkit-details-marker{
      display:none;
    }

    .faq-icon{
      position:relative;
      width:26px;
      height:26px;
      flex:0 0 26px;
      border-radius:50%;
      border:1px solid var(--accent);
    }

    .faq-icon::before,
    .faq-icon::after{
      content:"";
      position:absolute;
      top:50%;
      left:50%;
      width:11px;
      height:1.5px;
      border-radius:999px;
      background:var(--accent-dark);
      transform:translate(-50%,-50%);
      transition:transform .2s ease;
    }

    .faq-icon::after{
      transform:translate(-50%,-50%) rotate(90deg);
    }

    .faq-item[open] .faq-icon::after{
      transform:translate(-50%,-50%) rotate(0deg);
    }

    .faq-item[open] summary{
      color:var(--accent-dark);
    }

    .faq-answer{
      padding:0 44px 20px 0;
      color:var(--muted);
    }

    .faq-answer p{
      margin:0;
    }

    .faq-cta{
      margin-top:34px;
      padding:34px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:30px;
      border-radius:24px;
      background:var(--text);
      color:#fff;
    }

    .faq-cta h3{
      font-size:2rem;
      margin-bottom:10px;
    }

    .faq-cta p{
      margin:0;
      color:rgba(255,255,255,.72);
    }

    .faq-cta .eyebrow{
      color:#d4c3aa;
      margin-bottom:8px;
    }

    .faq-cta .btn{
      flex:0 0 auto;
    }

    @media (max-width:900px){
      .faq-groups{
        grid-template-columns:1fr;
      }

      .faq-cta{
        align-items:flex-start;
        flex-direction:column;
      }
    }

    @media (max-width:560px){
      .faq-group{
        padding:24px 20px;
      }

      .faq-group h3{
        font-size:1.55rem;
      }

      .faq-item summary{
        padding:17px 0;
      }

      .faq-answer{
        padding-right:12px;
      }

      .faq-cta{
        padding:28px 24px;
      }

      .faq-cta .btn{
        width:100%;
      }
    }


    .location-section{
      background:var(--bg);
    }

    .location-grid{
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      gap:54px;
      align-items:stretch;
    }

    .location-content h2{
      font-size:clamp(2.7rem,5vw,4.8rem);
      margin-bottom:24px;
    }

    .location-intro{
      max-width:650px;
      margin-bottom:30px;
      color:var(--muted);
      font-size:1.08rem;
    }

    .address-card{
      display:flex;
      gap:18px;
      align-items:flex-start;
      padding:24px;
      border:1px solid var(--line);
      border-radius:22px;
      background:var(--surface);
      box-shadow:0 12px 34px rgba(38,47,45,.06);
    }

    .address-icon{
      width:48px;
      height:48px;
      flex:0 0 48px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:50%;
      background:var(--accent);
    }

    .address-icon svg{
      width:25px;
      height:25px;
      fill:#fff;
    }

    .address-card address{
      display:grid;
      gap:3px;
      font-style:normal;
      color:var(--muted);
    }

    .address-card address strong{
      margin-bottom:4px;
      color:var(--text);
      font-family:Georgia, "Times New Roman", serif;
      font-size:1.25rem;
    }

    .location-actions{
      margin-top:26px;
    }

    .location-map{
      min-height:540px;
      overflow:hidden;
      border-radius:28px;
      box-shadow:var(--shadow);
      background:var(--surface);
    }

    .location-map iframe{
      width:100%;
      height:100%;
      min-height:540px;
      border:0;
      display:block;
    }

    @media (max-width:900px){
      .location-grid{
        grid-template-columns:1fr;
      }

      .location-map,
      .location-map iframe{
        min-height:430px;
      }
    }

    @media (max-width:560px){

      .location-map,
      .location-map iframe{
        min-height:360px;
      }

      .location-actions .btn{
        width:100%;
      }
    }


    .opening-hours-card{
      display:flex;
      gap:18px;
      align-items:flex-start;
      margin-top:16px;
      padding:22px 24px;
      border:1px solid var(--line);
      border-radius:22px;
      background:var(--surface);
    }

    .opening-hours-icon{
      width:48px;
      height:48px;
      flex:0 0 48px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:50%;
      background:var(--accent);
    }

    .opening-hours-icon svg{
      width:25px;
      height:25px;
      fill:#fff;
    }

    .opening-hours-card > div:last-child{
      display:grid;
      gap:3px;
      color:var(--muted);
    }

    .opening-hours-card strong{
      margin-bottom:4px;
      color:var(--text);
      font-family:Georgia, "Times New Roman", serif;
      font-size:1.2rem;
    }

/* Treatment pages */
.treatment-page .lead{
  max-width:680px;
  color:var(--muted);
  font-size:1.16rem;
}

.treatment-page .hero img{
  width:100%;
  height:560px;
  object-fit:cover;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.surface{
  background:var(--surface);
}

.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:34px;
}

.panel{
  padding:30px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
}

.surface .panel{
  background:var(--bg);
}

.treatment-page ul{
  padding-left:22px;
  color:var(--muted);
}

.treatment-page li + li{
  margin-top:10px;
}

.treatment-page .faq details{
  padding:18px 0;
  border-top:1px solid var(--line);
}

.treatment-page .faq summary{
  cursor:pointer;
  font-weight:800;
}

.treatment-page .faq details:last-child{
  border-bottom:1px solid var(--line);
}

.treatments{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.treatments a{
  min-height:86px;
  display:flex;
  align-items:center;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  font-weight:700;
  transition:border-color .2s ease,color .2s ease,transform .2s ease;
}

.treatments a:hover{
  color:var(--accent-dark);
  border-color:var(--accent);
  transform:translateY(-2px);
}

.cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:42px;
  border-radius:var(--radius);
  background:var(--text);
  color:#fff;
}

.cta p{
  margin:0;
  color:rgba(255,255,255,.78);
}

.cta h2{
  margin-bottom:10px;
  color:#fff;
}

.cta .btn{
  background:#fff;
  color:var(--text);
  border-color:#fff;
}

@media (max-width:900px){
  .grid-2{
    grid-template-columns:1fr;
  }

  .treatment-page .hero img{
    height:420px;
  }

  .treatments{
    grid-template-columns:1fr 1fr;
  }

  .cta{
    display:block;
  }

  .cta .btn{
    margin-top:22px;
  }
}

@media (max-width:560px){
  .treatment-page .hero img{
    height:340px;
  }

  .treatments{
    grid-template-columns:1fr;
  }

  .panel,
  .cta{
    padding:26px;
  }
}

/* Home page refinements */
.section-actions{
  margin-top:20px;
}

.treatment-links{
  margin-top:28px;
}
