/* ---------- Base & variables ---------- */
:root{
  --cream:#F6F1EA;
  --cream-soft:#FBF8F4;
  --ink:#1E1B18;
  --ink-soft:#4A453F;
  --sauge:#8B9A7C;
  --sauge-dark:#5F6E52;
  --terracotta:#C1784E;
  --terracotta-dark:#9C5C37;
  --or:#B08D4F;
  --white:#FFFFFF;
  --radius:16px;
  --shadow:0 12px 32px rgba(30,27,24,.08);
  --header-h:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Work Sans',Arial,sans-serif;color:var(--ink);background:var(--cream);line-height:1.55;overflow-x:hidden}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.15;margin:0 0 .5em}
p{margin:0 0 1em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
section[id]{scroll-margin-top:var(--header-h)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--cream);padding:10px 16px;z-index:200}
.skip-link:focus{left:8px;top:8px}

/* reveal (gated by .js so content is visible without JS) */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.js .reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .reveal{transition:none;opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:600;font-size:.95rem;border:1.5px solid transparent;cursor:pointer;white-space:nowrap}
.btn-lg{padding:15px 26px;font-size:1rem}
.btn-primary{background:var(--sauge-dark);color:#fff}
.btn-primary:hover{background:#4d5a42}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--cream)}
.btn-outline-light{background:transparent;color:var(--cream);border-color:var(--cream)}
.btn-outline-light:hover{background:var(--cream);color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(246,241,234,.92);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid rgba(30,27,24,.08)}
.header-inner{display:flex;align-items:center;gap:24px;height:var(--header-h)}
.logo-mark{height:38px;width:auto;flex:none}
.logo-title{font-family:'Work Sans',Arial,sans-serif;font-weight:800;font-size:38px;letter-spacing:1.5px;fill:var(--ink)}
.logo-sub{font-family:'Work Sans',Arial,sans-serif;font-weight:600;font-size:10.5px;letter-spacing:3.6px;fill:var(--ink)}
.nav{display:flex;gap:28px;margin-left:8px;flex:1}
.nav a{font-weight:600;font-size:.95rem;white-space:nowrap;position:relative}
.nav a:hover{color:var(--terracotta-dark)}
.header-actions{display:flex;align-items:center;gap:10px}
.header-call span{white-space:nowrap}
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer}
.burger span{display:block;height:2px;width:24px;background:var(--ink)}

@media (max-width: 1080px){
  .nav{display:none}
  .header-call span{display:none}
}
@media (max-width: 860px){
  .header-actions .btn-primary span{display:none}
  .header-actions{gap:8px}
}
@media (max-width: 760px){
  .burger{display:flex}
  .nav{
    display:flex;position:absolute;top:var(--header-h);left:0;right:0;
    background:var(--cream-soft);flex-direction:column;gap:0;
    max-height:0;overflow:hidden;transition:max-height .3s ease;border-bottom:1px solid rgba(30,27,24,.08)
  }
  .nav.is-open{max-height:400px}
  .nav a{padding:14px 24px;border-top:1px solid rgba(30,27,24,.06)}
  .header-call{display:none}
}

/* ---------- Hero ---------- */
.hero{padding:64px 0 40px}
.hero-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.eyebrow{font-weight:700;letter-spacing:2px;text-transform:uppercase;font-size:.78rem;color:var(--terracotta-dark);margin:0 0 12px}
.eyebrow.center,.section-title.center{text-align:center}
.eyebrow-light{color:#E0A878}
h1{font-size:clamp(2.1rem,4vw,3.2rem)}
.hero-lead{font-size:1.08rem;color:var(--ink-soft);max-width:46ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0}
.hero-rating{display:inline-flex;align-items:center;gap:10px;font-size:.95rem}
.hero-rating .stars{color:var(--or);font-size:1.1rem;letter-spacing:1px}
.hero-illustration{width:100%;height:auto}

/* ---------- Sections ---------- */
.section{padding:76px 0}
.section-tinted{background:var(--cream-soft)}
.section-title{font-size:clamp(1.7rem,3vw,2.3rem);max-width:26ch}
.section-title.center{margin:0 auto 44px;max-width:32ch}

/* band / expertise */
.band{padding:48px 0}
.band-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.band-item h3{font-size:1.05rem;margin:14px 0 6px}
.band-item p{color:var(--ink-soft);font-size:.92rem;margin:0}

/* cards */
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:var(--white);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);position:relative;display:flex;flex-direction:column;gap:6px}
.card h3{font-size:1.15rem;margin:0 0 6px}
.card-desc{color:var(--ink-soft);font-size:.94rem;flex:1}
.card-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:14px;border-top:1px solid rgba(30,27,24,.08)}
.price{font-family:'Fraunces',serif;font-weight:600;font-size:1.3rem;color:var(--terracotta-dark)}
.duration{color:var(--ink-soft);font-size:.85rem}
.card-highlight{border:2px solid var(--terracotta)}
.badge{position:absolute;top:-13px;left:24px;background:var(--terracotta);color:#fff;font-size:.75rem;font-weight:700;padding:5px 14px;border-radius:999px;letter-spacing:.4px}
.card-cta{align-items:flex-start;justify-content:center;background:var(--cream-soft)}
.card-cta .btn{margin-top:8px}

/* reviews */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review-card{background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin:0}
.review-stars{color:var(--or);letter-spacing:2px;margin-bottom:10px}
.review-card p{font-size:.95rem;color:var(--ink-soft);font-style:italic}
.review-card footer{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--ink)}
.g-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:conic-gradient(#4285F4 0 25%, #34A853 0 50%, #FBBC05 0 75%, #EA4335 0 100%);color:#fff;font-size:.65rem;font-weight:800}
.link-arrow{font-weight:700;color:var(--terracotta-dark);display:inline-block}
.center{text-align:center}

/* gallery */
.gallery-filters{display:flex;gap:10px;justify-content:center;margin-bottom:32px;flex-wrap:wrap}
.chip{background:var(--white);border:1.5px solid rgba(30,27,24,.15);border-radius:999px;padding:9px 18px;font-weight:600;font-size:.88rem;cursor:pointer}
.chip.is-active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.masonry{column-count:3;column-gap:18px}
.masonry-item{break-inside:avoid;margin-bottom:18px;position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.masonry-item[hidden]{display:none}
.masonry-item img{width:100%;height:auto;display:block;transition:transform .4s ease}
.masonry-item:hover img{transform:scale(1.04)}
.masonry-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;font-size:.85rem;font-weight:600;color:#fff;background:linear-gradient(to top, rgba(0,0,0,.65), transparent)}

dialog.lightbox{border:none;border-radius:var(--radius);padding:0;background:var(--ink);max-width:90vw;max-height:85vh;margin:auto}
dialog.lightbox::backdrop{background:rgba(20,18,16,.85)}
dialog.lightbox img{max-width:86vw;max-height:70vh;object-fit:contain;margin:0 auto;display:block}
dialog.lightbox p{color:var(--cream);text-align:center;padding:12px 0 0;font-size:.9rem}
.lightbox-close{position:absolute;top:10px;right:14px;background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;width:42px;height:42px;border-radius:50%;font-size:1.2rem;cursor:pointer}
.lightbox-prev{left:10px}
.lightbox-next{right:10px}
dialog.lightbox{padding:34px 16px 18px}

/* zone */
.zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.zone-text{color:var(--ink-soft);max-width:44ch}
.hours-table{border-collapse:collapse;margin:20px 0;width:100%;max-width:340px}
.hours-table th,.hours-table td{text-align:left;padding:7px 0;border-bottom:1px solid rgba(30,27,24,.1);font-weight:500;font-size:.92rem}
.hours-table th{font-weight:600;width:40%}
.zone-map{width:100%;height:auto}

/* contact */
.contact-block{background:var(--ink);color:var(--cream)}
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.title-light{color:#fff}
.contact-lead{color:#D8D2C8;max-width:44ch}
.contact-info p{margin-bottom:18px;color:#D8D2C8}
.contact-info strong{color:#fff;display:block;margin-bottom:4px;font-family:'Fraunces',serif;font-weight:600}
.contact-info a:hover{color:var(--terracotta)}

/* footer */
.site-footer{background:#161310;color:#C9C2B8;padding:44px 0 28px}
.footer-inner{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.footer-logo .logo-title,.footer-logo .logo-sub{fill:#F1EBE0}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;font-size:.9rem;font-weight:600}
.footer-nav a:hover{color:#fff}
.footer-note,.footer-demo{font-size:.82rem;margin:0;color:#8B8478}

/* whatsapp float */
.wa-float{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:90}

/* ---------- Responsive ---------- */
@media (max-width: 980px){
  .hero-inner{grid-template-columns:1fr;gap:36px}
  .hero-visual{order:-1;max-width:360px;margin:0 auto}
  .band-grid{grid-template-columns:repeat(2,1fr)}
  .cards-grid{grid-template-columns:repeat(2,1fr)}
  .reviews-grid{grid-template-columns:repeat(2,1fr)}
  .zone-grid{grid-template-columns:1fr}
  .zone-map{max-width:320px;margin:0 auto}
  .contact-grid{grid-template-columns:1fr}
  .masonry{column-count:2}
}
@media (max-width: 620px){
  .wrap{padding:0 18px}
  .band-grid{grid-template-columns:1fr}
  .cards-grid{grid-template-columns:1fr}
  .reviews-grid{grid-template-columns:1fr}
  .masonry{column-count:1}
  .hero{padding:36px 0 28px}
  .section{padding:56px 0}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{justify-content:center}
}
