/* ============================================================
   Landing /psicologa-valladolid — hoja de estilos EXCLUSIVA
   ------------------------------------------------------------
   Solo la carga psicologa-valladolid.html (que ya NO carga style.css).
   La home (index.html) no la enlaza: nada de aquí puede alterarla.
   Todas las clases llevan el prefijo .lp- para no colisionar con
   los componentes de la home (.hero, .site-header, .main-nav...).
   Comparte con la web principal únicamente la identidad: colores
   corporativos, tipografías y logotipo.
   ============================================================ */

/* ---------- Tipografías corporativas (mismos archivos auto-alojados) ---------- */
@font-face { font-family: 'Playfair Display'; font-weight: 500 700; font-style: normal; font-display: swap; src: url('fonts/playfair-display.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-weight: 500 600; font-style: italic; font-display: swap; src: url('fonts/cormorant-garamond-italic.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-weight: 400; font-style: normal; font-display: swap; src: url('fonts/lato-400.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-weight: 700; font-style: normal; font-display: swap; src: url('fonts/lato-700.woff2') format('woff2'); }

/* ---------- Tokens propios de la landing (valores = paleta corporativa) ---------- */
.lp-body {
--lp-cream: #FBF8F2;
--lp-beige: #F2EDE6;
--lp-sand: #EAE1D6;
--lp-rosa: #D9A99C;
--lp-rosa-tint: rgba(217, 169, 156, .20);
--lp-verde: #C9A876;
--lp-acento: #B8735F;
--lp-ink: #241812;
--lp-ink-soft: #524030;
--lp-line: rgba(36, 24, 18, .12);
--lp-white: #FFFFFF;

--lp-serif: 'Playfair Display', Georgia, serif;
--lp-italic: 'Cormorant Garamond', Georgia, serif;
--lp-sans: 'Lato', system-ui, sans-serif;

--lp-wrap: 1240px;
--lp-header-h: 78px;
--lp-ease: cubic-bezier(.16, .8, .28, 1);

background: var(--lp-cream);
background-image: none; /* sin la textura de la home */
color: var(--lp-ink);
font-family: var(--lp-sans);
font-weight: 400;
}
.lp-body section[id] { scroll-margin-top: calc(var(--lp-header-h) + 16px); }

/* ---------- Base propia (la landing ya no carga style.css) ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 17px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
.lp-body { margin: 0; line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
:where(.lp-body) :where(img, svg) { max-width: 100%; display: block; }
:where(.lp-body) :where(a) { color: inherit; text-decoration: none; }
:where(.lp-body) :where(ul) { list-style: none; margin: 0; padding: 0; }
:where(.lp-body) :where(p) { margin: 0 0 1em; }
:where(.lp-body) :where(figure) { margin: 0; }
:where(.lp-body) :where(h1, h2, h3) { margin: 0; text-wrap: balance; }
:where(.lp-body) :where(button, input, textarea) { font: inherit; color: inherit; }
.lp-body :focus-visible { outline: 2.5px solid var(--lp-acento); outline-offset: 3px; }
.lp-body ::selection { background: var(--lp-rosa); color: var(--lp-ink); }

.lp-nowrap { white-space: nowrap; }

.lp-skip {
position: absolute; left: 16px; top: -60px; z-index: 300;
padding: 10px 18px; border-radius: 999px;
background: var(--lp-ink); color: var(--lp-cream) !important; font-weight: 700; font-size: .85rem;
transition: top .2s ease;
}
.lp-skip:focus { top: 12px; }

/* animación de entrada suave (sin JS, todo visible: ver <noscript>) */
.lp-reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--lp-ease), transform .8s var(--lp-ease); }
.lp-reveal.is-visible { opacity: 1; transform: none; }


.lp-wrap {
max-width: var(--lp-wrap);
margin: 0 auto;
padding: 0 40px;
}

/* ============================================================
   1. CABECERA — barra clara, fija y sencilla
   ============================================================ */
.lp-header {
position: sticky;
top: 0;
z-index: 100;
background: rgba(251, 248, 242, .94);
-webkit-backdrop-filter: saturate(140%) blur(10px);
backdrop-filter: saturate(140%) blur(10px);
border-bottom: 1px solid transparent;
transition: border-color .3s ease, box-shadow .3s ease;
}
.lp-header.is-scrolled {
border-bottom-color: var(--lp-line);
box-shadow: 0 10px 30px -22px rgba(36, 24, 18, .45);
}
.lp-header-inner {
height: var(--lp-header-h);
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}

.lp-brand { display: flex; align-items: center; gap: 12px; color: var(--lp-ink); }
.lp-brand-mark { width: 28px; height: 34px; flex-shrink: 0; }
.lp-brand-mark .lp-mark-drop { fill: var(--lp-rosa); }
.lp-brand-mark .lp-mark-shine { stroke: var(--lp-white); stroke-width: 2.5; fill: none; opacity: .6; stroke-linecap: round; }
.lp-brand-mark .lp-mark-ring { fill: var(--lp-verde); }
.lp-brand-name {
display: flex;
flex-direction: column;
font-family: var(--lp-serif);
font-weight: 500;
font-size: 1.06rem;
line-height: 1.15;
letter-spacing: -.005em;
}
.lp-brand-name small {
font-family: var(--lp-sans);
font-weight: 400;
font-size: .62rem;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--lp-ink-soft);
margin-top: 3px;
}

.lp-header-right { display: flex; align-items: center; gap: 34px; }
.lp-nav { display: flex; align-items: center; }
.lp-nav a {
position: relative;
font-size: .86rem;
font-weight: 400;
letter-spacing: .03em;
color: var(--lp-ink-soft);
padding: 8px 18px;
transition: color .2s ease;
}
.lp-nav a + a::before { /* separadores finos "Servicios | Consulta | Opiniones" */
content: '';
position: absolute;
left: 0; top: 50%;
width: 1px; height: 14px;
transform: translateY(-50%);
background: var(--lp-line);
}
.lp-nav a::after {
content: '';
position: absolute;
left: 18px; right: 18px; bottom: 2px;
height: 1px;
background: var(--lp-acento);
transform: scaleX(0);
transform-origin: left;
transition: transform .3s var(--lp-ease);
}
.lp-nav a:hover { color: var(--lp-ink); }
.lp-nav a:hover::after { transform: scaleX(1); }

.lp-header-cta {
display: inline-flex;
align-items: center;
gap: 8px;
height: 44px;
padding: 0 22px;
border-radius: 999px;
background: var(--lp-ink);
color: var(--lp-cream);
font-size: .84rem;
font-weight: 700;
letter-spacing: .03em;
white-space: nowrap;
transition: background-color .25s ease, transform .25s ease;
}
.lp-header-cta:hover { background: var(--lp-acento); transform: translateY(-1px); }
.lp-header-cta svg { width: 14px; height: 14px; }

.lp-menu-btn {
display: none;
width: 44px; height: 44px;
border: 1px solid var(--lp-line);
border-radius: 50%;
background: transparent;
color: var(--lp-ink);
cursor: pointer;
align-items: center;
justify-content: center;
flex-direction: column;
gap: 5px;
padding: 0;
}
.lp-menu-btn span { display: block; width: 16px; height: 1.5px; background: currentColor; transition: transform .3s var(--lp-ease); }
.lp-menu-btn[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
.lp-menu-btn[aria-expanded="true"] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }

/* ============================================================
   2. HERO — composición editorial 50/50, fondo claro
   ============================================================ */
.lp-hero {
position: relative;
overflow: hidden;
background: var(--lp-cream);
padding: 56px 0 96px;
}
/* panel beige a sangre a la derecha: marca el lado fotográfico */
.lp-hero::before {
content: '';
position: absolute;
top: 0; right: 0; bottom: 0;
width: 41%;
background: var(--lp-beige);
}
/* línea editorial fina que cruza el panel */
.lp-hero::after {
content: '';
position: absolute;
left: 59%; right: 0;
bottom: 56px;
height: 1px;
background: var(--lp-line);
}

.lp-hero-grid {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
column-gap: clamp(40px, 6vw, 96px);
grid-template-areas:
". media"
"eyebrow media"
"title media"
"sub media"
"human media"
"cta media"
"proof media"
". media";
grid-template-rows: 1fr auto auto auto auto auto auto 1fr;
}

.lp-eyebrow {
grid-area: eyebrow;
display: inline-flex;
align-items: center;
gap: 14px;
margin: 0;
font-size: .7rem;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--lp-acento);
}
.lp-eyebrow::before { content: ''; width: 36px; height: 1px; background: currentColor; flex-shrink: 0; }

.lp-title {
grid-area: title;
margin: 22px 0 0;
font-family: var(--lp-serif);
font-weight: 500;
font-size: clamp(2.4rem, 4vw, 3.7rem);
line-height: 1.05;
letter-spacing: -.022em;
color: var(--lp-ink);
text-shadow: none;
}
.lp-title em {
display: block;
font-family: var(--lp-italic);
font-style: italic;
font-weight: 500;
font-size: 1.12em;
line-height: 1;
letter-spacing: -.01em;
color: var(--lp-acento);
margin-top: .08em;
}

.lp-sub {
grid-area: sub;
margin: 24px 0 0;
max-width: 32em;
font-size: 1.08rem;
line-height: 1.62;
color: var(--lp-ink-soft);
}
.lp-sub strong { font-weight: 700; color: var(--lp-ink); }

.lp-human {
grid-area: human;
margin: 18px 0 0;
max-width: 27em;
padding-left: 18px;
border-left: 2px solid var(--lp-rosa);
font-family: var(--lp-italic);
font-style: italic;
font-weight: 500;
font-size: 1.32rem;
line-height: 1.35;
color: var(--lp-ink);
}

.lp-actions {
grid-area: cta;
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 34px;
}
.lp-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 56px;
padding: 0 28px;
border-radius: 999px;
font-family: var(--lp-sans);
font-size: .94rem;
font-weight: 700;
letter-spacing: .02em;
line-height: 1.2;
text-align: center;
transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s var(--lp-ease), box-shadow .25s ease;
}
.lp-btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.lp-btn--primary {
background: var(--lp-ink);
color: var(--lp-cream);
box-shadow: 0 16px 32px -14px rgba(36, 24, 18, .6);
}
.lp-btn--primary:hover { background: var(--lp-acento); transform: translateY(-2px); }
.lp-btn--ghost {
background: var(--lp-white);
color: var(--lp-ink);
border: 1.5px solid rgba(36, 24, 18, .16);
}
.lp-btn--ghost:hover { border-color: var(--lp-ink); transform: translateY(-2px); }
.lp-btn--ghost .lp-wa-icon { fill: #25D366; }

.lp-proof {
grid-area: proof;
margin-top: 32px;
padding-top: 24px;
border-top: 1px solid var(--lp-line);
display: flex;
flex-direction: column;
gap: 14px;
}
.lp-rating { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; font-size: .9rem; color: var(--lp-ink-soft); }
.lp-stars { display: inline-flex; gap: 2px; color: var(--lp-acento); }
.lp-stars svg { width: 15px; height: 15px; fill: currentColor; }
.lp-rating strong { color: var(--lp-ink); font-weight: 700; }

.lp-checks { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0; padding: 0; list-style: none; }
.lp-checks li { display: inline-flex; align-items: center; gap: 9px; font-size: .88rem; color: var(--lp-ink); }
.lp-checks li::before {
content: '';
width: 20px; height: 20px;
flex-shrink: 0;
border-radius: 50%;
background: var(--lp-rosa-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8735F' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ---------- Composición fotográfica ---------- */
.lp-hero-media {
grid-area: media;
position: relative;
align-self: center;
padding: 18px 26px 64px 64px;
}
.lp-portrait-frame { position: relative; max-width: 470px; margin-left: auto; }
/* arco de línea fina desplazado: detalle editorial detrás del retrato */
.lp-portrait-frame::before {
content: '';
position: absolute;
inset: -18px -18px 18px 18px;
border: 1px solid var(--lp-acento);
border-radius: 999px 999px 26px 26px;
opacity: .5;
pointer-events: none;
}
.lp-portrait {
position: relative;
margin: 0;
aspect-ratio: 4 / 5;
border-radius: 999px 999px 22px 22px;
overflow: hidden;
background: var(--lp-sand);
box-shadow: 0 50px 90px -40px rgba(36, 24, 18, .45);
}
.lp-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }

.lp-tag {
position: absolute;
top: 34%;
right: -10px;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 16px;
border-radius: 999px;
background: var(--lp-white);
box-shadow: 0 14px 30px -16px rgba(36, 24, 18, .4);
font-size: .76rem;
font-weight: 700;
letter-spacing: .04em;
color: var(--lp-ink);
white-space: nowrap;
}
.lp-tag::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--lp-verde); }

.lp-room-card {
position: absolute;
left: 0;
bottom: 0;
width: 46%;
max-width: 230px;
margin: 0;
padding: 9px 9px 13px;
background: var(--lp-white);
border-radius: 18px;
box-shadow: 0 30px 60px -28px rgba(36, 24, 18, .5);
transform: rotate(-2.5deg);
}
.lp-room-card img {
width: 100%;
height: auto;
aspect-ratio: 5 / 4;
object-fit: cover;
object-position: 50% 68%;
border-radius: 12px;
}
.lp-room-card figcaption {
display: flex;
align-items: flex-start;
gap: 7px;
padding: 11px 4px 0;
font-size: .74rem;
line-height: 1.35;
color: var(--lp-ink-soft);
}
.lp-room-card figcaption svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 1px; color: var(--lp-acento); }
.lp-room-card figcaption strong { display: block; font-size: .8rem; color: var(--lp-ink); font-weight: 700; }

/* ============================================================
   PIEZAS COMUNES DE LAS SECCIONES
   ============================================================ */
.lp-section-pad { padding: 120px 0; }
.lp-kicker {
display: flex;
align-items: center;
gap: 14px;
margin: 0 0 22px;
font-size: .7rem;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--lp-acento);
}
.lp-kicker::before { content: ''; width: 36px; height: 1px; background: currentColor; flex-shrink: 0; }
.lp-h2 {
font-family: var(--lp-serif);
font-weight: 500;
font-size: clamp(2rem, 3.2vw, 2.85rem);
line-height: 1.1;
letter-spacing: -.02em;
color: var(--lp-ink);
}
.lp-h2 em { font-family: var(--lp-italic); font-style: italic; font-weight: 500; color: var(--lp-acento); font-size: 1.1em; }
.lp-lead { margin: 22px 0 0; max-width: 32em; font-size: 1.02rem; line-height: 1.65; color: var(--lp-ink-soft); }

.lp-link-cta {
display: inline-flex;
align-items: center;
gap: 10px;
margin-top: 34px;
font-size: .95rem;
font-weight: 700;
color: var(--lp-ink);
border-bottom: 1px solid var(--lp-acento);
padding-bottom: 5px;
transition: gap .25s var(--lp-ease), color .2s ease;
}
.lp-link-cta:hover { gap: 16px; color: var(--lp-acento); }
.lp-link-cta svg { width: 16px; height: 16px; }

.lp-text-link { font-weight: 700; color: var(--lp-ink); border-bottom: 1px solid var(--lp-acento); padding-bottom: 1px; transition: color .2s ease; }
.lp-text-link:hover { color: var(--lp-acento); }

.lp-btn--sm { min-height: 44px; padding: 0 20px; font-size: .85rem; }
.lp-arrow { width: 18px; height: 18px; }

/* ============================================================
   3. SECCIÓN 2 — Motivos de consulta
   ============================================================ */
.lp-needs { position: relative; background: var(--lp-white); padding: 112px 0 104px; }
.lp-needs-grid {
display: grid;
grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
gap: clamp(40px, 7vw, 110px);
align-items: start;
}
.lp-topics { border-top: 1px solid var(--lp-line); }
.lp-topics li { display: flex; align-items: baseline; gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--lp-line); }
.lp-topic-n { font-family: var(--lp-italic); font-style: italic; font-size: 1.1rem; color: var(--lp-acento); min-width: 26px; }
.lp-topic-name { font-family: var(--lp-serif); font-size: 1.55rem; line-height: 1.2; letter-spacing: -.01em; color: var(--lp-ink); }
.lp-topic-note { margin-left: auto; font-size: .84rem; color: var(--lp-ink-soft); text-align: right; }

/* ============================================================
   4. SECCIÓN 3 — Cristina y credenciales
   ============================================================ */
.lp-about { background: var(--lp-beige); padding: 120px 0; }
.lp-about-grid {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
gap: clamp(40px, 7vw, 110px);
align-items: start;
}
.lp-about-quote {
position: relative;
margin: 34px 0 0;
padding-top: 26px;
max-width: 24em;
font-family: var(--lp-italic);
font-style: italic;
font-weight: 500;
font-size: 1.75rem;
line-height: 1.3;
color: var(--lp-ink);
}
.lp-about-quote::before {
content: '';
position: absolute;
top: 0; left: 0;
width: 56px; height: 2px;
background: var(--lp-rosa);
}
.lp-signature { display: flex; align-items: center; gap: 16px; margin-top: 36px; }
.lp-signature-photo {
width: 68px; height: 68px;
flex-shrink: 0;
border-radius: 50%;
overflow: hidden;
border: 3px solid var(--lp-white);
box-shadow: 0 12px 26px -14px rgba(36, 24, 18, .5);
background: var(--lp-sand);
}
.lp-signature-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; transform: scale(1.9); transform-origin: 50% 18%; }
.lp-signature-name { display: flex; flex-direction: column; font-family: var(--lp-italic); font-style: italic; font-weight: 600; font-size: 1.45rem; line-height: 1.1; color: var(--lp-ink); }
.lp-signature-name small { font-family: var(--lp-sans); font-style: normal; font-weight: 700; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-acento); margin-top: 6px; }

.lp-creds { margin: 54px 0 0; }
.lp-cred {
display: grid;
grid-template-columns: 150px minmax(0, 1fr);
gap: 20px;
padding: 22px 0;
border-top: 1px solid var(--lp-line);
}
.lp-cred:last-child { border-bottom: 1px solid var(--lp-line); }
.lp-cred dt { font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-acento); padding-top: 6px; }
.lp-cred dd { margin: 0; font-family: var(--lp-serif); font-size: 1.18rem; line-height: 1.35; color: var(--lp-ink); }
.lp-cred dd span { display: block; margin-top: 4px; font-family: var(--lp-sans); font-size: .88rem; color: var(--lp-ink-soft); }

/* ============================================================
   5. SECCIÓN 4 — Servicios y tarifas
   ============================================================ */
.lp-services { background: var(--lp-cream); padding: 120px 0 110px; }
.lp-services-head { max-width: 640px; }
.lp-plans {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 32px;
margin-top: 56px;
align-items: start;
}
.lp-plan {
display: flex;
flex-direction: column;
padding: 52px 52px 48px;
background: var(--lp-white);
border: 1px solid var(--lp-line);
border-radius: 30px 30px 30px 6px;
}
.lp-plan--alt { margin-top: 72px; background: var(--lp-beige); border-color: transparent; border-radius: 30px 30px 6px 30px; }
.lp-plan-label { display: flex; align-items: center; gap: 12px; margin: 0; font-size: .7rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--lp-ink-soft); }
.lp-plan-label span { font-family: var(--lp-italic); font-style: italic; font-weight: 500; font-size: 1.25rem; letter-spacing: 0; color: var(--lp-acento); }
.lp-plan-title { margin-top: 18px; font-family: var(--lp-serif); font-weight: 500; font-size: 2.1rem; line-height: 1.1; letter-spacing: -.015em; color: var(--lp-ink); }
.lp-plan-text { margin: 16px 0 0; font-size: 1rem; line-height: 1.65; color: var(--lp-ink-soft); max-width: 30em; }
.lp-plan-foot {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 16px;
margin-top: 38px;
padding-top: 26px;
border-top: 1px solid var(--lp-line);
}
.lp-price { display: flex; align-items: baseline; gap: 10px; margin: 0; }
.lp-price-n { font-family: var(--lp-serif); font-weight: 500; font-size: 3.4rem; line-height: 1; letter-spacing: -.03em; color: var(--lp-ink); }
.lp-price-u { font-size: .86rem; color: var(--lp-ink-soft); }
.lp-plan-meta {
margin: 0 0 6px;
padding: 7px 14px;
border-radius: 999px;
border: 1px solid var(--lp-line);
font-size: .78rem;
font-weight: 700;
letter-spacing: .03em;
color: var(--lp-ink);
white-space: nowrap;
}
.lp-plan-btn { margin-top: 30px; align-self: flex-start; }
.lp-services-note { margin: 48px 0 0; font-size: .95rem; color: var(--lp-ink-soft); }
.lp-services-note a { font-weight: 700; color: var(--lp-ink); border-bottom: 1px solid var(--lp-acento); }

/* ============================================================
   6. SECCIÓN 5 — Consulta real en Laguna de Duero
   ============================================================ */
.lp-place { background: var(--lp-white); padding: 120px 0 130px; }
.lp-place-grid {
display: grid;
grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
gap: clamp(40px, 7vw, 110px);
align-items: center;
}
.lp-gallery { position: relative; padding-bottom: 70px; }
.lp-gallery figure { position: relative; overflow: hidden; background: var(--lp-sand); }
.lp-gallery img { width: 100%; height: 100%; object-fit: cover; }
.lp-gallery-main { width: 80%; aspect-ratio: 4 / 5; border-radius: 26px 26px 26px 6px; }
.lp-gallery-main img { object-position: 50% 62%; }
.lp-gallery-second {
position: absolute !important;
right: 0; bottom: 0;
width: 47%;
aspect-ratio: 4 / 5;
border-radius: 20px;
border: 8px solid var(--lp-white);
box-shadow: 0 34px 60px -30px rgba(36, 24, 18, .55);
}
.lp-gallery-second img { object-position: 40% 60%; }
.lp-gallery figcaption {
position: absolute;
left: 14px; bottom: 14px;
padding: 6px 12px;
border-radius: 999px;
background: rgba(251, 248, 242, .92);
font-family: var(--lp-italic);
font-style: italic;
font-weight: 600;
font-size: .95rem;
line-height: 1.2;
color: var(--lp-ink);
}

.lp-honest {
margin-top: 28px;
padding: 18px 22px;
border-left: 2px solid var(--lp-acento);
border-radius: 0 14px 14px 0;
background: var(--lp-rosa-tint);
}
.lp-honest p { margin: 0; font-size: .95rem; line-height: 1.6; color: var(--lp-ink); }

.lp-facts {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
margin: 30px 0 0;
}
.lp-facts div { padding-top: 14px; border-top: 1px solid var(--lp-line); }
.lp-facts dt { font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-acento); }
.lp-facts dd { margin: 8px 0 0; font-size: .92rem; line-height: 1.5; color: var(--lp-ink); }

.lp-map {
position: relative;
margin-top: 30px;
height: 220px;
border-radius: 20px;
overflow: hidden;
background: var(--lp-beige);
border: 1px solid var(--lp-line);
}
.lp-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.lp-map-consent {
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
padding: 24px 28px;
}
.lp-map-consent p { margin: 0 0 16px; max-width: 30em; font-size: .88rem; line-height: 1.55; color: var(--lp-ink-soft); }
.lp-map-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.lp-map-actions .lp-text-link { font-size: .88rem; }

/* ============================================================
   7. SECCIÓN 6 — Opiniones
   ============================================================ */
.lp-reviews { background: var(--lp-beige); padding: 120px 0 110px; }
.lp-reviews-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.lp-reviews-head .lp-h2 { max-width: 13em; }
.lp-score { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.lp-score-n { font-family: var(--lp-serif); font-weight: 500; font-size: 4.4rem; line-height: .9; letter-spacing: -.04em; color: var(--lp-acento); }
.lp-score-t { display: flex; flex-direction: column; gap: 6px; font-size: .86rem; line-height: 1.35; color: var(--lp-ink-soft); }
.lp-score .lp-stars svg { width: 14px; height: 14px; }

.lp-reviews-grid {
display: grid;
grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
grid-template-rows: auto auto;
gap: 28px;
margin-top: 56px;
}
.lp-review {
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 22px;
padding: 32px 34px;
background: var(--lp-white);
border-radius: 22px;
}
.lp-review blockquote { margin: 0; font-size: .98rem; line-height: 1.65; color: var(--lp-ink); }
.lp-review--main {
grid-row: 1 / span 2;
padding: 64px 60px 52px;
background: var(--lp-cream);
border-radius: 30px 30px 30px 6px;
}
.lp-review--main::before {
content: '“';
position: absolute;
top: 18px; left: 52px;
font-family: var(--lp-serif);
font-size: 7rem;
line-height: 1;
color: var(--lp-rosa);
}
.lp-review--main blockquote {
position: relative;
margin-top: 44px;
font-family: var(--lp-italic);
font-style: italic;
font-weight: 500;
font-size: 1.85rem;
line-height: 1.32;
}
.lp-review figcaption { display: flex; flex-direction: column; padding-top: 16px; border-top: 1px solid var(--lp-line); font-size: .82rem; color: var(--lp-ink-soft); }
.lp-review figcaption strong { font-size: .95rem; color: var(--lp-ink); font-weight: 700; }
.lp-reviews-source { margin: 32px 0 0; font-size: .9rem; color: var(--lp-ink-soft); }

/* ============================================================
   8. SECCIÓN 7 — CTA final + formulario
   ============================================================ */
.lp-contact { background: var(--lp-rosa); padding: 120px 0; }
.lp-contact-grid {
display: grid;
grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
gap: clamp(40px, 6vw, 96px);
align-items: start;
}
.lp-contact .lp-kicker { color: var(--lp-ink); }
.lp-contact .lp-h2 { font-size: clamp(2.2rem, 3.6vw, 3.2rem); }
.lp-contact .lp-h2 em { color: var(--lp-ink); }
.lp-contact .lp-lead { color: var(--lp-ink); }
.lp-contact-text .lp-btn { margin-top: 32px; }
.lp-contact-list { margin-top: 36px; border-top: 1px solid rgba(36, 24, 18, .18); }
.lp-contact-list li {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 16px;
padding: 14px 0;
border-bottom: 1px solid rgba(36, 24, 18, .18);
font-size: .92rem;
}
.lp-contact-list span { font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-ink); opacity: .75; }
.lp-contact-list a { font-weight: 700; color: var(--lp-ink); text-align: right; word-break: break-word; }
.lp-contact-list a:hover { text-decoration: underline; }
.lp-contact-place { display: flex; align-items: center; gap: 8px; margin: 24px 0 0; font-size: .88rem; font-weight: 700; color: var(--lp-ink); }
.lp-pin { width: 16px; height: 16px; flex-shrink: 0; }

.lp-form {
padding: 44px 44px 40px;
background: var(--lp-white);
border-radius: 30px;
box-shadow: 0 50px 90px -50px rgba(36, 24, 18, .55);
}
.lp-form-title { margin: 0 0 24px; font-family: var(--lp-serif); font-size: 1.5rem; line-height: 1.2; color: var(--lp-ink); }
.lp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lp-field { display: flex; flex-direction: column; margin: 0 0 18px; }
.lp-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.lp-field > label, .lp-choice legend {
margin-bottom: 7px;
font-size: .7rem;
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--lp-ink-soft);
}
.lp-field input[type="text"], .lp-field input[type="email"], .lp-field input[type="tel"], .lp-field textarea {
width: 100%;
padding: 13px 15px;
border: 1px solid rgba(36, 24, 18, .18);
border-radius: 12px;
background: var(--lp-cream);
font-size: 1rem;
line-height: 1.4;
color: var(--lp-ink);
transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.lp-field textarea { resize: vertical; min-height: 110px; }
.lp-field input:focus, .lp-field textarea:focus { outline: none; border-color: var(--lp-acento); background: var(--lp-white); box-shadow: 0 0 0 3px rgba(184, 115, 95, .18); }
.lp-field-error { min-height: 0; margin-top: 5px; font-size: .78rem; font-weight: 700; color: #9C3B2A; }
.lp-field-error:empty { display: none; }
.lp-field.has-error input, .lp-field.has-error textarea { border-color: #9C3B2A; }

.lp-choice { border: 0; padding: 0; flex-direction: row; flex-wrap: wrap; gap: 10px; }
.lp-choice legend { padding: 0; width: 100%; }
.lp-field.lp-choice > label {
margin: 0;
text-transform: none;
letter-spacing: 0;
font-weight: 400;
color: var(--lp-ink);
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 18px;
border: 1px solid rgba(36, 24, 18, .18);
border-radius: 999px;
font-size: .92rem;
cursor: pointer;
transition: border-color .2s ease, background-color .2s ease;
}
.lp-field.lp-choice > label:has(input:checked) { border-color: var(--lp-ink); background: var(--lp-cream); }
.lp-choice input, .lp-consent input { accent-color: var(--lp-acento); width: 17px; height: 17px; margin: 0; }
.lp-field.lp-consent > label { margin: 0; text-transform: none; letter-spacing: 0; font-weight: 400; display: flex; align-items: flex-start; gap: 10px; font-size: .8rem; line-height: 1.5; color: var(--lp-ink-soft); cursor: pointer; }
.lp-consent input { margin-top: 2px; flex-shrink: 0; }
.lp-consent a { font-weight: 700; color: var(--lp-ink); text-decoration: underline; }
.lp-form-submit { width: 100%; margin-top: 6px; cursor: pointer; border: 0; }
.lp-form-submit:disabled { opacity: .6; cursor: wait; }
.lp-form-status {
display: none;
margin-top: 16px;
padding: 14px 16px;
border-radius: 12px;
background: rgba(201, 168, 118, .18);
font-size: .9rem;
line-height: 1.5;
color: var(--lp-ink);
}
.lp-form-status.is-visible { display: block; }
.lp-form-status.is-error { background: rgba(156, 59, 42, .1); color: #7A2E21; }

/* ============================================================
   9. SECCIÓN 8 — Preguntas frecuentes
   ============================================================ */
.lp-faq { background: var(--lp-cream); padding: 120px 0; }
.lp-faq-grid {
display: grid;
grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
gap: clamp(40px, 7vw, 110px);
align-items: start;
}
.lp-faq-head { position: sticky; top: calc(var(--lp-header-h) + 32px); }
.lp-faq-list { border-top: 1px solid var(--lp-line); }
.lp-q { border-bottom: 1px solid var(--lp-line); }
.lp-q summary {
position: relative;
display: block;
padding: 24px 56px 24px 0;
font-family: var(--lp-serif);
font-size: 1.28rem;
line-height: 1.3;
color: var(--lp-ink);
cursor: pointer;
list-style: none;
}
.lp-q summary::-webkit-details-marker { display: none; }
.lp-q summary::after {
content: '';
position: absolute;
right: 0; top: 50%;
width: 36px; height: 36px;
margin-top: -18px;
border-radius: 50%;
border: 1px solid var(--lp-line);
background:
linear-gradient(var(--lp-ink), var(--lp-ink)) center / 12px 1.5px no-repeat,
linear-gradient(var(--lp-ink), var(--lp-ink)) center / 1.5px 12px no-repeat;
transition: transform .3s var(--lp-ease), background-color .2s ease;
}
.lp-q[open] summary::after {
transform: rotate(45deg);
background-color: var(--lp-rosa-tint);
}
.lp-q summary:hover { color: var(--lp-acento); }
.lp-q p { margin: 0; padding: 0 56px 26px 0; font-size: .98rem; line-height: 1.7; color: var(--lp-ink-soft); }

/* ============================================================
   10. PIE PROPIO
   ============================================================ */
.lp-footer { background: var(--lp-beige); padding: 76px 0 34px; border-top: 1px solid var(--lp-line); }
.lp-footer-top {
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .9fr);
gap: 40px;
}
.lp-footer-brand p { margin: 18px 0 0; max-width: 22em; font-size: .82rem; line-height: 1.6; color: var(--lp-ink-soft); }
.lp-footer-col .lp-footer-h { margin: 0 0 14px; font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lp-acento); }
.lp-footer-col p, .lp-footer-col li { font-size: .88rem; line-height: 1.6; color: var(--lp-ink-soft); }
.lp-footer-col li + li { margin-top: 6px; }
.lp-footer-col a { transition: color .2s ease; word-break: break-word; }
.lp-footer-col a:hover { color: var(--lp-acento); }
.lp-footer-bottom { margin: 56px 0 0; padding-top: 22px; border-top: 1px solid var(--lp-line); font-size: .78rem; color: var(--lp-ink-soft); }

/* botón flotante de WhatsApp (propio de la landing) */
.lp-wa-float {
position: fixed;
right: 22px; bottom: 22px;
z-index: 90;
width: 56px; height: 56px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--lp-white);
border: 1px solid var(--lp-line);
box-shadow: 0 18px 36px -16px rgba(36, 24, 18, .5);
transition: transform .25s var(--lp-ease);
}
.lp-wa-float:hover { transform: translateY(-3px); }
.lp-wa-float .lp-wa-icon { width: 28px; height: 28px; fill: #25D366; }

/* ============================================================
   11. Aviso de cookies (mismo texto y consentimiento que la web)
   ============================================================ */
.lp-cookie {
position: fixed;
left: 16px; right: 16px; bottom: 16px;
z-index: 200;
max-width: 640px;
margin: 0 auto;
padding: 22px 26px;
background: var(--lp-white);
border: 1px solid var(--lp-line);
border-radius: 20px;
box-shadow: 0 40px 80px -30px rgba(36, 24, 18, .45);
transform: translateY(140%);
opacity: 0;
transition: transform .5s var(--lp-ease), opacity .5s var(--lp-ease);
}
.lp-cookie.is-visible { transform: none; opacity: 1; }
.lp-cookie p { margin: 0 0 16px; font-size: .86rem; line-height: 1.55; color: var(--lp-ink-soft); }
.lp-cookie p a { font-weight: 700; color: var(--lp-ink); text-decoration: underline; }
.lp-cookie-actions { display: flex; justify-content: flex-end; gap: 10px; }
.lp-cookie-btn {
min-height: 42px;
padding: 0 20px;
border-radius: 999px;
border: 1.5px solid rgba(36, 24, 18, .2);
background: transparent;
font-size: .84rem;
font-weight: 700;
color: var(--lp-ink);
cursor: pointer;
}
.lp-cookie-btn--ok { background: var(--lp-ink); border-color: var(--lp-ink); color: var(--lp-cream); }

/* ============================================================
   12. RESPONSIVE — móvil diseñado aparte, no un escritorio encogido
   ============================================================ */
@media (max-width: 1080px) {
.lp-nav a { padding: 8px 12px; }
.lp-nav a::after { left: 12px; right: 12px; }
.lp-header-right { gap: 18px; }
.lp-hero-media { padding-left: 32px; }
.lp-plan { padding: 40px 36px 36px; }
.lp-review--main { padding: 56px 40px 44px; }
.lp-review--main::before { left: 36px; }
.lp-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 880px) {
.lp-body { --lp-header-h: 66px; }
.lp-wrap { padding: 0 20px; }

/* cabecera: logo + menú sencillo + CTA siempre accesible */
.lp-brand { gap: 9px; }
.lp-brand-mark { width: 22px; height: 27px; }
.lp-brand-name { font-size: .84rem; white-space: nowrap; }
.lp-brand-name small { display: none; }
.lp-header-right { gap: 6px; }
.lp-header-cta { height: 40px; padding: 0 14px; font-size: .78rem; }
.lp-header-cta svg { display: none; }
.lp-menu-btn { display: inline-flex; width: 40px; height: 40px; }
.lp-nav {
position: absolute;
top: 100%; left: 0; right: 0;
flex-direction: column;
align-items: stretch;
padding: 6px 20px 18px;
background: var(--lp-cream);
border-bottom: 1px solid var(--lp-line);
box-shadow: 0 24px 40px -30px rgba(36, 24, 18, .5);
opacity: 0;
visibility: hidden;
transform: translateY(-8px);
transition: opacity .25s ease, transform .25s var(--lp-ease), visibility 0s linear .25s;
}
.lp-nav.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.lp-nav a { padding: 16px 2px; font-family: var(--lp-serif); font-size: 1.3rem; color: var(--lp-ink); border-bottom: 1px solid var(--lp-line); }
.lp-nav a:last-child { border-bottom: 0; }
.lp-nav a + a::before, .lp-nav a::after { display: none; }

/* hero: credencial, H1, subtítulo, foto (compacta) y CTA */
.lp-hero { padding: 20px 0 44px; }
.lp-hero::before, .lp-hero::after { display: none; }
.lp-hero-media::before {
content: '';
position: absolute;
left: -20px; right: -20px;
top: 55%; bottom: -600px;
background: var(--lp-beige);
z-index: -1;
}
.lp-hero-grid {
grid-template-columns: minmax(0, 1fr);
grid-template-rows: none;
grid-template-areas: "eyebrow" "title" "sub" "media" "cta" "proof" "human";
}
.lp-eyebrow { font-size: .62rem; letter-spacing: .14em; gap: 10px; }
.lp-eyebrow::before { width: 20px; }
.lp-title { margin-top: 12px; font-size: 2.02rem; line-height: 1.08; }
.lp-sub { margin-top: 12px; font-size: .97rem; line-height: 1.55; }
.lp-hero-media { padding: 0; margin-top: 18px; }
.lp-portrait-frame { max-width: none; }
.lp-portrait-frame::before { display: none; }
.lp-portrait { aspect-ratio: auto; height: clamp(164px, 45vw, 200px); border-radius: 22px; }
.lp-portrait img { object-position: 50% 16%; }
.lp-tag { top: 12px; right: auto; left: 12px; padding: 6px 12px; font-size: .66rem; }
.lp-room-card { left: auto; right: 10px; bottom: 10px; width: 92px; padding: 4px 4px 6px; border-radius: 11px; transform: rotate(2deg); }
.lp-room-card img { border-radius: 8px; aspect-ratio: 1 / 1; }
.lp-room-card figcaption { padding: 5px 2px 0; font-size: .58rem; gap: 3px; }
.lp-room-card figcaption svg { width: 9px; height: 9px; }
.lp-room-card figcaption strong { font-size: .58rem; line-height: 1.25; }
.lp-room-card figcaption .lp-room-addr { display: none; }
.lp-actions { flex-direction: column; margin-top: 18px; gap: 10px; }
.lp-btn { width: 100%; min-height: 54px; }
.lp-proof { margin-top: 24px; padding-top: 18px; }
.lp-checks { flex-direction: column; gap: 9px; }
.lp-human { margin-top: 24px; font-size: 1.2rem; }

/* secciones */
.lp-kicker { margin-bottom: 16px; font-size: .64rem; letter-spacing: .16em; }
.lp-kicker::before { width: 24px; }
.lp-h2 { font-size: 1.85rem; }
.lp-lead { margin-top: 16px; font-size: .98rem; }
.lp-link-cta { margin-top: 24px; }

.lp-needs { padding: 64px 0 60px; }
.lp-needs-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
.lp-topics li { gap: 16px; padding: 14px 0; }
.lp-topic-name { font-size: 1.28rem; }
.lp-topic-note { display: none; }

.lp-about { padding: 64px 0; }
.lp-about-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
.lp-about-quote { margin-top: 24px; padding-top: 20px; font-size: 1.4rem; }
.lp-signature { margin-top: 26px; }
.lp-signature-photo { width: 58px; height: 58px; }
.lp-signature-name { font-size: 1.25rem; }
.lp-creds { margin-top: 0; }
.lp-cred { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 16px 0; }
.lp-cred dt { padding-top: 0; }
.lp-cred dd { font-size: 1.08rem; }

.lp-services { padding: 64px 0; }
.lp-plans { grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 32px; }
.lp-plan, .lp-plan--alt { margin-top: 0; padding: 30px 24px 26px; }
.lp-plan-title { margin-top: 12px; font-size: 1.7rem; }
.lp-plan-text { font-size: .95rem; }
.lp-plan-foot { margin-top: 24px; padding-top: 20px; flex-wrap: wrap; }
.lp-price-n { font-size: 2.7rem; }
.lp-plan-btn { margin-top: 22px; align-self: stretch; }
.lp-services-note { margin-top: 28px; font-size: .9rem; }

.lp-place { padding: 64px 0 70px; }
.lp-place-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
.lp-gallery { order: 2; padding-bottom: 44px; }
.lp-gallery-main { width: 78%; }
.lp-gallery-second { width: 50%; border-width: 6px; }
.lp-gallery figcaption { left: 10px; bottom: 10px; font-size: .82rem; padding: 5px 10px; }
.lp-honest { margin-top: 22px; padding: 16px 18px; }
.lp-honest p { font-size: .92rem; }
.lp-facts { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 22px; }
.lp-facts div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 12px 0; }
.lp-facts dd { margin: 0; }
.lp-map { height: auto; min-height: 200px; }
.lp-map iframe { height: 260px; }
.lp-map-consent { padding: 20px; }
.lp-map-actions .lp-btn { width: auto; }

.lp-reviews { padding: 64px 0; }
.lp-reviews-head { flex-direction: column; align-items: flex-start; gap: 22px; }
.lp-score-n { font-size: 3.4rem; }
.lp-reviews-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 32px; }
.lp-review--main { grid-row: auto; padding: 44px 24px 28px; }
.lp-review--main::before { top: 10px; left: 22px; font-size: 5rem; }
.lp-review--main blockquote { margin-top: 30px; font-size: 1.4rem; }
.lp-review { padding: 24px 22px; }
.lp-reviews-source { margin-top: 22px; }

.lp-contact { padding: 64px 0; }
.lp-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
.lp-contact .lp-h2 { font-size: 1.95rem; }
.lp-contact-text .lp-btn { margin-top: 24px; }
.lp-contact-list { margin-top: 26px; }
.lp-contact-list li { flex-direction: column; gap: 2px; }
.lp-contact-list a { text-align: left; }
.lp-form { padding: 28px 20px 24px; border-radius: 24px; }
.lp-form-title { font-size: 1.3rem; margin-bottom: 18px; }
.lp-field-row { grid-template-columns: minmax(0, 1fr); }
.lp-field.lp-choice > label { flex: 1; justify-content: center; }

.lp-faq { padding: 64px 0; }
.lp-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
.lp-faq-head { position: static; }
.lp-q summary { padding: 20px 48px 20px 0; font-size: 1.1rem; }
.lp-q summary::after { width: 32px; height: 32px; margin-top: -16px; }
.lp-q p { padding: 0 0 22px; font-size: .94rem; }

.lp-footer { padding: 56px 0 96px; }
.lp-footer-top { grid-template-columns: minmax(0, 1fr); gap: 30px; }
.lp-footer-bottom { margin-top: 36px; }

.lp-wa-float { right: 14px; bottom: 14px; width: 52px; height: 52px; }
.lp-wa-float .lp-wa-icon { width: 26px; height: 26px; }
}

@media (max-width: 600px) {
.lp-cookie { left: 0; right: 0; bottom: 0; max-width: none; border-radius: 18px 18px 0 0; padding: 14px 16px 16px; }
.lp-cookie p { font-size: .74rem; line-height: 1.45; margin-bottom: 10px; }
.lp-cookie-actions { gap: 8px; }
.lp-cookie-btn { flex: 1; min-height: 40px; font-size: .8rem; }
}

@media (max-width: 374px) {
.lp-brand-name { font-size: .76rem; }
.lp-title { font-size: 1.85rem; }
}

@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
.lp-reveal { opacity: 1; transform: none; }
.lp-body *, .lp-body *::before, .lp-body *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
