/* Ficha de tratamiento · diseño de cristal (minimalista). Se activa con 'diseno' => 'cristal' en la ficha. */

/* Fondo: las luces de color, mucho más tenues */
.fv-pg .aura-set.on { opacity: .11; }
.fv-pg .tp-cab::before { opacity: .2; }
.fv-grid.una { grid-template-columns: minmax(0, 1fr); }
.fv-pg .fx-mk-m { color: rgba(150, 118, 76, .08); }

/* Cristal: la misma receta que las pestañas, los filtros y las cajas de Estética */
.fv-glass { background: linear-gradient(160deg, rgba(255, 255, 255, .58), rgba(255, 255, 255, .2)); -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .72), inset 0 1px 0 rgba(255, 255, 255, .9), 0 24px 50px -36px rgba(58, 44, 37, .38); border-radius: clamp(20px, 2vw, 28px); }
@media (prefers-reduced-transparency: reduce) { .fv-glass { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(255, 255, 255, .92); } }
.fv-ib { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--terra-txt); background: linear-gradient(160deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .35)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .85), 0 10px 20px -14px rgba(58, 44, 37, .5); }
.fv-ib .ic { width: 22px; height: 22px; }

/* Cabecera sobre la portada: el logotipo y el menú guardan con la caja el mismo espacio arriba y a los lados */
.fv-pg { --fv-in: clamp(10px, 1.4vw, 20px); --fv-g: clamp(18px, 2.8vw, 44px); }
body.fv-pg .hdr:not(.solid) .wrap.in { max-width: none; padding-inline: calc(var(--fv-in) + var(--fv-g)); padding-top: calc(12px + var(--fv-g)); padding-bottom: 0; }

/* Portada: foto con esquinas redondeadas, título grande y tarjetas de cristal */
.fv-hero { padding: 12px clamp(10px, 1.4vw, 20px) 0; }
.fv-hero-in { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-rows: 1fr auto; gap: clamp(32px, 5vh, 56px); min-height: min(calc(100svh - 24px), 920px); padding: clamp(150px, 22vh, 230px) var(--fv-g) clamp(44px, 5vw, 72px); border-radius: clamp(24px, 3vw, 40px); background-color: #1a1210; color: #fff; }
.fv-bg { position: absolute; inset: 0; z-index: -2; background-image: var(--fv-d); background-size: cover; background-position: center; animation: fvZoom 16s ease-out both; }
@keyframes fvZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.fv-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20, 14, 10, .66) 0%, rgba(20, 14, 10, .3) 55%, rgba(20, 14, 10, .12) 100%), linear-gradient(180deg, rgba(20, 14, 10, .25) 0%, rgba(20, 14, 10, 0) 30%, rgba(20, 14, 10, .62) 100%); }
.fv-hero-c { align-self: end; max-width: 820px; }
.fv-hero .ar-migas, .fv-hero .ar-migas a, .fv-hero .ar-migas span { color: rgba(255, 255, 255, .78); }
.fv-hero .eyebrow { color: rgba(255, 255, 255, .85); }
.fv-hero h1 { margin: 10px 0 0; font: 300 clamp(2.6rem, 1.2rem + 4.8vw, 5.4rem)/1 var(--serif); letter-spacing: -.03em; color: #fff; text-wrap: balance; }
.fv-hero h1.fv-h1s { margin: 12px 0 0; font: 400 clamp(1.1rem, .95rem + .8vw, 1.55rem)/1.3 var(--sans); letter-spacing: .01em; text-wrap: balance; }
.fv-hero h1.fv-h1s span { color: rgba(255, 255, 255, .66); }
.fv-asp { margin: clamp(14px, 2vw, 22px) 0 0; max-width: 26ch; font: 300 clamp(1.8rem, 1rem + 2.5vw, 3.1rem)/1.1 var(--serif); letter-spacing: -.025em; color: #fff; text-wrap: balance; }
.fv-hero h1 .it { display: block; font-style: italic; color: rgba(255, 255, 255, .62); }
.fv-lead { margin: clamp(16px, 2vw, 26px) 0 0; max-width: 54ch; font: 300 clamp(.95rem, .9rem + .3vw, 1.1rem)/1.55 var(--sans); color: rgba(255, 255, 255, .88); }
.fv-hbtn { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: clamp(20px, 2.4vw, 32px); }
.fv-link { appearance: none; background: none; border: 0; padding: 4px 0; cursor: pointer; font: 400 .92rem var(--sans); letter-spacing: .02em; color: #fff; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; text-decoration-color: rgba(255, 255, 255, .6); transition: text-decoration-color .25s; }
.fv-link:hover { text-decoration-color: #fff; }

/* Tarjeta de cifra, en cristal con solo el borde */
.fv-stat { position: absolute; top: clamp(104px, 15vh, 150px); right: var(--fv-g); display: grid; justify-items: start; gap: 4px; padding: 16px 22px 18px; border-radius: 22px; border: 1px solid rgba(255, 255, 255, .38); background: rgba(255, 255, 255, .06); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); min-width: 190px; }
.fv-stat b { font: 300 clamp(2rem, 1.6rem + 1.4vw, 2.8rem)/1 var(--serif); letter-spacing: -.02em; } .fv-stat b small { font: 300 .9rem var(--sans); margin-left: 6px; opacity: .8; }
.fv-stat > span:last-child { font: 300 .82rem var(--sans); opacity: .85; }
.fv-dots { display: flex; } .fv-dots i { width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .7); margin-right: -8px; }

/* Tarjetas inferiores de cristal oscuro */
.fv-hcards { min-width: 0; display: flex; gap: clamp(10px, 1.2vw, 16px); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; margin-inline: calc(var(--fv-g) * -1); padding-inline: var(--fv-g); scroll-padding-inline: var(--fv-g); overscroll-behavior-x: contain; } .fv-hcards::-webkit-scrollbar { display: none; } .fv-hcards > * { flex: 0 0 auto; scroll-snap-align: start; }
.fv-dk { border-radius: clamp(20px, 2vw, 28px); padding: clamp(16px, 1.6vw, 22px); background: linear-gradient(160deg, rgba(34, 28, 22, .5), rgba(34, 28, 22, .28)); -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, .18), inset 0 1px 0 rgba(255, 255, 255, .28); }
.fv-dk h2 { margin: 0 0 6px; font: 400 clamp(1.05rem, 1rem + .4vw, 1.3rem)/1.2 var(--serif); color: #fff; }
.fv-dk p, .fv-dk > span:not(.fv-th):not(.fv-ib) { margin: 0; font: 300 .85rem/1.5 var(--sans); color: rgba(255, 255, 255, .85); }
.fv-hc2 { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 6px; width: clamp(220px, 19vw, 280px); min-height: clamp(150px, 14vw, 172px); }
.fv-hc2::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 90% at 100% 0%, rgba(255, 226, 190, .22), transparent 60%); pointer-events: none; }
.fv-hc2::after { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .7), transparent); }
.fv-hn { position: absolute; top: 12px; right: 18px; font: 300 clamp(1.4rem, 1.2rem + .6vw, 1.8rem)/1 var(--sans); color: rgba(255, 255, 255, .22); letter-spacing: -.02em; }
.fv-hc2 .fv-ib { width: 44px; height: 44px; margin-bottom: 6px; background: linear-gradient(160deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, .08)); color: #fff; box-shadow: none; border: 0; }
.fv-hc2 small { font: 400 .68rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.fv-hc2 b { font: 500 clamp(.92rem, .88rem + .2vw, 1.02rem)/1.3 var(--sans); letter-spacing: .005em; color: #fff; }
.fv-hc2 p { font: 300 .84rem/1.45 var(--sans); color: rgba(255, 255, 255, .82); }
@media (prefers-reduced-transparency: reduce) { .fv-glass { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(255, 255, 255, .92); } }
.fv-ib { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--terra-txt); background: linear-gradient(160deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .35)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .85), 0 10px 20px -14px rgba(58, 44, 37, .5); }
.fv-ib .ic { width: 22px; height: 22px; }

@media (prefers-reduced-transparency: reduce) { .fv-dk, .fv-stat { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(34, 28, 22, .78); } }
@media (prefers-reduced-motion: reduce) { .fv-bg { animation: none; } }

/* En qué consiste (cabecera como la sección de temporada de la Home) */
.fv-que .tp-cab { margin-bottom: 0; }
.fv-que .fv-intro { font-size: clamp(1.02rem, .96rem + .4vw, 1.2rem); line-height: 1.5; color: var(--madera); }
.fv-dest { list-style: none; margin: 0 0 6px; padding: clamp(18px, 2vw, 26px); display: grid; gap: 12px; }
.fv-dest li { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; font: 300 var(--t-body)/1.5 var(--sans); color: var(--tinta); }
.fv-ck { display: inline-grid; place-items: center; width: 24px; height: 24px; color: var(--terra-txt); } .fv-ck .ic { width: 20px; height: 20px; }

/* La sesión, paso a paso */
.fv-pasos { list-style: none; margin: clamp(22px, 3vw, 40px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: clamp(12px, 1.6vw, 20px); counter-reset: fv; position: relative; }
.fv-pasos li { position: relative; padding: clamp(20px, 2.2vw, 30px); display: grid; gap: 10px; align-content: start; transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.fv-pasos li::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, .55) 50%, transparent 70%); background-size: 250% 100%; background-position: 130% 0; opacity: 0; transition: opacity .4s, background-position 1s var(--ease); pointer-events: none; }
@media (hover: hover) { .fv-pasos li:hover { transform: translateY(-4px); } .fv-pasos li:hover::before { opacity: 1; background-position: -30% 0; } }
.fv-n { font: 300 clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem)/1 var(--serif); color: var(--terra-txt); letter-spacing: -.02em; }
.fv-pasos h3 { margin: 0; font: 300 clamp(1.15rem, 1.05rem + .5vw, 1.45rem)/1.2 var(--serif); letter-spacing: -.01em; color: var(--madera); }
.fv-pasos p { margin: 0; font: 300 var(--t-body)/1.55 var(--sans); color: var(--tinta); }
.fv-pasos::before { content: ""; position: absolute; left: 8%; right: 8%; top: -14px; height: 1px; background: linear-gradient(90deg, transparent, rgba(58, 44, 37, .35), transparent); transform-origin: left; }
.fv-tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* La ficha en tarjetas */
.fv-obj { list-style: none; margin: clamp(18px, 2vw, 28px) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fv-obj li { padding: 8px 18px; border-radius: 999px; font: 300 .95rem var(--sans); color: var(--madera); }
.fv-grid { margin-top: clamp(22px, 3vw, 40px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }
.fv-card { padding: clamp(22px, 2.4vw, 34px); display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 18px; row-gap: 10px; align-items: start; transition: transform .45s var(--ease); }
.fv-card.ancha { grid-column: 1 / -1; }
.fv-card .fv-ib { grid-row: 1 / span 2; }
.fv-card h3 { margin: 4px 0 0; font: 300 clamp(1.2rem, 1.1rem + .5vw, 1.5rem)/1.2 var(--serif); letter-spacing: -.01em; color: var(--madera); }
.fv-card > div { grid-column: 2; }
.fv-card p { margin: 0 0 .8em; max-width: 68ch; font: 300 var(--t-body)/1.6 var(--sans); color: var(--tinta); } .fv-card p:last-child { margin-bottom: 0; }
@media (hover: hover) { .fv-card:hover { transform: translateY(-3px); } }
.fv-nota { opacity: .92; }
.fv-ficha .sp-aviso { margin: clamp(18px, 2vw, 28px) 0 0; font: 300 .84rem var(--sans); color: var(--verde); }

/* Complementos y alternativas */
.fv-rel .eyebrow { margin-top: clamp(18px, 2vw, 28px); } .fv-rel .eyebrow:first-child { margin-top: 0; }
.fv-chips { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fv-chips a { display: inline-flex; align-items: baseline; gap: 10px; padding: 12px 20px; border-radius: 999px; text-decoration: none; color: var(--madera); font: 300 .95rem var(--sans); transition: transform .35s var(--ease); }
.fv-chips small { font-size: .78rem; color: var(--verde); } .fv-chips b { font: 400 .92rem var(--sans); color: var(--terra-txt); }
@media (hover: hover) { .fv-chips a:hover { transform: translateY(-2px); } }
.fv-todos { background: linear-gradient(160deg, rgba(58, 44, 37, .92), rgba(58, 44, 37, .8)) !important; color: #fff !important; } .fv-todos b { color: #fff !important; }

/* Precio y primera visita */
.fv-pb { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(22px, 4vw, 64px); padding: clamp(26px, 4vw, 60px); align-items: center; }
.fv-pl h2 { margin: 12px 0 14px; font: 300 clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem)/1.12 var(--serif); letter-spacing: -.02em; color: var(--madera); }
.fv-pl p { margin: 0 0 .7em; font: 300 var(--t-body)/1.55 var(--sans); color: var(--tinta); }
.fv-gran { font: 300 clamp(2.4rem, 1.6rem + 3vw, 4.2rem)/1 var(--serif) !important; letter-spacing: -.03em; color: var(--madera) !important; margin: 4px 0 12px !important; } .fv-gran small { font: 300 1rem var(--sans); letter-spacing: 0; color: var(--terra-txt); } .fv-gran-t { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.2rem) !important; }
.fv-pr p, .fv-pr li { font: 300 var(--t-body)/1.55 var(--sans); color: var(--tinta); } .fv-pr ul { margin: 0 0 .8em; padding-left: 1.1em; } .fv-pr p { margin: 0 0 1em; }
.fv-bt { display: flex; flex-wrap: wrap; gap: 10px; }

/* Preguntas, en cristal */
.fv-faq .ar-faq-l details { background: linear-gradient(160deg, rgba(255, 255, 255, .58), rgba(255, 255, 255, .2)); }
.fv-faq .ar-faq-l details[open] { background: linear-gradient(160deg, rgba(255, 255, 255, .8), rgba(255, 255, 255, .4)); }

/* Barra flotante de cristal */
.fv-flota { position: fixed; z-index: 40; left: 50%; bottom: 22px; transform: translate(-50%, 24px); opacity: 0; display: flex; align-items: center; gap: 18px; padding: 8px 8px 8px 24px; border-radius: 999px; transition: transform .45s var(--ease), opacity .45s var(--ease); max-width: calc(100vw - 32px); }
.fv-flota.on { transform: translate(-50%, 0); opacity: 1; }
.fv-flota[hidden] { display: none; }
.fv-fn { font: 300 1rem var(--serif); color: var(--madera); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .fv-fn small { font: 400 .85rem var(--sans); color: var(--terra-txt); margin-left: 8px; }
@media (max-width: 899px) { .fv-flota { display: none !important; } }

/* Móvil */
@media (max-width: 899px) {
  .fv-bg { background-image: var(--fv-m); }
  .fv-hero-in { padding: 124px var(--fv-g) 40px; min-height: min(calc(100svh - 24px), 780px); }
  .fv-hc2 { width: min(64vw, 240px); min-height: 160px; }
  .fv-hero h1 { font-size: clamp(2.3rem, 11vw, 3.2rem); } .fv-hero h1.fv-h1s { font-size: 1.1rem; } .fv-asp { font-size: clamp(1.7rem, 7.6vw, 2.1rem); max-width: 18ch; }
  .fv-grid { grid-template-columns: minmax(0, 1fr); }
  .fv-card { grid-template-columns: minmax(0, 1fr); } .fv-card .fv-ib { grid-row: auto; } .fv-card > div { grid-column: 1; }
  .fv-pasos, .fv-tres { grid-template-columns: minmax(0, 1fr); }
  .fv-pb { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .fv-pasos li, .fv-card, .fv-chips a, .fv-flota { transition: none; } .fv-pasos li::before { display: none; } }

.fv-enf { margin: 14px 4px 0; font: italic 300 clamp(1rem, .95rem + .3vw, 1.15rem)/1.45 var(--serif); color: var(--madera); }
.fv-lista { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; } .fv-lista li { position: relative; padding-left: 18px; font: var(--t-body-f, 300 var(--t-body)/1.5 var(--sans)); } .fv-lista li::before { content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--terra-txt); opacity: .7; }
.fv-prog .fv-nota { margin-top: 18px; }
