:root{
  --bg: #efe7da;
  --bg-deep: #3b2a2c;
  --ink: #2a2420;
  --ink-soft: #5a5248;
  --clay: #a85a42;
  --clay-deep: #8a4634;
  --rose: #d9b3a6;
  --sage: #7c8a6e;
  --line: rgba(42,36,32,0.14);
  --cream: #f7f2e9;
  --radius-soft: 2px;
}
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0; background: var(--bg); color: var(--ink);
  font-family: 'Work Sans', sans-serif; font-weight: 400; line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1,h2,h3,.display{ font-family:'Fraunces', serif; font-weight:450; letter-spacing:-0.01em; margin:0; color:var(--ink); }
a{ color: inherit; text-decoration: none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,56px); }

/* NAV */
.nav{
  position:sticky; top:14px; z-index:50;
  background:rgba(239,231,218,0.92);
  backdrop-filter:blur(6px);
  border:1px solid var(--line);
  border-radius:18px;
  max-width:1180px;
  width:calc(100% - 24px);
  margin:0 auto;
  box-shadow:0 6px 20px rgba(42,36,32,0.10);
}
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:68px; padding:0 clamp(16px,4vw,32px); }
.logo{ font-family:'Fraunces', serif; font-style:italic; font-size:1.5rem; font-weight:500; }
.logo-img{ height:32px; width:auto; display:block; }
footer .logo-img{ height:30px; filter:brightness(0) invert(1); opacity:0.92; }

/* RITUAL CARDS (Head Spa) */
.ritual-grid{ margin-top:clamp(36px,6vw,56px); display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,28px); }
.ritual-card{ background:var(--cream); border:1px solid var(--line); padding:26px; border-radius:var(--radius-soft); }
.ritual-card h3{ font-size:1.2rem; }
.ritual-card .price{ font-family:'Fraunces', serif; font-style:italic; color:var(--clay-deep); font-size:1.1rem; margin-top:6px; display:block; }
.ritual-card ul{ margin:14px 0 0; padding-left:18px; color:var(--ink-soft); font-size:0.92rem; }
.ritual-card li{ margin-bottom:6px; }
.ritual-card .btn-primary{ margin-top:18px; padding:10px 20px; font-size:0.88rem; }
.ritual-card.kids{ grid-column:1 / -1; background:linear-gradient(120deg, var(--cream) 60%, rgba(217,179,166,0.25)); }
@media (max-width:760px){ .ritual-grid{ grid-template-columns:1fr; } }

/* BENEFIT LIST */
.benefit-list{ margin-top:24px; display:grid; grid-template-columns:repeat(2,1fr); gap:10px 24px; color:var(--ink-soft); font-size:0.98rem; list-style:none; padding:0; }
.benefit-list li{ padding-left:20px; position:relative; }
.benefit-list li::before{ content:"·"; position:absolute; left:0; color:var(--clay-deep); font-size:1.3rem; line-height:0.8; }
@media (max-width:600px){ .benefit-list{ grid-template-columns:1fr; } }

/* FAQ ACCORDION */
.faq-list{ margin-top:clamp(32px,5vw,48px); }
.faq-item{ border-top:1px solid var(--line); }
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item summary{ padding:20px 0; cursor:pointer; font-family:'Fraunces', serif; font-size:1.05rem; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; font-size:1.3rem; color:var(--clay-deep); }
.faq-item[open] summary::after{ content:"–"; }
.faq-item p{ margin:0 0 22px; color:var(--ink-soft); max-width:60ch; font-size:0.96rem; }
.nav-links{ display:flex; align-items:center; gap:clamp(18px,3vw,34px); font-size:0.95rem; color:var(--ink-soft); }
.nav-links a:hover{ color:var(--clay-deep); }
.btn-turno{ background:var(--clay); color:var(--cream); padding:10px 20px; border-radius:var(--radius-soft); font-size:0.92rem; white-space:nowrap; transition:background .2s ease; }
.btn-turno:hover{ background:var(--clay-deep); }
@media (max-width:720px){ .nav-links{ display:none; } }

/* BREADCRUMB (silo SEO) */
.breadcrumb{ padding: 20px 0 0; font-size:0.85rem; color:var(--ink-soft); }
.breadcrumb a:hover{ color:var(--clay-deep); }
.breadcrumb .sep{ margin:0 8px; opacity:0.5; }

/* HERO */
.hero{ padding:clamp(40px,8vw,96px) 0 clamp(56px,8vw,96px); overflow:hidden; }
.hero .wrap{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(32px,6vw,72px); align-items:center; }
.hero-copy p.kicker{ font-size:0.98rem; color:var(--clay-deep); font-style:italic; font-family:'Fraunces', serif; margin:0 0 18px; }
.hero-copy h1{ font-size:clamp(2.2rem,5vw,3.6rem); line-height:1.08; max-width:14ch; }
.hero-copy .lede{ margin-top:22px; max-width:46ch; color:var(--ink-soft); font-size:1.08rem; }
.hero-actions{ margin-top:34px; display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.btn-primary{ background:var(--ink); color:var(--cream); padding:15px 28px; border-radius:var(--radius-soft); font-size:0.98rem; display:inline-block; transition:background .2s ease; }
.btn-primary:hover{ background:var(--clay-deep); }
.link-secondary{ font-size:0.95rem; color:var(--ink-soft); border-bottom:1px solid var(--ink-soft); padding-bottom:2px; }
.hero-photo{ position:relative; aspect-ratio:4/5; border-radius:var(--radius-soft); overflow:hidden; background:var(--bg-deep); }
.hero-photo img{ width:100%; height:100%; object-fit:cover; }
.hero-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(43,58,42,0) 55%, rgba(43,58,42,0.55) 100%); }
.hero-photo .tag{ position:absolute; left:20px; bottom:18px; z-index:2; color:var(--cream); font-family:'Fraunces', serif; font-style:italic; font-size:0.95rem; }
@media (max-width:860px){ .hero .wrap{ grid-template-columns:1fr; } .hero-photo{ order:-1; aspect-ratio:5/4; } }

/* PHILOSOPHY */
.philosophy{ padding:clamp(56px,9vw,110px) 0; border-top:1px solid var(--line); }
.philosophy .wrap{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(28px,6vw,64px); }
.philosophy .signature{ font-family:'Fraunces', serif; font-style:italic; font-size:1.6rem; color:var(--clay-deep); }
.philosophy .signature .role{ display:block; font-family:'Work Sans', sans-serif; font-style:normal; font-size:0.85rem; color:var(--ink-soft); margin-top:8px; }
.philosophy h2{ font-size:clamp(1.6rem,3vw,2.2rem); max-width:18ch; margin-bottom:24px; }
.philosophy .body-text{ color:var(--ink-soft); max-width:62ch; font-size:1.04rem; }
.philosophy .body-text + .body-text{ margin-top:16px; }
@media (max-width:780px){ .philosophy .wrap{ grid-template-columns:1fr; } }

/* PROCESS */
.process{ background:var(--bg-deep); color:var(--cream); padding:clamp(56px,9vw,110px) 0; }
.process h2{ color:var(--cream); font-size:clamp(1.6rem,3.4vw,2.3rem); max-width:16ch; margin-bottom:clamp(36px,6vw,56px); }
.process-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,4vw,40px); }
.step{ border-top:1px solid rgba(247,242,233,0.28); padding-top:20px; }
.step .num{ font-family:'Fraunces', serif; font-style:italic; font-size:1.4rem; color:var(--rose); }
.step h3{ color:var(--cream); font-size:1.15rem; margin:14px 0 10px; }
.step p{ color:rgba(247,242,233,0.72); font-size:0.96rem; margin:0; }
@media (max-width:780px){ .process-steps{ grid-template-columns:1fr; } }

/* SERVICES / SILO LISTS */
.services{ padding:clamp(56px,9vw,110px) 0; }
.services > .wrap > h2{ font-size:clamp(1.6rem,3.4vw,2.3rem); max-width:16ch; }
.services .intro{ max-width:56ch; color:var(--ink-soft); margin-top:18px; font-size:1.04rem; }
.service-list{ margin-top:clamp(36px,6vw,56px); display:flex; flex-direction:column; }
.service-row{ display:grid; grid-template-columns:1.1fr 1.4fr; gap:clamp(24px,5vw,56px); padding:clamp(28px,5vw,44px) 0; border-top:1px solid var(--line); align-items:center; }
.service-row:last-child{ border-bottom:1px solid var(--line); }
.service-row .swatch{ aspect-ratio:16/10; border-radius:var(--radius-soft); overflow:hidden; background:var(--bg-deep); }
.service-row .swatch img{ width:100%; height:100%; object-fit:cover; }
.service-row h3{ font-size:1.4rem; margin-bottom:12px; }
.service-row p{ color:var(--ink-soft); max-width:48ch; font-size:1rem; }
.service-row .learn{ display:inline-block; margin-top:16px; font-size:0.92rem; border-bottom:1px solid var(--ink); padding-bottom:2px; }
@media (max-width:760px){ .service-row{ grid-template-columns:1fr; } .service-row .swatch{ order:-1; } }

/* BLOG */
.blog-grid{ margin-top:clamp(36px,6vw,56px); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,32px); }
.blog-card{ border-top:1px solid var(--line); padding-top:18px; }
.blog-card .thumb{ aspect-ratio:4/3; overflow:hidden; border-radius:var(--radius-soft); background:var(--bg-deep); margin-bottom:16px; }
.blog-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.blog-card .cat{ font-size:0.82rem; color:var(--clay-deep); font-style:italic; font-family:'Fraunces', serif; }
.blog-card h3{ font-size:1.1rem; margin:8px 0; }
.blog-card p{ color:var(--ink-soft); font-size:0.94rem; margin:0; }
@media (max-width:820px){ .blog-grid{ grid-template-columns:1fr; } }

/* LOCATIONS */
.locations{ padding:clamp(56px,9vw,110px) 0; border-top:1px solid var(--line); }
.locations h2{ font-size:clamp(1.6rem,3.4vw,2.3rem); max-width:16ch; margin-bottom:clamp(32px,5vw,52px); }
.loc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(24px,4vw,40px); }
.loc-card{ background:var(--cream); border:1px solid var(--line); padding:26px; border-radius:var(--radius-soft); }
.loc-card .name{ font-family:'Fraunces', serif; font-style:italic; font-size:1.1rem; color:var(--clay-deep); }
.loc-card address{ font-style:normal; margin-top:10px; color:var(--ink-soft); font-size:0.96rem; line-height:1.5; }
.loc-card .map-link{ display:inline-block; margin-top:14px; font-size:0.9rem; border-bottom:1px solid var(--ink-soft); }
@media (max-width:640px){ .loc-grid{ grid-template-columns:1fr; } }

/* ARTICLE (blog post / service subpage long-form) */
.article{ padding:clamp(40px,7vw,72px) 0; }
.article .cover{ aspect-ratio:21/9; border-radius:var(--radius-soft); overflow:hidden; margin-bottom:clamp(28px,5vw,40px); background:var(--bg-deep); }
.article .cover img{ width:100%; height:100%; object-fit:cover; }
.article h1{ font-size:clamp(1.9rem,4vw,2.8rem); max-width:20ch; }
.article .meta{ margin-top:14px; font-size:0.88rem; color:var(--ink-soft); }
.article .body-copy{ margin-top:clamp(28px,4vw,40px); max-width:68ch; font-size:1.05rem; color:var(--ink-soft); }
.article .body-copy h2{ color:var(--ink); font-size:1.4rem; margin:34px 0 14px; }
.article .body-copy p + p{ margin-top:16px; }
.article .cta-inline{ margin-top:36px; padding:24px; border:1px solid var(--line); border-radius:var(--radius-soft); background:var(--cream); }
.article .cta-inline a{ color:var(--clay-deep); border-bottom:1px solid var(--clay-deep); }

/* FOOTER */
footer{ background:var(--ink); color:var(--cream); padding:clamp(48px,7vw,72px) 0 clamp(28px,4vw,40px); }
.footer-top{ display:flex; flex-wrap:wrap; gap:28px; justify-content:space-between; align-items:flex-start; padding-bottom:32px; border-bottom:1px solid rgba(247,242,233,0.16); }
footer .logo{ color:var(--cream); }
.footer-links{ display:flex; gap:32px; flex-wrap:wrap; font-size:0.95rem; color:rgba(247,242,233,0.75); }
.footer-links a:hover{ color:var(--rose); }
.footer-bottom{ margin-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.82rem; color:rgba(247,242,233,0.5); }

/* FLOATING MENU (optimized, expandable) */
.fab-wrap{ position:fixed; right:22px; bottom:22px; z-index:60; display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.fab-item{ display:flex; align-items:center; gap:10px; opacity:0; transform:translateY(8px) scale(.9); pointer-events:none; transition:opacity .18s ease, transform .18s ease; }
.fab-wrap.open .fab-item{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.fab-wrap.open .fab-item:nth-child(1){ transition-delay:.02s; }
.fab-wrap.open .fab-item:nth-child(2){ transition-delay:.06s; }
.fab-wrap.open .fab-item:nth-child(3){ transition-delay:.10s; }
.fab-label{ background:var(--ink); color:var(--cream); font-size:0.82rem; padding:6px 12px; border-radius:var(--radius-soft); white-space:nowrap; }
.fab-btn{ width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(42,36,32,.28); flex-shrink:0; }
.fab-btn.wa{ background:#3d5a3f; }
.fab-btn.ig{ background:var(--rose); }
.fab-btn.tu{ background:var(--clay); }
.fab-btn svg{ width:22px; height:22px; }
.fab-main{ width:58px; height:58px; border-radius:18px; background:var(--clay); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(42,36,32,.32); transition:transform .25s ease, background .2s ease; border:none; cursor:pointer; }
.fab-main:hover{ background:var(--clay-deep); }
.fab-wrap.open .fab-main{ transform:rotate(45deg); }
.fab-main svg{ width:24px; height:24px; }

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

/* TURNERO */
.booking-shell{ padding:clamp(40px,7vw,72px) 0; }
.booking-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,48px); align-items:flex-start; }
@media (max-width:820px){ .booking-grid{ grid-template-columns:1fr; } }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:0.88rem; color:var(--ink-soft); margin-bottom:6px; }
.field input, .field select{ width:100%; padding:12px 14px; border:1px solid var(--line); background:var(--cream); border-radius:var(--radius-soft); font-family:inherit; font-size:0.98rem; color:var(--ink); }
.slot-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:8px; }
.slot{ padding:10px 0; text-align:center; border:1px solid var(--line); border-radius:var(--radius-soft); font-size:0.86rem; cursor:pointer; background:var(--cream); }
.slot.taken{ opacity:0.35; text-decoration:line-through; cursor:not-allowed; }
.slot.selected{ background:var(--clay); color:var(--cream); border-color:var(--clay); }
.btn-submit{ margin-top:20px; background:var(--ink); color:var(--cream); padding:14px 26px; border:none; border-radius:var(--radius-soft); font-size:0.98rem; cursor:pointer; font-family:inherit; }
.btn-submit:hover{ background:var(--clay-deep); }
.confirm-box{ margin-top:18px; padding:16px; border:1px solid var(--sage); background:rgba(124,138,110,0.1); border-radius:var(--radius-soft); font-size:0.92rem; display:none; }
.confirm-box.show{ display:block; }
.admin-panel{ border-top:1px solid var(--line); margin-top:56px; padding-top:40px; }
.admin-login{ max-width:340px; }
.admin-table{ width:100%; border-collapse:collapse; margin-top:20px; font-size:0.9rem; }
.admin-table th, .admin-table td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
.admin-table th{ color:var(--ink-soft); font-weight:500; }
.badge{ padding:3px 10px; border-radius:20px; font-size:0.78rem; }
.badge.pendiente{ background:rgba(168,90,66,0.15); color:var(--clay-deep); }
.badge.confirmado{ background:rgba(124,138,110,0.2); color:#4a5a3f; }
.badge.cancelado{ background:rgba(42,36,32,0.1); color:var(--ink-soft); text-decoration:line-through; }
.row-actions button{ border:none; background:none; font-size:0.82rem; color:var(--clay-deep); cursor:pointer; margin-right:10px; text-decoration:underline; }
.error-msg{ color:var(--clay-deep); font-size:0.86rem; margin-top:8px; }
