
:root {
  --paper: #fffdf9;
  --cream: #fbf7f0;
  --sand: #f1e7da;
  --sand-2: #e5d2bc;
  --caramel: #b87d46;
  --caramel-dark: #93603a;
  --chocolate: #31221b;
  --ink: #4b3930;
  --muted: #796961;
  --line: rgba(87, 57, 40, 0.16);
  --white: #ffffff;
  --shadow: 0 28px 80px rgba(70, 45, 30, 0.12);
  --max: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
::selection { background: var(--sand-2); color: var(--chocolate); }
.container { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; }

.topbar {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 7px 18px;
  color: #6f543f;
  background: #f4eadf;
  border-bottom: 1px solid rgba(122, 83, 53, 0.09);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-align: center;
  text-transform: uppercase;
}
.topbar span { width: 3px; height: 3px; border-radius: 50%; background: var(--caramel); }
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 253, 249, 0.92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.nav { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: max-content; }
.brandMark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: var(--caramel);
  border: 1px solid rgba(184, 125, 70, 0.42);
  border-radius: 50% 50% 48% 48%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  font-style: italic;
  letter-spacing: -0.13em;
  padding-right: 4px;
}
.brandWords { display: flex; flex-direction: column; line-height: 1.1; }
.brandWords strong { color: var(--chocolate); font-family: Georgia, "Times New Roman", serif; font-size: 1.09rem; font-weight: 500; letter-spacing: 0.015em; }
.brandWords small { margin-top: 6px; color: var(--caramel); font-size: 0.55rem; font-weight: 800; letter-spacing: 0.25em; text-transform: uppercase; }
.desktopNav { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 2vw, 30px); margin-left: auto; }
.desktopNav a { position: relative; color: #5f4b40; font-size: 0.78rem; font-weight: 700; }
.desktopNav a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 1px; content: ""; background: var(--caramel); transform: scaleX(0); transition: transform 180ms ease; }
.desktopNav a:hover::after { transform: scaleX(1); }
.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 22px;
  color: #fff;
  background: linear-gradient(135deg, #b87d46, #c99058);
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(154, 94, 50, 0.2);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.button:hover { background: linear-gradient(135deg, #9e663a, #b87d46); box-shadow: 0 16px 34px rgba(154, 94, 50, 0.27); transform: translateY(-2px); }
.button.outline { color: var(--chocolate); background: transparent; border-color: rgba(145, 95, 55, 0.48); box-shadow: none; }
.button.outline:hover { color: white; background: var(--caramel); }
.button.light { color: var(--chocolate); background: #fff9f1; box-shadow: none; }
.button.light:hover { background: white; }
.button.full { width: 100%; }
.headerCta { min-height: 44px; padding-inline: 19px; }
.mobileMenu { display: none; position: relative; }
.mobileMenu summary { width: 44px; height: 44px; display: grid; place-content: center; gap: 4px; cursor: pointer; list-style: none; border: 1px solid var(--line); border-radius: 50%; }
.mobileMenu summary::-webkit-details-marker { display: none; }
.mobileMenu summary i { width: 17px; height: 1px; display: block; background: var(--chocolate); }
.mobileMenu nav { position: absolute; top: 54px; right: 0; width: min(310px, calc(100vw - 32px)); display: flex; flex-direction: column; gap: 4px; padding: 16px; background: var(--paper); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow); }
.mobileMenu nav > a:not(.button) { padding: 11px 12px; border-bottom: 1px solid rgba(87, 57, 40, 0.08); font-weight: 700; }
.mobileMenu nav .button { margin-top: 8px; }

.hero { position: relative; overflow: hidden; padding: clamp(64px, 8vw, 112px) 0 88px; background: radial-gradient(circle at 72% 30%, rgba(230, 195, 153, 0.34), transparent 28%), linear-gradient(118deg, #fffdfa 0%, #faf2e7 58%, #f0dfcc 100%); }
.hero::before { position: absolute; top: -180px; right: -160px; width: 470px; height: 470px; content: ""; border: 1px solid rgba(184, 125, 70, 0.15); border-radius: 50%; }
.hero::after { position: absolute; bottom: 44px; left: 5%; width: 110px; height: 1px; content: ""; background: var(--caramel); opacity: 0.45; }
.heroGrid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.04fr 0.96fr; gap: clamp(42px, 7vw, 96px); align-items: center; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: var(--caramel-dark); font-size: 0.66rem; font-weight: 850; letter-spacing: 0.2em; text-transform: uppercase; }
.eyebrow > span { width: 28px; height: 1px; display: inline-block; background: currentColor; }
.hero h1 { margin: 18px 0 24px; color: var(--chocolate); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.5rem, 7.2vw, 6.75rem); font-weight: 400; letter-spacing: -0.055em; line-height: 0.92; }
.hero h1 em { color: var(--caramel); font-weight: 400; }
.heroCopy > p { max-width: 600px; color: var(--muted); font-size: clamp(1rem, 1.7vw, 1.2rem); line-height: 1.8; }
.heroActions { display: flex; align-items: center; gap: 26px; margin-top: 32px; }
.textLink { position: relative; display: inline-block; color: var(--chocolate); border-bottom: 1px solid rgba(49, 34, 27, 0.42); font-size: 0.8rem; font-weight: 750; }
.textLink:hover { color: var(--caramel-dark); border-color: var(--caramel); }
.textLink.strong { color: var(--caramel-dark); border-color: var(--caramel); }
.heroTrust { display: grid; grid-template-columns: repeat(3, max-content); gap: clamp(18px, 3vw, 34px); margin-top: 52px; padding-top: 26px; border-top: 1px solid var(--line); }
.heroTrust > * { display: flex; align-items: flex-start; gap: 10px; }
.heroTrust > a:hover span { color: var(--caramel-dark); }
.heroTrust strong { color: var(--caramel); font-family: Georgia, serif; font-size: 0.75rem; font-style: italic; font-weight: 400; }
.heroTrust span { color: #655248; font-size: 0.7rem; font-weight: 700; line-height: 1.45; }
.treatmentTags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 27px; }
.treatmentTags a { padding: 7px 11px; color: #6d5445; background: rgba(255,255,255,.52); border: 1px solid rgba(108,75,52,.14); border-radius: 999px; font-size: .64rem; font-weight: 700; }
.treatmentTags a:hover { color: var(--caramel-dark); border-color: rgba(184,125,70,.42); }
.heroVisual { position: relative; min-height: 610px; }
.visualArch { position: absolute; inset: 0 9% 0 4%; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(221, 186, 146, .46)), repeating-linear-gradient(90deg, transparent 0 54px, rgba(110, 71, 42, .045) 55px 56px); border: 1px solid rgba(130, 87, 55, 0.18); border-radius: 48% 48% 20px 20px; box-shadow: 0 35px 90px rgba(103, 65, 38, 0.14); }
.visualArch::before { position: absolute; inset: 9%; content: ""; border: 1px solid rgba(184, 125, 70, 0.28); border-radius: 48% 48% 12px 12px; }
.visualArch::after { position: absolute; right: -40px; bottom: 5%; width: 270px; height: 180px; content: ""; background: radial-gradient(ellipse at center, rgba(151, 107, 72, .18), transparent 66%); border-radius: 50%; transform: rotate(-13deg); }
.archMonogram { position: relative; z-index: 2; padding-right: 15px; color: #b27a49; font-family: Georgia, serif; font-size: clamp(4.5rem, 9vw, 7rem); font-style: italic; letter-spacing: -0.22em; line-height: 1; }
.archName { position: relative; z-index: 2; margin-top: 20px; color: var(--chocolate); font-family: Georgia, serif; font-size: clamp(1.3rem, 2.5vw, 2rem); letter-spacing: .04em; }
.archRole { position: relative; z-index: 2; margin-top: 10px; color: var(--caramel-dark); font-size: 0.62rem; font-weight: 800; letter-spacing: .28em; text-transform: uppercase; }
.visualNote { position: absolute; right: 0; bottom: 42px; z-index: 3; padding: 20px 25px; background: rgba(255, 253, 249, .9); border: 1px solid rgba(118, 74, 42, .14); border-radius: 18px; box-shadow: 0 20px 50px rgba(78, 48, 28, .15); backdrop-filter: blur(14px); }
.visualNote span, .visualSeal span { display: block; color: var(--caramel); font-size: .58rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.visualNote strong { display: block; margin-top: 5px; color: var(--chocolate); font-family: Georgia, serif; font-size: 1rem; font-weight: 400; line-height: 1.35; }
.visualSeal { position: absolute; top: 20px; left: -26px; z-index: 3; width: 124px; height: 124px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #fffaf4; border: 1px solid rgba(184, 125, 70, 0.32); border-radius: 50%; box-shadow: 0 14px 40px rgba(90, 57, 35, .1); text-align: center; transform: rotate(-8deg); }
.visualSeal strong { color: var(--chocolate); font-family: Georgia, serif; font-size: .9rem; font-weight: 400; }

.localBand { background: var(--chocolate); color: white; }
.localBandInner { min-height: 104px; display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; }
.pin { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; color: #d9ad81; font-size: 1.2rem; }
.localBand small { display: block; color: #c99868; font-size: .59rem; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.localBand strong { display: block; margin-top: 4px; font-family: Georgia, serif; font-size: clamp(.95rem, 2vw, 1.25rem); font-weight: 400; }
.localBand a { color: #e2b98f; border-bottom: 1px solid rgba(226,185,143,.55); font-size: .72rem; font-weight: 800; }

.authorityBar { background: #fffaf4; border-bottom: 1px solid var(--line); }
.authorityGrid { display: grid; grid-template-columns: repeat(4, 1fr); }
.authorityGrid > div { min-height: 112px; display: flex; align-items: center; gap: 16px; padding: 24px; border-right: 1px solid var(--line); }
.authorityGrid > div:first-child { border-left: 1px solid var(--line); }
.authorityGrid > div > span { color: var(--caramel); font-family: Georgia, serif; font-size: .7rem; font-style: italic; }
.authorityGrid p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.authorityGrid strong { display: block; color: var(--chocolate); font-family: Georgia, serif; font-size: .98rem; font-weight: 400; }

.section { padding: clamp(74px, 9vw, 118px) 0; }
.sectionIntro { margin-bottom: 40px; }
.sectionIntro.twoColumns { display: grid; grid-template-columns: 1.1fr .75fr; gap: 70px; align-items: end; }
.sectionIntro.centered { max-width: 720px; margin-inline: auto; text-align: center; }
.sectionIntro.centered .eyebrow { justify-content: center; }
.sectionIntro h2, .philosophyCopy h2, .faqGrid h2, .contactCta h2 { margin: 12px 0 0; color: var(--chocolate); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.4rem, 5vw, 4.5rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.04; }
.sectionIntro p { max-width: 680px; margin: 0; color: var(--muted); font-size: 1rem; }
.treatments { background: var(--paper); }
.servicesGrid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.pageCard { position: relative; min-height: 315px; display: flex; flex-direction: column; align-items: flex-start; padding: 34px; overflow: hidden; background: rgba(255,255,255,.36); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background 180ms ease, transform 180ms ease; }
.pageCard::after { position: absolute; right: -50px; bottom: -60px; width: 150px; height: 150px; content: ""; border: 1px solid rgba(184,125,70,.18); border-radius: 50%; transition: transform 250ms ease; }
.pageCard:hover { z-index: 1; background: #fff9f1; transform: translateY(-3px); }
.pageCard:hover::after { transform: scale(1.25); }
.pageCard .cardIndex { position: absolute; top: 27px; right: 28px; color: #c9a47e; font-family: Georgia, serif; font-size: .78rem; font-style: italic; }
.pageCard > small { color: var(--caramel); font-size: .58rem; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.pageCard h3 { margin: 34px 0 13px; color: var(--chocolate); font-family: Georgia, serif; font-size: 1.55rem; font-weight: 400; line-height: 1.15; }
.pageCard p { margin: 0 0 28px; color: var(--muted); font-size: .88rem; line-height: 1.7; }
.pageCard > a { position: relative; z-index: 2; margin-top: auto; color: var(--caramel-dark); font-size: .7rem; font-weight: 850; }
.pageCard > a span { display: inline-block; margin-left: 8px; transition: transform 180ms ease; }
.pageCard:hover > a span { transform: translateX(5px); }
.centerAction { margin-top: 36px; text-align: center; }

.philosophy { overflow: hidden; background: #f5ecdf; }
.philosophyGrid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(55px, 9vw, 120px); align-items: center; }
.portraitComposition { position: relative; min-height: 580px; }
.portraitHalo { position: absolute; inset: 3% 14% 0 2%; background: radial-gradient(circle at 54% 35%, rgba(255,255,255,.88), rgba(220,185,145,.48) 47%, rgba(181,126,78,.35) 72%), repeating-linear-gradient(90deg, transparent 0 46px, rgba(106,67,40,.045) 47px 48px); border: 1px solid rgba(151, 101, 61, .2); border-radius: 46% 46% 18px 18px; box-shadow: 0 35px 80px rgba(80, 50, 30, .11); }
.portraitHalo::after { position: absolute; inset: 12%; display: grid; place-items: center; content: "SS"; color: rgba(157, 103, 60, .25); border: 1px solid rgba(166, 111, 69, .24); border-radius: 48% 48% 12px 12px; font-family: Georgia, serif; font-size: 7rem; font-style: italic; letter-spacing: -.2em; padding-right: 22px; }
.portraitCard { position: absolute; top: 28%; right: 0; min-width: 170px; padding: 24px; background: #fffaf4; border: 1px solid var(--line); box-shadow: 0 20px 48px rgba(78,49,29,.12); text-align: center; }
.portraitCard span { display: block; color: var(--caramel); font-family: Georgia, serif; font-size: 2.6rem; font-style: italic; letter-spacing: -.18em; padding-right: 9px; }
.portraitCard small { color: var(--chocolate); font-size: .54rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.quoteCard { position: absolute; bottom: 0; left: 0; width: 78%; padding: 24px 28px; color: #f8eadc; background: var(--chocolate); border-radius: 4px 24px 4px 4px; font-family: Georgia, serif; font-size: 1rem; font-style: italic; line-height: 1.6; }
.philosophyCopy > p { max-width: 650px; color: var(--muted); font-size: 1.05rem; }
.checkList { display: grid; gap: 13px; margin: 32px 0; padding: 0; list-style: none; }
.checkList li { display: flex; gap: 12px; align-items: center; color: #5e4b41; font-size: .9rem; font-weight: 650; }
.checkList li span { width: 25px; height: 25px; display: grid; place-items: center; color: var(--caramel-dark); background: rgba(184,125,70,.11); border-radius: 50%; font-size: .67rem; }
.professionalActions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }

.proofSection { background: #fffdf9; }
.proofGrid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(55px, 9vw, 115px); align-items: center; }
.ratingPanel { position: relative; min-height: 450px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 50px; overflow: hidden; color: white; background: var(--chocolate); border-radius: 4px 42px 4px 4px; text-align: center; }
.ratingPanel::before { position: absolute; inset: 28px; content: ""; border: 1px solid rgba(255,255,255,.13); border-radius: 2px 30px 2px 2px; }
.ratingPanel > * { position: relative; z-index: 1; }
.ratingPanel .stars { color: #e8b67f; font-size: 1rem; letter-spacing: .2em; }
.ratingPanel > strong { margin: 14px 0 2px; font-family: Georgia, serif; font-size: 6rem; font-weight: 400; line-height: 1; }
.ratingPanel p { max-width: 240px; color: #c9b9b0; }
.ratingPanel .button { margin-top: 18px; color: white; border-color: rgba(255,255,255,.38); }
.proofCopy h2, .locationGrid h2 { margin: 13px 0 22px; color: var(--chocolate); font-family: Georgia, serif; font-size: clamp(2.5rem, 5vw, 4.35rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.05; }
.proofCopy > p, .locationGrid > div:first-child > p { color: var(--muted); font-size: 1rem; }
.proofItems { margin-top: 35px; border-top: 1px solid var(--line); }
.proofItems > div { display: grid; grid-template-columns: .7fr 1.3fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.proofItems strong { color: var(--chocolate); font-size: .78rem; }
.proofItems span { color: var(--muted); font-size: .76rem; }

.process { background: var(--chocolate); color: white; }
.process .sectionIntro h2 { color: white; }
.process .sectionIntro p { margin: 13px auto 0; color: #cbbdb5; }
.process .eyebrow { color: #d19a66; }
.processGrid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 54px; border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.processGrid article { min-height: 260px; padding: 32px 28px; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); }
.processGrid article > span { color: #d19a66; font-family: Georgia, serif; font-size: .76rem; font-style: italic; }
.processGrid h3 { margin: 50px 0 10px; color: white; font-family: Georgia, serif; font-size: 1.55rem; font-weight: 400; }
.processGrid p { margin: 0; color: #bcaea6; font-size: .84rem; }

.journal { background: #fffdf9; }
.journalGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.journalGrid .pageCard { min-height: 330px; border: 1px solid var(--line); border-radius: 3px 28px 3px 3px; }
.journalLinks { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 24px; border-top: 1px solid var(--line); }
.journalLinks .pageCard { min-height: 225px; padding-inline: 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.journalLinks .pageCard:first-child { border-left: 1px solid var(--line); }
.journalLinks .pageCard h3 { margin-top: 25px; font-size: 1.25rem; }
.journalLinks .pageCard p { display: none; }

.locationSection { background: #f5ecdf; }
.locationGrid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(50px, 8vw, 105px); align-items: center; }
.locationActions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
.locationCard { display: flex; flex-direction: column; padding: clamp(32px, 5vw, 54px); background: #fffaf4; border: 1px solid var(--line); border-radius: 4px 34px 4px 4px; box-shadow: var(--shadow); }
.locationCard small { color: var(--caramel-dark); font-size: .58rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.locationCard strong { margin-top: 8px; color: var(--chocolate); font-family: Georgia, serif; font-size: 1.25rem; font-weight: 400; }
.locationCard span, .locationCard a { color: var(--muted); font-size: .76rem; overflow-wrap: anywhere; }
.locationCard a:hover { color: var(--caramel-dark); }
.locationCard hr { width: 100%; margin: 24px 0; border: 0; border-top: 1px solid var(--line); }

.finalCta { padding-top: 20px; background: var(--paper); }
.contactCta { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; overflow: hidden; padding: clamp(40px, 6vw, 78px); color: white; background: linear-gradient(120deg, #9d673d, #c58a50); border-radius: 4px 46px 4px 4px; box-shadow: 0 30px 70px rgba(98, 58, 28, .22); }
.contactCta::after { position: absolute; top: -160px; right: 10%; width: 350px; height: 350px; content: ""; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.contactCta > * { position: relative; z-index: 1; }
.contactCta small { font-size: .62rem; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.contactCta h2 { max-width: 760px; margin-top: 10px; color: white; }
.contactCta p { max-width: 680px; margin-bottom: 0; color: #f6e5d5; }
.contactCta.compact h2 { font-size: clamp(2.2rem, 4vw, 3.6rem); }

.footer { padding: 78px 0 26px; background: #f2e7db; border-top: 1px solid rgba(91,61,42,.12); }
.footerMain { display: grid; grid-template-columns: 1.4fr .7fr .8fr; gap: 80px; }
.footerMain > div:first-child p { max-width: 410px; color: var(--muted); font-size: .84rem; }
.footerMain > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footerMain > div:not(:first-child) > strong { margin-bottom: 12px; color: var(--chocolate); font-family: Georgia, serif; font-size: 1rem; font-weight: 400; }
.footerMain > div:not(:first-child) a, .footerMain > div:not(:first-child) p { margin: 0; color: #6d5a50; font-size: .76rem; }
.footerMain > div:not(:first-child) a:hover { color: var(--caramel-dark); }
.footerSocial { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 18px; color: var(--caramel-dark); font-size: .68rem; font-weight: 700; }
.footerBottom { display: flex; gap: 24px; justify-content: space-between; margin-top: 54px; padding-top: 22px; color: #837067; border-top: 1px solid var(--line); font-size: .67rem; }

.floatingWhatsapp { position: fixed; right: 22px; bottom: 22px; z-index: 70; min-width: 136px; display: flex; flex-direction: column; padding: 12px 18px; color: white; background: #167b45; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; box-shadow: 0 18px 42px rgba(19,93,55,.28); }
.floatingWhatsapp span { font-size: .54rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.floatingWhatsapp strong { font-size: .78rem; }
.floatingWhatsapp:hover { background: #0f6838; transform: translateY(-2px); }
.mobileBooking { display: none; }

.pageHero { position: relative; overflow: hidden; padding: clamp(68px, 10vw, 126px) 0 clamp(64px, 8vw, 105px); background: linear-gradient(118deg, #fffdfa 0%, #faf1e6 60%, #efdeca 100%); }
.pageHeroDecoration { position: absolute; top: -15%; right: 4%; width: min(38vw, 520px); aspect-ratio: 1 / 1.18; display: grid; place-items: center; color: rgba(172,112,64,.14); border: 1px solid rgba(170,111,66,.16); border-radius: 49% 49% 4px 4px; font-family: Georgia, serif; font-size: clamp(5rem, 13vw, 11rem); font-style: italic; letter-spacing: -.22em; padding-right: 2.5rem; transform: rotate(6deg); }
.pageHeroInner { position: relative; z-index: 1; }
.breadcrumbs { display: flex; gap: 9px; align-items: center; margin-bottom: 38px; color: #8b7467; font-size: .68rem; }
.breadcrumbs a:hover { color: var(--caramel-dark); }
.pageHero h1 { max-width: 900px; margin: 18px 0 22px; color: var(--chocolate); font-family: Georgia, serif; font-size: clamp(3rem, 7vw, 6.4rem); font-weight: 400; letter-spacing: -.055em; line-height: .98; }
.pageHero p { max-width: 720px; margin: 0 0 30px; color: var(--muted); font-size: clamp(1rem, 1.8vw, 1.22rem); line-height: 1.75; }

.articleSection { padding: clamp(68px, 9vw, 112px) 0; }
.articleGrid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: clamp(55px, 9vw, 120px); align-items: start; }
.articleBody > p { color: #66544a; font-size: 1.02rem; line-height: 1.9; }
.articleLead { display: flex; gap: 20px; align-items: flex-start; }
.articleLead > span { color: var(--caramel); font-family: Georgia, serif; font-size: 4.7rem; line-height: .9; }
.articleLead > p { margin-top: 0; color: var(--chocolate); font-family: Georgia, serif; font-size: clamp(1.45rem, 3vw, 2.1rem); line-height: 1.4; }
.articleBody h2 { margin: 58px 0 24px; color: var(--chocolate); font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3rem); font-weight: 400; letter-spacing: -.03em; }
.pointsGrid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.pointsGrid div { min-height: 120px; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pointsGrid span { color: var(--caramel); font-family: Georgia, serif; font-size: .72rem; font-style: italic; }
.pointsGrid strong { color: #554239; font-size: .82rem; }
.editorialNote { display: grid; grid-template-columns: 110px 1fr; gap: 24px; margin-top: 48px; padding: 28px; background: #f7efe4; border-left: 3px solid var(--caramel); }
.editorialNote span { color: var(--caramel-dark); font-size: .62rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.editorialNote p { margin: 0; color: #6b584d; font-size: .82rem; }
.articleAside { position: sticky; top: 120px; display: grid; gap: 24px; }
.asideCard { padding: 30px; background: var(--chocolate); border-radius: 3px 26px 3px 3px; box-shadow: 0 24px 55px rgba(61,39,27,.15); }
.asideCard small, .asideNav small { color: #d4a16e; font-size: .57rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.asideCard h3 { margin: 24px 0 8px; color: white; font-family: Georgia, serif; font-size: 1.5rem; font-weight: 400; }
.asideCard p { color: #c6b6ad; font-size: .8rem; }
.asideCard .button { margin-top: 18px; min-height: 44px; }
.asideNav { padding: 26px 28px; border: 1px solid var(--line); }
.asideNav > small { display: block; margin-bottom: 15px; color: var(--caramel-dark); }
.asideNav a { display: flex; justify-content: space-between; gap: 10px; padding: 12px 0; color: #665248; border-bottom: 1px solid var(--line); font-size: .75rem; font-weight: 700; }
.asideNav a:last-child { border-bottom: 0; }
.asideNav a span { color: var(--caramel); }

.faqSection { padding: clamp(74px, 9vw, 112px) 0; background: #f5ecdf; }
.faqGrid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(45px, 8vw, 105px); align-items: start; }
.faqGrid > div:first-child { position: sticky; top: 120px; }
.faqGrid h2 { font-size: clamp(2.4rem, 4.5vw, 4rem); }
.faqGrid > div:first-child > p { color: var(--muted); }
.faqList { border-top: 1px solid var(--line); }
.faqList details { border-bottom: 1px solid var(--line); }
.faqList summary { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 23px 0; cursor: pointer; color: var(--chocolate); font-family: Georgia, serif; font-size: 1.08rem; list-style: none; }
.faqList summary::-webkit-details-marker { display: none; }
.faqList summary span { width: 26px; height: 26px; display: grid; flex: 0 0 26px; place-items: center; color: var(--caramel-dark); border: 1px solid rgba(184,125,70,.35); border-radius: 50%; font-family: Arial, sans-serif; font-size: .8rem; transition: transform 180ms ease; }
.faqList details[open] summary span { transform: rotate(45deg); }
.faqList details p { margin: -5px 42px 22px 0; color: #6d5a50; font-size: .86rem; }
.relatedSection { background: var(--paper); }

@media (max-width: 980px) {
  .desktopNav { display: none; }
  .mobileMenu { display: block; }
  .headerCta { margin-left: auto; }
  .heroGrid { grid-template-columns: 1fr 0.86fr; gap: 38px; }
  .heroVisual { min-height: 500px; }
  .heroTrust { grid-template-columns: repeat(3, 1fr); }
  .servicesGrid { grid-template-columns: repeat(2, 1fr); }
  .sectionIntro.twoColumns { gap: 38px; }
  .processGrid { grid-template-columns: repeat(2, 1fr); }
  .articleGrid { grid-template-columns: minmax(0, 1fr) 285px; gap: 50px; }
  .footerMain { gap: 45px; }
  .authorityGrid { grid-template-columns: repeat(2, 1fr); }
  .proofGrid { gap: 50px; }
}

@media (max-width: 760px) {
  .container { width: min(100% - 32px, var(--max)); }
  .topbar { gap: 7px; font-size: .55rem; letter-spacing: .1em; }
  .topbar span { display: none; }
  .nav { min-height: 72px; gap: 12px; }
  .brandMark { width: 40px; height: 40px; }
  .brandWords strong { font-size: .96rem; }
  .brandWords small { font-size: .49rem; }
  .headerCta { display: none; }
  .hero { padding: 58px 0 64px; }
  .heroGrid { grid-template-columns: 1fr; }
  .hero h1 { font-size: clamp(3.3rem, 17vw, 5.2rem); }
  .heroActions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .heroTrust { grid-template-columns: 1fr; gap: 12px; margin-top: 38px; }
  .heroTrust > * { align-items: center; }
  .heroTrust span br { display: none; }
  .heroVisual { min-height: 470px; margin-top: 18px; }
  .visualArch { inset: 0 4% 0 0; }
  .visualSeal { left: -6px; width: 102px; height: 102px; }
  .visualNote { right: -4px; bottom: 25px; }
  .localBandInner { min-height: 132px; grid-template-columns: auto 1fr; }
  .localBandInner > a { grid-column: 2; width: max-content; margin-top: -10px; }
  .sectionIntro.twoColumns, .philosophyGrid, .faqGrid, .articleGrid, .contactCta, .footerMain { grid-template-columns: 1fr; }
  .sectionIntro.twoColumns { gap: 20px; }
  .servicesGrid, .journalGrid, .journalLinks { grid-template-columns: 1fr; }
  .pageCard { min-height: 280px; }
  .portraitComposition { min-height: 480px; }
  .portraitCard { right: -5px; min-width: 142px; }
  .quoteCard { width: 90%; }
  .processGrid { grid-template-columns: 1fr; }
  .processGrid article { min-height: 205px; }
  .processGrid h3 { margin-top: 34px; }
  .journalLinks .pageCard { min-height: 205px; border-left: 1px solid var(--line); }
  .contactCta { gap: 26px; border-radius: 3px 28px 3px 3px; }
  .contactCta .button { width: 100%; }
  .footerMain { gap: 34px; }
  .footerBottom { flex-direction: column; gap: 8px; }
  .pageHeroDecoration { top: auto; right: -16%; bottom: -18%; width: 82vw; }
  .pageHero h1 { font-size: clamp(3rem, 14vw, 5rem); }
  .articleAside, .faqGrid > div:first-child { position: static; }
  .articleAside { grid-row: 1; }
  .pointsGrid { grid-template-columns: 1fr; }
  .editorialNote { grid-template-columns: 1fr; gap: 10px; }
  .authorityGrid { grid-template-columns: 1fr 1fr; }
  .authorityGrid > div { min-height: 98px; padding: 18px 14px; }
  .proofGrid, .locationGrid { grid-template-columns: 1fr; }
  .ratingPanel { min-height: 360px; }
  .proofItems > div { grid-template-columns: 1fr; gap: 5px; }
  .floatingWhatsapp { display: none; }
  .mobileBooking { position: fixed; right: 0; bottom: 0; left: 0; z-index: 80; display: block; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,253,249,.96); border-top: 1px solid var(--line); backdrop-filter: blur(14px); }
  .mobileBooking a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; color: white; background: #167b45; border-radius: 999px; }
  .mobileBooking span { font-size: .62rem; }
  .mobileBooking strong { font-size: .72rem; white-space: nowrap; }
  .footer { padding-bottom: 100px; }
}

@media (max-width: 390px) {
  .topbar { font-size: .5rem; }
  .brandWords strong { font-size: .86rem; }
  .brandWords small { letter-spacing: .18em; }
  .heroVisual { min-height: 420px; }
  .visualNote { padding: 16px 18px; }
  .visualSeal { display: none; }
  .sectionIntro h2, .philosophyCopy h2, .faqGrid h2, .contactCta h2 { font-size: 2.3rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
