:root {
  --ivory:#f6f7f2;
  --beige:#dce6de;
  --rose:#8aa798;
  --brown:#253f37;
  --gold:#aa945f;
  --muted:#52655c;
  --line:#cdd8cf;
  --serif:'Bodoni Moda',Georgia,serif;
  --sans:'Plus Jakarta Sans',sans-serif}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px}
body {
  margin:0;
  background:var(--ivory);
  color:var(--brown);
  font:14px/1.8 var(--sans)}
a {
  color:inherit;
  text-decoration:none}
button,input,select,textarea {
  font:inherit}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent}
button {
  cursor:pointer}
img {
  display:block;
  max-width:100%;
  object-fit:cover}
button {
  color:inherit}
::selection {
  background:var(--beige)}
:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:5px}
.skip-link {
  position:fixed;
  top:-70px;
  left:20px;
  background:var(--brown);
  color:white;
  padding:12px;
  z-index:100}
.skip-link:focus {
  top:10px}
.site-header {
  height:104px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5.2%;
  background:var(--ivory);
  position:sticky;
  top:0;
  z-index:20;
  transition:box-shadow .3s}
.site-header.scrolled {
  box-shadow:0 3px 20px #253f370a}
.brand {
  font-family:var(--serif);
  font-size:25px;
  line-height:1.15;
  letter-spacing:2px;
  white-space:nowrap}
.brand span {
  font-weight:400}
.brand small {
  display:block;
  font:8px var(--sans);
  letter-spacing:5px;
  text-align:center;
  margin-top:9px}
.site-header nav {
  display:flex;
  gap:28px;
  align-items:center}
.site-header nav>a:not(.button) {
  font-size:11px;
  font-weight:500}
.site-header nav>a:not(.button):hover {
  color:#486c5c}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  background:var(--brown);
  color:var(--ivory);
  padding:16px 25px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.3px;
  border:1px solid var(--brown);
  border-radius:3px;
  transition:background .25s,transform .25s}
.button:hover {
  background:#3a5b4e;
  transform:translateY(-2px)}
.button span {
  font-size:18px;
  font-weight:400}
.nav-cta {
  padding:11px 21px;
  margin-left:10px}
.menu-toggle {
  display:none}
.hero {
  position:relative;
  min-height:690px;
  height:calc(100svh - 104px);
  max-height:900px;
  isolation:isolate;
  overflow:hidden}
.hero-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-position:60% 56%;
  z-index:-3}
.hero-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(246,247,242,.97) 0%,rgba(246,247,242,.92) 25%,rgba(246,247,242,.68) 44%,rgba(246,247,242,.04) 72%);
  z-index:-2}
.hero-content {
  padding:72px 7.7% 100px;
  max-width:850px;
  animation:entrance 1s both}
.eyebrow {
  font:600 9px/1.8 var(--sans);
  letter-spacing:2.1px;
  margin:0 0 25px}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:13px}
.hero .eyebrow>span {
  width:30px;
  height:1px;
  background:var(--gold)}
h1,h2,h3,p {
  margin-top:0}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400}
h1 {
  font-size:clamp(66px,6.5vw,99px);
  line-height:.98;
  letter-spacing:-2.9px;
  margin:0 0 28px}
em {
  font-weight:400;
  color:#486c5c}
h1 em {
  color:#486c5c}
h2 {
  font-size:clamp(42px,4.2vw,64px);
  line-height:1.06;
  letter-spacing:-1.5px;
  margin-bottom:25px}
.hero-description {
  max-width:385px;
  font-size:12px;
  line-height:1.95;
  color:#52655c;
  margin-bottom:31px}
.hero-actions {
  display:flex;
  gap:30px;
  align-items:center}
.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  font-size:11px;
  font-weight:600;
  padding:6px 0 8px;
  border-bottom:1px solid #758b78}
.text-link span {
  font-size:19px;
  line-height:1}
.text-link:hover {
  color:#486c5c}
.hero-bottom {
  position:absolute;
  bottom:30px;
  left:7.7%;
  right:7.7%;
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:1.8px}
.hero-bottom a {
  background:#f6f7f2c9;
  padding:7px 12px}
.hero-bottom a span {
  margin-left:20px}
.hero-note {
  position:absolute;
  right:15px;
  bottom:7px;
  font-size:8px;
  background:#f6f7f2c9;
  padding:2px 7px}
.brand-strip {
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:65px;
  border-bottom:1px solid var(--line);
  font-size:10px;
  letter-spacing:.6px}
.brand-strip i {
  font-style:normal;
  color:var(--gold);
  font-size:17px}
.section {
  padding:105px 7.7%}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:48px;
  gap:50px}
.section-heading h2 {
  margin-bottom:0}
.section-heading>p {
  max-width:295px;
  color:var(--muted);
  font-size:12px;
  margin-bottom:5px}
.service-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:30px}
.service-card:nth-child(2) {
  padding-top:48px}
.service-image {
  height:355px;
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:5px}
.service-image img {
  width:100%;
  height:100%;
  transition:transform .7s}
.service-image:hover img,.gallery-item:hover img {
  transform:scale(1.045)}
.image-number {
  position:absolute;
  bottom:18px;
  left:20px;
  color:#fff;
  font-size:8px;
  letter-spacing:2px;
  text-shadow:0 1px 6px #253f37}
.service-card h3 {
  font-size:33px;
  line-height:1.08;
  margin:25px 0 15px}
.service-card p {
  font-size:11px;
  color:var(--muted);
  line-height:1.95;
  max-width:290px}
.service-card .text-link {
  margin-top:8px}
.image-disclaimer {
  font-size:9px;
  color:var(--muted);
  margin:28px 0 0}
.about {
  background:#e6ece4;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10%;
  align-items:center}
.about-visual {
  position:relative}
.about-visual>img {
  height:560px;
  width:100%;
  border-radius:5px 5px 100px 5px}
.about-visual>small {
  font-size:8px;
  position:absolute;
  bottom:12px;
  left:15px;
  color:white;
  text-shadow:0 1px 4px #253f37}
.about-seal {
  width:145px;
  height:145px;
  border-radius:50%;
  border:1px solid var(--gold);
  background:var(--ivory);
  position:absolute;
  right:-55px;
  bottom:40px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  font-size:8px;
  line-height:1.7;
  letter-spacing:1px;
  transform:rotate(-12deg);
  box-shadow:0 0 0 8px #f6f7f270}
.about-seal i {
  font:italic 20px var(--serif);
  letter-spacing:0;
  margin:7px 0}
.about-copy h2 {
  font-size:clamp(38px,3.7vw,55px)}
.about-copy>p:not(.eyebrow) {
  color:var(--muted);
  font-size:12px;
  max-width:390px}
.about-detail {
  border-top:1px solid #cdd8cf;
  display:flex;
  align-items:center;
  gap:22px;
  margin:30px 0;
  padding-top:25px;
  max-width:360px}
.about-detail>span {
  font-size:38px;
  color:var(--gold)}
.about-detail p {
  margin:0;
  font-size:11px}
.price-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:25px}
.price-category {
  border:1px solid var(--line);
  border-radius:5px;
  padding:30px 24px;
  scroll-margin-top:120px}
.price-category .category-number {
  color:#6b7044;
  font-size:9px;
  letter-spacing:2px}
.price-category h3 {
  font-size:30px;
  margin:18px 0 25px}
.price-row {
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:15px 0;
  border-bottom:1px solid #dce4da;
  font-size:11px}
.price-row span:last-child {
  white-space:nowrap;
  font-weight:600}
.price-category .text-link {
  margin-top:28px;
  width:100%;
  font-size:10px}
.price-note {
  font-size:10px;
  color:var(--muted);
  text-align:center;
  margin:28px 0 0}
.gallery {
  padding-top:20px}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px}
.gallery-item {
  position:relative;
  border:0;
  padding:0;
  border-radius:5px;
  overflow:hidden;
  background:var(--beige);
  height:330px;
  text-align:left}
.gallery-item:nth-child(even) {
  margin-top:38px}
.gallery-item img {
  width:100%;
  height:100%;
  transition:transform .7s}
.gallery-item:after {
  content:'';
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#253f37a0);
  pointer-events:none}
.gallery-item>span {
  position:absolute;
  left:17px;
  right:17px;
  bottom:17px;
  color:white;
  font-size:10px;
  z-index:1;
  display:flex;
  justify-content:space-between;
  gap:5px}
.gallery-item b {
  font-weight:400;
  font-size:16px}
.reviews {
  background:#e3eade;
  text-align:center;
  padding-top:70px;
  padding-bottom:65px}
.reviews .eyebrow {
  margin-bottom:0}
.quote-mark {
  display:block;
  font:85px/.9 var(--serif);
  color:#aa945f;
  height:75px;
  padding-top:20px}
.reviews h2 {
  font-size:52px}
.reviews>p:not(.eyebrow) {
  font-size:12px;
  color:var(--muted)}
.tiny-star {
  font-size:30px;
  color:#6b7044}
.faq {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:9%}
.faq h2 {
  font-size:49px}
.faq>div>p:not(.eyebrow) {
  color:var(--muted);
  font-size:12px}
.faq .text-link {
  margin-top:20px}
.faq-list {
  padding-top:5px}
details {
  border-bottom:1px solid var(--line)}
summary {
  list-style:none;
  cursor:pointer;
  padding:21px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  font-weight:500;
  gap:20px}
summary::-webkit-details-marker {
  display:none}
summary span {
  font-weight:400;
  font-size:23px;
  color:#6b7044}
details[open] summary span {
  transform:rotate(45deg)}
details p {
  font-size:12px;
  color:var(--muted);
  max-width:95%;
  padding-bottom:15px}
.booking {
  background:var(--brown);
  color:var(--ivory);
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:10%}
.booking em {
  color:#c8ac8b}
.booking .eyebrow {
  color:#cdb18e}
.booking-intro>p:not(.eyebrow) {
  max-width:350px;
  color:#d0c1b7;
  font-size:12px}
.booking-phone {
  font:35px var(--serif);
  display:block;
  margin:35px 0}
.booking-phone span {
  font-size:25px;
  margin-left:25px}
.small {
  font-size:10px!important;
  line-height:1.9}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:19px}
.full {
  grid-column:1/-1}
label {
  display:block;
  font-size:10px;
  font-weight:500}
label>span {
  color:#ddc2a3}
label small {
  font-size:9px;
  font-weight:400;
  color:#c3b5ac}
input,select,textarea {
  display:block;
  width:100%;
  margin-top:8px;
  border:1px solid #8b9c8d;
  background:#ffffff05;
  color:var(--ivory);
  padding:12px 13px;
  border-radius:2px;
  font-size:11px;
  min-height:44px;
  color-scheme:dark}
input::placeholder,textarea::placeholder {
  color:#baa9a0}
select option {
  background:var(--brown)}
textarea {
  resize:vertical}
input:focus,select:focus,textarea:focus {
  outline:1px solid var(--gold);
  border-color:var(--gold)}
.consent {
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.8;
  margin:22px 0;
  font-size:9px}
.consent input {
  width:15px;
  min-height:15px;
  height:15px;
  flex-shrink:0;
  margin-top:2px;
  accent-color:var(--gold)}
.consent>span {
  color:#d0c1b7}
.consent a {
  text-decoration:underline}
.booking form .button {
  width:100%;
  background:#e4d3bd;
  border-color:#e4d3bd;
  color:var(--brown)}
.booking form .button:hover {
  background:var(--ivory)}
.booking form>.small {
  color:#c4b6ac;
  margin-top:12px}
#form-status {
  font-size:12px;
  color:#f1d8ab}
#form-status a {
  text-decoration:underline}
.contact {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10%;
  background:#e6ece4}
.contact h2 {
  font-size:52px}
.contact p:not(.eyebrow) {
  font-size:12px;
  color:var(--muted)}
.contact .text-link {
  margin-top:15px}
.contact-details {
  padding-top:25px}
.contact-phone {
  display:block;
  font:40px var(--serif)}
.contact-meta {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  margin-top:35px;
  padding-top:25px;
  gap:20px}
.contact-meta .eyebrow {
  margin-bottom:13px}
footer {
  padding:65px 7.7% 22px}
.footer-top {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:35px}
.footer-top p {
  font-size:10px;
  color:var(--muted);
  margin-top:20px}
.footer-top h3 {
  font:600 10px var(--sans);
  margin:3px 0 22px}
.footer-top>div>a:not(.brand) {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:9px}
.footer-top .brand {
  display:inline-block;
  font-size:24px}
.footer-bottom {
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:8px;
  color:var(--muted);
  margin-top:50px;
  padding-top:22px;
  gap:20px}
.footer-bottom>div {
  display:flex;
  gap:25px}
.footer-bottom>span:last-child {
  font-size:7px;
  letter-spacing:1.5px}
.floating-whatsapp {
  position:fixed;
  right:25px;
  bottom:25px;
  width:52px;
  height:52px;
  border-radius:50%;
  background:var(--brown);
  color:var(--ivory);
  border:1px solid #c7b49c;
  display:grid;
  place-items:center;
  z-index:15;
  box-shadow:0 4px 20px #253f3720;
  transition:transform .2s}
.floating-whatsapp:hover {
  transform:translateY(-4px)}
.floating-whatsapp svg {
  width:29px;
  height:29px}
dialog {
  border:0;
  background:var(--ivory);
  padding:40px 20px 18px;
  max-width:90vw;
  width:900px;
  max-height:92svh;
  border-radius:5px}
dialog::backdrop {
  background:#172d25df}
dialog>img {
  height:65svh;
  width:100%;
  object-fit:contain}
dialog>p {
  text-align:center;
  font-size:11px;
  margin:12px 0}
.lightbox-close {
  position:absolute;
  right:12px;
  top:0;
  font-size:30px;
  border:0;
  background:none}
.lightbox-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px}
.lightbox-controls button {
  border:1px solid var(--line);
  background:none;
  font-size:20px;
  width:45px;
  height:40px}
.lightbox-controls span {
  font-size:10px}
.privacy-main {
  max-width:900px;
  margin:auto;
  padding:80px 30px}
.privacy-main h1 {
  font-size:65px}
.privacy-main h2 {
  font-size:31px;
  margin-top:40px}
.privacy-main p,.privacy-main li {
  font-size:13px;
  color:var(--muted)}
.privacy-main a {
  text-decoration:underline}
.privacy-header {
  padding:30px 7.7%;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center}
@keyframes entrance {
  from {
  opacity:0;
  transform:translateY(22px)}
to {
  opacity:1;
  transform:translateY(0)}
}
@media(min-width:1600px) {
  .section {
  padding-left:max(7.7%,calc((100vw - 1400px)/2));
  padding-right:max(7.7%,calc((100vw - 1400px)/2))}
}
@media(max-width:1100px) {
  .site-header {
  padding:0 4%;
  height:88px}
.site-header nav {
  gap:17px}
.brand {
  font-size:21px}
.site-header nav>a:not(.button) {
  font-size:10px}
.nav-cta {
  padding:9px 13px;
  gap:15px}
.hero {
  height:700px;
  min-height:650px}
.hero-content {
  padding-top:65px}
.hero h1 {
  font-size:80px}
.section {
  padding:80px 6%}
.service-image {
  height:290px}
.about {
  gap:9%}
.about-visual>img {
  height:490px}
.price-category {
  padding:25px 18px}
.price-category h3 {
  font-size:26px}
.price-row {
  font-size:10px}
.gallery {
  padding-top:10px}
.gallery-grid {
  gap:12px}
.gallery-item {
  height:280px}
.gallery-item>span {
  font-size:9px;
  left:12px;
  right:12px}
.faq {
  gap:6%}
.faq h2 {
  font-size:43px}
.booking {
  gap:6%}
.booking h2 {
  font-size:48px}
.brand-strip {
  gap:35px}
.footer-top {
  gap:20px}
}
@media(max-width:800px) {
  html {
  scroll-padding-top:78px}
.site-header {
  height:78px;
  padding:0 6%}
.brand {
  font-size:22px}
.brand small {
  font-size:7px;
  margin-top:6px}
.menu-toggle {
  display:flex;
  flex-direction:column;
  gap:7px;
  background:none;
  border:0;
  padding:12px 0 12px 14px;
  width:40px}
.menu-toggle span {
  height:1px;
  background:var(--brown);
  width:25px;
  transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child {
  transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child {
  transform:translateY(-4px) rotate(-45deg)}
.site-header nav {
  display:none;
  position:absolute;
  top:78px;
  left:0;
  right:0;
  flex-direction:column;
  align-items:stretch;
  background:var(--ivory);
  padding:20px 6% 30px;
  box-shadow:0 15px 20px #253f3712;
  gap:0}
.site-header nav.open {
  display:flex}
.site-header nav>a:not(.button) {
  padding:10px 0;
  font-size:13px}
.nav-cta {
  margin:15px 0 0;
  padding:12px 20px}
.hero {
  height:680px;
  min-height:0}
.hero-shade {
  background:linear-gradient(90deg,#f6f7f2ed,#f6f7f2c9 40%,#f6f7f23d)}
.hero-image {
  object-position:60%}
.hero-content {
  padding:65px 6% 85px;
  max-width:650px}
.hero h1 {
  font-size:79px}
.hero-bottom {
  left:6%;
  right:6%;
  font-size:7px}
.hero-bottom>span {
  align-self:center}
.brand-strip {
  gap:22px;
  padding:20px 6%;
  font-size:9px;
  min-height:65px}
.brand-strip span:last-child,.brand-strip i:last-of-type {
  display:none}
.section {
  padding:70px 6%}
.section-heading {
  gap:25px}
.section-heading>p {
  max-width:230px;
  font-size:11px}
.section-heading h2 {
  font-size:45px}
.service-grid {
  gap:18px}
.service-image {
  height:250px}
.service-card h3 {
  font-size:29px}
.service-card p {
  font-size:10px}
.service-card .text-link {
  font-size:9px;
  gap:10px}
.about {
  gap:9%;
  grid-template-columns:1fr 1fr}
.about-copy h2 {
  font-size:37px}
.about-visual>img {
  height:470px}
.about-seal {
  width:110px;
  height:110px;
  right:-35px;
  font-size:6px}
.about-seal i {
  font-size:16px}
.about-copy>p:not(.eyebrow) {
  font-size:11px}
.eyebrow {
  font-size:8px;
  letter-spacing:1.7px}
.about-detail {
  gap:12px}
.about-detail p {
  font-size:9px}
.about .button {
  font-size:10px;
  padding:13px 18px;
  gap:15px}
.price-grid {
  grid-template-columns:1fr;
  gap:17px}
.price-category {
  padding:25px 30px}
.price-category h3 {
  margin:10px 0;
  font-size:31px}
.price-row {
  font-size:12px}
.price-category .text-link {
  width:auto;
  gap:50px;
  margin-top:20px}
.gallery {
  padding-top:0}
.gallery-grid {
  grid-template-columns:1fr 1fr;
  gap:18px}
.gallery-item {
  height:320px}
.gallery-item:nth-child(even) {
  margin-top:25px}
.gallery-item>span {
  font-size:11px}
.faq {
  grid-template-columns:1fr;
  gap:30px}
.faq>div>p br {
  display:none}
.faq .text-link {
  margin-top:0}
.booking {
  grid-template-columns:1fr;
  gap:35px}
.booking-intro>p:not(.eyebrow) {
  max-width:500px}
.booking-phone {
  margin:20px 0}
.contact {
  gap:6%}
.contact h2 {
  font-size:41px}
.contact-phone {
  font-size:32px}
.contact-meta {
  grid-template-columns:1fr;
  gap:8px}
.contact-meta .eyebrow {
  margin-bottom:7px}
.footer-top {
  grid-template-columns:1fr 1fr;
  gap:30px}
.footer-bottom {
  flex-wrap:wrap}
.footer-bottom>span:last-child {
  display:none}
}
@media(max-width:520px) {
  .hero {
  height:690px}
.hero-content {
  padding-top:57px}
.hero h1 {
  font-size:65px;
  letter-spacing:-1.8px;
  line-height:1.03}
.hero-description {
  max-width:290px;
  font-size:11px}
.hero .eyebrow {
  font-size:7px;
  letter-spacing:1.5px}
.hero-actions {
  flex-wrap:wrap;
  gap:18px}
.hero-actions .button {
  padding:13px 20px;
  gap:20px}
.hero-actions .text-link {
  font-size:10px;
  gap:15px}
.hero-shade {
  background:linear-gradient(90deg,#f6f7f2ed,#f6f7f2d9 45%,#f6f7f252)}
.hero-bottom {
  bottom:35px}
.hero-bottom>span {
  display:none}
.hero-bottom a {
  padding-left:0;
  background:transparent}
.brand-strip {
  font-size:8px;
  gap:16px}
.brand-strip i {
  font-size:12px}
.section-heading {
  display:block;
  margin-bottom:30px}
.section-heading>p {
  max-width:290px;
  margin-top:20px}
.section-heading h2 {
  font-size:45px}
.section {
  padding-top:60px;
  padding-bottom:60px}
.service-grid {
  grid-template-columns:1fr;
  gap:38px}
.service-card:nth-child(2) {
  padding-top:0}
.service-image {
  height:380px}
.service-card h3 {
  font-size:36px;
  margin-top:20px}
.service-card h3 br {
  display:none}
.service-card p {
  font-size:12px;
  max-width:none}
.service-card .text-link {
  font-size:11px}
.image-number {
  font-size:9px}
.about {
  grid-template-columns:1fr;
  gap:50px}
.about-visual {
  margin-right:25px}
.about-visual>img {
  height:400px}
.about-seal {
  right:-24px;
  width:125px;
  height:125px}
.about-copy h2 {
  font-size:43px}
.about-copy>p:not(.eyebrow) {
  font-size:12px}
.about-detail p {
  font-size:11px}
.about .button {
  font-size:11px}
.price-category {
  padding:25px}
.gallery {
  padding-top:0}
.gallery-grid {
  gap:12px}
.gallery-item {
  height:240px}
.gallery-item:nth-child(even) {
  margin-top:20px}
.gallery-item>span {
  font-size:9px;
  left:10px;
  right:10px;
  align-items:center}
.gallery-item b {
  font-size:13px}
.reviews h2 {
  font-size:45px}
.faq h2 {
  font-size:44px}
.booking h2 {
  font-size:47px}
.form-grid {
  grid-template-columns:1fr;
  gap:17px}
.full {
  grid-column:auto}
input,select,textarea {
  font-size:16px;
  padding:12px}
label {
  font-size:11px}
.consent {
  font-size:10px}
.contact {
  grid-template-columns:1fr;
  gap:25px}
.contact h2 {
  font-size:46px}
.contact-details {
  padding-top:0}
.contact-meta {
  grid-template-columns:1fr 1fr}
.contact-meta p:not(.eyebrow) {
  font-size:10px}
.contact-phone {
  font-size:38px}
footer {
  padding:45px 6% 25px}
.footer-top {
  gap:30px 20px}
.footer-top>div:first-child {
  grid-column:1/-1}
.footer-top h3 {
  font-size:10px}
.footer-top>div:last-child {
  grid-column:1/-1}
.footer-top>div:last-child p {
  margin-top:0}
.footer-bottom {
  margin-top:30px;
  font-size:8px;
  gap:15px;
  max-width:85%}
.floating-whatsapp {
  right:17px;
  bottom:18px;
  width:46px;
  height:46px}
.privacy-main h1 {
  font-size:49px}
.privacy-header {
  gap:20px}
.privacy-header>a:last-child {
  font-size:10px}
dialog {
  padding-left:12px;
  padding-right:12px}
dialog>img {
  height:58svh}
}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
*,*:before,*:after {
  animation:none!important;
  transition:none!important}
}


/* Owner-supplied identity and photographs. */
.brand { display:inline-flex; align-items:center; gap:12px; letter-spacing:1.2px; font-size:21px }
.brand-logo { width:64px; height:64px; flex-shrink:0; border-radius:50%; object-fit:contain }
.brand-name { display:block }
.footer-top .brand { display:inline-flex; font-size:19px }
.brand small { letter-spacing:4px }
.hero-image { object-position:82% 48% }
.service-card:first-child .service-image img { object-fit:contain; background:var(--beige) }
.image-number { background:#253f37d9; padding:5px 8px; border-radius:2px }
.gallery-item img { object-fit:contain; padding:10px 10px 48px }
.gallery-item:after { inset:auto 0 0; height:48px; background:var(--brown) }
.gallery-item:nth-child(even) { margin-top:0 }
@media(max-width:1100px) { .brand { font-size:17px; gap:8px } .brand-logo { width:54px; height:54px } }
@media(max-width:800px) { .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media(max-width:520px) { .brand { font-size:18px } .brand-logo { width:50px; height:50px } .gallery-item img { padding:6px 6px 48px } .privacy-header { flex-wrap:wrap } }

/* Contemporary editorial type and restrained movement. */
h1,h2 { font-weight:400; letter-spacing:-.045em }
h1 { font-size:clamp(58px,6.1vw,92px); line-height:1.1 }
h2 { line-height:1.16 }
h3 { line-height:1.25 }
.hero-content { animation:none }
.hero-line { display:block }
.button span,.text-link span { transition:transform .3s }
.button:hover span,.text-link:hover span { transform:translate(3px,-3px) }
.button:active { transform:translateY(0) scale(.98) }
.site-header nav>a:not(.button) { position:relative }
.site-header nav>a:not(.button)::after { content:''; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--brown); transform:scaleX(0); transform-origin:left; transition:transform .3s }
.site-header nav>a:not(.button):hover::after { transform:scaleX(1) }
.reviews .text-link { margin-bottom:18px }
.tiny-star { display:block }
@media(prefers-reduced-motion:no-preference) {
  .hero .eyebrow { animation:editorial-reveal .8s both }
  .hero-line { animation:editorial-reveal 1s both }
  .hero-line:nth-child(1) { animation-delay:.1s }
  .hero-line:nth-child(2) { animation-delay:.22s }
  .hero-line:nth-child(3) { animation-delay:.34s }
  .hero-description { animation:editorial-reveal .9s .45s both }
  .hero-actions { animation:editorial-reveal .9s .58s both }
  .reveal-in { animation:editorial-reveal .85s var(--reveal-delay,0ms) both }
  .about-visual>img { transition:transform .8s }
  .about-visual:hover>img { transform:scale(1.015) }
}
@keyframes editorial-reveal {
  from { opacity:0; transform:translateY(24px) }
  to { opacity:1; transform:translateY(0) }
}
@media(max-width:1100px) { .hero h1 { font-size:72px } }
@media(max-width:800px) { .hero h1 { font-size:68px } }
@media(max-width:520px) {
  .hero h1 { font-size:clamp(43px,11.4vw,59px); line-height:1.14 }
  .hero-actions .button { font-size:10px }
}

.team { background:var(--ivory) }
.team-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px }
.team-card { background:#e6ece4; border:1px solid var(--line); border-radius:6px; overflow:hidden }
.team-portrait { width:100%; height:auto; aspect-ratio:1; object-fit:cover }
.team-copy { padding:28px }
.team-copy .eyebrow { margin-bottom:12px; font-size:8px }
.team-copy h3 { font-size:clamp(28px,3vw,42px); margin-bottom:18px }
.team-copy .text-link { gap:15px }
.site-header nav { gap:20px }
@media(max-width:1100px) and (min-width:801px) { .site-header nav { gap:12px } .site-header { padding:0 3% } .nav-cta { margin-left:0; padding:9px 10px; gap:8px } }
@media(max-width:800px) { .site-header nav { gap:0 } .team-grid { gap:20px } .team-copy { padding:22px } }
@media(max-width:520px) { .team-grid { grid-template-columns:1fr } .team-copy h3 { font-size:34px } }

.team-contact { margin:0 0 18px; display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; font-size:12px }
.team-contact>span { color:var(--muted); font-size:10px }
.team-contact a { display:inline-block; padding:8px 0; font-weight:600; text-decoration:underline; text-underline-offset:4px }
.team-contact a:hover { color:#486c5c }

.social-links { display:flex; flex-direction:column; align-items:flex-start; gap:6px }
.social-links a { display:inline-flex; align-items:center; gap:12px; padding:6px 0; font-size:12px; text-decoration:underline; text-underline-offset:4px }
.social-links a:hover { color:#486c5c }

/* AI concierge: accessible native dialog, aligned with the salon identity. */
.assistant-launcher { position:fixed; bottom:24px; right:90px; z-index:15; display:flex; align-items:center; gap:10px; padding:13px 18px; min-height:48px; border:1px solid #aa945f; border-radius:30px; background:var(--brown); color:var(--ivory); font-size:11px; box-shadow:0 4px 20px #253f3720 }
.assistant-launcher>span { font-size:23px; line-height:1 }
.assistant-launcher:hover { background:#3a5b4e }
.assistant-dialog { position:fixed; inset:auto 22px 22px auto; margin:0; padding:0; width:410px; max-width:calc(100vw - 24px); max-height:calc(100svh - 32px); border:1px solid var(--line); border-radius:16px; color:var(--brown); box-shadow:0 18px 70px #172d2530; overflow-y:auto }
.assistant-dialog::backdrop { background:#172d2540 }
.assistant-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px 22px; background:var(--brown); color:var(--ivory) }
.assistant-header p { margin:0 0 4px; font-size:8px; letter-spacing:2px }
.assistant-header h2 { margin:0; font-size:26px; letter-spacing:-.5px }
.assistant-header button { border:0; background:transparent; color:inherit; font-size:28px; width:44px; height:44px }
.assistant-body { padding:18px }
.assistant-notice { color:var(--muted); font-size:10px; line-height:1.7; margin-bottom:16px }
.assistant-notice a { text-decoration:underline; text-underline-offset:3px }
.assistant-messages { max-height:30svh; min-height:100px; overflow-y:auto; overscroll-behavior:contain; display:flex; flex-direction:column; gap:12px; padding:4px 6px 6px 4px }
.assistant-message { align-self:flex-start; margin:0; padding:13px 15px; background:var(--beige); border-radius:12px 12px 12px 2px; max-width:94%; font-size:12px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere }
.assistant-message.from-user { align-self:flex-end; background:var(--brown); color:var(--ivory); border-radius:12px 12px 2px 12px }
.assistant-prompts { display:flex; flex-wrap:wrap; gap:6px; margin-top:16px }
.assistant-prompts button { background:transparent; border:1px solid #8b9c8d; padding:8px 10px; border-radius:20px; font-size:10px; min-height:36px }
.assistant-prompts button:hover { background:var(--beige) }
.assistant-status { font-size:11px; margin:12px 0; color:var(--muted) }
.assistant-input-row { display:flex; gap:8px; margin-top:6px }
.assistant-input-row input { margin:0; min-width:0; min-height:44px; background:white; color:var(--brown); color-scheme:light; border:1px solid #8b9c8d; font-size:16px; padding:10px }
.assistant-input-row input::placeholder { color:var(--muted) }
.assistant-input-row button { background:var(--brown); color:var(--ivory); border:0; border-radius:3px; padding:10px 14px; font-size:11px }
.assistant-dialog button:disabled { opacity:.6; cursor:wait }
#assistant-form>p { font-size:9px; color:var(--muted); line-height:1.6; margin:8px 0 14px }
.assistant-links { display:flex; flex-wrap:wrap; gap:5px 14px; border-top:1px solid var(--line); padding-top:12px }
.assistant-links a { font-size:10px; text-decoration:underline; text-underline-offset:3px; padding:5px 0 }
.assistant-clear { display:block; margin:10px 0 0; border:0; background:transparent; color:var(--muted); font-size:10px; padding:8px 0; text-decoration:underline }
@media(max-width:520px) { .assistant-launcher { bottom:18px; right:74px; padding:10px 13px; font-size:10px; min-height:46px } .assistant-dialog { right:12px; bottom:12px } }
@media(prefers-reduced-motion:no-preference) { .assistant-dialog[open] { animation:editorial-reveal .25s both } }

.assistant-launcher[hidden] { display:none }

/* WhatsApp booking: recognizable icon, kept within the salon palette. */
.wa-icon { width:18px; height:18px; flex-shrink:0 }
.button-whatsapp { justify-content:center; gap:12px }
.button-whatsapp .wa-icon { color:#7fd3a6 }
.nav-cta { gap:10px }
.nav-cta .wa-icon { width:16px; height:16px; color:#7fd3a6 }
.contact-booking { margin-bottom:24px }
.floating-whatsapp { background:#1f6f54; border-color:#9fd9b9 }
.floating-whatsapp:hover { background:#185c45 }
.floating-whatsapp .wa-icon { width:27px; height:27px; color:#fff }

/* About: muted salon clip beside the salon photo. */
.about-media { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start }
.about-media>video, .about-media>img { width:100%; height:auto; object-fit:cover; background:#d3ddd5 }
.about-video { aspect-ratio:9/16; border-radius:5px 5px 5px 90px }
.about-media>img { aspect-ratio:3/4; margin-top:70px; border-radius:5px 5px 90px 5px }
@media(max-width:800px) { .about-media>img { margin-top:40px } }
@media(max-width:520px) { .about-media { gap:10px } .about-video { border-radius:5px 5px 5px 50px } .about-media>img { border-radius:5px 5px 50px 5px; margin-top:28px } }

/* Team feature photo. */
.team-feature { margin:0 0 32px; position:relative; border-radius:6px; overflow:hidden; background:#d3ddd5 }
.team-feature img { width:100%; height:auto; aspect-ratio:3/2; max-height:620px; object-fit:cover; object-position:50% 30%; display:block }
.team-feature figcaption { position:absolute; left:0; right:0; bottom:0; padding:40px 24px 18px; font-size:10px; letter-spacing:1.5px; color:var(--ivory); background:linear-gradient(transparent,#172d25b3) }
@media(max-width:520px) { .team-feature { margin-bottom:20px } .team-feature figcaption { padding:30px 16px 12px; font-size:9px } }

.reviews-links { display:flex; justify-content:center; flex-wrap:wrap; gap:12px 34px }

/* Booking form. */
.booking-steps { list-style:none; padding:0; margin:30px 0; display:grid; gap:12px; max-width:380px }
.booking-steps li { display:flex; align-items:center; gap:16px; font-size:12px; color:#e9ddd3 }
.booking-steps b { font:500 14px var(--serif); color:#cdb18e; width:34px; height:34px; border:1px solid #8b9c8d; border-radius:50%; display:grid; place-items:center; flex-shrink:0 }
.booking-hours { margin:28px 0 0; padding:20px 22px; border:1px solid #8b9c8d; border-radius:5px; max-width:380px }
.booking-hours .eyebrow { margin-bottom:12px }
[data-hours] { display:grid; grid-template-columns:auto 1fr; gap:5px 22px; margin:0; font-size:12px }
[data-hours] dt { font-weight:500 }
[data-hours] dd { margin:0; font-variant-numeric:tabular-nums }
[data-hours] dd.closed { opacity:.65 }
.booking .booking-phone { margin:28px 0 }
.field label { margin-bottom:0 }
.field-help { font-size:10px; color:#c4b6ac; margin:7px 0 0; line-height:1.6 }
.field-error { font-size:11px; color:#ffb9a6; margin:6px 0 0; min-height:0; line-height:1.5 }
.field-error:empty { display:none }
.has-error input, .has-error select { border-color:#ff9f86; outline:1px solid #ff9f86 }
.consent.has-error>span { color:#ffd3c7 }
.consent + .field-error { margin:-14px 0 16px }
@media(max-width:800px) { input, select, textarea { font-size:16px } }
select:disabled { opacity:.55; cursor:not-allowed }
.date-quick { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-top:10px }
.date-quick:empty { display:none }
.date-quick button { display:flex; flex-direction:column; align-items:center; gap:2px; padding:9px 4px; min-height:64px; border:1px solid #8b9c8d; border-radius:4px; background:#ffffff05; color:var(--ivory); cursor:pointer; transition:background .2s,border-color .2s }
.date-quick button small { font-size:9px; letter-spacing:.5px; color:#d0c1b7; text-transform:capitalize }
.date-quick button b { font:500 20px/1.1 var(--serif) }
.date-quick button:hover { border-color:var(--gold) }
.date-quick button[aria-pressed="true"] { background:#e4d3bd; border-color:#e4d3bd; color:var(--brown) }
.date-quick button[aria-pressed="true"] small { color:var(--brown) }
.date-quick button:focus-visible { outline:2px solid var(--gold); outline-offset:2px }
.date-quick + input { margin-top:10px }
.booking form .booking-submit { justify-content:center; gap:12px; padding:18px 24px; font-size:13px; box-shadow:0 8px 26px #0000002b }
.booking form .booking-submit .wa-icon { width:22px; height:22px; color:#128c5e }
#form-status { line-height:1.7; margin-top:10px }
@media(max-width:520px) { .date-quick { grid-template-columns:repeat(3,minmax(0,1fr)) } .booking form .booking-submit { font-size:12px; padding:17px 16px } }

/* Price list: services with packages, subscriptions and payment notes. */
.price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start }
#pret-laser { grid-column:1/-1 }
#pret-laser .price-items { columns:2; column-gap:48px }
.price-category h3 { margin-bottom:8px }
.category-subtitle { margin:0 0 18px; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted) }
.price-item { break-inside:avoid; border-bottom:1px solid #dce4da }
.price-item .price-row { border-bottom:0; align-items:baseline }
.price-row .price-value { font:600 15px/1.3 var(--serif); color:var(--brown); white-space:nowrap; text-align:right }
.price-value small { font:500 9px var(--sans); color:var(--muted); margin-left:2px }
.price-meta { font-size:9px; letter-spacing:.5px; color:var(--muted); white-space:nowrap }
.price-details { margin:-8px 0 14px; font-size:10px; line-height:1.65; color:var(--muted); max-width:46ch }
.price-package { margin:0 0 10px; padding:9px 12px; border-radius:4px; background:#e9efe7; font-size:10px }
.price-package .price-value { font-size:14px; color:#6b5a2e }
.price-tag { display:inline-block; margin-right:4px; padding:2px 7px; border:1px solid var(--gold); border-radius:20px; font-size:8px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:#6b5a2e; vertical-align:1px }
.is-subscription { padding:4px 12px 0; margin-top:10px; border:1px solid var(--gold); border-radius:5px; background:#f9f6ec }
.is-subscription .price-details { margin-top:-10px }
.price-notes { list-style:none; margin:20px 0 0; padding:14px 16px; border-left:2px solid var(--gold); background:#eef2ec; font-size:10px; line-height:1.7 }
.price-notes li + li { margin-top:4px }
@media(max-width:1100px) { #pret-laser .price-items { column-gap:32px } }
@media(max-width:800px) {
  .price-grid { grid-template-columns:1fr }
  #pret-laser .price-items { columns:1 }
  .price-row .price-value { font-size:16px }
  .price-package, .price-details, .price-notes { font-size:11px }
}
@media(max-width:520px) { .price-category { padding:22px 16px } .price-package { padding:9px 10px } .price-meta { white-space:normal } }
