/* NUVE Med Spa · nuvelasermedspa.com
   Sigue el Manual de marca v1.0 (2026):
   - Salvia #BCD5BA (fondo preferido), Salvia claro #DCEADA, Marfil #F7F4EE.
   - Todo el texto en tinta #1A1A1A. Champagne (#ECDBC4 / #B09376 / #7E634A) solo en detalles:
     líneas que se desvanecen, íconos de línea fina en círculo, destello de cuatro puntas.
   - Eucalipto y cintas solo en esquinas, nunca sobre el texto (fondo textura.webp del manual).
   - Cormorant Garamond en títulos, Montserrat en textos y precios.
   La marca es clara (marfil y salvia), por eso la página no tiene modo oscuro. */
:root {
  --ink: #1A1A1A;
  --ink-2: #4A4743;
  --ivory: #F7F4EE;
  --paper: #FCFAF6;
  --sage: #BCD5BA;
  --sage-l: #DCEADA;
  --champ-l: #ECDBC4;
  --champ: #B09376;
  --champ-d: #7E634A;
  --line: rgba(126, 99, 74, .28);
  --metal: linear-gradient(90deg, #ECDBC4, #B09376 50%, #7E634A);
  --r: 22px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-io: cubic-bezier(0.77, 0, 0.175, 1);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Montserrat', system-ui, sans-serif;
  color-scheme: light;
  accent-color: var(--champ-d);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; -webkit-text-size-adjust: 100%; scrollbar-color: var(--champ) var(--ivory); }
body { background: var(--ivory); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: clip; }
::selection { background: var(--champ-l); color: var(--ink); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: 4px; }
.wrap { width: min(1240px, 100% - 48px); margin-inline: auto; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: var(--ivory); padding: 8px 14px; border-radius: 99px; z-index: 100; }
.skip:focus { left: 12px; }
:focus-visible { outline: 1.5px solid var(--champ-d); outline-offset: 3px; border-radius: 6px; }

/* ---------- íconos en círculo (manual: línea fina champagne dentro de un círculo) ---------- */
.ic { flex: none; width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: 50%; border: 1px solid var(--champ); color: var(--champ-d); font-size: 21px; }

/* ---------- botones ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap;
  padding: 16px 30px; border-radius: 999px; font: 500 14px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
  background: var(--ink); color: var(--ivory); border: 1px solid var(--ink);
  transition: transform 160ms var(--ease-out), background-color 220ms ease, color 220ms ease; }
.btn i { font-size: 19px; }
.btn:active { transform: scale(.97); }
.btn-sm { padding: 12px 22px; font-size: 12px; }
.btn-lg { padding: 20px 40px; font-size: 15px; }
.btn-ghost { background: transparent; color: var(--ink); border-color: rgba(26, 26, 26, .35); }
@media (hover: hover) and (pointer: fine) {
  .btn:hover { background: #2B2925; }
  .btn-ghost:hover { background: rgba(255, 255, 255, .45); border-color: var(--ink); }
}

/* ---------- navegación ---------- */
.nav { position: fixed; inset: 0 0 auto; z-index: 50; transition: background-color 300ms ease, box-shadow 300ms ease; }
.nav.scrolled { background: rgba(247, 244, 238, .9); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); box-shadow: 0 1px 0 var(--line); }
.nav-in { height: 76px; display: flex; align-items: center; gap: 32px; }
.brand img { width: 104px; height: auto; }
.links { display: flex; gap: 30px; margin-left: auto; }
.links a { position: relative; font-size: 13px; font-weight: 500; letter-spacing: .06em; text-decoration: none; padding: 6px 0; }
.links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--metal); transform: scaleX(0); transform-origin: left; transition: transform 260ms var(--ease-out); }
.links a:hover::after { transform: scaleX(1); }
.nav-act { display: flex; align-items: center; gap: 14px; }
.social { display: flex; align-items: center; }
.social.mini { gap: 2px; }
.social.mini a { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 99px; font-size: 20px; text-decoration: none; transition: background-color 200ms ease; }
.social.mini a:hover { background: rgba(255, 255, 255, .5); }
.lang { display: inline-flex; padding: 3px; border: 1px solid rgba(26, 26, 26, .3); border-radius: 99px; }
.lang button { font: 600 11px/1 var(--sans); letter-spacing: .12em; color: var(--ink-2); background: none; border: 0; border-radius: 99px; padding: 7px 10px; cursor: pointer; transition: background-color 220ms ease, color 220ms ease, transform 160ms var(--ease-out); }
.lang button[aria-pressed="true"] { background: var(--ink); color: var(--ivory); }
.lang button:active { transform: scale(.94); }

/* ---------- títulos y divisor ---------- */
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.04; letter-spacing: -.01em; text-wrap: balance; }
h1 em, h2 em { font-style: italic; }
.sec-h { font-size: clamp(38px, 5vw, 64px); }
.sec-p { color: var(--ink-2); max-width: 52ch; margin-top: 18px; }
.divider { display: flex; align-items: center; gap: 14px; width: 220px; margin-top: 22px; }
.divider span { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--champ)); }
.divider span:last-child { background: linear-gradient(90deg, var(--champ), transparent); }
.divider svg { width: 16px; height: 16px; }

/* ---------- hero ---------- */
.hero { position: relative; min-height: min(100dvh, 980px); display: grid; align-items: center; padding: 120px 0 220px; text-align: center; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background: var(--sage) url(/img/textura.webp) center / cover no-repeat; }
.hero-bg::after { content: ""; position: absolute; inset: auto 0 0; height: 30%; background: linear-gradient(transparent, var(--ivory)); }
.hero-in { position: relative; display: grid; justify-items: center; }
.hero h1 { font-size: clamp(54px, 8.2vw, 104px); font-weight: 500; }
.hero h1 .ln { display: block; overflow: hidden; padding-bottom: .08em; }
.hero h1 .ln > * { display: inline-block; }
.lead { font-size: 18px; font-weight: 400; color: var(--ink); max-width: 46ch; margin-top: 26px; }
.hero-cta { display: flex; gap: 12px; margin-top: 38px; flex-wrap: wrap; justify-content: center; }

/* coreografía de entrada: líneas que suben desde su máscara, luego texto y botones */
.js .hero h1 .ln > * { transform: translateY(105%); animation: rise 1100ms var(--ease-out) forwards; }
.js .hero h1 .ln:nth-child(2) > * { animation-delay: 140ms; }
.js .hero .lead, .js .hero .hero-cta { opacity: 0; transform: translateY(12px); animation: fadeup 900ms var(--ease-out) forwards; }
.js .hero .lead { animation-delay: 420ms; }
.js .hero .hero-cta { animation-delay: 540ms; }
.js .hero-bg { transform: scale(1.06); animation: settle 2200ms var(--ease-out) forwards; }
@keyframes rise { to { transform: none; } }
@keyframes fadeup { to { opacity: 1; transform: none; } }
@keyframes settle { to { transform: none; } }

/* ---------- tríptico en arcos ---------- */
.arcos { position: relative; margin-top: -190px; padding-bottom: 72px; }
.arcos-in { display: grid; grid-template-columns: 1fr 1.18fr 1fr; gap: clamp(14px, 2vw, 28px); align-items: end; }
.arco { overflow: hidden; aspect-ratio: 4 / 5; border-radius: 50% 50% var(--r) var(--r) / 38% 38% var(--r) var(--r); box-shadow: 0 30px 60px -34px rgba(70, 60, 40, .45); }
.arco img { width: 100%; height: 100%; object-fit: cover; }
.a2 { transform: translateY(-48px); }
.js .arco { clip-path: inset(100% 0 0 0 round 0); animation: curtain 1300ms var(--ease-io) forwards; }
.js .a1 { animation-delay: 360ms; } .js .a2 { animation-delay: 220ms; } .js .a3 { animation-delay: 500ms; }
.js .arco img { transform: scale(1.12); animation: settle 1800ms var(--ease-out) forwards; animation-delay: inherit; }
@keyframes curtain { to { clip-path: inset(0 0 0 0 round 0); } }
.proof { display: flex; justify-content: center; gap: clamp(20px, 5vw, 72px); flex-wrap: wrap; margin-top: 44px; }
.proof p { display: flex; align-items: center; gap: 14px; font-size: 14px; font-weight: 500; }
.proof .ic { width: 40px; height: 40px; font-size: 18px; }
.proof .ph-star { color: var(--champ); }

/* ---------- oferta ---------- */
.oferta { position: relative; background: var(--sage-l); overflow: hidden; }
.oferta::before, .oferta::after { content: ""; position: absolute; left: 0; right: 0; height: 2px; background: var(--metal); opacity: .8; }
.oferta::before { top: 0; } .oferta::after { bottom: 0; }
.oferta-in { display: grid; grid-template-columns: 1.15fr 1fr; gap: 64px; align-items: center; padding-block: 88px; }
.of-tag { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.of-main h2 { font-size: clamp(34px, 4vw, 52px); font-style: italic; margin-top: 12px; }
.of-big { display: flex; align-items: flex-start; font-family: var(--serif); font-weight: 600; font-size: clamp(150px, 19vw, 260px); line-height: .82; letter-spacing: -.03em; font-variant-numeric: lining-nums; margin-top: 18px; }
.of-big .cur { font-size: .38em; margin: .12em .06em 0 0; }
.of-was { font-family: var(--sans); font-size: 16px; font-weight: 500; letter-spacing: 0; line-height: 1.3; margin: auto 0 .6em 22px; display: grid; }
.of-was s { font-size: 26px; text-decoration-thickness: 2px; text-decoration-color: var(--champ-d); }
.of-row { display: grid; grid-template-columns: 1fr auto 7.5em; align-items: baseline; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); font-weight: 500; }
.of-row:first-child { border-top: 1px solid var(--line); }
.of-p { font-family: var(--serif); font-size: 40px; font-weight: 600; line-height: 1; font-variant-numeric: lining-nums; }
.of-row s { font-size: 15px; color: var(--ink-2); }
.of-gift { font-size: 13px; font-weight: 600; }
.of-fine { font-size: 13px; color: var(--ink-2); margin: 18px 0 26px; }

/* ---------- precios (carta) ---------- */
.precios { padding: 128px 0 112px; }
.precios-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.pr-head { position: sticky; top: 112px; }
.precios-in > *, .trat-in > *, .cita-in > *, .team > *, .person > *, .ubic-grid > *, .oferta-in > * { min-width: 0; }
.tabs { display: grid; gap: 4px; margin-top: 36px; justify-items: start; }
.tabs button { font: 400 24px/1.2 var(--serif); padding: 6px 0 6px 26px; border: 0; background: none; color: var(--ink-2); cursor: pointer; position: relative; transition: color 220ms ease; }
.tabs button::before { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 14px; margin-top: -7px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23B09376' d='M12 0C12.9 7.6 16.4 11.1 24 12 16.4 12.9 12.9 16.4 12 24 11.1 16.4 7.6 12.9 0 12 7.6 11.1 11.1 7.6 12 0Z'/%3E%3C/svg%3E") center / contain no-repeat; opacity: 0; transform: scale(.5) rotate(-45deg); transition: opacity 220ms ease, transform 320ms var(--ease-out); }
.tabs button[aria-selected="true"] { color: var(--ink); font-style: italic; }
.tabs button[aria-selected="true"]::before { opacity: 1; transform: none; }
.tabs button:hover { color: var(--ink); }
.carta { background: var(--paper); border-radius: var(--r); padding: 40px 44px 28px; box-shadow: 0 30px 70px -50px rgba(90, 70, 40, .5); position: relative; }
.carta::before { content: ""; position: absolute; left: 44px; right: 44px; top: 0; height: 2px; background: var(--metal); border-radius: 2px; }
.carta-cols, .pi { display: grid; grid-template-columns: 1fr 76px 96px; gap: 12px; align-items: baseline; }
.carta-cols { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); text-align: right; padding-bottom: 8px; }
.pi { padding: 15px 0; animation: pin 420ms var(--ease-out) both; animation-delay: calc(var(--i) * 40ms); }
.pi-n { display: flex; align-items: baseline; gap: 12px; font-weight: 500; font-size: 15px; }
.pi-n::after { content: ""; flex: 1; min-width: 20px; border-bottom: 1px dotted var(--champ); transform: translateY(-4px); }
.pi-n small { font-size: 12px; font-weight: 400; color: var(--ink-2); white-space: nowrap; }
.pi-p, .pi-6 { text-align: right; font-variant-numeric: lining-nums tabular-nums; }
.pi-p { font-family: var(--serif); font-size: 28px; font-weight: 600; line-height: 1; }
.pi-6 { font-size: 15px; font-weight: 600; }
.pi-inc { grid-column: 1 / -1; font-size: 14px; color: var(--ink-2); margin-top: -2px; max-width: 54ch; }
.pi.pk { padding: 22px 0; border-bottom: 1px solid var(--line); }
.pi.pk:last-child { border-bottom: 0; }
.pi.pk .pi-n { font-family: var(--serif); font-size: 30px; font-weight: 600; }
@keyframes pin { from { opacity: 0; transform: translateY(8px); } }

/* ---------- tratamientos ---------- */
.trat { padding: 40px 0 128px; }
.trat-in { display: grid; grid-template-columns: 1fr 1.15fr; gap: 88px; align-items: start; }
.trat-img { position: sticky; top: 108px; overflow: hidden; aspect-ratio: 4 / 5; border-radius: 50% 50% var(--r) var(--r) / 34% 34% var(--r) var(--r); }
.trat-img img { width: 100%; height: 100%; object-fit: cover; }
.trat-list ul { list-style: none; margin-top: 40px; }
.tx { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 4px 22px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.tx-n { font-family: var(--serif); font-size: clamp(28px, 2.8vw, 36px); font-weight: 500; line-height: 1.1; transition: transform 300ms var(--ease-out); }
.tx-p { font-size: 15px; font-weight: 500; text-align: right; white-space: nowrap; }
.tx-s { grid-column: 2 / -1; font-size: 13px; color: var(--ink-2); }
.tx-feat .tx-n { font-size: clamp(40px, 4vw, 54px); font-style: italic; }
.tx-feat .tx-p { font-family: var(--serif); font-size: 30px; font-weight: 600; }
@media (hover: hover) and (pointer: fine) { .tx:hover .tx-n { transform: translateX(6px); } }

/* ---------- tu cita ---------- */
.cita { padding: 128px 0; background: var(--paper); }
.cita-in { display: grid; grid-template-columns: .85fr 1.15fr; gap: 88px; align-items: start; }
.cita-side { position: sticky; top: 108px; }
.cita-img { margin-top: 40px; overflow: hidden; aspect-ratio: 3 / 4; max-width: 360px; border-radius: var(--r); }
.cita-img img { width: 100%; height: 100%; object-fit: cover; }
.faq details { border-bottom: 1px solid var(--line); }
.faq details:first-child { border-top: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 28px 0; font-family: var(--serif); font-size: clamp(24px, 2.4vw, 30px); font-weight: 500; line-height: 1.2; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--champ);
  background: linear-gradient(var(--champ-d), var(--champ-d)) center / 12px 1px no-repeat, linear-gradient(var(--champ-d), var(--champ-d)) center / 1px 12px no-repeat;
  transition: transform 300ms var(--ease-out); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .ans { padding: 0 60px 30px 0; color: var(--ink-2); max-width: 62ch; }
.faq details[open] .ans { animation: pin 340ms var(--ease-out); }
.faq-more { margin-top: 32px; font-size: 15px; color: var(--ink-2); }
.faq-more a { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--champ); }

/* ---------- equipo ---------- */
.equipo { background: var(--sage); padding: 112px 0; position: relative; }
.team { display: grid; grid-template-columns: 1.55fr 1fr; gap: 28px; margin-top: 48px; align-items: stretch; }
.person { background: rgba(247, 244, 238, .55); border-radius: 28px; padding: 22px; display: grid; gap: 28px; }
.p-main { grid-template-columns: .95fr 1fr; align-items: center; }
.p-second { grid-template-rows: auto 1fr; }
.eq-img { overflow: hidden; aspect-ratio: 4 / 5; border-radius: 50% 50% var(--r) var(--r) / 34% 34% var(--r) var(--r); }
.eq-img img { width: 100%; height: 100%; object-fit: cover; }
.p-second .eq-img { aspect-ratio: 5 / 4; border-radius: 50% 50% var(--r) var(--r) / 44% 44% var(--r) var(--r); }
.eq-empty { display: grid; place-items: center; background: radial-gradient(circle at 50% 40%, #EEF4EC, var(--sage-l)); border: 1px dashed var(--champ); }
.eq-empty span { font-family: var(--serif); font-size: 96px; line-height: 1; color: var(--champ); }
.p-txt { padding-right: 8px; }
.person h3 { font-size: clamp(34px, 3.4vw, 46px); font-weight: 600; }
.p-role { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.6; margin-top: 12px; }
.p-co { font-size: 15px; color: var(--champ-d); margin-top: 6px; }
.p-lic { font-size: 13px; margin-top: 10px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.p-contact { list-style: none; display: grid; gap: 10px; margin-top: 18px; }
.p-contact li { display: flex; align-items: baseline; gap: 12px; font-size: 15px; font-weight: 500; }
.p-contact i { color: var(--champ-d); font-size: 19px; transform: translateY(3px); }
.p-contact a { text-decoration: none; overflow-wrap: anywhere; }
.p-contact a:hover { text-decoration: underline; text-decoration-color: var(--champ); }
.p-contact span { font-size: 13px; font-weight: 400; color: var(--ink-2); }
.p-contact .p-addr { font-size: 15px; font-weight: 500; color: var(--ink); line-height: 1.4; }
.p-serv { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 4px; }
.p-serv li { font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 7px 11px; border: 1px solid var(--champ); border-radius: 99px; }
blockquote { position: relative; border-top: 1px solid rgba(26, 26, 26, .2); }
.equipo blockquote { max-width: 860px; margin: 64px auto 0; text-align: center; padding-top: 40px; }
.q-spk { position: absolute; top: -9px; left: 50%; margin-left: -9px; width: 18px; height: 18px; background: var(--sage); }
blockquote p { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.25; }
blockquote footer { display: flex; justify-content: center; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; font-weight: 600; margin-top: 22px; }
.stars { display: inline-flex; gap: 2px; color: var(--champ-d); font-size: 15px; }

/* ---------- ubicación ---------- */
.ubic { padding: 128px 0; }
.ubic-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; align-items: stretch; }
.addr { font-family: var(--serif); font-size: 30px; line-height: 1.25; margin-top: 32px; }
.addr-note { color: var(--ink-2); font-size: 14px; margin-top: 10px; }
.phones { list-style: none; margin-top: 32px; display: grid; gap: 12px; }
.phones li { display: flex; align-items: center; gap: 14px; }
.phones a { display: inline-flex; align-items: center; gap: 14px; font-weight: 600; text-decoration: none; font-variant-numeric: lining-nums tabular-nums; }
.phones .ic { width: 40px; height: 40px; font-size: 18px; }
.phones li > span { font-size: 13px; color: var(--ink-2); }
.dir { display: inline-flex; align-items: center; gap: 8px; margin-top: 36px; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; padding-bottom: 6px; background: var(--metal) left bottom / 100% 1px no-repeat; transition: gap 200ms var(--ease-out); }
.dir:hover { gap: 12px; }
.map { overflow: hidden; border-radius: var(--r); min-height: 460px; background: var(--sage-l); }
.map iframe { width: 100%; height: 100%; min-height: 460px; border: 0; display: block; filter: saturate(.6) sepia(.08); }

/* ---------- cierre (contraportada del manual) ---------- */
.cierre { position: relative; padding: 140px 0 48px; text-align: center; overflow: hidden; }
.cierre-bg { position: absolute; inset: 0; background: var(--sage) url(/img/textura.webp) center / cover no-repeat; }
.cierre-in { position: relative; display: grid; justify-items: center; }
.cierre-logo { width: clamp(300px, 34vw, 420px); }
.cierre-tag { font-family: var(--serif); font-style: italic; font-size: 26px; margin: 26px 0 34px; }
.social.big { flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 30px; }
.social.big a { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border: 1px solid rgba(26, 26, 26, .25); border-radius: 999px; font-size: 14px; font-weight: 500; text-decoration: none; background: rgba(247, 244, 238, .35); transition: background-color 200ms ease, transform 160ms var(--ease-out); }
.social.big a i { font-size: 19px; }
.social.big a:hover { background: rgba(247, 244, 238, .75); }
.social.big a:active { transform: scale(.97); }
.cierre-nap { font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; line-height: 2; margin-top: 56px; }
.foot-c { font-size: 12px; color: var(--ink-2); margin-top: 28px; }

/* ---------- barra móvil ---------- */
.mbar { display: none; }

/* ---------- aparición al hacer scroll ---------- */
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity 800ms var(--ease-out), transform 800ms var(--ease-out); }
.js .reveal-img { clip-path: inset(12% 0 0 0); opacity: 0; transition: clip-path 1100ms var(--ease-out), opacity 700ms ease; }
.js .in { opacity: 1; transform: none; clip-path: inset(0 0 0 0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .hero h1 .ln > *, .js .hero .lead, .js .hero .hero-cta, .js .hero-bg, .js .arco, .js .arco img { animation: none; transform: none; opacity: 1; clip-path: none; }
  .js .reveal, .js .reveal-img { transform: none; clip-path: none; transition: opacity 300ms ease; }
  .pi, .faq details[open] .ans { animation: none; }
}

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .links { display: none; }
}
@media (max-width: 860px) {
  .wrap { width: calc(100% - 32px); }
  .nav-in { height: 64px; gap: 12px; }
  .brand img { width: 92px; }
  .nav-act { margin-left: auto; gap: 6px; }
  .nav-act .social.mini, .nav-act .book { display: none; }
  .hero { min-height: 0; padding: 120px 0 170px; }
  .hero-bg { background-position: 50% 50%; }
  .hero h1 { font-size: clamp(50px, 14vw, 72px); }
  .lead { font-size: 16px; }
  .arcos { margin-top: -130px; padding-bottom: 56px; }
  .arcos-in { grid-template-columns: 1fr 1fr; }
  .a2 { grid-column: 1 / -1; grid-row: 1; transform: none; aspect-ratio: 5 / 4; border-radius: 50% 50% var(--r) var(--r) / 44% 44% var(--r) var(--r); }
  .proof { flex-direction: column; align-items: center; gap: 14px; }
  .oferta-in { grid-template-columns: 1fr; gap: 28px; padding-block: 64px; }
  .of-row { grid-template-columns: 1fr auto; }
  .of-row s, .of-row .of-gift { grid-column: 2; text-align: right; margin-top: -10px; }
  .oferta .btn { width: 100%; }
  .precios { padding: 88px 0 72px; }
  .precios-in { grid-template-columns: 1fr; gap: 28px; }
  .pr-head { position: static; }
  .tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-inline: -16px; padding-inline: 16px; }
  .tabs button { font-size: 20px; white-space: nowrap; padding-left: 20px; }
  .carta { padding: 28px 18px 16px; margin-inline: -4px; }
  .carta::before { left: 18px; right: 18px; }
  .carta-cols, .pi { grid-template-columns: 1fr 52px 64px; gap: 8px; }
  .pi-n { font-size: 14px; flex-wrap: wrap; }
  .pi-n::after { display: none; }
  .pi-n small { flex-basis: 100%; }
  .pi { padding: 12px 0; }
  .pi-p { font-size: 24px; }
  .pi-6 { font-size: 14px; }
  .pi.pk .pi-n { font-size: 26px; }
  .trat { padding: 24px 0 88px; }
  .trat-in, .cita-in, .ubic-grid, .team, .p-main { grid-template-columns: 1fr; gap: 32px; }
  .team { gap: 18px; margin-top: 32px; }
  .person { padding: 14px 14px 22px; gap: 22px; }
  .p-txt { padding: 0 8px; }
  .equipo blockquote { margin-top: 44px; }
  .trat-img, .cita-side { position: static; }
  .trat-img { aspect-ratio: 5 / 4; border-radius: 50% 50% var(--r) var(--r) / 40% 40% var(--r) var(--r); }
  .tx { gap: 4px 14px; padding: 18px 0; }
  .tx .ic { width: 38px; height: 38px; font-size: 18px; }
  .tx-p { font-size: 14px; }
  .tx-feat .tx-p { font-size: 24px; }
  .cita { padding: 88px 0; }
  .cita-img { display: none; }
  .faq .ans { padding-right: 0; }
  .equipo { padding: 72px 0; }
  .ubic { padding: 88px 0; }
  .map, .map iframe { min-height: 340px; }
  .cierre { padding: 96px 0 130px; }
  .cierre-bg { background-position: 50% 50%; }
  .mbar { display: flex; gap: 10px; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60;
    padding: 8px; border-radius: 999px; background: rgba(247, 244, 238, .9);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 14px 34px -14px rgba(40, 30, 20, .5); border: 1px solid var(--line);
    transform: translateY(140%); transition: transform 420ms var(--ease-out); }
  .mbar.show { transform: none; }
  .mbar .book { flex: 1; }
  .btn-wa { width: 52px; padding: 0; background: var(--sage); color: var(--ink); border-color: var(--sage); }
  .btn-wa i { font-size: 24px; }
}
