/* Home real. Portada de la maqueta (home.html), ahora propiedad de la aplicación. */
  /* Home: continuidad visual. Tres momentos inmersivos (hero, Nos casamos, Mi Jardines); el resto en marfil. */
  body { overflow-x: hidden; }
  body.lock { overflow: hidden; }
  .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

  /* ---------- Header ---------- */
  .hdr { position: fixed; top: 0; left: 0; right: 0; z-index: 30; transition: background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease); color: #fff; }
  .hdr .in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
  .hdr.solid { background: none; color: var(--madera); }
  .hdr.hide { transform: translateY(-100%); }
  /* Cabecera sobre un fondo oscuro (data-tone lo calcula home.js): logotipo, menú y botones pasan a blanco y la banda difuminada pasa a oscura */
  .hdr.solid[data-tone="dark"] { color: #fff; }
  .hdr.solid[data-tone="dark"] .hdr-fondo { background: #1a100b; transition: opacity .35s var(--ease), background .35s var(--ease); }
  .hdr.solid[data-tone="dark"] .hdr-fondo .aura-bg { opacity: 0; }
  .hdr.solid[data-tone="dark"] .iconbtn { background: rgba(255,255,255,.14); }
  .hdr.solid[data-tone="dark"] .burger { background: rgba(255,255,255,.16) !important; border-color: rgba(255,255,255,.3) !important; }
  .logo { font-family: var(--serif); font-size: 1.5rem; letter-spacing: .02em; color: inherit; text-decoration: none; }
  .logo small { display: block; font: 400 .52rem var(--sans); letter-spacing: .18em; text-transform: uppercase; opacity: .75; margin-top: -2px; }
  .nav { display: flex; align-items: center; gap: 6px; }
  .nav .lnk { background: none; border: 0; color: inherit; font: 400 .95rem var(--sans); min-height: 44px; padding: 0 12px; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; border-radius: 10px; }
  .nav .lnk:hover { background: rgba(255,255,255,.14); }
  .hdr.solid .nav .lnk:hover { background: rgba(58,44,37,.07); }
  .hdr .iconbtn { color: inherit; border-color: transparent; background: rgba(255,255,255,.14); }
  .hdr.solid .iconbtn { background: rgba(58,44,37,.08); }
  .hdr .iconbtn:hover { background: #fff; color: var(--madera); }
  .burger { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: rgba(255,255,255,.16); border: 0; color: inherit; font: 400 .95rem var(--sans); cursor: pointer; }
  .hdr.solid .burger { background: rgba(58,44,37,.08); }
  .burger i { display: block; width: 18px; height: 1px; background: currentColor; box-shadow: 0 5px 0 currentColor; margin-bottom: 5px; }
  .hdr .btn-primary { min-height: 44px; }
  @media (max-width: 899px) { .nav .lnk, .hdr .btn-primary, .hdr .iconbtn { display: none; } .burger { background: transparent !important; padding: 0 4px; font-size: 1.02rem; letter-spacing: .02em; } .hdr .in { min-height: 64px; } }

  /* ---------- Hero ---------- */

  /* ---------- Secciones ---------- */
  section.s { padding-block: clamp(64px, 10vw, 128px); position: relative; }
  .sh { display: grid; gap: 14px; margin-bottom: clamp(28px, 4vw, 48px); max-width: 60ch; }
  .sh p:not(.eyebrow) { color: var(--verde); font-weight: 300; font-size: var(--t-body); line-height: 1.5; letter-spacing: .01em; }
  .row-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
  .lic { font-size: .86rem; color: var(--verde); display: flex; gap: 10px; align-items: baseline; }
  .lic i { width: 8px; height: 8px; border-radius: 50%; background: var(--salvia); flex: none; transform: translateY(-1px); }

  /* Manifiesto */
  .mf { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(24px, 6vw, 96px); align-items: start; }
  .mf .stm { font-size: clamp(1.7rem, 3.8vw, 3.1rem); }
  @media (max-width: 899px) { .mf { grid-template-columns: 1fr; } }

  /* Scroll horizontal de especialidades */
  .hs { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px clamp(16px, 4vw, 40px) 16px; margin-inline: calc(-1 * clamp(16px, 4vw, 40px)); scrollbar-width: none; }
  .hs::-webkit-scrollbar { display: none; }
  .hs-ctl { display: flex; gap: 8px; }
  .hs-ctl .iconbtn { color: var(--madera); background: rgba(58,44,37,.08); border-color: transparent; }
  .hs-ctl .iconbtn:hover { background: var(--madera); color: #fff; }
  @media (max-width: 899px) { .hs-ctl { display: none; } }
  .g-a { background: radial-gradient(80% 70% at 70% 25%, #d39a7c, transparent 62%), linear-gradient(150deg, #8a6a52, #3A2C25); }
  .g-b { background: radial-gradient(70% 70% at 30% 70%, #b4be9f, transparent 62%), linear-gradient(150deg, #6d7a62, #3d4a38); }
  .g-c { background: radial-gradient(75% 70% at 60% 30%, #f0dcc2, transparent 62%), linear-gradient(150deg, #bfa88c, #6e5846); }
  .g-d { background: radial-gradient(70% 70% at 70% 70%, #e0a27a, transparent 62%), linear-gradient(150deg, #9a4a2c, #3a1a0e); }
  .g-e { background: radial-gradient(70% 80% at 30% 30%, #c8cdb8, transparent 62%), linear-gradient(150deg, #8d9684, #4D5847); }

  /* Estética & Wellness: mosaico asimétrico */
  @media (max-width: 899px) { .t1, .t2, .t3, .t4, .t5 { grid-column: span 12; min-height: 240px; } }

  /* Tratamientos de temporada y promociones */
  .promos { --cw: min(80vw, 360px); }

  /* Nos casamos */
  .glass-tile .dots svg { height: 70px; }

  /* Prueba social, blog */
  .trust { --cw: min(80vw, 360px); }
  .quote { border-radius: 24px; background: var(--beige); padding: 26px; display: grid; gap: 14px; align-content: space-between; min-height: 200px; }
  .quote p { font-family: var(--serif); font-size: 1.25rem; line-height: 1.35; color: var(--madera); }
  .quote small { color: var(--verde); }
  .jr { --cw: min(80vw, 340px); }
  .jr .art { min-height: 440px; }
  .jr .art.lead-a { --w2: 1; }
  @media (min-width: 900px) { .jr > .lead-a { width: 460px; } }
  .art { border-radius: 26px; overflow: hidden; position: relative; min-height: 220px; padding: 24px; display: grid; align-content: end; color: #fff; text-decoration: none; isolation: isolate; }
  .art.lead-a { min-height: 460px; }
  .art .bg { position: absolute; inset: 0; z-index: -2; }
  .art::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(36,20,12,0) 30%, rgba(36,20,12,.75)); }
  .art .k { position: absolute; top: 20px; left: 24px; font: 400 .72rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
  .art h3 { color: #fff; font-size: 1.5rem; }
  .art .m { font: 300 .74rem var(--mono); letter-spacing: .05em; text-transform: uppercase; margin-top: 8px; opacity: .85; }

  /* Mi Jardines */
  .mj { border-radius: 36px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 4vw, 56px); padding: clamp(28px, 5vw, 64px); align-items: center; }
  .mj h2 { color: #fff; font-family: var(--sans); font-weight: 300; font-size: clamp(2rem, 4.2vw, 3.3rem); }
  .mj h2 .it { font-family: var(--serif); color: #FFC9A6; }
  .mj ul { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 10px; color: rgba(255,255,255,.94); font-weight: 300; font-size: var(--t-body); line-height: 1.5; letter-spacing: .01em; }
  .mj li::before { content: "– "; }
  .mj .glass-tile { text-align: left; justify-items: stretch; }
  .mj .glass-tile .hi { font-size: 1.6rem; font-weight: 300; }
  .mj .glass-tile .hi span { color: #FFC9A6; }
  .mj .rowx { display: flex; justify-content: space-between; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.16); font-weight: 300; }
  @media (max-width: 899px) { .mj { grid-template-columns: 1fr; } }

  /* Contacto y pie */
  .contact { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 5vw, 72px); align-items: start; }
  .contact dl { display: grid; gap: 18px; margin: 24px 0 0; }
  .contact dt { font: 400 .72rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--verde); }
  .contact dd { margin: 4px 0 0; font-size: 1.05rem; }
  .map { border-radius: 26px; min-height: 340px; background: linear-gradient(135deg, #e7dccd, #cdbfa9); position: relative; }
  .pend { color: var(--terra-txt); }
  @media (max-width: 899px) { .contact { grid-template-columns: 1fr; } }
  footer.f { background: var(--madera); color: #E9DFD2; padding-block: 56px 120px; }

  /* ---------- Acciones flotantes ---------- */
  .fab { position: fixed; z-index: 25; left: 20px; right: 20px; bottom: 20px; display: flex; justify-content: space-between; pointer-events: none; transition: transform .35s var(--ease), opacity .35s var(--ease); }
  .fab.hide { transform: translateY(140%); opacity: 0; }
  .fab > * { pointer-events: auto; }
  .fab .cta { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 22px; border-radius: 999px; background: var(--terra-txt); color: #fff; font: 700 .98rem var(--sans); border: 0; cursor: pointer; }
  .fab svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .fab .chat { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: #17110E; color: #fff; border: 0; cursor: pointer; }
  .mdock { display: none; }
  /* Escritorio: los cuatro accesos rápidos se pliegan en el botón redondo de la derecha y se despliegan al pasar el cursor (o al pulsarlo). Sustituyen al botón rojo «Tu tratamiento». */
  @media (min-width: 900px) {
    .fab { justify-content: flex-end; }
    .fab .cta { display: none; }
    .fab .chat svg { width: 26px; height: 26px; fill: currentColor; stroke: none; }
    .fab .chat { position: relative; }
    /* Cristal que cambia de tono según el fondo que tiene detrás (data-tone lo calcula home.js) */
    .fab, .mdock { --gl-bg: rgba(255,255,255,.14); --gl-bd: rgba(255,255,255,.36); --gl-fg: #fff; --gl-on-bg: #fff; --gl-on-fg: var(--madera); }
    .fab[data-tone="light"], .mdock[data-tone="light"] { --gl-bg: rgba(255,255,255,.5); --gl-bd: rgba(58,44,37,.22); --gl-fg: var(--madera); --gl-on-bg: var(--madera); --gl-on-fg: #fff; }
    .fab .chat, .mdock button { background: var(--gl-bg); border: 1px solid var(--gl-bd); color: var(--gl-fg); -webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5); box-shadow: 0 8px 26px rgba(20,10,5,.16); transition: background .3s, color .3s, border-color .3s; }
    .mdock button.on { background: var(--gl-on-bg); border-color: var(--gl-on-bg); color: var(--gl-on-fg); }
    .fab.tip .chat::before { content: "Accesos rápidos"; position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%); white-space: nowrap; padding: 8px 14px; border-radius: 999px; background: rgba(36,20,12,.88); color: #fff; font: 400 .74rem var(--sans); letter-spacing: .04em; pointer-events: none; animation: tipFab 6s var(--ease) .8s both; }
    .fab:hover .chat::before, .fab:focus-within .chat::before { display: none; }
    @keyframes tipFab { 0% { opacity: 0; transform: translate(10px, -50%); } 10%, 80% { opacity: 1; transform: translate(0, -50%); } 100% { opacity: 0; transform: translate(0, -50%); } }
    .mdock { display: flex; flex-direction: row-reverse; position: fixed; z-index: 25; right: 72px; left: auto; bottom: 20px; gap: 12px; padding-right: 12px; transform: translateX(14px); opacity: 0; pointer-events: none; transition: transform .3s var(--ease), opacity .3s var(--ease); }
    .fab:hover + .mdock, .fab:focus-within + .mdock, .mdock:hover, .mdock:focus-within, .mdock.open { transform: none; opacity: 1; pointer-events: auto; }
    .mdock.hide { transform: translateY(160%); opacity: 0; }
    .mdock button { position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; }
    .mdock button svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
    .mdock button::after { content: attr(aria-label); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); white-space: nowrap; padding: 5px 10px; border-radius: 999px; background: rgba(36,20,12,.9); color: #fff; font: 400 .7rem var(--sans); letter-spacing: .04em; opacity: 0; pointer-events: none; transition: opacity .2s; }
    .mdock button:hover::after, .mdock button:focus-visible::after { opacity: 1; }
  }
  @media (max-width: 899px) {
    .fab { display: none; }
    .mdock { display: flex; position: fixed; z-index: 25; left: 50%; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); gap: 6px; padding: 7px; border-radius: 999px; background: rgba(36,20,12,.62); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); transition: transform .35s var(--ease), opacity .35s var(--ease); }
    .mdock.hide { transform: translate(-50%, 160%); opacity: 0; }
    .mdock button { display: grid; place-items: center; gap: 2px; width: 74px; min-height: 54px; border: 0; border-radius: 999px; background: transparent; color: #fff; font: 400 .66rem var(--sans); letter-spacing: .04em; cursor: pointer; }
    .mdock button svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
    .mdock button.on { background: #fff; color: var(--madera); }
  }

  /* ---------- Capas: menú, búsqueda, precios ---------- */
  .layer { position: fixed; inset: 0; z-index: 50; visibility: hidden; opacity: 0; transition: opacity .35s var(--ease), visibility 0s .35s; }
  .layer.open { visibility: visible; opacity: 1; transition: opacity .35s var(--ease); }
  .scrim { position: absolute; inset: 0; background: rgba(36,20,12,.45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }

  /* Menú: panel lateral, a partir de la referencia de la web de pruebas, en tipografía Inria */
  #menu { background: transparent; color: #F7F2E9; }
  #menu .scrim { background: rgba(20,16,8,.38); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  .menu-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(100%, max(540px, 40vw)); background: #43402D; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(min-content, 1fr) auto; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; transform: translateX(7%); opacity: 0; transition: transform .55s var(--ease), opacity .4s var(--ease); }
  #menu.open .menu-panel { transform: none; opacity: 1; }
  .menu-top { display: flex; justify-content: flex-end; padding: 16px clamp(20px, 3vw, 40px) 0; }
  .menu-close { background: none; border: 0; color: inherit; font: 400 1rem var(--sans); letter-spacing: .02em; min-height: 44px; padding: 0 4px; cursor: pointer; }
  .menu-close:hover { text-decoration: underline; text-underline-offset: 4px; }
  .menu-body { display: grid; grid-template-columns: 1.15fr .85fr; gap: 0 clamp(16px, 2.6vw, 36px); align-content: start; padding: 6px clamp(20px, 3vw, 40px) 8px; }
  .menu-label { font: 400 .92rem var(--sans); color: #ECE3A2; margin: 0 0 22px; }
  .menu-nav { display: grid; gap: 2px; }
  .menu-nav a { justify-self: start; font: 400 clamp(1.9rem, 2.6vw, 2.4rem)/1.14 var(--sans); letter-spacing: -.005em; color: #F7F2E9; text-decoration: none; padding-block: 2px; }
  .menu-nav a:hover, .menu-nav a:focus-visible { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
  .menu-nav a[aria-current] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
  .menu-sub { display: grid; gap: 9px; }
  .menu-sub a { font: 300 .95rem/1.4 var(--sans); color: #F7F2E9; text-decoration: none; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; }
  .menu-sub a:hover, .menu-sub a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
  .menu-acc { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(247,242,233,.16); }
  .menu-acc a { font: 300 .95rem/1.4 var(--sans); color: #F7F2E9; text-decoration: none; opacity: .92; }
  .menu-acc a:hover, .menu-acc a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
  .menu-foot { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .8fr); gap: 22px clamp(16px, 2.6vw, 36px); padding: 26px clamp(20px, 3vw, 40px) 0; }
  .menu-foot .menu-label { margin-bottom: 12px; }
  .menu-foot a { color: #F7F2E9; text-decoration: none; font: 400 .98rem/1.55 var(--sans); display: block; overflow-wrap: anywhere; }
  .menu-foot a:hover { text-decoration: underline; text-underline-offset: 4px; }
  .menu-foot .ne::after { content: " \2197"; font-size: .85em; }
  .menu-foot .redes { display: flex; gap: 6px 16px; flex-wrap: wrap; }
  .menu-foot .redes a { font-size: .95rem; font-weight: 300; }
  .menu-panel > * { min-width: 0; }
  .menu-word { max-width: 100%; margin: 14px 0 0; height: .8em; padding-inline: clamp(20px, 3vw, 40px); white-space: nowrap; overflow: hidden; font: 400 clamp(5rem, 10.5vw, 9.4rem)/1 var(--serif); letter-spacing: -.01em; color: #ECE3A2; user-select: none; }
  .menu-panel [data-ap] { opacity: 0; transform: translateY(10px); transition: opacity .5s var(--ease), transform .5s var(--ease); transition-delay: calc(var(--i, 0) * 45ms + 120ms); }
  #menu.open .menu-panel [data-ap] { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: reduce) { .menu-panel, .menu-panel [data-ap] { transition: none; transform: none; } }
  @media (max-width: 899px) {
    .menu-panel { width: 100%; }
    .menu-nav a { font-size: clamp(1.7rem, 7.4vw, 2.2rem); line-height: 1.16; }
    .menu-label { margin-bottom: 16px; }
    .menu-foot { padding-top: 18px; gap: 14px; }
    .menu-body { grid-template-columns: 1fr 1fr; }
    .menu-foot { grid-template-columns: 1fr; }
    .menu-foot a { font-size: clamp(.95rem, 4.2vw, 1.15rem); }
    .menu-word { font-size: 21vw; }
  }

  /* Hoja lateral (buscador / precios) */
  .sheet { position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100%); background: var(--marfil); color: var(--tinta); display: grid; grid-template-rows: auto 1fr; transform: translateX(40px); transition: transform .45s var(--ease); box-shadow: -24px 0 60px rgba(36,20,12,.25); }
  .layer.open .sheet { transform: none; }
  .sheet .hd { padding: 22px 26px 12px; display: grid; gap: 14px; }
  .sheet .hd .top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .sheet .hd h2 { font-size: 1.7rem; }
  .sheet .hd .iconbtn { color: var(--madera); background: rgba(58,44,37,.08); border-color: transparent; }
  .sheet .bd { overflow-y: auto; padding: 4px 26px 40px; }
  .sheet input[type=search] { width: 100%; min-height: 52px; border-radius: 16px; border: 0; background: var(--beige); padding: 0 18px; font: 300 1.1rem var(--sans); color: var(--tinta); letter-spacing: .01em; }
  .sheet input[type=search]:focus-visible { outline: 2px solid var(--terra-txt); }
  .handle { display: none; width: 44px; height: 4px; border-radius: 4px; background: rgba(58,44,37,.25); margin: 0 auto 4px; }
  @media (max-width: 899px) {
    .sheet { top: auto; left: 0; width: 100%; height: 90svh; border-radius: 28px 28px 0 0; transform: translateY(40px); }
    .handle { display: block; }
    .sheet .hd { padding: 10px 18px 10px; } .sheet .bd { padding-inline: 18px; }
  }
  .chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-block: 2px; }
  .chips::-webkit-scrollbar { display: none; }
  .chips .chip { flex: none; min-height: 40px; }
  .grp { margin-top: 22px; }
  .grp h3 { font: 400 .72rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--verde); margin-bottom: 8px; }
  .res { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 13px 0; border-top: 1px solid var(--linea); color: inherit; text-decoration: none; width: 100%; background: none; border-left: 0; border-right: 0; border-bottom: 0; text-align: left; font: inherit; cursor: pointer; }
  .res b { font-weight: 400; font-size: 1.05rem; }
  .res small { display: block; color: var(--verde); font-weight: 300; font-size: .84rem; margin-top: 2px; }
  .res .amt { font: 400 .95rem var(--mono); white-space: nowrap; text-align: right; }
  .res .amt s { color: var(--verde); margin-right: 6px; font-size: .8rem; }
  .res .amt em { font-style: normal; color: var(--terra-txt); }
  .sugs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
  .privnote { margin-top: 26px; font-size: .82rem; color: var(--verde); line-height: 1.5; }
  .emptyx { margin-top: 26px; padding: 22px; border-radius: 20px; background: var(--beige); color: var(--verde); font-weight: 300; line-height: 1.6; }
  .emptyx a { color: var(--terra-txt); }
  .kl { margin-top: 18px; font-size: .8rem; color: var(--verde); }
  .toast { position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 90; background: #17110E; color: #fff; padding: 11px 18px; border-radius: 14px; font-size: .88rem; max-width: 90vw; }
  .toast span { font-family: var(--mono); color: #E8B896; }


  /* ---------- Hero (referencia: espacios, tamaños y elegancia de la web de pruebas) ---------- */
  .hero { position: relative; min-height: 100svh; display: grid; align-items: end; padding-block: 112px 44px; isolation: isolate; background: #1a100b; overflow: hidden; }
  .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; z-index: -2; }
  .hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(18,10,6,.55) 0%, rgba(18,10,6,.18) 34%, rgba(18,10,6,.58) 74%, rgba(18,10,6,.94) 100%), linear-gradient(90deg, rgba(18,10,6,.74) 0%, rgba(18,10,6,.46) 38%, rgba(18,10,6,0) 68%); }
  .hero-in > * { min-width: 0; }
  .hero-in { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(28px, 5vw, 80px); align-items: end; }
  .hero .eyebrow { color: rgba(255,255,255,.82); margin-bottom: 22px; }
  .hero h1 { color: #fff; font-family: var(--serif); font-weight: 300; font-size: clamp(2.1rem, 1.25rem + 3.7vw, 5rem); line-height: 1.05; letter-spacing: -.008em; max-width: 14em; text-wrap: balance; text-shadow: 0 2px 28px rgba(0,0,0,.35); }
  .hero h1 .it { font-style: italic; color: #E6CBA9; }
  .hero-areas { list-style: none; display: flex; flex-wrap: wrap; row-gap: 10px; margin: 26px 0 0; padding: 0; }
  .hero-areas li { font: 400 .68rem var(--sans); letter-spacing: .17em; text-transform: uppercase; color: rgba(255,255,255,.88); padding: 3px 18px; border-left: 1px solid rgba(255,255,255,.4); }
  .hero-areas li:first-child { padding-left: 0; border-left: 0; }
  .hero .lead { margin-top: 24px; color: rgba(255,255,255,.88); font-weight: 300; font-size: var(--t-body); line-height: 1.5; letter-spacing: .01em; max-width: 46ch; }
  .hero-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
  .btn-pill { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 40px; padding: 0 24px; border-radius: 999px; font: 400 .72rem var(--sans); letter-spacing: .15em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
  .btn-pill-light { background: #fff; color: var(--madera); }
  .btn-pill-light:hover { background: var(--arena); }
  .btn-pill-ghost { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.42); color: #fff; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  .btn-pill-ghost:hover { background: rgba(255,255,255,.2); }
  .btn-pill .arr.down { transform: rotate(90deg); }

  .hero-card { border-radius: 22px; padding: clamp(22px, 2.6vw, 34px); background: linear-gradient(160deg, rgba(255,255,255,.2), rgba(255,255,255,.06)); border: 1px solid rgba(255,255,255,.14); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); color: #fff; }
  .hero-card .k { font: 400 .62rem var(--sans); letter-spacing: .17em; text-transform: uppercase; color: rgba(255,255,255,.66); }
  .hero-card h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.2; margin: 12px 0 4px; color: #fff; }
  .hero-card .gl { font: 400 .6rem var(--sans); letter-spacing: .17em; text-transform: uppercase; color: rgba(255,255,255,.62); margin: 20px 0 9px; }
  .chips2 { display: flex; flex-wrap: wrap; gap: 8px; }
  .chip2 { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 15px; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; font: 300 .86rem var(--sans); cursor: pointer; transition: background .2s var(--ease), color .2s var(--ease); }
  .chip2::before { content: "+"; font-weight: 400; opacity: .85; }
  .chip2:hover { background: rgba(255,255,255,.18); }
  .chip2[aria-pressed="true"], .chip2[aria-pressed="true"]:hover { background: #fff; color: var(--madera); border-color: #fff; }
  .chip2[aria-pressed="true"]::before { content: "\2713"; }
  .hero-quote { margin: 22px 0 0; padding: 16px 18px; border-radius: 14px; background: rgba(0,0,0,.24); font: italic 300 1.02rem/1.45 var(--serif); color: rgba(255,255,255,.92); }
  .hero-card .sug { margin: 16px 0 0; font-size: .9rem; line-height: 1.55; color: rgba(255,255,255,.92); min-height: 1.5em; }
  .hero-card .sug a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
  .hero-card .sug small { display: block; margin-top: 6px; color: rgba(255,255,255,.66); font-size: .76rem; }
  .hero-go { width: 100%; margin-top: 16px; min-height: 46px; background: rgba(255,255,255,.28); color: rgba(255,255,255,.9); }
  .hero-go .dot { width: 10px; height: 10px; border-radius: 50%; background: #5E9A6A; flex: none; }
  .hero-go[aria-disabled="true"] { pointer-events: none; }
  .hero-go:not([aria-disabled="true"]) { background: var(--terra-txt); color: #fff; }
  .hero-side { min-width: 0; }
  .hero-lic { margin: 12px 4px 0; font: 400 .56rem/1.6 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.78); }
  .hero-card .sug { margin-top: 12px; min-height: 0; }
  .hero-lic { text-align: left; }
  @media (max-width: 899px) {
    .hero { padding-block: 104px 34px; align-items: start; }
    .hero-in { grid-template-columns: 1fr; gap: 40px; }
    .hero-lic { margin-top: 14px; text-align: left; font-size: .6rem; letter-spacing: .14em; }
    .hero .eyebrow { font-size: .64rem; letter-spacing: .15em; margin-bottom: 18px; }
    .hero-areas { margin-top: 22px; }
    .hero-areas li { font-size: .6rem; letter-spacing: .13em; padding: 3px 11px; white-space: nowrap; }
    .hero-cta { gap: 8px; }
    .hero-cta .btn-pill { flex: 1 1 auto; }
    .btn-pill { padding: 0 14px; font-size: .6rem; letter-spacing: .1em; gap: 7px; white-space: nowrap; }
    .btn-pill .arr { width: .9em; }
    .hero-go { font-size: .62rem; letter-spacing: .11em; padding: 0 16px; justify-content: space-between; }
  }


  /* flecha de los botones de píldora */
  .btn-pill .arr { display: inline-block; width: 1.1em; height: 1px; background: currentColor; position: relative; transition: width .25s var(--ease); }
  .btn-pill .arr::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
  .btn-pill:hover .arr { width: 1.5em; }


  /* ---------- Ajustes de diseño móvil (ronda 2): más aire y mejor jerarquía. Sólo hasta 899 px. ---------- */
  @media (max-width: 899px) {
    /* Margen lateral algo mayor; los carruseles lo toman de --gut, así la primera tarjeta queda alineada con los textos */
    :root { --gut: 30px; }
    .wrap { padding-inline: 30px; }
    .car-track { --cw: min(76vw, 320px); }

    /* 1 · Más aire entre la cabecera y el inicio del hero (de 40 a 80 px) */
    .hero { padding-block: 144px 56px; }
    .hero-in { gap: 48px; }

    /* 2 · Un solo botón en el hero: el de «¿Qué quieres cuidar?» enlaza con la tarjeta que ya está justo debajo */
    .hero-ghost { display: none; }
    .hero-cta { margin-top: 36px; }
    .hero-cta .btn-pill-light { flex: 0 0 auto; min-height: 48px; padding-inline: 30px; font-size: .68rem; letter-spacing: .14em; }

    /* 3 · Licencia sanitaria centrada, con filete y más presencia */
    .hero-lic { margin: 6px auto 0; text-align: center; font-size: .64rem; letter-spacing: .16em; line-height: 1.9; color: rgba(255,255,255,.9); }
    .hero-lic .lp, .lic .lp { display: block; }
    .hero-lic .sep, .lic .sep { display: none; }
    .hero-lic::before { content: ""; display: block; width: 28px; height: 1px; margin: 0 auto 18px; background: rgba(255,255,255,.42); }

    /* 3 (bis) · La licencia que va bajo el carrusel de especialidades, también centrada y ordenada en líneas */
    .lic { flex-direction: column; align-items: center; gap: 14px; text-align: center; margin-top: 30px !important; font-size: .84rem; line-height: 1.7; letter-spacing: .02em; }
    .lic i { transform: none; }

    /* 4 · Más espacio entre secciones (de 64 a 96 px) */
    section.s { padding-block: 96px; }
    .sh { margin-bottom: 36px; }
    .row-head { margin-bottom: 34px; }

    /* 6 · Entrada suave de las tarjetas de estética: opacidad y 14 px de desplazamiento, sin desenfoque */
    .js .tile { opacity: 0; transform: translateY(14px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
    .js .tile.in { opacity: 1; transform: none; }
  }
  @media (max-width: 899px) and (prefers-reduced-motion: reduce) {
    .js .tile { opacity: 1; transform: none; transition: none; }
  }


  /* ---------- Tarjetas de especialidades: replican las de la web de pruebas (300 × 400 en móvil, 350 × 400 desde 768 px) ---------- */
  #hs { --cw: min(300px, 88%); gap: 20px; }
  .spec { --h: 400px; --pad: 30px; --fg: #F4EFE9; --accent: #D8C094; --ink: #2B2724; position: relative; display: grid; min-height: var(--h); border-radius: 4px; color: var(--fg); text-decoration: none; background: var(--ink); isolation: isolate; -webkit-tap-highlight-color: transparent; }
  .spec:hover, .spec:focus { color: var(--fg); text-decoration: none; }
  .spec:focus-visible { outline: 2px solid #AF3900; outline-offset: 3px; }
  .spec-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; }
  .spec-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; transition: transform .7s cubic-bezier(.22,.61,.36,1); -webkit-user-drag: none; user-select: none; }
  .spec-shade { position: absolute; inset: 0; background: rgba(64,49,44,.34); }
  .spec-in { display: flex; flex-direction: column; justify-content: space-between; gap: 24px; width: 100%; padding: var(--pad); }
  .spec-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
  .spec-cat { font: 300 12px/18.4px var(--sans); letter-spacing: .69px; }
  .spec-ico { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(244,239,233,.8); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .25s, color .25s, border-color .25s; }
  .spec-ico svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .spec-body { display: flex; flex-direction: column; gap: 12px; }
  .spec-title { margin: 0; padding: 0; color: inherit; font: 400 18px/21.28px var(--serif); letter-spacing: -.5px; }
  .spec-text { font: 300 12px/18px var(--sans); letter-spacing: .3px; }
  .spec-price { font: 400 11px/21px var(--sans); letter-spacing: .3px; color: var(--accent); }
  @media (hover: hover) { .spec:hover .spec-img { transform: scale(1.04); } .spec:hover .spec-ico { background: var(--fg); border-color: var(--fg); color: var(--ink); } }
  @media (min-width: 768px) { #hs { --cw: min(350px, 88%); } }
  @media (prefers-reduced-motion: reduce) { .spec-img, .spec-ico { transition: none; } }


  /* ---------- Botones de cristal (referencia): menú superior y barra inferior, sólo móvil ---------- */
  .burger-t { display: inline; }
  .mosaic { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
  .row-more { display: none; margin: 28px 0 0; }
  @media (max-width: 899px) {
    .burger { width: 48px; height: 48px; min-height: 48px; padding: 0 !important; justify-content: center; gap: 0; border-radius: 50%; background: rgba(255,255,255,.16) !important; border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease); }
    .hdr.solid .burger { background: rgba(58,44,37,.08) !important; border-color: rgba(58,44,37,.14); }
    .burger-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .burger i { width: 18px; margin-bottom: 4px; }
    .mdock { gap: 12px; padding: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
    .mdock button { width: 52px; height: 52px; min-height: 52px; border-radius: 50%; background: rgba(64,49,44,.42); border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 6px 20px rgba(36,20,12,.16); transition: background .25s var(--ease), color .25s var(--ease); }
    .mdock button svg { width: 22px; height: 22px; }
    .mdock button.on { background: #fff; border-color: #fff; color: var(--madera); }
    .row-head > .btn-pill-line { display: none; }
    .row-more { display: block; }
    .mosaic { grid-template-columns: 1fr; gap: 16px; }
  }

  /* ---------- Cajas de estética: horizontales, con el mismo texto y disposición que las de medicina ---------- */
  .spec.wide { --h: 260px; }
  .spec-media .bg { position: absolute; inset: 0; }
  @media (min-width: 900px) { .spec.wide { --h: 300px; } }

  /* ---------- Tratamientos de la temporada: seis tarjetas verticales (3 × 2 en escritorio, carrusel en móvil) ---------- */
  .stile { --pad: 24px; position: relative; display: grid; min-height: 420px; border-radius: 4px; color: #F4EFE9; text-decoration: none; background: #2B2724; isolation: isolate; -webkit-tap-highlight-color: transparent; }
  .stile:hover, .stile:focus { color: #F4EFE9; text-decoration: none; }
  .stile:focus-visible { outline: 2px solid #AF3900; outline-offset: 3px; }
  .stile .spec-media .bg { transition: transform .7s cubic-bezier(.22,.61,.36,1); }
  .stile .spec-shade { background: linear-gradient(180deg, rgba(64,49,44,.06) 30%, rgba(36,20,12,.62)); }
  .stile-in { display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding: var(--pad); }
  .stile-chip { align-self: flex-start; padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.2); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font: 400 10px/16px var(--sans); letter-spacing: .12em; text-transform: uppercase; }
  .stile .spec-price s { opacity: .7; margin-right: 6px; }
  @media (hover: hover) { .stile:hover .spec-media .bg { transform: scale(1.04); } }
  @media (prefers-reduced-motion: reduce) { .stile .spec-media .bg { transition: none; } }

  /* ---------- Móvil: los carruseles empiezan con un pequeño espacio (rompe la simetría) y al desplazar llegan hasta el borde izquierdo ---------- */
  @media (max-width: 899px) {
    .car-track { padding-left: 0; scroll-padding-inline: 0; }
    .car-track::before { content: ""; flex: none; width: calc(var(--gut) + 30px - 16px); scroll-snap-align: start; }
    #hs.car-track::before { width: calc(var(--gut) + 30px - 20px); }

  }


  /* ---------- Ofertas del mes: carrusel de boletos (uno por servicio en oferta). Forma de boleto con muescas redondeadas a la altura del corte ---------- */
  .promos { --cw: 300px; }
  .tk { --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 460'%3E%3Cpath d='M16 0H284A16 16 0 0 1 300 16V167A12 12 0 0 1 288 179H285A11 11 0 0 0 285 201H288A12 12 0 0 1 300 213V444A16 16 0 0 1 284 460H16A16 16 0 0 1 0 444V213A12 12 0 0 1 12 201H15A11 11 0 0 0 15 179H12A12 12 0 0 1 0 167V16A16 16 0 0 1 16 0Z'/%3E%3C/svg%3E"); width: 300px; height: 460px; display: flex; flex-direction: column; position: relative; isolation: isolate; background: #2B2724; color: #fff; text-decoration: none; -webkit-mask: var(--mask) center / 100% 100% no-repeat; mask: var(--mask) center / 100% 100% no-repeat; }
  .tk:hover, .tk:focus { color: #fff; text-decoration: none; }
  .tk:focus-visible { outline: 2px solid #AF3900; outline-offset: -6px; }
  .tk-art { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
  .tk-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36,20,12,0) 38%, rgba(36,20,12,.58)); }
  .tk-blur { position: absolute; left: 0; right: 0; bottom: 0; height: 62%; z-index: 0; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); -webkit-mask-image: linear-gradient(180deg, transparent, #000 55%); mask-image: linear-gradient(180deg, transparent, #000 55%); pointer-events: none; }
  .tk-art .bg { position: absolute; inset: 0; transition: transform .7s cubic-bezier(.22,.61,.36,1); }
  .tk-tags { position: absolute; z-index: 2; top: 16px; left: 18px; right: 18px; display: flex; flex-wrap: wrap; gap: 8px; }
  .tk-chip { padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.34); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; font: 400 10px/16px var(--sans); letter-spacing: .12em; text-transform: uppercase; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .tk-chip-soft { background: rgba(255,255,255,.16); }
  .tk-body { position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding: 220px 24px 24px; min-height: 0; }
  .tk-title { margin: 0; font: 400 1.25rem/1.2 var(--serif); letter-spacing: -.01em; color: #fff; }
  .tk-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font: 300 .72rem/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.82); }
  .tk-price { color: #fff; white-space: nowrap; } .tk-price s { opacity: .55; margin-right: 4px; }
  .tk-line { position: relative; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.7), rgba(255,255,255,.12)); }
  .tk-line::before { content: ""; position: absolute; left: 0; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: #fff; }
  .tk-text { font: 300 .86rem/1.5 var(--sans); color: rgba(255,255,255,.9); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .tk-foot { margin-top: 6px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .tk-cta { white-space: nowrap; font: 400 .85rem var(--sans); letter-spacing: .1em; text-transform: uppercase; }
  .tk-cta i { font-style: normal; margin-right: 6px; }
  .tk-until { white-space: nowrap; font: 300 .62rem var(--mono); letter-spacing: .05em; text-transform: uppercase; color: rgba(255,255,255,.82); }
  .tk-empty { color: var(--madera); background: transparent; -webkit-mask: none; mask: none; box-shadow: inset 0 0 0 1px var(--linea); border-radius: 18px; height: auto; min-height: 220px; }
  .tk-empty .tk-body { padding-top: 24px; }
  @media (hover: hover) { .tk:hover .tk-art .bg { transform: scale(1.05); } }
  @media (prefers-reduced-motion: reduce) { .tk-art .bg { transition: none; } }

  .tk-empty .tk-title, .tk-empty .tk-meta, .tk-empty .tk-text { color: var(--madera); } .tk-empty .tk-body { padding-top: 24px; justify-content: flex-start; }


  /* ---------- Reseñas: tarjetas de cristal (translúcidas, con desenfoque y borde de luz), también en móvil ---------- */
  html:not(.solid-cards) body .quote { background: rgba(255,255,255,.34); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); box-shadow: inset 0 0 0 1px rgba(255,255,255,.62), inset 0 1px 0 rgba(255,255,255,.8), 0 14px 38px rgba(58,44,37,.07); }
  @media (max-width: 899px) { html:not(.solid-cards) body .quote { background: rgba(255,255,255,.34); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); } }
  @media (prefers-reduced-transparency: reduce) { html:not(.solid-cards) body .quote { background: rgba(243,238,231,.96); } }

  /* ---------- Reservar cita: ventana emergente de cristal ---------- */
  #cita .scrim { background: rgba(36,20,12,.46); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  .cita { position: absolute; left: 50%; top: 50%; width: min(440px, calc(100% - 32px)); transform: translate(-50%, -46%) scale(.97); transition: transform .45s var(--ease); padding: 34px 28px 28px; border-radius: 28px; color: #fff;
    background: linear-gradient(160deg, rgba(255,255,255,.24), rgba(255,255,255,.1)); -webkit-backdrop-filter: blur(30px) saturate(1.3); backdrop-filter: blur(30px) saturate(1.3);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.34), inset 0 1px 0 rgba(255,255,255,.5), 0 30px 80px rgba(20,10,4,.4); }
  .layer.open .cita { transform: translate(-50%, -50%); }
  .cita .eyebrow { color: rgba(255,255,255,.82); margin-bottom: 14px; }
  .cita h2 { color: #fff; font: 300 clamp(1.7rem, 5vw, 2.1rem)/1.12 var(--serif); }
  .cita h2 .it { color: #E6CBA9; }
  .cita-sub { margin-top: 12px; color: rgba(255,255,255,.88); font-weight: 300; font-size: var(--t-body); line-height: 1.5; letter-spacing: .01em; }
  .cita-x { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  .cita-x svg, .cita-ic svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .cita-list { display: grid; gap: 12px; margin-top: 26px; }
  .cita-opt { display: flex; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; border-radius: 999px; color: #fff; text-decoration: none; background: rgba(255,255,255,.14); box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); transition: background .25s var(--ease); }
  .cita-opt:hover, .cita-opt:focus-visible { background: rgba(255,255,255,.26); color: #fff; text-decoration: none; }
  .cita-opt:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
  .cita-ic { flex: none; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.34); }
  .cita-tx { flex: 1; min-width: 0; display: grid; gap: 1px; }
  .cita-tx b { font: 400 .95rem var(--sans); letter-spacing: .02em; }
  .cita-tx small { font: 300 .8rem var(--sans); color: rgba(255,255,255,.82); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cita-go { flex: none; width: 24px; height: 1px; background: currentColor; position: relative; opacity: .8; margin-right: 6px; }
  .cita-go::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
  .cita-pend { color: rgba(255,255,255,.85); font-size: .9rem; }
  @media (prefers-reduced-transparency: reduce) { .cita { background: rgba(58,44,37,.96); } }
  @media (prefers-reduced-motion: reduce) { .cita { transition: none; } }
  .cita:focus { outline: none; }

  /* La sombra de las reseñas no se corta: el carrusel recorta lo que sobresale, así que se le da margen interior y se compensa por fuera */
  .car-track:not(.sgrid) { padding-top: 28px; padding-bottom: 60px; margin-top: -24px; margin-bottom: -54px; }


  /* ---------- Planes: banner a sangre, con barras de progreso tipo «stories».
     Transición lenta y en tres tiempos: 1) se va el texto, 2) un fondo se funde con el siguiente, 3) aparece el texto nuevo. ---------- */
  .s-plans { padding-block: clamp(40px, 6vw, 72px); }
  .plans { --edge: max(22px, calc((100vw - 1440px) / 2 + 40px)); --t-out: .9s; --t-bg: 2s; --t-in: 1.2s; --lag: 0s;
    position: relative; display: grid; min-height: clamp(600px, 82svh, 820px); overflow: hidden; color: #fff; isolation: isolate; background: #1f0f08; }
  .plans-bgs { position: absolute; inset: 0; z-index: -1; }
  .plan-bg { position: absolute; inset: -4%; opacity: 0; z-index: 0; transition: opacity 0s calc(var(--t-out) + var(--t-bg) + .1s); animation: planDrift 22s ease-in-out infinite alternate; }
  .plan-bg.on { opacity: 1; z-index: 2; transition: opacity var(--t-bg) ease var(--t-out); }
  .plan-bg::after { content: ""; position: absolute; inset: 0; background: var(--grain); opacity: .16; mix-blend-mode: overlay; }
  @keyframes planDrift { from { transform: scale(1) translate3d(0, 0, 0); } to { transform: scale(1.07) translate3d(-1.5%, 1%, 0); } }
  .plan-bg.pa { background: linear-gradient(90deg, rgba(24,14,8,.74) 0%, rgba(24,14,8,.42) 45%, rgba(24,14,8,.08) 100%), var(--img-planes-boda-h, url("../img/planes/boda-h.webp")) 55% 78% / cover no-repeat; }
  .plan-bg.pb { background: linear-gradient(90deg, rgba(24,14,8,.74) 0%, rgba(24,14,8,.42) 45%, rgba(24,14,8,.08) 100%), var(--img-planes-skincare-h, url("../img/planes/skincare-h.webp")) 60% 45% / cover no-repeat; }
  .plan-bg.pc { background: linear-gradient(90deg, rgba(24,14,8,.74) 0%, rgba(24,14,8,.42) 45%, rgba(24,14,8,.08) 100%), var(--img-planes-tratamientos-faciales-h, url("../img/planes/tratamientos-faciales-h.webp")) 62% 35% / cover no-repeat; }
  .plans-slide { grid-area: 1 / 1; position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(20px, 4vw, 56px); padding: 140px var(--edge) 110px; opacity: 0; visibility: hidden; transition: opacity var(--t-out) ease, visibility 0s var(--t-out); }
  .plans-slide.on { opacity: 1; visibility: visible; transition: opacity var(--t-in) ease calc(var(--t-out) + var(--t-bg) * .7), visibility 0s calc(var(--t-out) + var(--t-bg) * .7); }
  .plan-tx { min-width: 0; }
  .plans-slide .eyebrow { color: rgba(255,255,255,.85); margin-bottom: 18px; }
  .plans-slide h2 { color: #fff; font: 300 clamp(2rem, 1.2rem + 3.2vw, 3.8rem)/1.06 var(--serif); letter-spacing: -.008em; max-width: 14em; text-wrap: balance; }
  .plans-slide h2 .it { font-style: italic; color: #E6CBA9; }
  .plan-p { margin-top: 20px; max-width: 46ch; color: rgba(255,255,255,.9); font-weight: 300; font-size: var(--t-body); line-height: 1.5; letter-spacing: .01em; }
  .plan-cta { margin-top: 28px; }
  .plan-tx > *, .plans-slide .glass-tile { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
  .plans-slide.on .plan-tx > *, .plans-slide.on .glass-tile { opacity: 1; transform: none; transition: opacity var(--t-in) ease calc(var(--t-out) + var(--t-bg) * .7 + var(--k, 0s)), transform var(--t-in) ease calc(var(--t-out) + var(--t-bg) * .7 + var(--k, 0s)); }
  .plan-tx > :nth-child(2) { --k: .12s; } .plan-tx > :nth-child(3) { --k: .24s; } .plan-tx > :nth-child(4) { --k: .36s; } .plan-tx > :nth-child(5) { --k: .48s; }
  .plans-slide .glass-tile { --k: .3s; justify-self: end; width: min(100%, 360px); }
  .plans-top { position: absolute; z-index: 3; top: 26px; left: var(--edge); right: var(--edge); display: grid; gap: 14px; }
  .plans-bars { display: flex; gap: 8px; }
  .plans-bar { position: relative; flex: 1; height: 18px; padding: 0; border: 0; background: none; cursor: pointer; }
  .plans-bar::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 3px; border-radius: 3px; background: rgba(255,255,255,.3); }
  .plans-bar i { position: absolute; left: 0; top: 7px; height: 3px; width: 0; border-radius: 3px; background: #fff; }
  .plans-bar.done i { width: 100%; }
  .plans-bar.on i { animation: plansFill 9s linear var(--lag) forwards; }
  @keyframes plansFill { from { width: 0; } to { width: 100%; } }
  .plans.paused .plans-bar.on i { animation-play-state: paused; }
  .plans.still .plans-bar.on i { animation: none; width: 100%; }
  .plans-bar:focus-visible, .plans-pause:focus-visible, .plans-prev:focus-visible, .plans-next:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
  .plans-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .plans-pause, .plans-prev, .plans-next { display: grid; place-items: center; border-radius: 50%; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  .plans-iso { display: block; width: 40px; line-height: 0; color: #fff; }
  .plans-iso svg { display: block; width: 100%; height: auto; }
  .plans-pause { width: 38px; height: 38px; padding: 0; cursor: pointer; }
  .plans-pause svg, .plans-prev svg, .plans-next svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
  .plans-pause .i-play { display: none; fill: currentColor; stroke: none; }
  .plans-pause[aria-pressed="true"] .i-pause { display: none; } .plans-pause[aria-pressed="true"] .i-play { display: block; }
  .plans-foot { position: absolute; z-index: 3; left: var(--edge); right: var(--edge); bottom: 28px; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
  .plans-foot > * { pointer-events: auto; }
  .plans-brand { color: rgba(255,255,255,.92); }
  .plans-brand i { font: italic 300 1.3rem/1 var(--serif); letter-spacing: .01em; }
  .plans-nav { display: flex; gap: 10px; }
  .plans-prev, .plans-next { width: 44px; height: 44px; padding: 0; cursor: pointer; transition: background .25s var(--ease); }
  .plans-prev:hover, .plans-next:hover { background: rgba(255,255,255,.3); }
  html:not(.js) .plans { display: block; } html:not(.js) .plans-slide { position: relative; opacity: 1; visibility: visible; padding-block: 120px 80px; } html:not(.js) .plan-tx > *, html:not(.js) .plans-slide .glass-tile { opacity: 1; transform: none; } html:not(.js) .plans-top, html:not(.js) .plans-foot { display: none; }
  @media (max-width: 899px) {
    /* La altura la fija el script según el plan activo y cambia con una transición larga, a mitad del fundido de fondos */
    .plans { --edge: 30px; display: block; height: 620px; min-height: 0; transition: height 1.5s cubic-bezier(.65, 0, .35, 1) var(--t-out); }
    .plans-slide { position: absolute; top: 0; left: 0; right: 0; height: 100%; grid-template-columns: 1fr; align-content: center; padding: 116px var(--edge) 100px; gap: 28px; }
    .plans .glass-tile { justify-self: stretch; width: auto; }
    .plan-bg.pa { background: linear-gradient(180deg, rgba(24,14,8,.66) 0%, rgba(24,14,8,.5) 32%, rgba(24,14,8,.5) 62%, rgba(24,14,8,.86) 100%), var(--img-planes-boda-v, url("../img/planes/boda-v.webp")) 50% 40% / cover no-repeat; }
    .plan-bg.pb { background: linear-gradient(180deg, rgba(24,14,8,.66) 0%, rgba(24,14,8,.5) 32%, rgba(24,14,8,.5) 62%, rgba(24,14,8,.86) 100%), var(--img-planes-skincare-v, url("../img/planes/skincare-v.webp")) 50% 40% / cover no-repeat; }
    .plan-bg.pd { background: linear-gradient(180deg, rgba(24,14,8,.66) 0%, rgba(24,14,8,.5) 32%, rgba(24,14,8,.5) 62%, rgba(24,14,8,.86) 100%), var(--img-planes-depilacion-v, url("../img/planes/depilacion-v.webp")) 50% 50% / cover no-repeat; }
    .plan-bg.pc { background: linear-gradient(180deg, rgba(24,14,8,.66) 0%, rgba(24,14,8,.5) 32%, rgba(24,14,8,.5) 62%, rgba(24,14,8,.86) 100%), var(--img-planes-tratamientos-faciales-v, url("../img/planes/tratamientos-faciales-v.webp")) 50% 35% / cover no-repeat; }
    html:not(.js) .plans { height: auto; }
    html:not(.js) .plans-slide { position: relative; height: auto; }
  }
  @media (prefers-reduced-motion: reduce) {
    .plans { --t-out: .01s; --t-bg: .01s; --t-in: .01s; transition: none; }
    .plan-bg { animation: none; }
    .plan-tx > *, .plans-slide .glass-tile { transform: none; }
    .plans-bar.on i { animation: none; width: 100%; }
  }


  /* ---------- Reseñas de Google: estrellas, cita y firma dentro de la tarjeta de cristal ---------- */
  .trust { --cw: min(82vw, 340px); }
  .quote { min-height: 250px; align-content: start; gap: 14px; }
  .quote .stars { display: flex; gap: 3px; }
  .quote .stars svg { width: 16px; height: 16px; fill: #C9A24B; }
  .quote blockquote { margin: 0; }
  .quote blockquote p { font-size: 1.12rem; line-height: 1.4; }
  .quote small { align-self: flex-start; font: 400 .7rem var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--verde); }
  .trust-more { margin-top: 26px; }
  .quote { display: flex; flex-direction: column; }
  .quote small { margin-top: auto; padding-top: 14px; }
  .quote { padding-bottom: 24px; }


  /* ---------- Logotipo real (SVG en línea, toma el color del texto: crema sobre el hero, madera con la cabecera sólida) ---------- */
  .logo { display: inline-flex; align-items: center; line-height: 0; }
  .logo svg { display: block; width: 100%; height: auto; }
  .logo-full { display: block; width: clamp(200px, 17vw, 250px); }
  .logo-mark { display: none; width: 42px; }
  .logo-foot .logo-full { width: 220px; }
  @media (max-width: 899px) { .hdr .logo-full { display: none; } .hdr .logo-mark { display: block; } }

  /* ---------- La clínica: manifiesto, fotos y presentación ---------- */
  .s-clinica { position: relative; overflow: hidden; padding-block: clamp(72px, 9vw, 130px) clamp(56px, 7vw, 110px); }
  .clinica-mark { position: absolute; left: -9%; top: -6%; width: min(72vw, 860px); color: rgba(150,118,76,.26); pointer-events: none; z-index: 0; }
  .clinica-mark { filter: url(#grano-logo); -webkit-filter: url(#grano-logo); }
  .clinica-mark svg { display: block; width: 100%; height: auto; }
  .s-clinica > .wrap, .s-clinica .clinica-fotos { position: relative; z-index: 1; }
  .manifesto { font: 300 clamp(1.25rem, .95rem + 1.45vw, 1.9rem)/1.25 var(--serif); letter-spacing: .01em; text-transform: uppercase; text-indent: 12%; text-wrap: pretty; margin-top: 26px; color: var(--madera); }
  .manifesto strong { font-weight: 500; }
  .manifesto .w { display: inline; }
  .js .manifesto.split .w { opacity: 0; transition: opacity .5s ease; transition-delay: var(--d, 0s); }
  .js .manifesto.split.in .w { opacity: 1; }
  .clinica-fotos { display: grid; grid-template-columns: 276fr 677fr 331fr; gap: clamp(16px, 3.4vw, 48px); align-items: start; padding-inline: clamp(16px, 2.1vw, 30px); margin-top: clamp(40px, 5vw, 70px); }
  .cf { margin: 0; overflow: hidden; background: #E9E0D2; }
  .cf img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .cf-a { aspect-ratio: 276 / 368; align-self: end; }
  .cf-b { aspect-ratio: 677 / 664; }
  .cf-c { aspect-ratio: 331 / 443; }
  .clinica-p { max-width: none; margin-top: clamp(40px, 5vw, 70px); color: var(--verde); font-weight: 300; font-size: clamp(1rem, 1.5vw, 1.3rem); line-height: 1.5; letter-spacing: .01em; font-family: var(--serif); }
  .clinica-p strong { font-weight: 400; color: var(--madera); }
  .clinica-cta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; margin-top: 34px; }
  .btn-pill-line { background: transparent; color: var(--madera); border: 1px solid rgba(58,44,37,.35); cursor: pointer; }
  .btn-pill-line:hover { background: rgba(58,44,37,.07); }
  @media (max-width: 899px) {
    .manifesto { text-indent: 0; font-size: clamp(1.15rem, 5.4vw, 1.5rem); }
    .clinica-fotos { grid-template-columns: 1fr 1fr; padding-inline: 30px; gap: 14px; }
    .cf-b { grid-column: 1 / -1; aspect-ratio: 4 / 5; }
    .cf-c { margin-top: 36px; }
    .clinica-mark { width: 120vw; left: -30%; }
  }
  @media (prefers-reduced-motion: reduce) { .js .manifesto.split .w { opacity: 1; transition: none; } }

  /* ---------- Escritorio: los carruseles (especialidades, ofertas, reseñas y Journal) salen a sangre por la derecha, arrancan alineados con el contenido y al desplazar llegan al borde izquierdo ---------- */
  @media (min-width: 900px) {
    .car-track:not(.sgrid) { --edge: calc((100vw - min(1440px, 100vw)) / 2 + var(--gut)); width: 100vw; margin-inline: calc(50% - 50vw); padding-left: 0; padding-right: var(--edge); scroll-padding-inline: 0; }
    .car-track:not(.sgrid)::before { content: ""; flex: none; width: calc(var(--edge) - var(--cgap, 16px)); scroll-snap-align: start; }
    #hs.car-track { --cgap: 20px; }
  }

  /* ---------- Escritorio: cabecera y hero con la composición de la web de pruebas (márgenes anchos, logotipo a la izquierda y «Menú» a la derecha, texto arriba a la izquierda, caja de cristal ancha abajo a la derecha) ---------- */
  @media (min-width: 900px) {
    .hdr .wrap.in { max-width: none; padding-inline: clamp(64px, 7vw, 128px); padding-top: 22px; }
    .hdr .nav .lnk, .hdr .nav .iconbtn, .hdr .nav .btn-primary { display: none; }
    .hero { align-items: stretch; padding-block: clamp(150px, 20vh, 210px) 64px; }
    .hero .wrap.hero-in { max-width: none; width: 100%; padding-inline: clamp(64px, 7vw, 128px); grid-template-columns: minmax(0, 1fr) minmax(0, min(700px, 49vw)); align-items: stretch; }
    .hero-copy { align-self: start; }
    .hero-side { align-self: end; }
    .hero h1 { font-size: clamp(2.4rem, 4.5vw, 5.6rem); max-width: 12.5em; }
    .hero .lead { max-width: 42ch; }
    .hero-card { padding: 24px 32px 26px; }
    .hero-card .chip2 { min-height: 31px; padding: 0 12px; font-size: .76rem; gap: 6px; }
    .hero-card .chips2 { gap: 7px; }
    .hero-card .gl { margin: 16px 0 8px; }
  }


  /* ---------- Texto sobre las especialidades médicas: declaración a todo el ancho, texto pequeño debajo y licencia ---------- */
  .s-concepto { padding-block: clamp(72px, 8vw, 120px) clamp(40px, 5vw, 72px); }
  .concepto-in .eyebrow { margin-bottom: 18px; }
  .area-medica { display: flex; justify-content: flex-end; margin-top: 22px; }
  .concepto-h { font: 400 clamp(1.3rem, .55rem + 2.1vw, 2.6rem)/1.2 var(--serif); text-transform: uppercase; letter-spacing: .005em; color: var(--tinta); text-wrap: pretty; }
  .concepto-h strong { font-weight: 700; color: var(--madera); }
  .concepto-p { max-width: none; margin-top: clamp(28px, 3.5vw, 48px); font: 300 var(--t-body)/1.5 var(--sans); letter-spacing: .01em; color: var(--tinta); text-wrap: pretty; }
  .concepto-lic { margin-top: 26px; font: 400 .82rem/1.6 var(--sans); letter-spacing: .01em; color: var(--tinta); }
  @media (max-width: 899px) { .concepto-h { font-size: clamp(1.2rem, 5vw, 1.55rem); } }

  /* Logotipo desenfocado con grano también en la zona de estética; texto de especialidades al 80 % */
  .s-marca { position: relative; overflow-x: clip; }
  .s-marca > .wrap { position: relative; z-index: 1; }
  .s-marca .marca-b { left: auto; right: -14%; top: auto; bottom: -48%; width: min(70vw, 820px); }
  .contact-p { margin-top: 12px; color: var(--verde); font-weight: 300; line-height: 1.5; max-width: 52ch; }
  @media (min-width: 900px) { .concepto-p { max-width: 80%; text-align: left; } }
  @media (max-width: 899px) { .s-marca .marca-b { width: 120vw; right: -40%; bottom: -30%; } }

  /* Cifra grande de fondo tras el texto de especialidades: Inria Sans bold, baja opacidad y grano */
  .s-concepto { position: relative; overflow-x: clip; }
  .s-concepto > .wrap { position: relative; z-index: 1; }
  .concepto-num { position: absolute; right: 3%; top: 50%; transform: translateY(-50%); z-index: 0; pointer-events: none; user-select: none; font: 700 clamp(15rem, 44vw, 42rem)/.8 var(--sans); letter-spacing: -.04em; color: rgba(150,118,76,.2); filter: url(#grano-num); white-space: nowrap; }
  @media (max-width: 899px) { .concepto-num { font-size: 62vw; right: -6%; } }
  .s-marca .num-est { right: 3%; top: -2%; transform: none; font-size: clamp(13rem, 36vw, 34rem); }
  @media (max-width: 899px) { .s-marca .num-est { font-size: 56vw; right: -4%; top: 0; } }
  .sh.sh-big { max-width: none; gap: 0; }
  .sh.sh-big .eyebrow { margin-bottom: 18px; }
  .sh.sh-big .concepto-h { margin: 0; }
  .sh.sh-big .concepto-p { margin-top: clamp(28px, 3.5vw, 48px); color: var(--tinta); }
  .s-marca .marca-b { top: -14%; bottom: auto; }
  /* Titulares largos al 80 % del ancho de caja (ordenador); el body conserva su medida */
  @media (min-width: 900px) { .sh.sh-80 { max-width: 80%; flex: 0 1 80%; } .sh.sh-80 p:not(.eyebrow) { max-width: 60ch; } }
  @media (min-width: 900px) { .sh.sh-80 h2 { text-wrap: pretty; } .row-head > .btn-pill-line { margin-left: auto; } }
  /* Línea y botón al pie de la selección de temporada */
  .row-foot { display: flex; justify-content: flex-end; margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(58,44,37,.18); }
  /* Mismo espacio entre secciones (128 px escritorio / 96 px móvil): sólo el padding inferior de cada una */
  section.s.s-plans { padding-top: 0; }
  section.s.s-concepto { padding-top: clamp(40px, 6vw, 80px); }
  /* Banner de depilación (cuarto plan) y fotografía en las tarjetas de temporada */
  .plan-bg.pd { background: linear-gradient(90deg, rgba(24,14,8,.74) 0%, rgba(24,14,8,.42) 45%, rgba(24,14,8,.08) 100%), var(--img-planes-depilacion-h, url("../img/planes/depilacion-h.webp")) 50% 60% / cover no-repeat; }
  .stile .spec-img { transition: transform .7s cubic-bezier(.22,.61,.36,1); }
  @media (hover: hover) { .stile:hover .spec-img { transform: scale(1.04); } }
  @media (prefers-reduced-motion: reduce) { .stile .spec-img { transition: none; } }
  .stile .spec-img + .spec-shade { background: linear-gradient(180deg, rgba(36,20,12,.10) 20%, rgba(36,20,12,.80)); }
  /* Móvil: las tres declaraciones (La clínica, especialidades médicas y estética) con el mismo tamaño; botones de pie a la derecha */
  @media (max-width: 899px) {
    .manifesto, .concepto-h { font-size: clamp(1.35rem, 6vw, 1.7rem); line-height: 1.32; }
    .manifesto, .concepto-h { font-weight: 300; }
    .manifesto strong, .concepto-h strong { font-weight: 400; }
    .row-more, .trust-more { text-align: right; }
  }
  /* Móvil: fotos de «La clínica» una por fila; la primera más grande a la izquierda, la tercera más grande a la derecha */
  @media (max-width: 899px) {
    .clinica-fotos { grid-template-columns: 1fr; }
    .cf-a { width: 64%; justify-self: start; }
    .cf-b { grid-column: auto; }
    .cf-c { width: 64%; justify-self: end; margin-top: 0; }
  }

  /* Lista de tarifas: «+ información» desplegable, etiqueta comercial y contacto por WhatsApp */
  .res-i { border-top: 1px solid var(--linea); }
  .res-r { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 13px 0 4px; }
  .res-r b { font-weight: 400; font-size: 1.05rem; }
  .res-r small { display: block; color: var(--verde); font-weight: 300; font-size: .84rem; margin-top: 2px; }
  .res-r .amt { font: 400 .95rem var(--mono); white-space: nowrap; text-align: right; }
  .res-r .amt s { color: var(--verde); margin-right: 6px; font-size: .8rem; }
  .etq { display: inline-block; vertical-align: middle; margin-left: 6px; padding: 2px 10px; border-radius: 999px; font: 400 .66rem var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--terra-txt); background: rgba(175,57,0,.1); border: 1px solid rgba(175,57,0,.22); }
  .res-i .mas { margin: 0 0 12px; padding: 4px 0; min-height: 32px; border: 0; background: none; cursor: pointer; font: 400 .84rem var(--sans); letter-spacing: .02em; color: var(--terra-txt); text-decoration: underline; text-underline-offset: 3px; }
  .res-i .mas:focus-visible { outline: 2px solid var(--terra-txt); outline-offset: 3px; }
  .inf { padding: 2px 0 18px; display: grid; gap: 14px; }
  .inf p { max-width: 62ch; margin: 0; color: var(--verde); font-weight: 300; line-height: 1.6; font-size: var(--t-body); }
  .inf-a { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
  .inf-ver { font-size: .84rem; color: var(--verde); }

  /* ---------- Temporada: cajas irregulares a pantalla completa. Arriba, dentro de la imagen, la etiqueta; debajo, el texto sobre el fondo claro. ---------- */
  .stile { --pad: 18px; --ar: 4 / 5; min-height: 0; background: none; color: var(--fg, #3A2C25); border-radius: 0; align-content: start; gap: 16px; }
  .stile:hover, .stile:focus { color: var(--fg, #3A2C25); }
  .stile-box { position: relative; display: block; aspect-ratio: var(--ar); border-radius: 4px; overflow: hidden; isolation: isolate; background: #2B2724; }
  .stile .stile-box .spec-media { z-index: 0; }
  .stile .stile-box .spec-shade { background: linear-gradient(180deg, rgba(36,20,12,.34), rgba(36,20,12,0) 36%); }
  .stile .stile-chip { position: absolute; top: var(--pad); left: var(--pad); z-index: 1; }
  /* Textos con la tipografía original de las tarjetas (spec-title / spec-text / spec-price); sólo cambia el color, ahora sobre fondo claro */
  .stile .spec-body { gap: 12px; }
  .stile .spec-title { color: var(--fg, #3A2C25); }
  .stile .spec-text { color: rgba(58,44,37,.78); }
  .stile .spec-price { color: var(--accent, #A5503A); }
  .stile:nth-child(6n+1) { --ar: 4 / 5.2; } .stile:nth-child(6n+2) { --ar: 1 / 1; } .stile:nth-child(6n+3) { --ar: 3 / 4.6; }
  .stile:nth-child(6n+4) { --ar: 4 / 4.6; } .stile:nth-child(6n+5) { --ar: 4 / 6; } .stile:nth-child(6n) { --ar: 1 / 1.12; }
  /* Carrusel de temporada, de lado a lado de la pantalla: en reposo cinco cajas ocupan todo el ancho, con en los extremos el mismo margen que hay entre cajas y las otras tres llegan con las flechas o el arrastre. */
  .sgrid { align-items: start; }
  @media (min-width: 900px) {
    :is(#temporada, #catalogo) { --gap: clamp(12px, 1.4vw, 24px); --pad: var(--gap); --ctl: var(--gap); }
    :is(#temporada, #catalogo) .car-wrap { width: 100vw; margin-inline: calc(50% - 50vw); max-width: none; }
    :is(#temporada, #catalogo) .car-ctl { margin-right: var(--ctl); }
    :is(#temporada, #catalogo) .car-bar { margin-inline: var(--ctl); }
    :is(#temporada, #catalogo) .sgrid { --cw: calc((100vw - 6 * var(--gap)) / 5); gap: var(--gap); margin-inline: 0; padding: 4px var(--pad) 6px; scroll-padding-inline: var(--pad); }
    :is(#temporada, #catalogo) .sgrid::before { display: none; }
    :is(#temporada, #catalogo) .sgrid > * { width: calc(var(--cw) * var(--f, 1)); }
    :is(#temporada, #catalogo) .sgrid > :nth-child(8n+1) { --f: 1.1; } :is(#temporada, #catalogo) .sgrid > :nth-child(8n+2) { --f: .9; } :is(#temporada, #catalogo) .sgrid > :nth-child(8n+3) { --f: 1.2; } :is(#temporada, #catalogo) .sgrid > :nth-child(8n+4) { --f: .95; }
    :is(#temporada, #catalogo) .sgrid > :nth-child(8n+5) { --f: .85; } :is(#temporada, #catalogo) .sgrid > :nth-child(8n+6) { --f: 1.15; } :is(#temporada, #catalogo) .sgrid > :nth-child(8n+7) { --f: .9; } :is(#temporada, #catalogo) .sgrid > :nth-child(8n+8) { --f: .95; }
    :is(#temporada, #catalogo) .row-foot { margin-top: 36px; }
    /* Con las cajas de borde a borde son más anchas: proporciones menos altas y un pequeño margen para el texto de debajo */
    :is(#temporada, #catalogo) .stile:nth-child(8n+1) { --ar: 4 / 4.4; } :is(#temporada, #catalogo) .stile:nth-child(8n+2) { --ar: 1 / .86; } :is(#temporada, #catalogo) .stile:nth-child(8n+3) { --ar: 3 / 3.4; } :is(#temporada, #catalogo) .stile:nth-child(8n+4) { --ar: 4 / 4.2; }
    :is(#temporada, #catalogo) .stile:nth-child(8n+5) { --ar: 4 / 5; } :is(#temporada, #catalogo) .stile:nth-child(8n+6) { --ar: 1 / .95; } :is(#temporada, #catalogo) .stile:nth-child(8n+7) { --ar: 4 / 4.6; } :is(#temporada, #catalogo) .stile:nth-child(8n+8) { --ar: 1 / 1.05; }
    :is(#temporada, #catalogo) .stile .spec-body { padding-inline: clamp(12px, 1.2vw, 20px); }
  }
  @media (max-width: 899px) { .sgrid > * { width: min(66vw, 260px); } }

  /* ---------- Menú: mismo espacio arriba que abajo y fondo que se desvanece hasta el 0 % ---------- */
  .hdr.solid::before { content: ""; position: absolute; inset: 0 0 -28px; z-index: -1; pointer-events: none;
    background: linear-gradient(180deg, rgba(250,247,242,.92) 0%, rgba(250,247,242,.88) 55%, rgba(250,247,242,0) 100%);
    -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 55%, transparent 100%); }
  .hdr .wrap.in { padding-block: 22px; min-height: 0; }
  @media (max-width: 899px) { .hdr .wrap.in { padding-block: 14px; min-height: 0; } }

  /* Red de seguridad: la página nunca puede desplazarse en horizontal (evita que se «desparrame» por la derecha) */
  html, body { overflow-x: hidden; max-width: 100%; }
  @supports (overflow: clip) { html, body { overflow-x: clip; } }

  /* ---------- Cabecera: fondo que se funde sobre el contenido (degradado limpio, sin desenfoque), como una cortina que desaparece ---------- */
  .hdr.solid::before { inset: 0 0 -64px; -webkit-backdrop-filter: none; backdrop-filter: none;
    background: linear-gradient(180deg, rgba(250,247,242,1) 0%, rgba(250,247,242,.96) 38%, rgba(250,247,242,.6) 70%, rgba(250,247,242,0) 100%);
    -webkit-mask-image: none; mask-image: none; }

  /* ---------- Ajustes: logo en Confianza, sin barra plana en Otoño, titulares de Medicina y Estética como el texto de La clínica (escritorio) ---------- */
  #confianza .marca-conf { right: auto; bottom: auto; left: -12%; top: -4%; width: min(60vw, 720px); }
  @media (max-width: 899px) { #confianza .marca-conf { left: -40%; top: 0; width: 120vw; } }
  #temporada .row-foot { border-top: 0; padding-top: 0; }
  @media (min-width: 900px) {
    .concepto-h { font: 300 clamp(1.25rem, .95rem + 1.45vw, 1.9rem)/1.25 var(--serif); letter-spacing: .01em; color: var(--madera); }
    .concepto-h strong { font-weight: 500; color: var(--madera); }
    .concepto-h { text-indent: 12%; }
  }

  /* Fundido del menú con el MISMO fondo que hay detrás: copia sincronizada del fondo vivo (aura.js) dentro de la cabecera, con máscara de degradado a 0 %. */
  .hdr.solid::before { display: none; }
  .hdr-fondo { position: absolute; inset: 0 0 -64px; z-index: -1; overflow: hidden; contain: paint; pointer-events: none; opacity: 0; transition: opacity .35s var(--ease); background: var(--marfil);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0,0,0,.55) 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0,0,0,.55) 70%, transparent 100%); }
  .hdr-fondo .aura-bg { position: fixed; inset: auto; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 0; contain: strict; }
  .hdr.solid .hdr-fondo { opacity: 1; }
  .hdr.hide .hdr-fondo { opacity: 0; }

  /* ---------- Menú: fondo sutil (franja corta y muy suave) y logotipo móvil un 10 % mayor, centrado con el botón ---------- */
  .hdr-fondo { inset: 0 0 -26px; opacity: 0;
    -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.86) 45%, rgba(0,0,0,.4) 78%, transparent 100%); mask-image: linear-gradient(180deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.86) 45%, rgba(0,0,0,.4) 78%, transparent 100%); }
  @media (max-width: 899px) {
    .hdr .logo-mark { width: 46.2px; }
    .hdr .in { align-items: center; }
    .hdr .logo { align-self: center; }
  }
  /* Con la cabecera oculta (al bajar) no debe quedar el fundido asomando por arriba: se aparta del todo y el fundido se apaga. */
  .hdr.hide { transform: translateY(calc(-100% - 80px)); }
  .hdr.hide::before { opacity: 0; }
  /* ---------- Líneas de composición (escritorio ≥ 1100 px): las cajas de Estética ocupan una franja centrada de ≈63 % del ancho (de la línea izquierda a la derecha) y el carrusel de especialidades arranca en la línea izquierda y sale a sangre por la derecha ---------- */
  @media (min-width: 1100px) {
    :root { --franja: min(max(63vw, 880px), calc(100vw - 60px)); }
    #estetica .mosaic { width: var(--franja); max-width: none; margin-inline: auto; }
    #hs.car-track::before { width: calc((100vw - var(--franja)) / 2 - var(--cgap, 20px)); }
  }

  /* ---------- Presupuesto orientativo (panel de precios) ---------- */
  .res-i .add { display: inline-flex; align-items: center; min-height: 36px; margin: 8px 0 0 14px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(58,44,37,.3); background: transparent; color: var(--madera); font: 400 .78rem var(--sans); cursor: pointer; }
  .res-i .add:hover { background: rgba(58,44,37,.06); }
  .res-i .add[aria-pressed="true"] { background: var(--madera); border-color: var(--madera); color: var(--marfil); }
  .pbar { position: sticky; bottom: -34px; margin: 18px -10px -28px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 20px; background: var(--madera); color: var(--marfil); box-shadow: 0 18px 40px -18px rgba(40,28,22,.55); }
  .pbar[hidden] { display: none; }
  .pbar span { display: grid; line-height: 1.25; } .pbar b { font-weight: 400; font-size: .95rem; } .pbar small { color: rgba(250,247,242,.75); font-size: .78rem; }
  .btn-pill-dark { background: var(--marfil); color: var(--madera); border: 1px solid transparent; cursor: pointer; }
  #pbud .btn-pill-dark { background: var(--madera); color: var(--marfil); }
  .bud-volver { background: none; border: 0; padding: 14px 0 6px; color: var(--terra-txt); font: 400 .82rem var(--sans); cursor: pointer; }
  .bud-h { font: 300 1.7rem/1.15 var(--serif); margin: 6px 0 14px; }
  .bud-l { display: grid; border-top: 1px solid rgba(58,44,37,.14); }
  .bud-r { display: grid; grid-template-columns: minmax(0, 1fr) auto 32px; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(58,44,37,.1); }
  .bud-r b { font-weight: 400; display: block; } .bud-r small { color: var(--verde); font-size: .76rem; }
  .bud-r .amt { white-space: nowrap; } .bud-r s { opacity: .55; margin-right: 6px; }
  .bud-x { width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(58,44,37,.2); background: transparent; color: var(--madera); cursor: pointer; }
  .bud-t { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 0 6px; } .bud-t b { font: 300 1.9rem var(--serif); }
  .bud-nota { font-size: .8rem; color: var(--verde); margin: 4px 0 20px; }
  .bud-s { font: 400 .68rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--verde); margin: 0 0 10px; }
  .bud-pago { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bud-op { text-align: left; display: grid; gap: 6px; padding: 14px 16px; border-radius: 18px; border: 1px solid rgba(58,44,37,.22); background: transparent; color: var(--madera); cursor: pointer; font-family: var(--sans); }
  .bud-op b { font-weight: 400; font-size: .95rem; } .bud-op small { font-size: .76rem; color: var(--verde); line-height: 1.4; }
  .bud-op[disabled] { opacity: .5; cursor: default; }
  .bud-op[aria-pressed="true"] { background: var(--beige); border-color: var(--madera); box-shadow: 0 0 0 1px var(--madera) inset; }
  .bud-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
  @media (max-width: 560px) { .bud-pago { grid-template-columns: minmax(0, 1fr); } }

  /* ---------- Logotipo de la cabecera un 20 % mayor (Home y páginas de servicio) ---------- */
  .hdr .logo-full { width: clamp(240px, 20.4vw, 300px); }
  @media (max-width: 899px) { .hdr .logo-mark { width: 55.4px; } }

  /* ---------- Panel de precios: familias (p. ej. «Labios») con sus variantes y su sección «Bonos y descuentos» ---------- */
  .fam { margin: 14px 0 22px; padding: 6px 18px 10px; border-radius: 22px; background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px rgba(58,44,37,.08); }
  .fam-t { margin: 0; padding: 16px 0 6px; font: 300 1.35rem/1.15 var(--serif); letter-spacing: -.005em; color: var(--madera); }
  .fam .res-i:first-of-type { border-top: 0; }
  .fam-b { margin: 18px 0 2px; padding-top: 14px; border-top: 1px dashed rgba(58,44,37,.25); font: 400 .64rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--terra-txt); }
  .fam-solo { background: none; box-shadow: none; padding: 0; margin: 0; }
  .nota-p { display: block; margin-top: 2px; color: var(--terra-txt); }

/* Depilación (banner de planes) en móvil: la regla de escritorio de arriba va después, así que se repite la vertical */
@media (max-width: 899px) {
  .plan-bg.pd { background: linear-gradient(180deg, rgba(24,14,8,.66) 0%, rgba(24,14,8,.5) 32%, rgba(24,14,8,.5) 62%, rgba(24,14,8,.86) 100%), var(--img-planes-depilacion-v, url("../img/planes/depilacion-v.webp")) 50% 50% / cover no-repeat; }
}

/* ---------- Pie editorial claro: panel marfil redondeado con frase, contacto, columnas, marca grande y barra legal oscura ---------- */
footer.f.ft { background: var(--madera); color: var(--tinta); padding: clamp(10px, 1.2vw, 16px) clamp(10px, 1.2vw, 16px) 0; }
.ft-panel { background: #FAF7F2; border-radius: 22px; padding: clamp(28px, 4.5vw, 72px) clamp(22px, 5vw, 96px) clamp(20px, 3vw, 40px); max-width: 1600px; margin-inline: auto; }
.ft-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.ft-grid-2 { margin-top: clamp(64px, 9vw, 150px); }
.ft-grid-3 { margin-top: clamp(24px, 4vw, 56px); align-items: end; }
.ft-lead { margin: 0; max-width: 24em; font: 300 clamp(1.25rem, .95rem + 1.45vw, 1.9rem)/1.28 var(--serif); color: #8E877F; text-wrap: pretty; }
.ft-lead strong { font-weight: 400; color: var(--madera); }
.ft-quien { display: flex; align-items: center; gap: 12px; margin-top: clamp(20px, 2.4vw, 32px); }
.ft-av { width: 34px; height: 34px; border-radius: 50%; background: rgba(58,44,37,.08); color: var(--madera); display: grid; place-items: center; flex: none; }
.ft-av svg { width: 20px; height: auto; }
.ft-quien b { display: block; font: 400 .84rem/1.2 var(--sans); color: var(--madera); }
.ft-quien small { display: block; font: 300 .74rem/1.3 var(--sans); color: var(--verde); }
.ft-h { margin: 0; font: 300 clamp(1.7rem, 1.2rem + 1.8vw, 2.6rem)/1.1 var(--serif); letter-spacing: -.01em; color: var(--madera); }
.ft-h .it { font-style: italic; color: var(--terra-txt); }
.ft-cta-bt { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ft-btn-dark { background: var(--madera); color: var(--marfil); border: 1px solid transparent; cursor: pointer; }
.ft-btn-dark:hover { background: #4a362d; }
.ft-nota { margin: 16px 0 0; max-width: 46ch; font: 300 .84rem/1.55 var(--sans); color: var(--verde); }
.ft-cell { position: relative; padding-top: 26px; }
.ft-plus { position: absolute; top: 0; left: 0; width: 26px; height: 26px; border: 1px solid currentColor; border-radius: 50%; color: rgba(58,44,37,.45); }
.ft-plus::before, .ft-plus::after { content: ""; position: absolute; background: currentColor; }
.ft-plus::before { left: 7px; right: 7px; top: 12px; height: 1px; }
.ft-plus::after { top: 7px; bottom: 7px; left: 12px; width: 1px; }
.ft-contacto { display: grid; gap: 6px; align-content: start; }
.ft-contacto a, .ft-contacto address { font-style: normal; }
footer.f.ft .ft-tel { color: var(--madera); text-decoration: none; font: 300 .98rem var(--sans); }
footer.f.ft .ft-mail { justify-self: start; color: var(--madera); font: 300 clamp(1.15rem, 1rem + .7vw, 1.55rem)/1.2 var(--serif); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; overflow-wrap: anywhere; }
.ft-contacto address { margin-top: 10px; font: 300 .86rem/1.55 var(--sans); color: var(--verde); }
.ft-navs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 32px); }
.ft-c h3 { margin: 0 0 12px; font: 400 .7rem var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--verde); }
footer.f.ft .ft-c a { display: block; padding: 3px 0; color: var(--madera); text-decoration: none; font: 300 1rem/1.35 var(--serif); overflow-wrap: anywhere; }
footer.f.ft .ft-c a:hover { color: var(--terra-txt); }
footer.f.ft .ft-c a i { font-style: normal; font-size: .7em; color: var(--verde); }
.ft-c .pend { font-size: .82rem; color: var(--verde); }
footer.f.ft .ft-top-link { color: var(--verde); font: 300 .84rem var(--sans); text-decoration: none; }
.ft-marca { line-height: 1; user-select: none; pointer-events: none; }
.ft-marca span { display: block; font: 400 clamp(4rem, 12.5vw, 12rem)/.82 var(--serif); letter-spacing: -.045em; color: var(--madera); }
.ft-marca small { display: block; margin-top: clamp(6px, 1vw, 14px); font: 300 clamp(1rem, .8rem + .9vw, 1.7rem)/1.1 var(--serif); color: var(--madera); }
.ft-barra { max-width: 1600px; margin-inline: auto; }
.ft-barra-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 28px; padding: 18px clamp(12px, 3vw, 96px) 22px; font: 300 .78rem/1.5 var(--sans); color: #C9B8A2; }
.ft-barra .linklike { color: #E9DFD2; }
.ft-barra .pend { color: #E6CBA9; }
@media (max-width: 1099px) { .ft-navs { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } }
@media (max-width: 899px) {
  footer.f.ft { padding-bottom: 96px; }
  .ft-grid { grid-template-columns: minmax(0, 1fr); }
  .ft-grid-2 { margin-top: 56px; }
  .ft-cta-bt .btn-pill { flex: 1 1 100%; justify-content: center; }
  .ft-grid-3 { align-items: start; }
  .ft-marca span { font-size: 24vw; }
}

/* ---------- Banners de planes: tarjeta interactiva básica (sólo escritorio) y ventana emergente ---------- */
.plan-mini { display: none; }
@media (min-width: 900px) {
  .plan-mini { display: grid; gap: 14px; align-content: start; justify-self: end; width: min(100%, 380px); padding: 28px 26px 26px; border-radius: 28px; color: #fff; --k: .3s;
    background: linear-gradient(160deg, rgba(255,255,255,.2), rgba(255,255,255,.07)); -webkit-backdrop-filter: blur(26px) saturate(1.3); backdrop-filter: blur(26px) saturate(1.3);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.3), inset 0 1px 0 rgba(255,255,255,.4), 0 24px 60px rgba(20,10,4,.35);
    opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
  .plans-slide.on .plan-mini { opacity: 1; transform: none; transition: opacity var(--t-in) ease calc(var(--t-out) + var(--t-bg) * .7 + var(--k)), transform var(--t-in) ease calc(var(--t-out) + var(--t-bg) * .7 + var(--k)); }
  .pm-k { margin: 0; font: 400 .7rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.78); }
  .plan-mini h3 { margin: 0; font: 300 1.55rem/1.12 var(--serif); color: #fff; }
  .pm-go { justify-self: start; margin-top: 6px; }
}
@media (max-width: 899px) { .plan-mini { display: none !important; } }

#plan .scrim { background: rgba(36,20,12,.5); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.planpop { position: absolute; left: 50%; top: 50%; width: min(940px, calc(100% - 32px)); max-height: calc(100svh - 48px); overflow: auto; overscroll-behavior: contain; transform: translate(-50%, -46%) scale(.97); transition: transform .45s var(--ease); padding: 40px 36px 30px; border-radius: 30px; color: #fff;
  background: linear-gradient(160deg, rgba(255,255,255,.26), rgba(255,255,255,.1)); -webkit-backdrop-filter: blur(30px) saturate(1.3); backdrop-filter: blur(30px) saturate(1.3);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.34), inset 0 1px 0 rgba(255,255,255,.5), 0 30px 80px rgba(20,10,4,.4); }
.layer.open .planpop { transform: translate(-50%, -50%); }
.planpop .eyebrow { color: rgba(255,255,255,.82); margin-bottom: 14px; }
.planpop h2 { color: #fff; font: 300 clamp(1.8rem, 1.2rem + 1.6vw, 2.5rem)/1.1 var(--serif); }
.planpop h2 i { color: #E6CBA9; }
.pp-step .gl { margin: 0 0 10px; font: 400 .7rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.pp-res { margin-top: 24px; padding: 20px 22px; border-radius: 20px; background: rgba(20,10,4,.28); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); min-height: 64px; font-weight: 300; line-height: 1.55; }
.pp-res p { margin: 0 0 8px; } .pp-res p:last-child { margin-bottom: 0; }
.pp-res b { font-weight: 500; color: #fff; }
.pp-peq { font-size: .86rem; color: rgba(255,255,255,.78); }
.pp-etapas { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.pp-etapas li { display: grid; gap: 2px; padding-left: 16px; border-left: 2px solid rgba(255,255,255,.28); }
.pp-etapas li.on { border-left-color: #E6CBA9; }
.pp-mom { margin: 14px 0 4px !important; font: 400 .7rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.pp-pasos { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pp-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.btn-pill-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); }
.btn-pill-ghost:hover { background: #fff; color: var(--madera); }
.pp-nota { margin: 16px 0 0; font-size: .8rem; color: rgba(255,255,255,.75); font-weight: 300; }
.planpop .pend { color: #F4C9B0; font-size: .8rem; }

/* ---- Piezas interactivas de los banners ---- */
.pw { position: relative; }
.pw svg { display: block; width: 100%; height: 100%; touch-action: none; }
.pw-mapa { height: 196px; } .pw-rueda { height: 196px; } .pw-pad { height: 150px; }
.pw-big.pw-mapa { height: 380px; } .pw-big.pw-rueda { height: 330px; } .pw-big.pw-pad { height: 300px; }
.pm-live { margin: 0; min-height: 1.5em; font: 300 .92rem/1.4 var(--sans); color: rgba(255,255,255,.9); text-align: center; }
.pm-live b { font-weight: 500; color: #fff; }
.ln { fill: none; stroke: rgba(255,255,255,.78); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.ln.fino { stroke-opacity: .42; stroke-width: .9; }
.sil { fill: rgba(255,255,255,.04); stroke: none; }
.gd { fill: none; stroke: rgba(255,255,255,.2); stroke-width: .7; stroke-dasharray: 3 4; }
.pup { fill: rgba(255,255,255,.85); }
.hs { cursor: pointer; outline: none; }
.hs-hit { fill: transparent; }
.hs-ring { fill: rgba(255,255,255,.07); stroke: rgba(255,255,255,.65); stroke-width: 1; transform-box: fill-box; transform-origin: center; animation: hsPulse 2.8s ease-in-out infinite; transition: fill .3s, stroke .3s; }
.hs:nth-child(2n) .hs-ring { animation-delay: .7s; } .hs:nth-child(3n) .hs-ring { animation-delay: 1.4s; }
.hs-dot { fill: #fff; transition: fill .3s; }
.hs:hover .hs-ring { fill: rgba(255,255,255,.28); }
.hs:focus-visible .hs-ring { stroke: #fff; stroke-width: 2.4; }
.hs.on .hs-ring { fill: rgba(230,203,169,.5); stroke: #E6CBA9; animation: none; }
.hs.on .hs-dot { fill: #E6CBA9; }
@keyframes hsPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.35); opacity: .55; } }
.pt { fill: rgba(255,255,255,.08); stroke: rgba(255,255,255,.4); stroke-width: 1; cursor: pointer; transition: fill .35s, stroke .35s; }
.pt:hover { fill: rgba(255,255,255,.2); }
.pt.on { fill: rgba(230,203,169,.68); stroke: #E6CBA9; }
.pw-rueda svg { cursor: grab; outline: none; } .pw-rueda svg:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 24px; }
.rn { font: 300 56px var(--serif); fill: #fff; pointer-events: none; }
.ru { font: 400 10.5px var(--sans); letter-spacing: .18em; text-transform: uppercase; fill: rgba(255,255,255,.82); pointer-events: none; }
.pad { position: relative; height: 100%; border-radius: 22px; cursor: grab; touch-action: none; outline: none; overflow: hidden;
  background: radial-gradient(70% 60% at 50% -12%, rgba(244,190,170,.55), transparent 70%), linear-gradient(90deg, rgba(214,140,100,.42), rgba(255,255,255,.06) 50%, rgba(150,184,160,.4));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.3), inset 0 1px 0 rgba(255,255,255,.4); }
.pad:focus-visible { box-shadow: inset 0 0 0 2px #fff; }
.pad-l { position: absolute; font: 400 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.8); pointer-events: none; }
.pad-t { top: 10px; left: 50%; transform: translateX(-50%); } .pad-b { bottom: 10px; left: 50%; transform: translateX(-50%); }
.pad-i { left: 12px; top: 50%; transform: translateY(-50%); } .pad-d { right: 12px; top: 50%; transform: translateY(-50%); }
.orb { position: absolute; width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; pointer-events: none; transition: left .14s ease-out, top .14s ease-out;
  background: radial-gradient(circle at 34% 28%, #fff 0%, #F3E2C8 38%, #C79B6C 100%); box-shadow: 0 8px 22px rgba(20,10,4,.4), 0 0 0 7px rgba(255,255,255,.2), 0 0 34px rgba(230,203,169,.7); }
.pp-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(20px, 3vw, 40px); margin-top: 24px; align-items: start; }
.pp-vis { display: grid; gap: 10px; }
.pp-side { display: grid; gap: 20px; align-content: start; }
.pp-side .pp-res { margin-top: 0; }
@media (prefers-reduced-motion: reduce) { .hs-ring { animation: none; } .orb { transition: none; } }

/* ---- Segunda mano de creatividad: luz que florece, anotaciones, barrido, pétalos en cascada, gotas y entrada escalonada ---- */
.bloom { opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.35); transition: opacity .6s ease, transform .8s cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.bloom.on { opacity: 1; transform: scale(1); animation: bloomRespira 4.2s ease-in-out .8s infinite; }
@keyframes bloomRespira { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.14); } }
.lead { stroke: rgba(255,255,255,.28); stroke-width: .8; stroke-dasharray: 2 3; transition: stroke .4s; }
.lbl { font: 300 9.6px var(--sans); letter-spacing: .02em; fill: rgba(255,255,255,.5); transition: fill .4s; pointer-events: none; }
.an.on .lead { stroke: #E6CBA9; stroke-dasharray: none; } .an.on .lbl { fill: #fff; font-weight: 400; }
.scan { opacity: 0; transform: translateY(-60px); animation: barrido 6s ease-in-out infinite; pointer-events: none; mix-blend-mode: screen; }
@keyframes barrido { 0% { transform: translateY(-60px); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { transform: translateY(290px); opacity: 0; } }

.pt { transition: fill .45s ease, stroke .45s ease, transform .6s cubic-bezier(.2,.8,.2,1); transition-delay: calc(var(--i) * 24ms); transform-box: fill-box; transform-origin: 50% 100%; }
.pt.on { animation: petalo 5.5s ease-in-out infinite; animation-delay: calc(var(--i) * -.45s); }
@keyframes petalo { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.07, 1.04); } }
.rd { font: 300 9.4px var(--sans); letter-spacing: .1em; text-transform: uppercase; fill: rgba(255,255,255,.7); pointer-events: none; }

.pad::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(190px circle at var(--ox, 50%) var(--oy, 50%), var(--tint, rgba(255,255,255,.28)), transparent 70%); transition: background .3s; }
.pad[data-t="Seca"] { --tint: rgba(232,150,108,.6); } .pad[data-t="Grasa"] { --tint: rgba(150,204,170,.55); } .pad[data-t="Sensible"] { --tint: rgba(246,166,160,.6); } .pad[data-t="Mixta"] { --tint: rgba(246,226,190,.5); }
.pad-l { transition: color .3s, opacity .3s; } .pad-l.hot { color: #fff; text-shadow: 0 0 14px rgba(255,255,255,.9); }
.orb { z-index: 2; animation: perla 6s ease-in-out infinite; }
@keyframes perla { 0%, 100% { border-radius: 50% 50% 50% 50%; } 33% { border-radius: 54% 46% 50% 50% / 48% 52% 48% 52%; } 66% { border-radius: 46% 54% 52% 48% / 52% 48% 52% 48%; } }
.tr { position: absolute; z-index: 1; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at 35% 30%, #fff, rgba(243,226,200,.7) 60%, transparent 72%); animation: gota .8s ease-out forwards; }
@keyframes gota { from { opacity: .9; transform: scale(1); } to { opacity: 0; transform: scale(.2) translateY(14px); } }
.rip { position: absolute; z-index: 1; width: 20px; height: 20px; margin: -10px 0 0 -10px; border-radius: 50%; pointer-events: none; border: 1.5px solid rgba(255,255,255,.8); animation: onda .9s ease-out forwards; }
@keyframes onda { from { opacity: .9; transform: scale(1); } to { opacity: 0; transform: scale(9); } }

/* Foco de luz que sigue al cursor sobre el cristal */
.plan-mini, .planpop { --mx: 50%; --my: 0%; }
.plan-mini::before, .planpop::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(300px circle at var(--mx) var(--my), rgba(255,255,255,.2), transparent 62%); opacity: 0; transition: opacity .35s; z-index: 0; }
.plan-mini:hover::before, .planpop:hover::before { opacity: 1; }
.plan-mini { position: relative; }
.plan-mini > *, .planpop > *:not(.cita-x) { position: relative; z-index: 1; }

/* Entrada escalonada de la ventana */
.layer.open .planpop .eyebrow, .layer.open .planpop h2, .layer.open .planpop .cita-sub, .layer.open .pp-vis, .layer.open .pp-side > *, .layer.open .pp-cta, .layer.open .pp-nota { animation: ppSube .7s cubic-bezier(.2,.8,.2,1) both; }
.layer.open .planpop h2 { animation-delay: .06s; } .layer.open .planpop .cita-sub { animation-delay: .12s; } .layer.open .pp-vis { animation-delay: .2s; }
.layer.open .pp-side > :nth-child(1) { animation-delay: .28s; } .layer.open .pp-side > :nth-child(2) { animation-delay: .36s; } .layer.open .pp-cta { animation-delay: .46s; } .layer.open .pp-nota { animation-delay: .52s; }
@keyframes ppSube { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.pp-pasos li, .pp-etapas li { animation: ppSube .55s cubic-bezier(.2,.8,.2,1) both; }
.pp-etapas li:nth-child(2), .pp-pasos li:nth-child(2) { animation-delay: .07s; } .pp-etapas li:nth-child(3), .pp-pasos li:nth-child(3) { animation-delay: .14s; } .pp-etapas li:nth-child(4) { animation-delay: .21s; } .pp-etapas li:nth-child(5) { animation-delay: .28s; }
@media (prefers-reduced-motion: reduce) { .scan, .bloom.on, .pt.on, .orb, .layer.open .planpop *, .pp-pasos li, .pp-etapas li { animation: none !important; } .tr, .rip { display: none; } }

/* Banners de planes (escritorio): más aire por los laterales, con el mismo margen ancho que la cabecera y el hero */
@media (min-width: 900px) {
  .plans { --edge: clamp(64px, 7vw, 128px); }
}

/* ---- Silueta del cuerpo (depilación): fondo de cristal, zonas con borde discontinuo que se rellenan al elegirlas ---- */
.pw-mapa:has(.cp-base) { height: 252px; }
.pw-big.pw-mapa:has(.cp-base) { height: auto; }
.pw-big .pw-ctl { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.pw-big:has(.cp-base) svg { height: 390px; }
.cp-base { fill: rgba(255,255,255,.2); stroke: rgba(255,255,255,.2); stroke-linecap: round; stroke-linejoin: round; }
.rg { cursor: pointer; outline: none; }
.rg .fl { fill: rgba(255,255,255,.01); stroke: rgba(255,255,255,.7); stroke-width: .9; stroke-dasharray: 2.5 2.5; transition: fill .25s var(--ease); }
.rg .st { fill: none; stroke: rgba(255,255,255,0); stroke-linecap: round; transition: stroke .25s var(--ease); }
.rg:hover .fl { fill: rgba(255,255,255,.3); } .rg:hover .st { stroke: rgba(255,255,255,.32); }
.rg.on .fl { fill: rgba(230,203,169,.9); stroke: none; animation: glow .5s var(--ease); }
.rg.on .st { stroke: rgba(230,203,169,.9); animation: glow .5s var(--ease); }
.rg:focus-visible .fl { stroke: #fff; stroke-dasharray: none; stroke-width: 1.6; } .rg:focus-visible .st { stroke: rgba(255,255,255,.6); }
@keyframes glow { 0% { opacity: .3; } 100% { opacity: 1; } }
.seg { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
.seg button { height: 32px; padding: 0 14px; border-radius: 999px; border: 0; background: transparent; color: rgba(255,255,255,.88); font: 400 .8rem var(--sans); cursor: pointer; transition: background .25s, color .25s; }
.seg button[aria-pressed="true"] { background: #fff; color: var(--madera); font-weight: 500; }

/* Pie en el verde del menú desplegable (#43402D), con el amarillo suave de su palabra grande */
footer.f.ft { background: #37352A; }
footer.f.ft .ft-panel { background: #43402D; color: #E9E4D0; }
footer.f.ft .ft-lead { color: #BDB8A0; }
footer.f.ft .ft-lead strong { color: #F4EFE9; }
footer.f.ft .ft-av { background: rgba(236,227,162,.12); color: #ECE3A2; }
footer.f.ft .ft-quien b { color: #F4EFE9; }
footer.f.ft .ft-quien small, footer.f.ft .ft-nota, footer.f.ft .ft-contacto address, footer.f.ft .ft-c h3, footer.f.ft .ft-top-link, footer.f.ft .ft-c .pend, footer.f.ft .ft-c a i { color: #BDB8A0; }
footer.f.ft .ft-h { color: #F4EFE9; }
footer.f.ft .ft-h .it { color: #ECE3A2; }
footer.f.ft .ft-btn-dark { background: #F4EFE9; color: #43402D; }
footer.f.ft .ft-btn-dark:hover { background: #fff; }
footer.f.ft .btn-pill-line { color: #F4EFE9; border-color: rgba(244,239,233,.4); }
footer.f.ft .btn-pill-line:hover { background: #F4EFE9; color: #43402D; }
footer.f.ft .ft-plus { color: rgba(236,227,162,.6); }
footer.f.ft .ft-tel, footer.f.ft .ft-mail { color: #F4EFE9; }
footer.f.ft .ft-c a { color: #E9E4D0; }
footer.f.ft .ft-c a:hover { color: #ECE3A2; }
footer.f.ft .ft-marca span, footer.f.ft .ft-marca small { color: #ECE3A2; }
footer.f.ft .ft-barra-in { color: #BDB8A0; }
footer.f.ft .ft-barra .linklike { color: #E9E4D0; }

/* Pie: mismo margen por los laterales que por arriba, fondo del color de la web y tarjeta a todo el ancho */
footer.f.ft { background: transparent; padding: clamp(12px, 1.2vw, 20px); padding-bottom: clamp(12px, 1.2vw, 20px); }
.ft-card { border-radius: 22px; overflow: hidden; background: #43402D; }
footer.f.ft .ft-panel { max-width: none; margin: 0; border-radius: 0; }
footer.f.ft .ft-barra { max-width: none; margin: 0; background: #37352A; }
@media (max-width: 899px) { footer.f.ft { padding-bottom: 96px; } }
/* Barra legal del pie: mismo verde que el panel, separada por una línea fina */
footer.f.ft .ft-barra { background: #43402D; border-top: 1px solid rgba(236,227,162,.22); }
footer.f.ft .ft-barra-in { padding-top: 20px; }
.ft-marca small { font-family: var(--sans); font-weight: 300; letter-spacing: .01em; }
.ft-marca { display: grid; width: max-content; max-width: 100%; justify-items: end; }
.ft-marca small { text-align: right; }
/* Líneas del pie: la de abajo no llega a los extremos (mismo margen que el contenido) y otra sobre los servicios */
footer.f.ft .ft-barra { border-top: 0; padding-inline: clamp(22px, 5vw, 96px); }
footer.f.ft .ft-barra-in { padding-inline: 0; border-top: 1px solid rgba(236,227,162,.22); padding-top: 20px; }
footer.f.ft .ft-grid-2 { border-top: 1px solid rgba(236,227,162,.22); }
footer.f.ft .ft-grid-2 .ft-plus { top: -13px; background: #43402D; }
/* Las marcas «+» quedan por debajo de la línea, sin tocarla */
footer.f.ft .ft-grid-2 .ft-plus { top: 14px; }
footer.f.ft .ft-grid-2 .ft-cell { padding-top: 48px; }

/* Pie: tipografías mucho más pequeñas, sólo en móvil (en ordenador se mantienen los tamaños anteriores) */
@media (max-width: 899px) {
  footer.f.ft .ft-lead { font-size: clamp(1.05rem, .9rem + .7vw, 1.4rem); }
  footer.f.ft .ft-h { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.75rem); }
  footer.f.ft .ft-nota { font-size: .72rem; }
  footer.f.ft .ft-quien b { font-size: .74rem; }
  footer.f.ft .ft-quien small { font-size: .66rem; }
  footer.f.ft .ft-tel { font-size: .8rem; }
  footer.f.ft .ft-mail { font-size: clamp(.95rem, .85rem + .3vw, 1.1rem); }
  footer.f.ft .ft-contacto address { font-size: .74rem; }
  footer.f.ft .ft-c h3 { font-size: .6rem; margin-bottom: 8px; }
  footer.f.ft .ft-c a { font-size: .84rem; padding: 2px 0; }
  footer.f.ft .ft-c .pend, footer.f.ft .ft-top-link { font-size: .72rem; }
  footer.f.ft .ft-barra-in { font-size: .66rem; }
  footer.f.ft .ft-marca small { font-size: clamp(.8rem, .7rem + .4vw, 1.05rem); }
}

/* ---------- Trabaja con nosotros: botón del pie y ventana con el formulario ---------- */
footer.f.ft .ft-abajo { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
footer.f.ft .ft-trabaja { min-height: 40px; }
dialog.trabaja-dlg { margin: auto; inset: 0; height: fit-content; border: 0; padding: 0; width: min(640px, calc(100vw - 24px)); max-height: calc(100dvh - 32px); border-radius: 26px; color: var(--madera); overflow: auto; overscroll-behavior: contain;
  background: rgba(250,247,242,.82); -webkit-backdrop-filter: blur(26px) saturate(1.25); backdrop-filter: blur(26px) saturate(1.25);
  box-shadow: 0 30px 80px rgba(26,18,16,.28), inset 0 1px 0 rgba(255,255,255,.7), inset 0 0 0 1px rgba(255,255,255,.5); }
dialog.trabaja-dlg::backdrop { background: rgba(26,18,16,.38); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
dialog.trabaja-dlg[open] { animation: trEntra .35s var(--ease) both; }
dialog.trabaja-dlg[open]::backdrop { animation: trFondo .35s ease both; }
@keyframes trEntra { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes trFondo { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { dialog.trabaja-dlg[open], dialog.trabaja-dlg[open]::backdrop { animation: none; } }
html.tr-abierto { overflow: hidden; }
.tr-in { position: relative; padding: clamp(24px, 3.4vw, 40px); }
.tr-x { position: absolute; top: 16px; right: 16px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(58,44,37,.08); color: var(--madera); cursor: pointer; display: grid; place-items: center; }
.tr-x:hover { background: rgba(58,44,37,.16); }
.tr-x svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.tr-kicker { margin: 0 0 8px; font: 400 .7rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--terra-txt); }
.trabaja-dlg h2 { margin: 0 0 12px; font: 300 clamp(1.6rem, 1.3rem + 1vw, 2.2rem)/1.1 var(--serif); letter-spacing: -.01em; padding-right: 40px; }
.tr-intro { margin: 0 0 22px; font: 300 var(--t-body)/1.55 var(--sans); color: var(--verde); max-width: 54ch; }
.trabaja-dlg form { display: grid; gap: 14px; }
.tr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tr-f { display: grid; gap: 6px; font: 400 .8rem var(--sans); color: var(--madera); position: relative; }
.tr-f > span small, .tr-chk small { font-weight: 300; color: var(--verde); }
.tr-f input[type=text], .tr-f input[type=email], .tr-f input[type=tel], .tr-f select, .tr-f textarea { width: 100%; min-height: 46px; padding: 0 16px; border: 1px solid rgba(58,44,37,.14); border-radius: 16px; background: rgba(255,255,255,.7); color: var(--madera); font: 300 1rem var(--sans); transition: border-color .2s, background .2s; }
.tr-f textarea { padding: 12px 16px; resize: vertical; min-height: 84px; line-height: 1.45; }
.tr-f input:focus-visible, .tr-f select:focus-visible, .tr-f textarea:focus-visible { outline: 2px solid var(--terra); outline-offset: 1px; background: #fff; }
.tr-cv input[type=file] { position: absolute; inset: 22px 0 0 0; opacity: 0; cursor: pointer; width: 100%; height: calc(100% - 22px); }
.tr-cv { grid-template-columns: auto 1fr; align-items: center; column-gap: 14px; }
.tr-cv > span { grid-column: 1 / -1; }
.tr-cv-btn { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border-radius: 999px; background: #fff; border: 1px dashed rgba(58,44,37,.35); font: 400 .72rem var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.tr-cv-nombre { font: 300 .9rem var(--sans); font-style: normal; color: var(--verde); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-cv:focus-within .tr-cv-btn { outline: 2px solid var(--terra); outline-offset: 2px; }
.tr-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tr-chk { display: flex; gap: 10px; align-items: flex-start; font: 300 .88rem/1.45 var(--sans); color: var(--madera); cursor: pointer; }
.tr-chk input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--terra); flex: none; }
.tr-chk a { color: var(--terra-txt); }
.tr-info { padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.6); font: 300 .82rem/1.5 var(--sans); color: var(--verde); }
.tr-info p { margin: 0 0 6px; } .tr-info p:last-child { margin: 0; } .tr-info b { font-weight: 400; color: var(--madera); }
.tr-error { margin: 0; padding: 12px 16px; border-radius: 16px; background: #F7E1DA; color: #8A3A22; font: 400 .88rem/1.4 var(--sans); }
.tr-enviar { justify-self: start; min-height: 48px; }
.tr-enviar[disabled] { opacity: .6; cursor: progress; }
.tr-ok .btn-pill { margin-top: 6px; }
@media (max-width: 640px) {
  .tr-grid { grid-template-columns: minmax(0, 1fr); }
  dialog.trabaja-dlg { border-radius: 22px; }
  .tr-cv { grid-template-columns: minmax(0, 1fr); } .tr-cv-nombre { grid-column: 1 / -1; }
}

/* ---------- Plan de novias · «El camino hasta tu boda» (ventana del plan) ---------- */
.planpop.es-camino { width: min(640px, calc(100% - 32px)); }
.cm { position: relative; display: grid; gap: 4px; }
.cm > * { position: relative; z-index: 1; }
.cm .cm-flor { position: absolute; z-index: 0; right: -70px; top: -60px; width: 260px; height: 260px; opacity: .1; color: #fff; transition: transform 1.1s cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.cm .cm-flor svg { width: 100%; height: 100%; display: block; }
.cm-gl { margin: 22px 0 10px; }
.cm .gl { font: 400 .7rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.82); }
.cm-meses { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; padding: 4px 2px 10px; margin-inline: -2px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.cm-meses::-webkit-scrollbar { display: none; }
.cm-mes { flex: none; scroll-snap-align: center; display: grid; justify-items: center; gap: 2px; min-width: 62px; padding: 12px 14px; border-radius: 20px; border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.08); color: #fff; cursor: pointer; transition: background .25s, transform .25s var(--ease), color .25s; }
.cm-mes b { font: 400 1.05rem var(--serif); text-transform: capitalize; } .cm-mes small { font: 300 .66rem var(--sans); letter-spacing: .06em; opacity: .8; }
.cm-mes:hover { background: rgba(255,255,255,.16); }
.cm-mes[aria-checked="true"] { background: #fff; color: var(--madera); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(20,10,4,.3); }
.cm-mes:focus-visible, .cm-nodo:focus-visible { outline: 2px solid #E6CBA9; outline-offset: 2px; }
.cm-cuenta { display: flex; align-items: baseline; gap: 12px; margin: 22px 0 4px; }
.cm-n { font: 300 clamp(3.4rem, 2.6rem + 3vw, 5rem)/.9 var(--serif); color: #fff; font-variant-numeric: tabular-nums; }
.cm-t { font: 300 1rem var(--sans); color: rgba(255,255,255,.85); }
.cm-camino { list-style: none; margin: 8px 0 0; padding: 0 0 0 4px; display: grid; gap: 0; position: relative; }
.cm-et { position: relative; padding-left: 34px; opacity: 0; transform: translateY(10px); }
.cm-camino.on .cm-et { animation: cmEntra .6s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i) * .11s); }
@keyframes cmEntra { to { opacity: 1; transform: none; } }
.cm-et::before { content: ""; position: absolute; left: 7px; top: 22px; bottom: -4px; width: 2px; background: linear-gradient(180deg, rgba(230,203,169,.9), rgba(255,255,255,.25)); transform-origin: top; }
.cm-camino.on .cm-et::before { animation: cmLinea .5s ease both; animation-delay: calc(var(--i) * .11s + .12s); }
@keyframes cmLinea { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.cm-et.cm-fin::before { display: none; }
.cm-nodo { position: relative; display: grid; gap: 2px; width: 100%; padding: 10px 0 12px; border: 0; background: none; color: #fff; text-align: left; cursor: pointer; font: inherit; }
.cm-nodo-fin { cursor: default; }
.cm-nodo i { position: absolute; left: -34px; top: 14px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255,255,255,.7); background: rgba(36,20,12,.5); }
.cm-et.aqui .cm-nodo i { background: #E6CBA9; border-color: #fff; box-shadow: 0 0 0 5px rgba(230,203,169,.28), 0 0 22px rgba(230,203,169,.7); animation: cmPulso 2.6s ease-in-out infinite; }
.cm-fin .cm-nodo i { background: #fff; border-color: #fff; border-radius: 4px; transform: rotate(45deg); }
@keyframes cmPulso { 0%, 100% { box-shadow: 0 0 0 5px rgba(230,203,169,.28), 0 0 22px rgba(230,203,169,.6); } 50% { box-shadow: 0 0 0 9px rgba(230,203,169,.12), 0 0 30px rgba(230,203,169,.85); } }
.cm-f { font: 400 .68rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.78); }
.cm-nodo b { font: 300 1.35rem/1.15 var(--serif); color: #fff; }
.cm-et:not(.cm-fin) .cm-nodo b::after { content: "＋"; margin-left: 10px; font: 300 1rem var(--sans); color: rgba(255,255,255,.6); }
.cm-et .cm-nodo[aria-expanded="true"] b::after { content: "−"; }
.cm-det { padding: 0 0 14px; display: grid; gap: 4px; }
.cm-det p { margin: 0; font: 300 var(--t-body)/1.5 var(--sans); color: rgba(255,255,255,.9); }
.cm .pp-cta { margin-top: 22px; }
@media (prefers-reduced-motion: reduce) { .cm-et { opacity: 1; transform: none; } .cm-camino.on .cm-et, .cm-camino.on .cm-et::before, .cm-et.aqui .cm-nodo i { animation: none; } .cm .cm-flor { transition: none; } }
/* Móvil: la ventana sube desde abajo como una hoja */
@media (max-width: 640px) {
  .planpop.es-camino { left: 5px; right: 5px; top: 5px; bottom: 5px; width: auto; height: auto; max-height: none; border-radius: 28px; padding: 30px 20px calc(24px + env(safe-area-inset-bottom)); transform: translateY(calc(100% + 10px)); }
  .layer.open .planpop.es-camino { transform: none; }
  .cm .cm-flor { right: -90px; top: -70px; width: 240px; height: 240px; }
  .cm-mes { min-width: 58px; padding: 11px 12px; }
}

/* Camino de novias: flor desenfocada, cinta de meses de extremo a extremo y tratamientos por etapa */
.planpop.es-camino { --cm-pad: 36px; }
.cm .cm-flor { filter: blur(9px); opacity: .16; }
.cm-meses { margin-inline: calc(var(--cm-pad) * -1); padding-inline: var(--cm-pad); scroll-padding-inline: var(--cm-pad); }
.cm-meses::after { content: ""; flex: 0 0 1px; }
.cm-items { list-style: none; margin: 8px 0 4px; padding: 0; display: grid; gap: 8px; }
.cm-it { display: grid; gap: 3px; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
.cm-it.base { background: rgba(230,203,169,.2); box-shadow: inset 0 0 0 1px rgba(230,203,169,.55); }
.cm-et-t { justify-self: start; font: 400 .6rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.cm-it.base .cm-et-t { color: #E6CBA9; }
.cm-it b { font: 400 1rem/1.25 var(--sans); color: #fff; }
.cm-it small { font: 300 .86rem/1.45 var(--sans); color: rgba(255,255,255,.85); }
.cm-aviso { font-style: italic; }
@media (max-width: 640px) { .planpop.es-camino { --cm-pad: 20px; } }
/* La ventana del camino nunca se desplaza de lado: la flor va en una caja que la recorta y la cinta de meses se mueve sola */
.planpop.es-camino { overflow-x: hidden; }
.cm { max-width: 100%; min-width: 0; }
.cm .cm-flor-w { position: absolute; z-index: 0; top: calc(var(--cm-pad) * -1); left: calc(var(--cm-pad) * -1); right: calc(var(--cm-pad) * -1); height: 300px; overflow: hidden; pointer-events: none; }
.cm .cm-flor-w .cm-flor { right: -60px; top: -30px; }
.cm-meses { position: relative; }

/* Camino de novias · «¿Por qué ahora?»: ilustración animada, dato clave y motivos de cada etapa */
.cm-pq { display: grid; grid-template-columns: 150px 1fr; gap: 6px 16px; align-items: center; margin: 10px 0 6px; padding: 16px; border-radius: 22px; position: relative; overflow: hidden;
  background: linear-gradient(150deg, rgba(255,255,255,.2), rgba(255,255,255,.07)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.26), inset 0 1px 0 rgba(255,255,255,.36); }
.cm-pq-v svg { width: 100%; height: auto; display: block; overflow: visible; }
.cm-pq-k { margin: 0 0 4px; font: 400 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #E6CBA9; }
.cm-pq-n { margin: 0; display: flex; align-items: baseline; gap: 8px; color: #fff; }
.cm-pq-n b { font: 300 clamp(2.2rem, 1.8rem + 2vw, 3rem)/.95 var(--serif); font-variant-numeric: tabular-nums; }
.cm-pq-n span { font: 300 1rem var(--sans); color: rgba(255,255,255,.88); }
.cm-det .cm-pq-d { margin: 4px 0 0; font: 300 .84rem/1.4 var(--sans); color: rgba(255,255,255,.85); }
.cm-det .cm-pq-x { grid-column: 1 / -1; margin: 10px 0 0; font: 300 .95rem/1.5 var(--sans); color: #fff; }
.cm-pq-p { grid-column: 1 / -1; list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 7px; }
.cm-pq-p li { position: relative; padding-left: 22px; font: 300 .88rem/1.4 var(--sans); color: rgba(255,255,255,.92); }
.cm-pq-p li::before { content: ""; position: absolute; left: 2px; top: .38em; width: 9px; height: 9px; border-radius: 50%; background: #E6CBA9; box-shadow: 0 0 0 3px rgba(230,203,169,.25); }
.cm-por { display: block; font: italic 300 .86rem/1.4 var(--serif); color: #fff; margin: 2px 0; }
/* Trazos de las ilustraciones */
.cm-pq svg path, .cm-pq svg circle { fill: none; stroke: rgba(255,255,255,.85); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cm-pq svg .il-p { stroke: #E6CBA9; fill: #E6CBA9; } .cm-pq svg .il-p.il-f { fill: rgba(230,203,169,.28); }
.cm-pq svg .il-m { fill: rgba(255,255,255,.9); stroke: none; }
.cm-pq svg .il-d { stroke: #E6CBA9; stroke-dasharray: 1; stroke-dashoffset: 1; animation: ilDibuja 1.5s cubic-bezier(.4,.1,.2,1) .15s forwards; }
@keyframes ilDibuja { to { stroke-dashoffset: 0; } }
.cm-pq svg .il-l { stroke-dasharray: 6 5; animation: ilFluye 3.2s linear infinite; } .cm-pq svg .l2 { opacity: .8; animation-duration: 4s; } .cm-pq svg .l3 { opacity: .6; animation-duration: 5s; }
@keyframes ilFluye { to { stroke-dashoffset: -44; } }
.cm-pq svg .il-up { stroke: #E6CBA9; opacity: 0; animation: ilSube 2.6s ease-in-out infinite; } .cm-pq svg .u2 { animation-delay: .5s; } .cm-pq svg .u3 { animation-delay: 1s; }
@keyframes ilSube { 0% { opacity: 0; transform: translateY(14px); } 35% { opacity: 1; } 100% { opacity: 0; transform: translateY(-12px); } }
.cm-pq svg .il-r { stroke: rgba(255,255,255,.35); }
.cm-pq svg .il-arc { stroke: #E6CBA9; stroke-width: 4; stroke-dasharray: 0 100; transform: rotate(-90deg); transform-origin: 80px 56px; animation: ilArco 1.6s cubic-bezier(.3,.1,.2,1) .2s forwards; }
@keyframes ilArco { to { stroke-dasharray: 30 70; } }
.cm-pq svg .il-ticks path { stroke: rgba(255,255,255,.7); }
.cm-pq svg .il-hand { stroke: #fff; transform-origin: 80px 56px; animation: ilManilla 2.2s cubic-bezier(.3,.1,.2,1) .2s both; }
@keyframes ilManilla { from { transform: rotate(0); } to { transform: rotate(360deg); } }
.cm-pq svg .il-rip { stroke: rgba(230,203,169,.7); transform-origin: 80px 68px; animation: ilOnda 2.8s ease-out infinite; } .cm-pq svg .r2 { animation-delay: 1.4s; }
@keyframes ilOnda { 0% { transform: scale(.5); opacity: .9; } 100% { transform: scale(1.5); opacity: 0; } }
.cm-pq svg .il-orb { stroke: rgba(255,255,255,.35); stroke-dasharray: 3 7; transform-origin: 80px 55px; animation: ilGira 24s linear infinite; }
@keyframes ilGira { to { transform: rotate(360deg); } }
.cm-pq svg .il-star { transform-origin: 80px 55px; animation: ilLate 3.4s ease-in-out infinite; }
@keyframes ilLate { 0%, 100% { transform: scale(.94); } 50% { transform: scale(1.06); } }
.cm-pq svg .il-tw { stroke: #fff; opacity: 0; animation: ilBrilla 2.6s ease-in-out infinite; } .cm-pq svg .t2 { animation-delay: .8s; } .cm-pq svg .t3 { animation-delay: 1.6s; }
@keyframes ilBrilla { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cm-pq svg * { animation: none !important; } .cm-pq svg .il-d { stroke-dashoffset: 0; } .cm-pq svg .il-arc { stroke-dasharray: 30 70; } .cm-pq svg .il-up, .cm-pq svg .il-tw { opacity: 1; } }
@media (max-width: 640px) { .cm-pq { grid-template-columns: 122px 1fr; padding: 14px; gap: 4px 10px; } .cm-pq-n b { font-size: 2.3rem; } }

/* Camino de novias · análisis: qué quieres cuidar y consejo personalizado */
.cm-ayuda { margin: -4px 0 10px; font: 300 .86rem/1.4 var(--sans); color: rgba(255,255,255,.82); }
.cm-ints { gap: 8px; }
.cm-an { margin: 18px 0 2px; padding: 18px; border-radius: 22px; background: linear-gradient(150deg, rgba(230,203,169,.3), rgba(230,203,169,.1)); box-shadow: inset 0 0 0 1px rgba(230,203,169,.55), inset 0 1px 0 rgba(255,255,255,.4); animation: cmAn .5s cubic-bezier(.2,.8,.2,1) both; }
@keyframes cmAn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.cm-an-k { margin: 0 0 4px; font: 400 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #E6CBA9; }
.cm-an-t { margin: 0 0 12px; font: 300 1.3rem/1.2 var(--serif); color: #fff; }
.cm-an-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.cm-an-i { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.2); }
.cm-an-i:first-child { padding-top: 0; border-top: 0; }
.cm-an-i > b { font: 400 1rem/1.25 var(--sans); color: #fff; }
.cm-an-a { font: 300 .84rem/1.4 var(--sans); color: rgba(255,255,255,.88); }
.cm-an-i.vacio .cm-an-a { font-style: italic; }
.cm-an-m { list-style: none; margin: 4px 0 0; padding: 0 0 0 12px; display: grid; gap: 6px; border-left: 2px solid rgba(230,203,169,.7); }
.cm-an-m li { display: grid; gap: 1px; font: 300 .88rem/1.35 var(--sans); color: #fff; }
.cm-an-f { font: 400 .62rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #E6CBA9; }
.cm-an-n { margin: 12px 0 0; font: 300 .8rem/1.4 var(--sans); color: rgba(255,255,255,.8); }
.cm-an-n:empty { display: none; }
.cm-pt-k { margin: 14px 0 2px; font: 400 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #E6CBA9; }
.cm-it.parati { background: linear-gradient(150deg, rgba(230,203,169,.28), rgba(230,203,169,.08)); box-shadow: inset 0 0 0 1px rgba(230,203,169,.6); }
.cm-it.parati .cm-et-t { color: #E6CBA9; }
@media (prefers-reduced-motion: reduce) { .cm-an { animation: none; } }

/* Camino de novias · versión más visual: mapa de fases, fases numeradas con su tono, iconos por tipo y registro para guardar */
.cm-hola { margin: 0 0 6px; font: italic 300 1.15rem var(--serif); color: #E6CBA9; }
.cm-mapa { margin: 14px 0 6px; padding: 14px 10px 12px; border-radius: 22px; background: linear-gradient(150deg, rgba(255,255,255,.18), rgba(255,255,255,.05)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); overflow-x: auto; scrollbar-width: none; }
.cm-mapa::-webkit-scrollbar { display: none; }
.cm-m-in { position: relative; display: flex; justify-content: space-between; gap: 2px; min-width: min-content; }
.cm-m-in::before { content: ""; position: absolute; left: 22px; right: 22px; top: 17px; height: 2px; background: linear-gradient(90deg, #E6CBA9, #DE8D6E 80%, #fff); opacity: .75; border-radius: 2px; }
.cm-seg { position: relative; flex: 1 1 0; min-width: 44px; display: grid; justify-items: center; gap: 2px; padding: 0 2px; border: 0; background: none; color: #fff; cursor: pointer; font: inherit; }
.cm-seg i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 400 .95rem var(--serif); font-style: normal; color: #3A2C25; background: var(--tono, #E6CBA9); box-shadow: 0 0 0 4px rgba(255,255,255,.12), 0 6px 14px rgba(20,10,4,.3); transition: transform .3s var(--ease); }
.cm-seg[data-k]:hover i { transform: scale(1.1); }
.cm-seg b { font: 400 .74rem var(--sans); margin-top: 4px; }
.cm-seg small { font: 300 .62rem var(--sans); letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.78); }
.cm-seg-fin i { background: #fff; border-radius: 12px; transform: rotate(45deg); } .cm-seg-fin i svg { width: 16px; height: 16px; fill: #3A2C25; stroke: none; transform: rotate(-45deg); }
.cm-seg:focus-visible { outline: 2px solid #E6CBA9; outline-offset: 2px; border-radius: 12px; }
/* Fases en el camino: punto numerado con su tono */
.cm-nodo i { left: -38px; top: 8px; width: 24px; height: 24px; display: grid; place-items: center; font: 400 .72rem var(--serif); font-style: normal; color: #3A2C25; background: var(--tono, #E6CBA9); border: 0; box-shadow: 0 0 0 4px rgba(255,255,255,.12); }
.cm-et.aqui .cm-nodo i { box-shadow: 0 0 0 5px rgba(230,203,169,.3), 0 0 22px rgba(230,203,169,.75); }
.cm-fin .cm-nodo i { background: #fff; border-radius: 7px; transform: rotate(45deg); }
.cm-et::before { left: 11px; top: 32px; }
.cm-et { padding-left: 38px; }
.cm-pq { box-shadow: inset 0 0 0 1px rgba(255,255,255,.26), inset 3px 0 0 var(--tono, #E6CBA9); }
.cm-et-t { display: inline-flex; align-items: center; gap: 6px; }
.cm-et-t svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.cm-it.base .cm-et-t svg, .cm-it.parati .cm-et-t svg { stroke: #E6CBA9; }
/* Guardar el camino y WhatsApp */
.cm-cta { flex-wrap: wrap; }
.btn-pill-wa { background: #25D366; color: #0B3D1E; border: 1px solid transparent; cursor: pointer; }
.btn-pill-wa:hover { background: #3CE07B; }
.btn-pill-wa svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; margin-right: 8px; }
.cm-guardar { margin-top: 16px; padding: 20px; border-radius: 22px; background: linear-gradient(150deg, rgba(230,203,169,.3), rgba(230,203,169,.1)); box-shadow: inset 0 0 0 1px rgba(230,203,169,.55), inset 0 1px 0 rgba(255,255,255,.4); animation: cmAn .5s cubic-bezier(.2,.8,.2,1) both; }
.cm-g-k { margin: 0 0 4px; font: 400 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #E6CBA9; }
.cm-g-t { margin: 0 0 14px; font: 300 1rem/1.45 var(--sans); color: #fff; }
.cm-g-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cm-g-ancho { grid-column: 1 / -1; }
.cm-g-f { display: grid; gap: 6px; font: 400 .78rem var(--sans); color: #fff; }
.cm-g-f small { font-weight: 300; color: rgba(255,255,255,.82); }
.cm-g-f input { width: 100%; min-height: 46px; padding: 0 16px; border: 1px solid rgba(255,255,255,.3); border-radius: 16px; background: rgba(255,255,255,.14); color: #fff; font: 300 1rem var(--sans); }
.cm-g-f input:focus-visible { outline: 2px solid #E6CBA9; outline-offset: 1px; background: rgba(255,255,255,.22); }
.cm-guardar form { display: grid; gap: 12px; }
.cm-g-chk { display: flex; gap: 10px; align-items: flex-start; font: 300 .86rem/1.45 var(--sans); color: #fff; cursor: pointer; }
.cm-g-chk input { width: 20px; height: 20px; margin-top: 2px; accent-color: #E6CBA9; flex: none; }
.cm-g-chk a { color: #E6CBA9; }
.cm-g-info { padding: 12px 14px; border-radius: 14px; background: rgba(20,10,4,.25); font: 300 .8rem/1.5 var(--sans); color: rgba(255,255,255,.9); } .cm-g-info p { margin: 0; }
.cm-g-err { margin: 0; padding: 10px 14px; border-radius: 14px; background: #F7E1DA; color: #8A3A22; font: 400 .86rem/1.4 var(--sans); }
.cm-guardar [data-cm-gbtn] { justify-self: start; }
.cm-g-link { display: flex; gap: 8px; align-items: center; } .cm-g-link input { flex: 1; min-width: 0; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.14); color: #fff; font: 300 .86rem var(--sans); }
.cm-g-n { margin: 10px 0 0; font: 300 .8rem/1.45 var(--sans); color: rgba(255,255,255,.85); }
@media (max-width: 640px) { .cm-g-grid { grid-template-columns: minmax(0, 1fr); } .cm-cta .btn-pill { flex: 1 1 100%; justify-content: center; } }

/* Pie: al tocar un enlace o botón no aparece el resalte azul del navegador; el foco con teclado sigue visible. */
footer.f.ft a, footer.f.ft button { -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; }
footer.f.ft a:focus:not(:focus-visible), footer.f.ft button:focus:not(:focus-visible) { outline: none; }
footer.f.ft .ft-c a, footer.f.ft .ft-abajo, footer.f.ft .ft-barra-in { -webkit-user-select: none; user-select: none; }

/* ---------- Boletín del pie y opción «Que te llamemos» ---------- */
button.cita-opt { width: 100%; border: 0; font: inherit; text-align: left; cursor: pointer; }
.ft-boletin { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: clamp(16px, 3vw, 48px); align-items: start; padding: clamp(18px, 2.4vw, 28px) 0; margin-top: 4px; border-top: 1px solid rgba(244,239,233,.14); }
.ft-bol-t h3 { margin: 0 0 6px; font: 400 .66rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: #BDB8A0; }
.ft-bol-t p { margin: 0; font: 300 1rem/1.4 var(--serif); color: #E9E4D0; max-width: 34ch; }
.ft-boletin form { display: grid; gap: 10px; }
.ft-bol-f { display: flex; gap: 10px; flex-wrap: wrap; }
.ft-bol-f input[type=email] { flex: 1 1 220px; min-width: 0; min-height: 46px; padding: 0 20px; border-radius: 999px; border: 1px solid rgba(244,239,233,.28); background: rgba(244,239,233,.08); color: #F4EFE9; font: 300 .95rem var(--sans); }
.ft-bol-f input[type=email]::placeholder { color: rgba(244,239,233,.6); }
.ft-bol-f input[type=email]:focus-visible { outline: 2px solid #ECE3A2; outline-offset: 2px; }
.ft-bol-chk { display: flex; gap: 10px; align-items: flex-start; font: 300 .76rem/1.45 var(--sans); color: #BDB8A0; cursor: pointer; }
.ft-bol-chk input { width: 18px; height: 18px; margin-top: 1px; accent-color: #ECE3A2; flex: none; }
.ft-bol-chk a { color: #E9E4D0; }
.ft-bol-msg { margin: 0; font: 400 .85rem/1.4 var(--sans); color: #F3C6B6; }
.ft-bol-msg.es-ok { color: #ECE3A2; }
@media (max-width: 760px) { .ft-boletin { grid-template-columns: minmax(0, 1fr); } }

/* Franja inferior del pie: los enlaces legales llevan el color del texto, no el azul por defecto del navegador. */
footer.f.ft .ft-barra a, footer.f.ft .ft-barra a:visited { color: inherit; text-decoration: none; }
footer.f.ft .ft-barra a:hover { color: #E9E4D0; }

/* Zonas de toque: los enlaces del pie y del menú miden al menos 32 px de alto (más cómodos con el dedo). */
footer.f.ft .ft-c a { min-height: 32px; display: flex; align-items: center; gap: .35em; }
.menu-sub a, .menu-acc a { display: inline-flex; align-items: center; min-height: 32px; }

/* Lo que más cuidamos ahora: titular grande y ligero, texto en dos columnas estrechas y sello circular con flecha */
:is(#temporada, .tp-sec) .tp-cab { position: relative; margin-bottom: clamp(34px, 5vw, 70px); }
:is(#temporada, .tp-sec) .tp-cab::before { content: ""; position: absolute; z-index: -1; top: -18vw; right: 6%; width: min(60vw, 760px); height: min(34vw, 420px); border-radius: 50%; background: radial-gradient(closest-side, rgba(214,178,98,.55), rgba(214,178,98,0)); filter: blur(30px); pointer-events: none; }
:is(#temporada, .tp-sec) .tp-h { margin: 18px 0 0; max-width: 80%; font: 300 clamp(1.25rem, .95rem + 1.45vw, 1.9rem)/1.25 var(--serif); letter-spacing: .01em; color: var(--madera); text-wrap: pretty; }
:is(#temporada, .tp-sec) .tp-cols { margin-left: 18%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 3.4vw, 56px); margin-top: clamp(26px, 3.4vw, 46px); }
:is(#temporada, .tp-sec) .tp-cols a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(58,44,37,.4); } :is(#temporada, .tp-sec) .tp-cols a:hover { text-decoration-color: currentColor; } :is(#temporada, .tp-sec) .tp-cols p { margin: 0 0 1.1em; font: 300 var(--t-body)/1.55 var(--sans); letter-spacing: .01em; color: var(--tinta); text-wrap: pretty; }
:is(#temporada, .tp-sec) .tp-pend { margin: 14px 0 0; font-size: .84rem; }
:is(#temporada, .tp-sec) .tp-go { display: inline-flex; align-items: center; gap: 22px; margin-top: clamp(24px, 3vw, 40px); color: var(--tinta); text-decoration: none; }
:is(#temporada, .tp-sec) .tp-sello { width: 78px; height: 78px; overflow: visible; }
:is(#temporada, .tp-sec) .tp-sello text { font: 400 8.6px var(--sans); letter-spacing: .16em; fill: currentColor; transform-origin: 50px 50px; animation: tpGira 18s linear infinite; }
:is(#temporada, .tp-sec) .tp-sello circle { fill: none; stroke: currentColor; stroke-width: 1.2; }
:is(#temporada, .tp-sec) .tp-flecha { position: relative; display: block; width: clamp(60px, 7vw, 110px); height: 1px; background: currentColor; transition: width .35s var(--ease); }
:is(#temporada, .tp-sec) .tp-flecha::after { content: ""; position: absolute; right: 0; top: -4px; width: 8px; height: 8px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
:is(#temporada, .tp-sec) .tp-go:hover .tp-flecha { width: clamp(80px, 9vw, 140px); }
:is(#temporada, .tp-sec) .tp-go:focus-visible { outline: 2px solid #AF3900; outline-offset: 6px; border-radius: 40px; }
@keyframes tpGira { to { transform: rotate(360deg); } }
@media (max-width: 899px) { :is(#temporada, .tp-sec) .tp-cols { margin-left: 0; grid-template-columns: minmax(0, 1fr); gap: 0; } :is(#temporada, .tp-sec) .tp-h { max-width: none; } :is(#temporada, .tp-sec) .tp-h { font-size: clamp(1.35rem, 6vw, 1.7rem); line-height: 1.32; } :is(#temporada, .tp-sec) .tp-cab::before { top: -30vw; right: -20%; } }
@media (prefers-reduced-motion: reduce) { :is(#temporada, .tp-sec) .tp-sello text { animation: none; } :is(#temporada, .tp-sec) .tp-flecha { transition: none; } }
@media (min-width: 900px) { :is(#temporada, .tp-sec) .tp-pend { margin-left: 18%; margin-top: 4px; } }

/* Pie en ordenador: más aire entre el círculo y lo que sigue, y entre bloques */
@media (min-width: 900px) {
  footer.f.ft .ft-grid-2 .ft-plus { top: 22px; }
  footer.f.ft .ft-grid-2 .ft-cell { padding-top: 92px; }
  footer.f.ft .ft-c h3 { margin-bottom: 26px; }
  footer.f.ft .ft-c a { padding-block: 5px; min-height: 36px; }
  footer.f.ft .ft-grid-2 { margin-top: clamp(80px, 9vw, 150px); padding-bottom: 28px; }
  footer.f.ft .ft-grid-3 { margin-top: clamp(48px, 5vw, 80px); }
  footer.f.ft .ft-contacto address { margin-top: 18px; line-height: 1.7; }
}


/* ===== Precios y tarifas · diseño visual y pensado para móvil ===== */
#prices .sheet { background: linear-gradient(180deg, #f6f0e8 0%, var(--marfil) 38%); }
#prices .hd { position: relative; z-index: 2; background: linear-gradient(180deg, #f6f0e8 70%, rgba(246,240,232,0)); padding-bottom: 14px; }
#prices .hd .tt h2 { font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.1rem); line-height: 1.05; letter-spacing: -.01em; }
#prices .p-sub { margin: 6px 0 0; font: 300 .86rem/1.45 var(--sans); color: var(--verde); max-width: 38ch; }
#prices input[type=search] { min-height: 50px; padding-left: 46px; border-radius: 999px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7266' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") no-repeat 16px center / 20px; box-shadow: 0 8px 24px -14px rgba(58,44,37,.4), inset 0 0 0 1px rgba(58,44,37,.08); font-size: 1rem; }
#prices input[type=search]:focus-visible { outline: 0; box-shadow: 0 8px 24px -14px rgba(58,44,37,.4), inset 0 0 0 1.5px var(--terra-txt); }
#prices .chips { margin-inline: -18px; padding-inline: 18px; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
#prices .chips .chip { min-height: 42px; padding-inline: 18px; border: 0; background: #fff; box-shadow: inset 0 0 0 1px rgba(58,44,37,.1); }
#prices .chips .chip[aria-pressed="true"] { background: var(--madera); color: #fff; box-shadow: none; }
#prices .bd { padding: 6px 18px 120px; }

/* Bloque por área */
#prices .grp { margin-top: 30px; --tono: #F0C9A8; }
#prices .grp:nth-of-type(4n+2) { --tono: #CBD6B0; } #prices .grp:nth-of-type(4n+3) { --tono: #E2D2B2; } #prices .grp:nth-of-type(4n+4) { --tono: #EDBFAE; }
#prices .grp-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(58,44,37,.14); }
#prices .grp-h h3 { margin: 0; font: 300 clamp(1.25rem, 1.05rem + 1vw, 1.5rem)/1.15 var(--serif); letter-spacing: -.005em; text-transform: none; color: var(--madera); }
#prices .grp-n { font: 400 .68rem var(--sans); letter-spacing: .1em; text-transform: uppercase; padding: 5px 11px; border-radius: 999px; background: rgba(255,255,255,.75); color: var(--verde); white-space: nowrap; }

/* Cada precio: tarjeta con el importe grande */
#prices .grp > .res-i, #prices .fam .res-i { position: relative; margin: 0 0 10px; padding: 14px 16px 10px; border: 0; border-radius: 18px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px rgba(58,44,37,.08); }
#prices .res-r { padding: 0; align-items: baseline; gap: 16px; }
#prices .res-r b { font-weight: 400; font-size: 1rem; line-height: 1.3; color: var(--tinta); }
#prices .res-r small { font-size: .78rem; }
#prices .res-r .amt { font: 400 1rem/1.3 var(--sans); letter-spacing: .01em; color: var(--madera); white-space: nowrap; }
#prices .res-r .amt s { display: block; margin: 0 0 2px; font: 300 .78rem var(--sans); color: var(--verde); }
#prices .res-a { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
#prices .res-i .mas { margin: 0; min-height: 40px; padding: 0 2px; }
#prices .res-i .add { margin: 0; min-height: 40px; padding: 0 16px; gap: 6px; font: 400 .84rem var(--sans); background: rgba(58,44,37,.06); border: 0; color: var(--madera); }
#prices .res-i .add::before { content: "+"; font-size: 1.05rem; line-height: 1; }
#prices .res-i .add[aria-pressed="true"] { background: var(--madera); color: #fff; }
#prices .res-i .add[aria-pressed="true"]::before { content: "✓"; font-size: .85rem; }
#prices .inf { padding: 4px 0 8px; }

/* Familias (p. ej. Labios): una tarjeta con sus variantes */
#prices .fam { margin: 0 0 14px; padding: 0 0 4px; border-radius: 26px; background: none; box-shadow: none; }
#prices .fam-t { padding: 6px 4px 10px; font-size: 1.1rem; }
#prices .fam .res-i { margin: 0 0 8px; }
#prices .fam-b { margin: 10px 2px 8px; padding-top: 12px; }

/* Barra de presupuesto: más visible y fija abajo */
#prices .pbar { position: sticky; bottom: 10px; margin: 16px 0 0; border-radius: 22px; padding: 14px 16px 14px 20px; }
#prices .kl { margin: 22px 4px 0; font: 300 .8rem/1.5 var(--sans); color: var(--verde); }

@media (max-width: 899px) {
  #prices .sheet { height: 92svh; }
  #prices .bd { padding-inline: 14px; }
  #prices .res-i .add { flex: none; }
}
@media (prefers-reduced-motion: reduce) { #prices .sheet { transition: none; } }

/* Tarifas · efecto cristal: el panel desenfoca lo que hay detrás y las tarjetas son láminas translúcidas (un solo desenfoque, el del panel, para cuidar la memoria del móvil) */
#prices .sheet { background: linear-gradient(180deg, rgba(247,241,233,.74), rgba(247,241,233,.58)); -webkit-backdrop-filter: blur(28px) saturate(1.35); backdrop-filter: blur(28px) saturate(1.35); box-shadow: -24px 0 60px rgba(36,20,12,.28), inset 1px 0 0 rgba(255,255,255,.55); }
@media (max-width: 899px) { #prices .sheet { box-shadow: 0 -20px 60px rgba(36,20,12,.3), inset 0 1px 0 rgba(255,255,255,.6); } }
#prices .hd { background: linear-gradient(180deg, rgba(247,241,233,.5) 70%, rgba(247,241,233,0)); }
#prices input[type=search] { background-color: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), 0 8px 24px -16px rgba(58,44,37,.35); }
#prices .chips .chip { background: linear-gradient(160deg, rgba(255,255,255,.7), rgba(255,255,255,.3)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 4px 14px -10px rgba(58,44,37,.4); }
#prices .chips .chip[aria-pressed="true"] { background: rgba(58,44,37,.9); box-shadow: inset 0 1px 0 rgba(255,255,255,.2); }
#prices .grp > .res-i, #prices .fam .res-i { background: linear-gradient(160deg, rgba(255,255,255,.66), rgba(255,255,255,.24)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), inset 0 1px 0 rgba(255,255,255,.9), 0 14px 30px -22px rgba(58,44,37,.45); }
#prices .grp-n { background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px rgba(255,255,255,.7); }
#prices .res-i .add { background: rgba(255,255,255,.5); box-shadow: inset 0 0 0 1px rgba(255,255,255,.75); }
#prices .res-i .add[aria-pressed="true"] { background: rgba(58,44,37,.9); box-shadow: none; }
#prices .grp-h { border-bottom-color: rgba(58,44,37,.12); }
@media (prefers-reduced-transparency: reduce) { #prices .sheet { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--marfil); } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { #prices .sheet { background: rgba(247,241,233,.96); } }

/* Promociones de la Home: área pequeña sobre el título, precio más grande en la línea y llamada más discreta */
.promo .tk-body { gap: 8px; }
.promo .tk-area { margin-bottom: -2px; font: 300 .66rem/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.78); }
.promo .tk-meta-p { justify-content: flex-start; margin-top: 2px; }
.promo .tk-meta-p .tk-price { font: 300 1.5rem/1.1 var(--sans); letter-spacing: 0; text-transform: none; } .promo .tk-meta-p .tk-price s { font-size: .95rem; opacity: .6; margin-right: 8px; }
.promo .tk-cta { font-size: .68rem; letter-spacing: .12em; opacity: .9; }

/* ===== Móvil: ajustes de la Home y del menú (octubre) ===== */
/* Menú: cierre con icono, como el botón que lo abre */
.menu-close { position: relative; width: 48px; height: 48px; min-height: 48px; padding: 0; border-radius: 50%; display: inline-grid; place-items: center; color: #fff; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.menu-close:hover { text-decoration: none; background: rgba(255, 255, 255, .24); }
.menu-close i::before, .menu-close i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 1px; background: currentColor; transform: translate(-50%, -50%) rotate(45deg); }
.menu-close i::after { transform: translate(-50%, -50%) rotate(-45deg); }
.menu-close-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.menu-soon { display: grid; gap: 1px; min-height: 32px; font: 300 .95rem/1.4 var(--sans); color: #F7F2E9; opacity: .62; cursor: default; }
.menu-soon small { font: 400 .6rem/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; }

/* Avisos de promociones */
.avisos-pop { position: absolute; left: 50%; top: 50%; width: min(520px, calc(100% - 32px)); max-height: calc(100svh - 48px); overflow: auto; overscroll-behavior: contain; transform: translate(-50%, -46%) scale(.97); transition: transform .45s var(--ease); padding: 44px 28px 28px; border-radius: 26px; color: #F7F2E9; background: #43402D; box-shadow: 0 30px 80px rgba(20, 10, 4, .4); }
.layer.open .avisos-pop { transform: translate(-50%, -50%); }
.avisos-pop .eyebrow { color: #BDB8A0; margin-bottom: 12px; }
.avisos-pop h3 { margin: 0 0 10px; font: 300 clamp(1.5rem, 1.1rem + 1.4vw, 2rem)/1.15 var(--serif); color: #fff; }
.avisos-p { margin: 0 0 18px; font: 300 .92rem/1.55 var(--sans); color: #D8D3BE; }
.avisos-pop form { display: grid; gap: 8px; }
.avisos-l { font: 400 .72rem/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: #BDB8A0; margin-top: 6px; }
.avisos-l small { text-transform: none; letter-spacing: 0; font-weight: 300; }
.avisos-pop input[type=email], .avisos-pop input[type=tel] { width: 100%; min-height: 48px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(247, 242, 233, .3); background: rgba(255, 255, 255, .08); color: #fff; font: 300 1rem var(--sans); }
.avisos-pop input::placeholder { color: rgba(247, 242, 233, .55); }
.avisos-pop .btn-pill { justify-self: start; margin-top: 8px; background: #F7F2E9; color: #43402D; }
.avisos-chk { margin-top: 6px; }

@media (max-width: 899px) {
  /* Otoño: sin sello giratorio ni nota de ejemplo */
  #temporada .tp-go, #temporada .tp-pend { display: none; }

  /* Banners enmarcados como el pie, sin llegar a los bordes */
  section.s.s-plans { padding-inline: clamp(10px, 1.2vw, 20px); }
  .plans { border-radius: 22px; overflow: hidden; --edge: 26px; }
  .plans-brand { color: rgba(255, 255, 255, .8); }
  .plans-brand i { font: 400 .6rem/1 var(--sans); font-style: normal; letter-spacing: .5em; text-transform: uppercase; }
  #mijardines > .wrap { padding-inline: clamp(10px, 1.2vw, 20px); max-width: none; }
  .mj { border-radius: 22px; padding: 38px 24px 26px; gap: 28px; }
  .mj-ey { color: rgba(255, 255, 255, .85); font-size: .64rem; letter-spacing: .42em; text-transform: uppercase; margin: 0 0 14px; }
  .mj h2 { font-size: clamp(1.7rem, 7.4vw, 2.2rem); line-height: 1.12; }
  .mj h2 .it { display: block; margin-top: 8px; font-size: .62em; line-height: 1.3; color: #FFD9BF; }
  .mj .mj-ben { margin-top: 22px; grid-template-columns: 1fr 1fr; gap: 10px; }
  .mj .mj-ben li { display: grid; gap: 10px; align-content: start; padding: 14px; border-radius: 16px; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); font-size: .82rem; line-height: 1.35; }
  .mj .mj-ben li::before { content: none; }
  .mj .mj-ben li span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
  .mj .mj-ben li svg { width: 17px; height: 17px; }
  .mj-cta { margin: 22px 0 0; }

  /* Pie: iconos más pequeños y rellenos en amarillo; encabezados con más peso */
  footer.f.ft .ft-plus, footer.f.ft .ft-grid-2 .ft-plus { width: 18px; height: 18px; background: #ECE3A2; border-color: #ECE3A2; color: #43402D; }
  footer.f.ft .ft-plus::before { left: 5px; right: 5px; top: 8px; }
  footer.f.ft .ft-plus::after { top: 5px; bottom: 5px; left: 8px; }
  footer.f.ft .ft-c h3 { font-weight: 700; font-size: .68rem; letter-spacing: .14em; color: #ECE3A2; }
}
.mj .ic { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* Área Jardines: las ventajas son tarjetas con icono pequeño también en escritorio */
.mj-ey { color: rgba(255, 255, 255, .85); font-size: .66rem; letter-spacing: .42em; text-transform: uppercase; margin: 0 0 16px; }
.mj h2 .it { display: block; margin-top: 10px; font-size: .56em; line-height: 1.3; color: #FFD9BF; }
.mj .mj-ben { margin-top: 26px; grid-template-columns: 1fr 1fr; gap: 12px; }
.mj .mj-ben li { display: grid; gap: 10px; align-content: start; padding: 16px; border-radius: 16px; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); font-size: .88rem; line-height: 1.35; }
.mj .mj-ben li::before { content: none; }
.mj .mj-ben li span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, .16); }
.mj .mj-ben li svg { width: 17px; height: 17px; }
.mj-cta { margin: 26px 0 0; }

/* Tarifas: categoría principal desplegable y categoría secundaria como subtítulo */
#prices .pg { margin: 10px 0; border-radius: 18px; background: rgba(255, 255, 255, .5); box-shadow: inset 0 0 0 1px rgba(58, 44, 37, .08); }
#prices .pg > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 14px 18px; font: 300 1.2rem/1.2 var(--serif); color: var(--madera); }
#prices .pg > summary::-webkit-details-marker { display: none; }
#prices .pg > summary span { flex: 1; }
#prices .pg > summary em { font: 400 .72rem/1 var(--sans); font-style: normal; padding: 5px 10px; border-radius: 999px; background: rgba(58, 44, 37, .08); }
#prices .pg > summary i { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .25s var(--ease); margin: -4px 4px 0 0; }
#prices .pg[open] > summary i { transform: rotate(-135deg); margin-top: 4px; }
#prices .pg > .sc { padding: 0 18px; }
#prices .pg > .sc:last-child { padding-bottom: 12px; }
#prices .sc-t { margin: 18px 0 4px; font: 400 .66rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--terra-txt); }
.cf { border-radius: var(--r-foto, 4px); }

/* Para ella / Para él */
.gn-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 8px; }
.gn-c { display: grid; gap: 10px; align-content: end; min-height: 220px; padding: 26px; border-radius: var(--r-foto, 4px); color: #fff; text-decoration: none; background: linear-gradient(160deg, #2f5d4d, #1b3a30); }
.gn-hombre { background: linear-gradient(160deg, #3a2c25, #1f1713); }
.gn-c h3 { margin: 0; color: #fff; font: 300 2rem/1.1 var(--sans); }
.gn-c p { margin: 0; opacity: .8; }
.gn-n, .gn-go { font: 300 .68rem/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; opacity: .85; }

/* Precios: el buscador se despliega con la lupa; el borde superior del panel no se corta */
#prices .sheet { overflow: hidden; }
#prices .hd { border-radius: 28px 28px 0 0; }
#prices input[type=search][hidden] { display: none; }
#prices .chips .chip-lupa { flex: 0 0 auto; width: 42px; padding: 0; display: inline-grid; place-items: center; }
#prices .chips .chip-lupa svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
#prices .chips .chip-lupa[aria-expanded="true"] { background: var(--madera); color: #fff; box-shadow: none; }

/* Tarifas · rediseño: una tarjeta por área, categoría principal como etiqueta, secundaria plegable y filas compactas (sólo la tipografía del sitio: serif para títulos, sans para el resto) */
#prices .chips .chip { display: inline-flex; align-items: center; gap: 8px; }
#prices .chips .chip em { font: 400 .78rem/1 var(--sans); font-style: normal; opacity: .6; }
#prices .p-sum { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 14px 4px 0; font: 300 .92rem/1.3 var(--sans); color: var(--verde); }
#prices .p-sum b { font-weight: 500; color: var(--tinta); }
#prices .p-sum button { border: 0; background: none; padding: 6px 0; font: 400 .92rem var(--sans); color: var(--tinta); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
#prices .grp { margin-top: 14px; padding: 8px 18px 14px; border-radius: 24px; background: linear-gradient(160deg, rgba(255,255,255,.72), rgba(255,255,255,.4)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 18px 40px -28px rgba(58,44,37,.45); }
#prices .grp-t { text-transform: none; margin: 0; padding: 20px 0 14px; font: 300 clamp(1.7rem, 1.4rem + 1.4vw, 2.1rem)/1.1 var(--serif); letter-spacing: -.01em; color: var(--tinta); border-bottom: 1.5px solid var(--tinta); }
#prices .pg-l { margin: 24px 0 2px; font: 400 .72rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--verde); }
#prices .sc { border-bottom: 1px solid rgba(58,44,37,.16); }
#prices .sc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 18px 0 14px; }
#prices .sc > summary::-webkit-details-marker { display: none; }
#prices .sc > summary span { flex: 1; font: 400 1.3rem/1.2 var(--serif); color: var(--tinta); }
#prices .sc > summary em { font: 400 .9rem/1 var(--sans); font-style: normal; color: var(--verde); }
#prices .sc > summary i, #prices .res-r .chev { width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-135deg); transition: transform .2s; flex: none; margin: 3px 6px 0; }
#prices .sc:not([open]) > summary i, #prices .res-r .nm[aria-expanded="false"] .chev { transform: rotate(45deg); margin-top: -3px; }
#prices .sc > summary:focus-visible, #prices .nm:focus-visible { outline: 2px solid var(--terra-txt); outline-offset: 2px; }
#prices .grp > .res-i, #prices .fam .res-i, #prices .sc .res-i { margin: 0; padding: 0; border: 0; border-top: 1px solid rgba(58,44,37,.1); border-radius: 0; background: none; box-shadow: none; }
#prices .sc > .res-i:first-of-type, #prices .fam > .res-i:first-of-type { border-top: 0; }
#prices .res-r { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 12px 0; }
#prices .nm { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 0; border: 0; background: none; text-align: left; font: 400 1rem/1.35 var(--sans); color: var(--tinta); cursor: pointer; }
#prices .nm-t { display: block; }
#prices .nm-t small { display: block; margin-top: 2px; font: 300 .84rem/1.3 var(--sans); color: var(--verde); }
#prices .res-r .amt { display: grid; justify-items: end; gap: 1px; text-align: right; }
#prices .res-r .amt small { font: 400 .62rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--verde); }
#prices .res-r .amt b { font: 500 1.15rem/1.15 var(--sans); color: var(--tinta); white-space: nowrap; }
#prices .res-r .amt s { display: block; margin: 0; font: 300 .8rem/1 var(--sans); color: var(--verde); }
#prices .res-i .add { width: 44px; height: 44px; min-height: 0; padding: 0; margin: 0; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(58,44,37,.28); background: none; box-shadow: none; color: var(--tinta); cursor: pointer; }
#prices .res-i .add::before { content: "+"; font: 300 1.5rem/1 var(--sans); }
#prices .res-i .add[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: #fff; }
#prices .res-i .add[aria-pressed="true"]::before { content: "✓"; font-size: 1rem; }
#prices .inf { padding: 0 0 14px 14px; margin: 0 0 4px; border-left: 1px solid rgba(58,44,37,.2); }
#prices .fam { margin: 0; padding: 0; }
#prices .fam-t { margin: 0; padding: 10px 0 4px; font: 400 .95rem/1.3 var(--sans); color: var(--verde); }
#prices .fam-b { margin: 8px 0 0; padding-top: 10px; font: 400 .72rem/1 var(--sans); letter-spacing: .16em; }

/* Tarifas · tipografía pequeña y contenida */
#prices .hd .tt h2 { font-size: 1.45rem; }
#prices .p-sub { font-size: .78rem; }
#prices .chips .chip { min-height: 38px; padding-inline: 14px; font-size: .8rem; }
#prices .chips .chip em { font-size: .68rem; }
#prices .p-sum, #prices .p-sum button { font-size: .8rem; }
#prices .grp { padding: 4px 16px 10px; }
#prices .grp-t { padding: 16px 0 12px; font-size: 1.45rem; }
#prices .pg-l { margin-top: 18px; font-size: .62rem; }
#prices .sc > summary { padding: 14px 0 10px; }
#prices .sc > summary span { font-size: 1.05rem; }
#prices .sc > summary em { font-size: .76rem; }
#prices .nm { min-height: 40px; font-size: .88rem; }
#prices .nm-t small { font-size: .72rem; }
#prices .res-r { padding: 8px 0; gap: 10px; }
#prices .res-r .amt small { font-size: .54rem; }
#prices .res-r .amt b { font-size: .98rem; }
#prices .res-r .amt s { font-size: .7rem; }
#prices .res-i .add { width: 38px; height: 38px; }
#prices .res-i .add::before { font-size: 1.25rem; }
#prices .fam-t { font-size: .8rem; }
#prices .inf { font-size: .8rem; }
#prices .kl { font-size: .72rem; }

/* Tarifas · «+ información» bajo el nombre (como antes) en lugar de la flecha */
#prices .nm { display: grid; gap: 0; align-content: center; min-height: 0; }
#prices .res-i .mas { justify-self: start; min-height: 30px; margin: 0; padding: 2px 0; border: 0; background: none; font: 400 .74rem/1.2 var(--sans); color: var(--terra-txt); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Tarifas · el título del área va fuera de la tarjeta y más pequeño */
#prices .grp { margin-top: 22px; padding: 0; border-radius: 0; background: none; box-shadow: none; }
#prices .grp-t { padding: 0 4px 10px; border: 0; font-size: 1.15rem; }
#prices .grp-c { padding: 2px 16px 10px; border-radius: 24px; background: linear-gradient(160deg, rgba(255,255,255,.72), rgba(255,255,255,.4)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 18px 40px -28px rgba(58,44,37,.45); }
#prices .grp-c > .pg-l:first-child { margin-top: 16px; }

/* Tarifas · separadores finísimos y solo entre elementos (nunca tras el último de la tarjeta) */
#prices .sc { border-bottom: 0; }
#prices .sc + .sc { border-top: 1px solid rgba(58,44,37,.07); }
#prices .grp > .res-i, #prices .fam .res-i, #prices .sc .res-i { border-top-color: rgba(58,44,37,.07); }

/* Tarifas · todos los títulos de tratamientos en sans serif */
#prices .sc > summary span, #prices .grp-t { font-family: var(--sans); font-weight: 400; letter-spacing: 0; }
#prices .sc > summary span { font-size: 1rem; }
#prices .grp-t { font-size: 1.05rem; }

/* Presupuesto · letra más pequeña, fondo bien visible y cuota mensual de Klarna */
#prices.pbud-on .sheet { background: linear-gradient(180deg, rgba(250,246,240,.96), rgba(244,236,226,.94)); }
#prices .bud-volver { font-size: .76rem; }
#prices .bud-h { font-size: 1.35rem; }
#prices .bud-r b { font-size: .88rem; } #prices .bud-r small { font-size: .7rem; } #prices .bud-r .amt { font-size: .88rem; }
#prices .bud-t { font-size: .84rem; } #prices .bud-t b { font: 400 1.35rem var(--sans); }
#prices .bud-t.bud-m { padding-top: 4px; } #prices .bud-t.bud-m b { font-size: 1.1rem; color: var(--terra-txt); }
#prices .bud-nota { font-size: .72rem; }
#prices .bud-s { font-size: .62rem; }
#prices .bud-op b { font-size: .86rem; } #prices .bud-op small { font-size: .7rem; }
#prices .bud-cta .btn-pill { font-size: .66rem; }

/* Presupuesto · con Klarna el protagonista es la cuota mensual; el total queda pequeño */
#prices .bud-t-sm { padding: 12px 0 0; font-size: .76rem; color: var(--verde); } #prices .bud-t-sm b { font: 400 .9rem var(--sans); color: var(--tinta); }
#prices .bud-m { display: flex; align-items: baseline; justify-content: flex-end; gap: 6px; padding: 2px 0 0; color: var(--terra-txt); }
#prices .bud-m b { font: 400 1.45rem/1 var(--sans); letter-spacing: -.01em; }
#prices .bud-m .bm-d { font: 400 .62rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--verde); margin-right: auto; align-self: center; }
#prices .bud-m .bm-s { font: 400 .78rem/1 var(--sans); color: var(--verde); }
#prices .bud-nota-m { text-align: right; margin: 6px 0 14px; }

/* Primera capa informativa de protección de datos en el formulario de cita */
.tr-capa{font-size:.74rem;line-height:1.55;color:var(--verde);margin:2px 0 4px}.tr-capa a{color:inherit;text-decoration:underline;text-underline-offset:2px}
