:root{--cream:#f7f1e8;--paper:#fffaf3;--ink:#211b16;--muted:#776b5f;--line:#dacdbd;--taupe:#b8a48e;--deep:#332820;--shadow:0 30px 80px rgba(40,31,23,.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,Arial,sans-serif;line-height:1.65}img{max-width:100%;display:block}h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:600;line-height:.95;margin:0;color:var(--deep)}h1{font-size:clamp(4rem,9vw,9.5rem);letter-spacing:-.06em}h2{font-size:clamp(2.6rem,5vw,5.6rem);letter-spacing:-.04em}h3{font-size:2rem}.topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;background:rgba(247,241,232,.78);backdrop-filter:blur(18px);border-bottom:1px solid rgba(218,205,189,.4)}.brand{text-decoration:none;color:var(--ink);display:grid;line-height:1}.logo{font-family:'Cormorant Garamond',serif;font-size:1.85rem}.sublogo{text-transform:uppercase;letter-spacing:.32em;font-size:.62rem;color:var(--muted)}.nav{display:flex;gap:36px}.nav a{color:var(--ink);text-decoration:none;font-size:.82rem;text-transform:uppercase;letter-spacing:.22em}.menu{display:none;background:none;border:0;font-size:1.5rem}.hero{min-height:100vh;padding:150px 5vw 70px;display:grid;grid-template-columns:1.05fr .95fr;gap:5vw;align-items:center}.kicker{text-transform:uppercase;letter-spacing:.28em;font-size:.76rem;color:var(--muted);font-weight:700}.heroText p:not(.kicker){max-width:620px;font-size:1.08rem}.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px}.button{border:1px solid var(--deep);padding:14px 28px;text-decoration:none;text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;font-weight:700;cursor:pointer;transition:.3s}.button.dark{background:var(--deep);color:#fff}.button.light{background:transparent;color:var(--deep)}.button:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(33,27,22,.15)}.heroImage{position:relative}.heroImage:before{content:"";position:absolute;inset:32px -24px -24px 32px;border:1px solid var(--taupe);z-index:-1}.heroImage img{height:72vh;min-height:520px;width:100%;object-fit:cover;box-shadow:var(--shadow)}section{padding:105px 5vw}.sectionTitle{text-align:center;max-width:850px;margin:0 auto 56px}.sectionTitle p:last-child{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:var(--paper);border:1px solid var(--line);padding:42px;min-height:285px;transition:.35s;box-shadow:0 18px 45px rgba(40,31,23,.06)}.card:hover{transform:translateY(-8px)}.card span,.slide span{font-family:'Cormorant Garamond',serif;font-size:2.3rem;color:var(--taupe)}.story{display:grid;grid-template-columns:.95fr 1.05fr;gap:6vw;align-items:center;background:#eee4d6}.storyPic img{height:650px;width:100%;object-fit:cover}.storyText p{max-width:650px}.booking{display:grid;grid-template-columns:.82fr 1.18fr;gap:5vw;align-items:start}.infoGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.infoGrid div{border-top:1px solid var(--line);padding-top:18px}.bookingForm{background:var(--paper);border:1px solid var(--line);padding:36px;box-shadow:var(--shadow)}label{display:grid;gap:8px;margin-bottom:18px;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700}input,select,textarea{width:100%;border:0;border-bottom:1px solid var(--taupe);background:#fbf6ee;padding:15px 12px;font:inherit;color:var(--ink);outline:none}textarea{resize:vertical;border:1px solid var(--line)}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.formStatus{font-size:.85rem;color:var(--muted);margin:18px 0 0;padding:0;border-radius:10px;transition:.25s ease}.formStatus[hidden]{display:none}.formStatus.success{display:block;background:#e8f7ec;color:#206b36;border:1px solid #9fd6ad;padding:12px 14px;font-weight:700;box-shadow:0 10px 24px rgba(32,107,54,.08)}.formStatus.success strong{display:block;margin-bottom:2px}.formStatus.success span{display:block;font-weight:600;color:#2f7944}.formStatus.success.demo em{display:block;margin-top:6px;font-size:.76rem;font-style:normal;font-weight:600;color:#4f8a5e;opacity:.9}.formStatus.error{display:block;background:#fff0f0;color:#8a1f1f;border:1px solid #e4a4a4;padding:12px 14px;font-weight:700}.formStatus.warning,.formStatus.sending{display:block;background:#fff8e8;color:#7a5a12;border:1px solid #e3c878;padding:12px 14px;font-weight:700}.mapBlock{background:#f2e9dc}.mapBlock iframe{width:100%;height:440px;border:0;box-shadow:var(--shadow);filter:saturate(.75) contrast(.95)}.gallery{overflow:hidden}.carousel{position:relative;max-width:1080px;margin:auto}.track{position:relative;min-height:700px}.slide{position:absolute;inset:0;opacity:0;transform:translateX(40px) scale(.98);transition:.6s;display:grid;grid-template-columns:1fr .55fr;gap:30px;align-items:end;pointer-events:none}.slide.active{opacity:1;transform:none;pointer-events:auto}.slide img{height:680px;width:100%;object-fit:cover;box-shadow:var(--shadow)}.slide div{background:var(--paper);border:1px solid var(--line);padding:34px;margin-left:-100px;margin-bottom:50px;z-index:2}.arrow{position:absolute;top:45%;z-index:5;width:54px;height:54px;border:1px solid var(--deep);background:rgba(255,250,243,.9);font-size:2.5rem;cursor:pointer}.prev{left:-24px}.next{right:-24px}footer{padding:58px 5vw;display:flex;justify-content:space-between;gap:30px;background:var(--deep);color:#fff}footer p{color:#d7cabb}.reveal{opacity:0;transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}.reveal.up{transform:translateY(48px)}.reveal.down{transform:translateY(-20px)}.reveal.left{transform:translateX(-55px)}.reveal.right{transform:translateX(55px)}.reveal.zoom{transform:scale(.94)}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.menu{display:block}.nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);display:none;flex-direction:column;padding:22px 5vw;border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero,.story,.booking,.slide{grid-template-columns:1fr}.heroImage img,.storyPic img,.slide img{height:420px;min-height:0}.cards,.infoGrid,.two{grid-template-columns:1fr}.slide{position:relative;display:none}.slide.active{display:grid}.slide div{margin:0}.track{min-height:auto}.arrow{top:35%;}.prev{left:8px}.next{right:8px}section{padding:75px 5vw}.hero{padding-top:130px}footer{display:block}}

.dynamicFields{border:1px solid var(--line);background:#fffaf3;margin:2px 0 18px;padding:18px 18px 0}.fieldHint{margin:0 0 16px;color:var(--muted);font-size:.9rem;line-height:1.55}.dynamicFields label:last-child{margin-bottom:18px}.dynamicFields[hidden]{display:none}.bookingNote{font-size:.88rem;color:var(--muted);background:#f2e9dc;border-left:3px solid var(--taupe);padding:14px 16px;margin:2px 0 20px}.floatingContact{position:fixed;right:22px;bottom:22px;z-index:30;display:flex;gap:10px;align-items:center}.floatingContact a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:999px;text-decoration:none;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;box-shadow:0 14px 34px rgba(33,27,22,.18);transition:.25s}.floatingContact .whatsapp{background:#1f5f43;color:#fff}.floatingContact .call{background:var(--paper);color:var(--deep);border:1px solid var(--line)}.floatingContact a:hover{transform:translateY(-3px)}@media(max-width:850px){.floatingContact{left:14px;right:14px;bottom:14px}.floatingContact a{flex:1}.bookingForm{padding:26px 20px}body{padding-bottom:76px}}

/* v2.5 reputation, reviews and local SEO sections */
.heroRating{margin-top:22px;display:inline-flex;align-items:center;gap:10px;color:#8a6b2e;font-weight:800;letter-spacing:.08em;background:rgba(255,250,243,.72);border:1px solid var(--line);padding:10px 14px;box-shadow:0 12px 28px rgba(40,31,23,.08)}.heroRating span{color:var(--deep);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}.trustStrip{padding:0 5vw 34px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:-28px}.trustStrip div{background:var(--deep);color:#fff;padding:24px;border-right:1px solid rgba(255,255,255,.14)}.trustStrip div:first-child{border-top-left-radius:2px}.trustStrip div:last-child{border-right:0;border-top-right-radius:2px}.trustStrip strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1.45rem;line-height:1.05}.trustStrip span{display:block;color:#d7cabb;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;margin-top:7px}.whyChoose{background:#f2e9dc}.whyGrid,.reviewCards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.whyCard,.reviewCard{background:var(--paper);border:1px solid var(--line);padding:30px;box-shadow:0 18px 45px rgba(40,31,23,.06);transition:.35s}.whyCard:hover,.reviewCard:hover{transform:translateY(-6px)}.whyCard h3,.reviewCard h3{font-size:1.75rem;margin-bottom:14px}.whyCard p,.reviewCard p{color:var(--muted);margin-bottom:0}.reviewsBlock{background:var(--cream)}.reviewCards{grid-template-columns:repeat(3,1fr)}.reviewCard strong{display:block;color:#8a6b2e;letter-spacing:.08em;margin-bottom:16px}.centerAction{text-align:center;margin-top:36px}.popularServices{background:#fffaf3}.servicePills{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;max-width:980px;margin:0 auto}.servicePills span{border:1px solid var(--line);background:var(--cream);padding:12px 18px;border-radius:999px;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--deep);box-shadow:0 12px 26px rgba(40,31,23,.05)}.serviceArea{max-width:1100px;margin:0 auto;text-align:center;background:var(--deep);color:#fff;padding:70px 5vw}.serviceArea h2{color:#fff}.serviceArea p:not(.kicker){max-width:760px;margin:22px auto 0;color:#d7cabb}.serviceArea .kicker{color:#d7cabb}footer{flex-wrap:wrap}.footerTrust{flex:0 0 100%;border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:22px;margin-bottom:4px;color:#f7f1e8;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
@media(max-width:1050px){.trustStrip,.whyGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.heroRating{display:flex;align-items:flex-start}.trustStrip{grid-template-columns:1fr;padding-top:20px;margin-top:0}.trustStrip div{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.whyGrid,.reviewCards{grid-template-columns:1fr}.serviceArea{border-radius:0}.servicePills{justify-content:flex-start}.footerTrust{font-size:.72rem;line-height:1.7}.nav{gap:18px}.nav a{font-size:.76rem}}

/* Multi-page refinements */
.pageHero{min-height:62vh;padding:165px 5vw 80px;display:flex;align-items:end;background:linear-gradient(135deg,rgba(247,241,232,.96),rgba(255,250,243,.82));border-bottom:1px solid var(--line)}
.pageHero.compactHero{min-height:48vh}.pageHeroText{max-width:1050px}.pageHeroText p:not(.kicker){max-width:760px;font-size:1.08rem;color:var(--muted)}
.pageHero h1{font-size:clamp(4rem,8vw,8.2rem)}.textLink{display:inline-block;margin-top:18px;color:var(--deep);font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;text-decoration:none;border-bottom:1px solid var(--taupe)}
.ctaBand{text-align:center;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ctaBand h2{max-width:920px;margin:0 auto}.ctaBand .actions{justify-content:center}.ctaBand .kicker{margin-bottom:14px}
.serviceDetail{display:grid;grid-template-columns:.95fr 1.05fr;gap:6vw;align-items:center;background:var(--cream)}.serviceDetail.alt{background:#eee4d6}.serviceDetail .button{display:inline-block;margin-top:20px}.cleanList{padding-left:20px;color:var(--muted);line-height:1.9}.cleanList li::marker{color:var(--taupe)}
.areaGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.areaCard{background:var(--paper);border:1px solid var(--line);padding:34px;box-shadow:0 18px 45px rgba(40,31,23,.06)}.areaCard h2{font-size:2.4rem;margin-bottom:14px}.areaCard p{color:var(--muted)}
.lightArea{background:var(--paper);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 18px 45px rgba(40,31,23,.05)}.lightArea h2{color:var(--deep)}.lightArea p:not(.kicker){color:var(--muted)}.lightArea .kicker{color:var(--muted)}
.bookingPage{padding-top:80px}.contactGrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contactCard{background:var(--paper);border:1px solid var(--line);padding:40px;box-shadow:var(--shadow)}.contactCard h2{font-size:3rem;margin-bottom:20px}.contactCard a,.infoGrid a{color:var(--deep)}
@media(max-width:1050px){.areaGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.pageHero{min-height:auto;padding-top:135px}.serviceDetail,.contactGrid{grid-template-columns:1fr}.areaGrid{grid-template-columns:1fr}.pageHero h1{font-size:clamp(3.6rem,14vw,5.5rem)}}

/* v2 homepage trust line refinement */
.heroTrust{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:28px;
  color:var(--muted);
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:800;
}
.heroTrust span{position:relative}
.heroTrust span:not(:last-child)::after{
  content:"·";
  margin-left:18px;
  color:var(--taupe);
}
@media(max-width:850px){
  .heroTrust{gap:10px;font-size:.75rem;line-height:1.7}
  .heroTrust span:not(:last-child)::after{margin-left:10px}
}

/* Final mobile polish - Stitch & Clean */
@media (max-width: 850px) {
  body {
    padding-bottom: 92px;
  }

  .topbar {
    padding: 22px 5vw;
  }

  .logo {
    font-size: 1.72rem;
  }

  .sublogo {
    font-size: .58rem;
    letter-spacing: .3em;
  }

  .hero {
    min-height: auto;
    padding: 128px 5vw 56px;
    gap: 38px;
  }

  .hero h1 {
    font-size: clamp(3.1rem, 12vw, 4.8rem);
    line-height: .92;
    letter-spacing: -.055em;
  }

  .heroText p:not(.kicker) {
    font-size: 1rem;
    line-height: 1.72;
    max-width: 100%;
  }

  .kicker {
    font-size: .7rem;
    letter-spacing: .24em;
    margin-bottom: 18px;
  }

  .heroRating {
    width: 100%;
    justify-content: center;
    gap: 8px;
    padding: 12px 14px;
    margin-top: 20px;
    box-shadow: 0 10px 24px rgba(40,31,23,.06);
  }

  .heroRating span {
    font-size: .68rem;
    letter-spacing: .12em;
    line-height: 1.55;
  }

  .actions {
    flex-direction: column;
    width: 100%;
    gap: 12px;
    margin-top: 28px;
  }

  .actions .button,
  .button {
    width: 100%;
    text-align: center;
    justify-content: center;
    padding: 16px 22px;
    letter-spacing: .18em;
  }

  .heroTrust {
    display: block;
    margin-top: 22px;
    font-size: .72rem;
    line-height: 1.9;
    letter-spacing: .11em;
  }

  .heroTrust span {
    display: inline;
  }

  .heroTrust span:not(:last-child)::after {
    content: " · ";
    margin-left: 6px;
    margin-right: 4px;
  }

  .heroImage img,
  .storyPic img,
  .slide img {
    height: 390px;
    min-height: 0;
  }

  .heroImage:before {
    inset: 18px -12px -12px 18px;
  }

  section {
    padding: 68px 5vw;
  }

  .sectionTitle {
    margin-bottom: 38px;
  }

  h2,
  .pageHero h1 {
    font-size: clamp(3rem, 11vw, 4.4rem);
    line-height: .94;
  }

  .cards,
  .whyGrid,
  .reviewCards,
  .areaGrid,
  .contactGrid,
  .infoGrid,
  .two {
    grid-template-columns: 1fr;
  }

  .card,
  .whyCard,
  .reviewCard,
  .areaCard,
  .contactCard {
    padding: 28px 24px;
  }

  .story,
  .serviceDetail,
  .contactGrid,
  .booking {
    gap: 34px;
  }

  .floatingContact {
    left: 14px;
    right: 14px;
    bottom: 14px;
    gap: 10px;
  }

  .floatingContact a {
    min-height: 52px;
    padding: 0 12px;
    font-size: .72rem;
    letter-spacing: .14em;
  }

  .pageHero {
    min-height: auto;
    padding: 135px 5vw 70px;
  }

  .pageHero.compactHero {
    min-height: auto;
  }
}

@media (max-width: 420px) {
  .hero h1 {
    font-size: clamp(2.85rem, 12vw, 4.2rem);
  }

  .heroText p:not(.kicker) {
    font-size: .96rem;
  }

  .heroRating {
    align-items: center;
  }

  .heroRating span {
    font-size: .64rem;
  }

  .button {
    font-size: .72rem;
  }
}

/* Final services-page mobile polish */
@media (max-width: 850px) {
  .serviceDetail,
  .serviceDetail.alt {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 5vw 64px;
    background: var(--cream);
  }

  .serviceDetail.alt {
    background: var(--cream);
  }

  .serviceDetail .storyPic,
  .serviceDetail .storyText {
    background: var(--paper);
    border-left: 1px solid var(--line);
    border-right: 1px solid var(--line);
  }

  .serviceDetail .storyPic {
    border-top: 1px solid var(--line);
    overflow: hidden;
  }

  .serviceDetail .storyPic img {
    height: 280px;
    width: 100%;
    object-fit: cover;
    box-shadow: none;
  }

  .serviceDetail .storyText {
    border-bottom: 1px solid var(--line);
    padding: 30px 24px 32px;
  }

  .serviceDetail .storyText h2 {
    font-size: clamp(2.35rem, 10vw, 3.55rem);
    line-height: .96;
    letter-spacing: -.045em;
  }

  .serviceDetail .storyText p {
    font-size: .96rem;
    line-height: 1.72;
    margin-top: 18px;
  }

  .serviceDetail .kicker {
    margin-bottom: 14px;
  }

  .serviceDetail.alt .storyText {
    order: 2;
  }

  .serviceDetail.alt .storyPic {
    order: 1;
  }

  .cleanList {
    margin: 18px 0 0;
    padding-left: 18px;
    line-height: 1.8;
    font-size: .95rem;
  }

  .serviceDetail .button {
    width: 100%;
    text-align: center;
    margin-top: 24px;
  }

  .popularServices {
    padding-top: 66px;
    padding-bottom: 68px;
  }

  .popularServices .sectionTitle h2 {
    font-size: clamp(2.6rem, 10vw, 3.8rem);
  }

  .servicePills {
    justify-content: flex-start;
    gap: 10px;
  }

  .servicePills span {
    font-size: .68rem;
    letter-spacing: .11em;
    padding: 10px 13px;
    box-shadow: none;
  }

  .ctaBand {
    padding: 66px 5vw;
  }

  .ctaBand h2 {
    font-size: clamp(2.65rem, 11vw, 4rem);
  }
}

@media (max-width: 420px) {
  .serviceDetail,
  .serviceDetail.alt {
    padding-left: 4.5vw;
    padding-right: 4.5vw;
    padding-bottom: 54px;
  }

  .serviceDetail .storyPic img {
    height: 245px;
  }

  .serviceDetail .storyText {
    padding: 26px 20px 28px;
  }

  .serviceDetail .storyText h2 {
    font-size: clamp(2.15rem, 10vw, 3.2rem);
  }

  .servicePills span {
    font-size: .64rem;
    padding: 9px 11px;
  }
}
