/* =====================================================================
   MAYANI Home Studio — spa/wellness elegante, mobile-first
   ===================================================================== */

:root{
  --cream:#f6efe2;
  --cream-2:#efe4d0;
  --paper:#fffdf8;
  --ink:#2b3327;
  --ink-soft:#4a5142;
  --ink-faint:#7a8070;
  --gold:#b08a52;
  --gold-light:#d8bd93;
  --sage:#93a084;
  --white:#ffffff;

  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:28px;
  --radius-pill:999px;

  --shadow-soft:0 10px 30px -12px rgba(43,51,39,.18);
  --shadow-lift:0 18px 40px -16px rgba(43,51,39,.26);

  --container:1080px;
  --font-serif:'Playfair Display', Georgia, serif;
  --font-sans:'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
#menu, #beneficios, #faq, #citas, #contacto{ scroll-margin-top:76px; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-serif); margin:0; color:var(--ink); }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }

.wrap{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:1.25rem;
}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5rem;
  font-weight:600; font-size:.95rem;
  padding:.95rem 1.8rem;
  border-radius:var(--radius-pill);
  min-height:48px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--gold);
  color:var(--paper);
  box-shadow:var(--shadow-soft);
}
.btn-primary:hover{ background:#9a7643; transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.btn-outline{
  background:transparent;
  color:var(--paper);
  border:1.5px solid rgba(255,253,248,.75);
}
.btn-outline:hover{ background:rgba(255,253,248,.12); transform:translateY(-2px); }
.btn-outline-light{
  background:transparent;
  color:var(--paper);
  border:1.5px solid rgba(255,253,248,.5);
}
.btn-outline-light:hover{ background:rgba(255,253,248,.1); transform:translateY(-2px); }

/* ---------- Barra superior ---------- */
.topbar{
  position:sticky; top:0; z-index:200;
  background:rgba(246,239,226,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(43,51,39,.08);
}
.topbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:.85rem;
}
.logo{ display:flex; align-items:center; gap:.5rem; }
.logo-mark{ width:26px; height:26px; color:var(--gold); flex-shrink:0; }
.logo-text{
  font-family:var(--font-serif); font-weight:600; letter-spacing:.08em;
  font-size:1.15rem; color:var(--ink);
}
.cart-trigger{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px;
  border-radius:50%;
  color:var(--ink);
  transition:background .15s ease;
}
.cart-trigger:hover{ background:var(--cream-2); }
.cart-trigger svg{ width:22px; height:22px; }
.cart-count{
  position:absolute; top:2px; right:2px;
  min-width:18px; height:18px; padding:0 4px;
  border-radius:50%;
  background:var(--gold);
  color:var(--paper);
  font-size:.68rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.cart-count[data-empty="true"]{ display:none; }

.nav-links{ display:none; align-items:center; gap:1.6rem; }
.nav-links a{
  font-size:.92rem; font-weight:500; color:var(--ink-soft);
  transition:color .15s ease;
}
.nav-links a:hover{ color:var(--gold); }

.topbar-actions{ display:flex; align-items:center; gap:.4rem; }

.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px;
  border-radius:50%;
  color:var(--ink);
  transition:background .15s ease;
}
.nav-toggle:hover{ background:var(--cream-2); }
.nav-toggle svg{ width:22px; height:22px; }

.nav-mobile-panel{
  display:none;
  flex-direction:column;
  background:var(--paper);
  border-top:1px solid rgba(43,51,39,.1);
  padding:.4rem 1.25rem 1rem;
}
.nav-mobile-panel.is-open{ display:flex; }
.nav-mobile-panel a{
  padding:.85rem 0;
  font-size:1rem; font-weight:500; color:var(--ink);
  border-bottom:1px solid rgba(43,51,39,.08);
}
.nav-mobile-panel a:last-child{ border-bottom:none; }

@media (min-width:960px){
  .nav-links{ display:flex; }
  .nav-toggle{ display:none; }
  .nav-mobile-panel{ display:none !important; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex; align-items:flex-end;
  overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(20,24,17,.35) 0%, rgba(20,24,17,.55) 55%, rgba(20,24,17,.82) 100%);
}
.hero-smoke{
  position:absolute;
  top:6%; right:10%;
  width:110px; height:230px;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}
.wisp{
  position:absolute;
  bottom:0;
  width:24px; height:64px;
  border-radius:50%;
  background:radial-gradient(closest-side, rgba(255,253,248,.5), rgba(255,253,248,0) 72%);
  filter:blur(5px);
  opacity:0;
  animation:wisp-rise 7s ease-in-out infinite;
}
.wisp-1{ left:8px; animation-delay:0s; }
.wisp-2{ left:44px; width:18px; height:50px; animation-delay:2.3s; }
.wisp-3{ left:76px; width:20px; height:56px; animation-delay:4.6s; }
@keyframes wisp-rise{
  0%{ transform:translateY(0) scale(.9) skewX(0deg); opacity:0; }
  18%{ opacity:.45; }
  55%{ transform:translateY(-85px) scale(1.15) skewX(3deg); opacity:.25; }
  100%{ transform:translateY(-180px) scale(1.5) skewX(-2deg); opacity:0; }
}
.hero-content{
  position:relative; z-index:2;
  padding-block:3rem 3.5rem;
  color:var(--paper);
}
.kicker{
  font-size:.78rem; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-light);
  margin-bottom:.9rem;
}
.hero-title{
  font-size:clamp(3rem, 14vw, 5.5rem);
  font-weight:600; letter-spacing:.08em;
  line-height:1;
  margin-bottom:.7rem;
  color:var(--paper);
}
.hero-tagline{
  font-style:italic;
  font-size:clamp(1.05rem, 4vw, 1.3rem);
  color:rgba(255,253,248,.92);
  max-width:32ch;
  margin-bottom:1.8rem;
}
.hero-actions{ display:flex; flex-direction:column; gap:.8rem; }

/* ---------- Secciones genéricas ---------- */
.eyebrow{
  font-size:.78rem; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:.6rem;
  text-align:center;
}
.eyebrow-light{ color:var(--gold-light); }
.section-title{
  font-size:clamp(1.7rem, 6vw, 2.5rem);
  font-weight:600;
  margin-bottom:.7rem;
  text-align:center;
}
.section-title em{ color:var(--gold); font-style:italic; }
.section-title-light{ color:var(--paper); }
.section-title-light em{ color:var(--gold-light); }
.section-dek{
  text-align:center; color:var(--ink-soft);
  max-width:52ch; margin:0 auto 2.2rem;
}

/* ---------- Menú de servicios ---------- */
.menu-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.menu-tabs{
  display:flex; gap:.6rem; overflow-x:auto;
  padding-bottom:.3rem; margin-bottom:2rem;
  scrollbar-width:none;
}
.menu-tabs::-webkit-scrollbar{ display:none; }
.tab{
  flex:0 0 auto;
  padding:.65rem 1.2rem;
  border-radius:var(--radius-pill);
  background:var(--paper);
  border:1px solid rgba(43,51,39,.12);
  color:var(--ink-soft);
  font-weight:500; font-size:.88rem;
  min-height:44px;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.tab.is-active{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}
.tab:not(.is-active):hover{ border-color:var(--gold); color:var(--ink); }

.service-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1.4rem;
}
.service-card{
  background:var(--paper);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.service-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.service-photo{ aspect-ratio:4/3; overflow:hidden; }
.service-photo img{ width:100%; height:100%; object-fit:cover; }
.service-body{ padding:1.3rem 1.3rem 1.5rem; display:flex; flex-direction:column; gap:.5rem; flex-grow:1; }
.service-tag{
  align-self:flex-start;
  font-size:.7rem; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--gold);
  background:rgba(176,138,82,.12);
  padding:.25rem .6rem;
  border-radius:var(--radius-pill);
}
.service-name{ font-size:1.2rem; font-weight:600; }
.service-sub{ font-style:italic; color:var(--gold); font-size:.9rem; margin-top:-.3rem; }
.service-desc{ color:var(--ink-soft); font-size:.9rem; flex-grow:1; }
.service-includes{ margin-top:.2rem; }
.service-includes li{
  font-size:.82rem; color:var(--ink-faint);
  padding-left:1.1rem; position:relative; margin-bottom:.3rem;
}
.service-includes li::before{
  content:"✓"; position:absolute; left:0; color:var(--sage); font-weight:700;
}
.service-meta{
  display:flex; align-items:center; gap:.7rem;
  margin-top:.4rem;
}
.service-duration{
  font-size:.8rem; color:var(--ink-faint);
  display:flex; align-items:center; gap:.3rem;
}
.service-price{
  font-family:var(--font-serif); font-weight:600; font-size:1.15rem;
  color:var(--ink); margin-left:auto;
}
.service-action{ margin-top:.6rem; }
.btn-add{
  width:100%;
  display:flex; align-items:center; justify-content:center;
  min-height:46px;
  border-radius:var(--radius-pill);
  background:var(--ink);
  color:var(--paper);
  font-weight:600; font-size:.9rem;
  transition:background .15s ease;
}
.btn-add:hover{ background:#1c2119; }
.qty-stepper{
  display:flex; align-items:center; justify-content:space-between;
  background:var(--cream-2);
  border-radius:var(--radius-pill);
  padding:.3rem;
}
.qty-stepper button{
  width:38px; height:38px;
  border-radius:50%;
  background:var(--paper);
  color:var(--ink);
  font-size:1.1rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 6px rgba(43,51,39,.1);
}
.qty-stepper span{ font-weight:700; font-size:1rem; min-width:2ch; text-align:center; }

/* ---------- Beneficios ---------- */
.benefits-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.benefits-grid{
  display:grid; grid-template-columns:1fr; gap:1.2rem;
  margin-top:1rem;
}
.benefit-card{
  background:var(--paper);
  border-radius:var(--radius-md);
  padding:1.6rem 1.4rem;
  box-shadow:var(--shadow-soft);
  text-align:center;
  transition:transform .2s ease, box-shadow .2s ease;
}
.benefit-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.benefit-icon{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px;
  margin:0 auto .9rem;
  border-radius:50%;
  background:rgba(176,138,82,.12);
  color:var(--gold);
}
.benefit-icon svg{ width:24px; height:24px; }
.benefit-card h3{ font-size:1.05rem; font-weight:600; margin-bottom:.4rem; }
.benefit-card p{ color:var(--ink-soft); font-size:.88rem; }

/* ---------- Nuestra esencia ---------- */
.essence-section{ background:var(--cream-2); padding-block:clamp(3rem, 8vw, 4.5rem); }
.essence-grid{ display:flex; flex-direction:column; gap:2rem; }
.essence-photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); }
.essence-photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.essence-copy .eyebrow, .essence-copy .section-title{ text-align:left; }
.essence-text{ color:var(--ink-soft); margin-top:1rem; }
.essence-signature{
  font-family:var(--font-serif); font-style:italic; font-size:1.2rem;
  color:var(--gold); margin-top:1.3rem;
}

/* ---------- Cita destacada ---------- */
.quote-section{
  background:var(--ink);
  padding-block:clamp(3rem, 9vw, 5rem);
  text-align:center;
}
.quote-mark{ width:30px; height:30px; color:var(--gold); margin:0 auto 1.2rem; }
.quote-text{
  font-family:var(--font-serif); font-style:italic;
  font-size:clamp(1.3rem, 5vw, 1.9rem);
  color:var(--paper);
  max-width:32ch; margin-inline:auto;
  line-height:1.45;
}

/* ---------- Preguntas frecuentes ---------- */
.faq-section{ padding-block:clamp(3rem, 8vw, 4.5rem); }
.faq-list{ max-width:760px; margin-inline:auto; margin-top:1rem; }
.faq-item{
  background:var(--paper);
  border-radius:var(--radius-md);
  margin-bottom:.9rem;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.faq-question{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding:1.1rem 1.3rem;
  text-align:left;
  min-height:44px;
}
.faq-question h3{
  font-family:var(--font-sans); font-size:1rem; font-weight:600;
  color:var(--ink);
}
.faq-icon{
  flex-shrink:0;
  width:28px; height:28px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(176,138,82,.14);
  color:var(--gold);
  font-size:1.1rem; font-weight:600;
  transition:transform .25s ease;
}
.faq-item.is-open .faq-icon{ transform:rotate(45deg); }
.faq-answer{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .3s ease;
}
.faq-answer p{
  overflow:hidden;
  color:var(--ink-soft);
  font-size:.92rem;
  padding-inline:1.3rem;
}
.faq-item.is-open .faq-answer{ grid-template-rows:1fr; }
.faq-item.is-open .faq-answer p{ padding-bottom:1.2rem; }

/* ---------- Formulario de citas ---------- */
.appointment-section{ background:var(--cream-2); padding-block:clamp(3rem, 8vw, 4.5rem); }
.appointment-form{
  max-width:640px; margin:1.5rem auto 0;
  background:var(--paper);
  border-radius:var(--radius-lg);
  padding:1.8rem 1.5rem;
  box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column; gap:1.2rem;
}
.form-field{ display:flex; flex-direction:column; gap:.5rem; }
.form-field label, .form-field-label{ font-size:.88rem; font-weight:600; color:var(--ink); }
.form-field input, .form-field textarea{
  width:100%;
  border:1px solid rgba(43,51,39,.15);
  border-radius:var(--radius-sm);
  padding:.8rem .9rem;
  font-family:inherit; font-size:.95rem; color:var(--ink);
  background:var(--cream);
  min-height:48px;
}
.form-field textarea{ min-height:auto; resize:vertical; }
.form-field input:focus, .form-field textarea:focus{ outline:2px solid var(--gold-light); outline-offset:1px; }
.form-row{ display:grid; grid-template-columns:1fr; gap:1.2rem; }
.form-services{
  display:grid; grid-template-columns:1fr; gap:.6rem;
}
.form-service-option{
  display:flex; align-items:center; gap:.7rem;
  padding:.7rem .9rem;
  border:1px solid rgba(43,51,39,.12);
  border-radius:var(--radius-sm);
  background:var(--cream);
  min-height:44px;
  cursor:pointer;
}
.form-service-option input{ width:18px; height:18px; accent-color:var(--gold); flex-shrink:0; }
.form-service-option span{ font-size:.88rem; color:var(--ink); }
.appointment-submit{ width:100%; margin-top:.3rem; }

/* ---------- Contacto ---------- */
.contact-section{
  background:var(--ink);
  padding-block:clamp(2.5rem, 7vw, 4rem);
  text-align:center;
}
.contact-text{ color:rgba(255,253,248,.75); max-width:44ch; margin:0 auto 1.8rem; }
.contact-actions{ display:flex; flex-direction:column; gap:.8rem; align-items:center; justify-content:center; }

.map-frame{
  max-width:760px; margin:2rem auto 0;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  aspect-ratio:16/10;
}
.map-frame iframe{ width:100%; height:100%; border:0; display:block; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--cream); padding-block:2.6rem 7rem; text-align:center; }
.footer-inner{ display:flex; flex-direction:column; align-items:center; gap:.6rem; }
.footer-logo{ display:flex; align-items:center; gap:.5rem; }
.footer-logo svg{ width:22px; height:22px; color:var(--gold); }
.footer-logo span{ font-family:var(--font-serif); font-weight:600; letter-spacing:.08em; }
.footer-tagline{ font-style:italic; color:var(--gold); font-size:.95rem; }
.footer-location{ font-size:.82rem; color:var(--ink-soft); margin-top:.4rem; }
.footer-copy{ font-size:.8rem; color:var(--ink-faint); margin-top:.6rem; }
.footer-credit{ font-size:.75rem; color:var(--ink-faint); margin-top:.2rem; }

/* ---------- WhatsApp flotante ---------- */
.whatsapp-float{
  position:fixed; left:1rem; bottom:1rem; z-index:150;
  width:56px; height:56px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-lift);
  transition:transform .15s ease;
}
.whatsapp-float:hover{ transform:translateY(-2px) scale(1.04); }
.whatsapp-float svg{ width:30px; height:30px; }

/* ---------- Carrito flotante ---------- */
.cart-float{
  position:fixed; right:1rem; bottom:1rem; z-index:150;
  display:none; align-items:center; gap:.6rem;
  background:var(--ink);
  color:var(--paper);
  padding:.85rem 1.3rem;
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-lift);
  min-height:56px;
  transition:transform .15s ease;
}
.cart-float.is-visible{ display:flex; }
.cart-float:hover{ transform:translateY(-2px); }
.cart-float svg{ width:20px; height:20px; flex-shrink:0; }
.cart-float-text{ font-size:.85rem; font-weight:600; white-space:nowrap; }
.cart-float-text strong{ color:var(--gold-light); }

/* ---------- Carrito (drawer) ---------- */
.cart-drawer-overlay{
  position:fixed; inset:0; z-index:250;
  background:rgba(20,24,17,.45);
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, visibility .25s ease;
}
.cart-drawer-overlay.is-open{ opacity:1; visibility:visible; }
.cart-drawer{
  position:fixed; top:0; right:0; bottom:0; z-index:260;
  width:100%; max-width:420px;
  background:var(--paper);
  box-shadow:-10px 0 40px rgba(20,24,17,.2);
  padding:1.5rem 1.3rem 1.3rem;
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .3s ease;
  overflow-y:auto;
}
.cart-drawer.is-open{ transform:translateX(0); }
.cart-drawer-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:1rem;
}
.cart-drawer-header h3{ font-size:1.3rem; }
.cart-close{
  width:36px; height:36px; border-radius:50%;
  background:var(--cream-2); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
}
.cart-items{ display:flex; flex-direction:column; gap:.9rem; margin-bottom:.5rem; }
.cart-empty{ color:var(--ink-faint); font-size:.9rem; padding:1.5rem 0; text-align:center; display:none; }
.cart-empty.is-visible{ display:block; }
.cart-item{
  display:flex; gap:.8rem; align-items:flex-start;
  padding-bottom:.9rem;
  border-bottom:1px solid rgba(43,51,39,.1);
}
.cart-item-info{ flex-grow:1; }
.cart-item-name{ font-weight:600; font-size:.95rem; }
.cart-item-price{ color:var(--ink-faint); font-size:.82rem; margin-top:.15rem; }
.cart-item-controls{ display:flex; align-items:center; gap:.5rem; margin-top:.5rem; }
.cart-item-controls button{
  width:28px; height:28px; border-radius:50%;
  background:var(--cream-2); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-weight:700;
}
.cart-item-controls span{ min-width:1.5ch; text-align:center; font-weight:600; }
.cart-item-remove{
  margin-left:auto;
  color:var(--ink-faint);
  font-size:.78rem;
  text-decoration:underline;
}
.cart-item-remove:hover{ color:#a33; }

.cart-note-field{ margin-block:1.2rem .6rem; }
.cart-note-field label{ display:block; font-size:.82rem; color:var(--ink-soft); margin-bottom:.4rem; font-weight:600; }
.cart-note-field textarea{
  width:100%;
  border:1px solid rgba(43,51,39,.15);
  border-radius:var(--radius-sm);
  padding:.7rem .8rem;
  font-family:inherit; font-size:.88rem; color:var(--ink);
  background:var(--cream);
  resize:vertical;
}
.cart-total-row{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:.8rem;
  border-top:1px solid rgba(43,51,39,.12);
  font-size:1rem; font-weight:600;
  margin-bottom:.9rem;
}
.cart-total-row strong{ font-family:var(--font-serif); color:var(--gold); font-size:1.2rem; }
.cart-checkout{ width:100%; }

/* =====================================================================
   Tablet — 640px+
   ===================================================================== */
@media (min-width:640px){
  .hero-actions{ flex-direction:row; }
  .contact-actions{ flex-direction:row; }
  .service-grid{ grid-template-columns:repeat(2, 1fr); }
  .benefits-grid{ grid-template-columns:repeat(2, 1fr); }
  .form-row{ grid-template-columns:repeat(2, 1fr); }
  .form-services{ grid-template-columns:repeat(2, 1fr); }
}

/* =====================================================================
   Desktop — 1024px+
   ===================================================================== */
@media (min-width:1024px){
  .service-grid{ grid-template-columns:repeat(3, 1fr); }
  .essence-grid{ flex-direction:row; align-items:center; gap:3.5rem; }
  .essence-photo{ flex:1; }
  .essence-copy{ flex:1; }
  .benefits-grid{ grid-template-columns:repeat(3, 1fr); }
  .form-services{ grid-template-columns:repeat(3, 1fr); }
}

@media (min-width:1280px){
  .hero-title{ font-size:6rem; }
}

/* Respeta usuarios que piden menos movimiento */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .btn, .service-card, .cart-drawer, .cart-drawer-overlay, .cart-float, .whatsapp-float{ transition:none; }
  .wisp{ animation:none; opacity:0; }
}
