/* ================================================================
   PÁGINAS DINÁMICAS (estilos, diseños, materiales, servicios) — v5
   ----------------------------------------------------------------
   Se carga solo desde paginas/dinamico.php ($extra_css = ['dinamico']).
   Todo cuelga de body.p-dinamico. Textos, encabezados y enlaces son los
   de siempre: aquí solo cambia la composición (grid, sticky, paneles
   expandibles, tira horizontal). assets/js/dinamico.js añade solo
   comportamiento de presentación.
   ================================================================ */

body.p-dinamico { overflow-x: clip; }

/* ---------- Cabecera de sección: titular enorme + párrafo al lado ---------- */
body.p-dinamico .text-center.mb-lg {
  max-width:none; text-align:left;
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  column-gap:clamp(2rem,6vw,9rem); row-gap:1rem; align-items:end;
  margin-bottom:clamp(2rem,4.5vw,5rem);
}
body.p-dinamico .text-center.mb-lg h2 { grid-column:1; font-size:clamp(2.3rem, 1rem + 4.6vw, 6rem); line-height:1.02; letter-spacing:-.018em; }
body.p-dinamico .text-center.mb-lg .separator { grid-column:1; margin:0; width:96px; background:linear-gradient(90deg, var(--c-terra), rgba(203,160,99,0)); }
body.p-dinamico .text-center.mb-lg .separator::before { left:0; margin-left:0; }
body.p-dinamico .text-center.mb-lg p:not(.eyebrow) { grid-column:2; grid-row:1 / span 2; justify-self:start; margin:0; max-width:46ch; font-size:1.08rem; color:var(--c-text-2); }
body.p-dinamico .text-center.mb-lg .eyebrow { display:none; }
@media (max-width:900px) {
  body.p-dinamico .text-center.mb-lg { grid-template-columns:1fr; }
  body.p-dinamico .text-center.mb-lg p:not(.eyebrow) { grid-column:1; grid-row:auto; }
}

/* ================================================================
   HERO — pantalla casi completa, foto a sangre, titular gigante
   ================================================================ */
body.p-dinamico .dh-hero {
  position:relative; isolation:isolate; overflow:hidden; display:grid; align-items:stretch;
  min-height:max(34rem, calc(80svh - var(--header-h) - 3.4rem));
  padding:0; border-bottom:0; background:#0B0B08;
}
body.p-dinamico .dh-hero::before { z-index:1; }           /* scrim (has-bg) por encima de la foto */
body.p-dinamico .dh-hero::after  { z-index:1; }           /* grano */
/* Sin foto: foco de luz cálido + viñeta; con foto: scrim lateral/inferior */
body.p-dinamico .dh-hero:not(.has-bg)::before {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(60% 80% at 82% -10%, rgba(203,160,99,.30), transparent 62%),
    radial-gradient(45% 60% at 0% 115%, rgba(203,160,99,.10), transparent 70%),
    linear-gradient(180deg, #14110C 0%, #0B0B08 100%);
}
body.p-dinamico .dh-hero.dh-photo-on::before,
body.p-dinamico .dh-hero.has-bg::before {
  background:
    linear-gradient(90deg, rgba(11,11,8,.93) 0%, rgba(11,11,8,.74) 30%, rgba(11,11,8,.26) 64%, rgba(11,11,8,.08) 100%),
    linear-gradient(0deg, rgba(11,11,8,.97) 0%, rgba(11,11,8,.55) 26%, rgba(11,11,8,0) 56%),
    linear-gradient(180deg, rgba(11,11,8,.6) 0%, rgba(11,11,8,0) 22%),
    radial-gradient(55% 70% at 82% 14%, rgba(255,226,170,.12), transparent 70%);
}
body.p-dinamico .dh-hero-bg,
body.p-dinamico .dh-hero .inner-hero-media { position:absolute; inset:0; z-index:0; margin:0; overflow:hidden; }
body.p-dinamico .dh-hero-bg::before {
  content:''; position:absolute; inset:-6% 0; background:var(--dh-bg) center 52% / cover no-repeat;
  translate:0 calc(var(--dh-p, 0) * 9%); scale:1.04; animation:dhZoom 2.6s var(--ease) both; will-change:translate, scale;
}
@media (min-width:900px) { body.p-dinamico .dh-hero-bg::before { background-image:var(--dh-bg-lg, var(--dh-bg)); } }
body.p-dinamico .dh-hero .inner-hero-media picture, body.p-dinamico .dh-hero .inner-hero-media { display:block; }
body.p-dinamico .dh-hero .inner-hero-media img {
  position:absolute; inset:-6% 0; width:100%; height:112%; object-fit:cover; object-position:center 55%;
  translate:0 calc(var(--dh-p, 0) * 9%); scale:1.04; animation:dhZoom 2.6s var(--ease) both; will-change:translate, scale;
}
@keyframes dhZoom { from { scale:1.2; } to { scale:1.04; }}

/* Retícula de 12 columnas en filetes dorados (dibujo de arquitecto) */
body.p-dinamico .dh-hero-lines {
  position:absolute; z-index:1; top:0; bottom:0; left:var(--gutter); right:var(--gutter); pointer-events:none;
  background:
    linear-gradient(90deg, rgba(203,160,99,.14) 1px, transparent 1px) 0 0 / calc(100% / 12) 100% repeat-x,
    linear-gradient(90deg, transparent calc(100% - 1px), rgba(203,160,99,.14) 0) 0 0 / 100% 100% no-repeat;
  -webkit-mask-image:linear-gradient(180deg, #000 0%, rgba(0,0,0,.5) 55%, transparent 100%); mask-image:linear-gradient(180deg, #000 0%, rgba(0,0,0,.5) 55%, transparent 100%);
  opacity:.8;
}
body.p-dinamico .dh-hero.dh-photo-on .dh-hero-lines, body.p-dinamico .dh-hero.has-bg .dh-hero-lines { opacity:.45; }

body.p-dinamico .dh-hero-inner {
  position:relative; z-index:2; max-width:none; width:100%; margin:0;
  padding:clamp(2.5rem,5vw,5rem) var(--gutter) clamp(1rem,1.8vw,1.8rem);
  display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:clamp(1rem,2vw,2.5rem);
  grid-template-rows:1fr auto auto auto auto;
}
body.p-dinamico .dh-hero-inner .eyebrow { grid-column:1 / 8; grid-row:2; align-self:end; margin:0 0 1.2rem; white-space:normal; font-size:.74rem; }
body.p-dinamico .dh-hero-inner h1 {
  grid-column:1 / 8; grid-row:3 / 5; margin:0 0 1.4rem; max-width:none;
  font-size:clamp(2.6rem, .9rem + 6.4vw, 7.4rem); line-height:.95; letter-spacing:-.026em; color:#F7F1E6; text-wrap:balance; overflow-wrap:break-word;
}
body.p-dinamico .dh-h1-l .dh-hero-inner h1 { font-size:clamp(2.5rem, .8rem + 5.4vw, 6.2rem); }
body.p-dinamico .dh-h1-xl .dh-hero-inner h1 { font-size:clamp(2.4rem, .8rem + 4.5vw, 5.3rem); }
body.p-dinamico .dh-hero-inner .lead {
  grid-column:8 / 13; grid-row:3; align-self:end; margin:0 0 1.4rem; max-width:52ch;
  font-size:clamp(1rem,.92rem + .3vw,1.2rem); line-height:1.65; color:#F4EEE3; text-shadow:0 1px 18px rgba(0,0,0,.7);
}
body.p-dinamico .dh-actions { grid-column:8 / 13; grid-row:4; align-self:start; display:flex; flex-wrap:wrap; gap:12px; margin:0; }
body.p-dinamico .dh-actions .btn { padding:1.1rem 2.1rem; font-size:.8rem; }

/* Barra inferior: filete dorado con un destello que lo recorre */
body.p-dinamico .dh-scroll-cue {
  grid-column:1 / -1; grid-row:5; display:block; position:relative; height:1px; margin-top:clamp(1.6rem,3.5vw,3.5rem);
  background:rgba(203,160,99,.38); overflow:hidden;
}
body.p-dinamico .dh-scroll-cue i { position:absolute; top:0; left:0; width:22%; height:1px; background:linear-gradient(90deg, transparent, #F1DDB0, transparent); animation:dhSweep 5.5s var(--ease) infinite; }
@keyframes dhSweep { from { transform:translateX(-100%); } to { transform:translateX(560%); } }

@media (max-width:1100px) {
  body.p-dinamico .dh-hero-inner h1, body.p-dinamico .dh-h1-l .dh-hero-inner h1, body.p-dinamico .dh-h1-xl .dh-hero-inner h1 { grid-column:1 / -1; grid-row:3; font-size:clamp(2.5rem, 1rem + 7.2vw, 6rem); }
  body.p-dinamico .dh-hero-inner .eyebrow { grid-column:1 / -1; }
  body.p-dinamico .dh-hero-inner .lead { grid-column:1 / 10; grid-row:4; }
  body.p-dinamico .dh-actions { grid-column:1 / -1; grid-row:5; }
  body.p-dinamico .dh-scroll-cue { grid-row:6; }
  body.p-dinamico .dh-hero-inner { grid-template-rows:1fr auto auto auto auto auto; }
}
@media (max-width:430px) {
  body.p-dinamico .dh-hero-inner .eyebrow { font-size:.64rem; letter-spacing:.15em; gap:8px; }
  body.p-dinamico .dh-hero-inner .eyebrow::before { width:16px; }
}
@media (max-width:760px) {
  body.p-dinamico .dh-hero { min-height:max(30rem, calc(88svh - var(--header-h) - 3.4rem)); }
  body.p-dinamico .dh-hero-inner .lead { grid-column:1 / -1; font-size:1rem; }
  body.p-dinamico .dh-actions { flex-direction:column; }
  body.p-dinamico .dh-actions .btn { width:100%; }
  body.p-dinamico .dh-hero.dh-photo-on::before, body.p-dinamico .dh-hero.has-bg::before {
    background:
      linear-gradient(0deg, rgba(11,11,8,.98) 0%, rgba(11,11,8,.88) 52%, rgba(11,11,8,.5) 76%, rgba(11,11,8,.3) 100%),
      linear-gradient(180deg, rgba(11,11,8,.55) 0%, rgba(11,11,8,0) 18%);
  }
}

/* ================================================================
   INTRO — texto editorial a la izquierda, panel de cristal fijo a la derecha
   ================================================================ */
body.p-dinamico .dh-intro > .container { max-width:none; }
body.p-dinamico .dh-intro-grid {
  display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:clamp(1.5rem,3.4vw,5rem); row-gap:2.5rem; align-items:start;
}
body.p-dinamico .dh-prose { grid-column:1 / 8; max-width:none; }
body.p-dinamico .dh-aside { grid-column:8 / 13; }
body.p-dinamico .dh-prose h2 { font-size:clamp(2.1rem, 1rem + 3vw, 4.2rem); line-height:1.02; letter-spacing:-.018em; margin:0 0 .4rem; max-width:16ch; text-wrap:balance; }
body.p-dinamico .dh-prose .separator { margin:1.6rem 0 2rem; width:96px; }
body.p-dinamico .dh-prose p { max-width:62ch; margin:0 0 1.15rem; font-size:1.06rem; line-height:1.78; color:var(--c-text-2); }
body.p-dinamico .dh-prose .eyebrow { margin-bottom:1.1rem; }
body.p-dinamico .dh-prose .separator + p {
  font-family:var(--font-display); font-variation-settings:'opsz' 12; font-optical-sizing:none;
  font-size:clamp(1.18rem, 1rem + .6vw, 1.55rem); line-height:1.5; color:var(--c-text-1); max-width:50ch; margin-bottom:1.6rem;
}
body.p-dinamico .dh-prose p a { color:var(--c-terra-dd); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(203,160,99,.6); }

/* Foto enmarcada que sangra contra el borde derecho */
body.p-dinamico .dh-photo { position:relative; margin-right:calc(var(--gutter) * -1); border-radius:var(--r-xl) 0 0 var(--r-xl); overflow:hidden; aspect-ratio:5/4; background:#14110C; box-shadow:var(--shadow-lg); }
body.p-dinamico .dh-photo img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.4s var(--ease); }
body.p-dinamico .dh-photo::after { content:''; position:absolute; inset:12px 0 12px 12px; border:1px solid rgba(255,238,205,.42); border-right:0; border-radius:calc(var(--r-xl) - 8px) 0 0 calc(var(--r-xl) - 8px); pointer-events:none; }
body.p-dinamico .dh-aside:hover .dh-photo img { transform:scale(1.04); }

/* Panel de cristal oscuro: lista, calificación y CTA */
body.p-dinamico .dh-panel {
  position:relative; border-radius:var(--r-xl); overflow:hidden; background:linear-gradient(160deg,#1B1712,#0B0B08);
  padding:clamp(1.5rem,2.4vw,2.6rem); border:1px solid rgba(203,160,99,.34); box-shadow:0 30px 70px -30px rgba(20,12,0,.7);
}
body.p-dinamico .dh-photo + .dh-panel { margin:clamp(-5rem,-5vw,-2.4rem) 0 0 clamp(1.2rem,4vw,4.5rem); z-index:2; }
body.p-dinamico .dh-panel h3 { font-size:clamp(1.5rem,1.1rem + .8vw,2rem); margin:0 0 1.2rem; color:var(--c-text-1); line-height:1.15; }
body.p-dinamico .dh-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
body.p-dinamico .dh-list li { display:flex; gap:.85rem; align-items:flex-start; padding:.8rem 0; border-top:1px solid rgba(203,160,99,.2); font-size:.96rem; line-height:1.5; color:var(--c-text-2); }
body.p-dinamico .dh-list li:first-child { border-top:0; padding-top:.2rem; }
body.p-dinamico .dh-check { flex:0 0 26px; width:26px; height:26px; border-radius:50%; border:1px solid rgba(203,160,99,.6); color:var(--c-terra-dd); display:inline-flex; align-items:center; justify-content:center; margin-top:-1px; }
body.p-dinamico .dh-check .icon { width:13px; height:13px; }
body.p-dinamico .dh-panel-foot { margin-top:1.4rem; padding-top:1.3rem; border-top:1px solid rgba(203,160,99,.34); }
body.p-dinamico .dh-rating { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:1rem; }
body.p-dinamico .dh-rating-n { font-size:.86rem; font-weight:600; color:var(--c-text-1); }
body.p-dinamico .dh-rating-c { font-size:.8rem; color:var(--c-text-3); }
body.p-dinamico .dh-panel-foot .btn { width:100%; padding:1.1rem 1.4rem; }

@media (max-width:1100px) {
  body.p-dinamico .dh-prose, body.p-dinamico .dh-aside { grid-column:1 / -1; }
  body.p-dinamico .dh-prose h2 { max-width:22ch; }
  body.p-dinamico .dh-aside { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.2rem; align-items:stretch; }
  body.p-dinamico .dh-photo { margin:0; border-radius:var(--r-xl); aspect-ratio:auto; min-height:320px; }
  body.p-dinamico .dh-photo::after { inset:12px; border-right:1px solid rgba(255,238,205,.42); border-radius:calc(var(--r-xl) - 8px); }
  body.p-dinamico .dh-photo + .dh-panel { margin:0; }
  body.p-dinamico .dh-aside > .dh-panel:only-child { grid-column:1 / -1; }
}
@media (max-width:700px) {
  body.p-dinamico .dh-aside { grid-template-columns:1fr; }
  body.p-dinamico .dh-photo { aspect-ratio:4/3; min-height:0; margin:0 calc(var(--gutter) * -1); border-radius:0; }
  body.p-dinamico .dh-photo::after { inset:10px; border-radius:0; }
  body.p-dinamico .dh-photo + .dh-panel { margin:-3rem 0 0; }
}

/* ================================================================
   PROCESO — titular fijo + pasos con numeral gigante en filete
   ================================================================ */
body.p-dinamico .dh-process > .container { max-width:none; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(2rem,6vw,9rem); align-items:start; }
body.p-dinamico .dh-process .text-center.mb-lg { display:block; position:sticky; top:calc(var(--header-h) + 2rem); margin:0; }
body.p-dinamico .dh-process .text-center.mb-lg h2 { font-size:clamp(2.4rem,1rem + 4.2vw,5.4rem); line-height:1.02; }
body.p-dinamico .dh-process .text-center.mb-lg .separator { margin:1.6rem 0 0; }
body.p-dinamico .dh-steps { counter-reset:dhpaso; max-width:none; margin:0; }
body.p-dinamico .dh-steps .steps-line { display:none; }
body.p-dinamico .dh-steps .step {
  position:relative; display:grid; grid-template-columns:clamp(84px,10.5vw,200px) minmax(0,1fr) auto; column-gap:clamp(1rem,2.4vw,3rem); align-items:start;
  padding:clamp(1.6rem,2.6vw,3rem) 0; margin:0; border-radius:0; border-top:1px solid rgba(203,160,99,.3); counter-increment:dhpaso;
}
body.p-dinamico .dh-steps .step:last-child { border-bottom:1px solid rgba(203,160,99,.3); padding-bottom:clamp(1.6rem,2.6vw,3rem); }
body.p-dinamico .dh-steps .step:hover { background:transparent; }
body.p-dinamico .dh-steps .step::before {
  content:counter(dhpaso, decimal-leading-zero) / ''; grid-column:1; grid-row:1; align-self:center;
  font-family:var(--font-display); font-variation-settings:'opsz' 26; font-size:clamp(3.6rem, 2.2rem + 5.4vw, 9rem); line-height:.9; letter-spacing:-.03em;
  color:transparent; -webkit-text-stroke:1px rgba(203,160,99,.5); transition:color .7s var(--ease), -webkit-text-stroke-color .7s var(--ease), transform .8s var(--ease);
}
body.p-dinamico .dh-steps .step:hover::before, body.p-dinamico .dh-steps .step.is-active::before { color:rgba(203,160,99,.18); -webkit-text-stroke-color:#D9B77E; transform:translateX(6px); }
body.p-dinamico .dh-steps .step-body { grid-column:2; grid-row:1; padding-top:.2rem; }
body.p-dinamico .dh-steps .step-num { grid-column:3; grid-row:1; width:clamp(48px,4.2vw,68px); height:clamp(48px,4.2vw,68px); box-shadow:none; }
body.p-dinamico .dh-steps .step-num .icon { width:clamp(20px,1.8vw,28px); height:clamp(20px,1.8vw,28px); }
body.p-dinamico .dh-steps .step-body h3 { font-size:clamp(1.5rem,1rem + 1.6vw,2.6rem); line-height:1.1; margin-bottom:.7rem; }
body.p-dinamico .dh-steps .step-body p { font-size:clamp(1rem,.95rem + .25vw,1.16rem); max-width:50ch; }
@media (max-width:900px) {
  body.p-dinamico .dh-process > .container { grid-template-columns:1fr; }
  body.p-dinamico .dh-process .text-center.mb-lg { position:static; margin-bottom:2rem; }
}
@media (max-width:560px) {
  body.p-dinamico .dh-steps .step { grid-template-columns:auto 1fr; row-gap:1rem; }
  body.p-dinamico .dh-steps .step::before { grid-column:1; grid-row:1; font-size:3.4rem; }
  body.p-dinamico .dh-steps .step-num { grid-column:2; grid-row:1; justify-self:end; }
  body.p-dinamico .dh-steps .step-body { grid-column:1 / -1; grid-row:2; }
}

/* ================================================================
   INCLUYE — mosaico: una pieza oscura alta, una dorada, una ancha
   ================================================================ */
body.p-dinamico .dh-incl > .container { max-width:none; }
body.p-dinamico .dh-bento {
  display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); grid-template-rows:repeat(2, auto); gap:clamp(10px,1.3vw,22px);
  background:none; border:0; border-radius:0; overflow:visible; counter-reset:dhinc;
}
body.p-dinamico .dh-bento .feature {
  position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; counter-increment:dhinc;
  min-height:clamp(210px, 17vw, 320px); padding:clamp(5.6rem,5vw,6.6rem) clamp(1.4rem,2.2vw,2.6rem) clamp(1.4rem,2.2vw,2.6rem);
  background:var(--c-white); border:1px solid var(--c-border-m); border-radius:var(--r-xl);
  transition:transform .6s var(--ease), border-color .5s var(--ease), box-shadow .6s var(--ease);
}
body.p-dinamico .dh-bento .feature::before { content:''; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .5s var(--ease); background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), rgba(203,160,99,.26), transparent 62%); }
body.p-dinamico .dh-bento .feature:hover { transform:translateY(-6px); border-color:var(--c-terra); box-shadow:var(--shadow-lg); background:var(--c-white); }
body.p-dinamico .dh-bento .feature:hover::before { opacity:1; }
/* numeral fantasma de fondo */
body.p-dinamico .dh-bento .feature::after {
  content:counter(dhinc, decimal-leading-zero) / ''; position:absolute; right:clamp(1rem,1.8vw,2rem); top:clamp(.4rem,1vw,1rem); left:auto; bottom:auto; width:auto; height:auto; transform:none; background:none;
  font-family:var(--font-display); font-variation-settings:'opsz' 26; font-size:clamp(4rem,3rem + 4vw,8.5rem); line-height:1; letter-spacing:-.03em;
  color:rgba(20,17,12,.07); pointer-events:none; transition:color .6s var(--ease), translate .8s var(--ease);
}
body.p-dinamico .dh-bento .feature:hover::after { translate:-8px 0; }
body.p-dinamico .dh-bento .feature-icon-din { position:absolute; top:clamp(1.2rem,2vw,2.2rem); left:clamp(1.2rem,2vw,2.2rem); margin:0; width:58px; height:58px; }
body.p-dinamico .dh-bento .feature h3 { font-size:clamp(1.35rem,1rem + 1vw,2rem); margin:0 0 .5rem; line-height:1.1; }
body.p-dinamico .dh-bento .feature p { font-size:1rem; max-width:40ch; }
body.p-dinamico .dh-bento .dh-b1 { grid-column:1 / 6; grid-row:1 / 3; min-height:clamp(440px, 36vw, 680px); }
body.p-dinamico .dh-bento .dh-b2 { grid-column:6 / 10; grid-row:1; }
body.p-dinamico .dh-bento .dh-b3 { grid-column:10 / 13; grid-row:1; }
body.p-dinamico .dh-bento .dh-b4 { grid-column:6 / 13; grid-row:2; }
body.p-dinamico .dh-bento .dh-b1 {
  --c-white:#14110C; --c-text-1:#F4EEE3; --c-text-2:rgba(244,238,227,.82); --c-text-3:rgba(244,238,227,.68); --c-terra-dd:#D9B77E; --c-border-m:rgba(203,160,99,.4);
  background:radial-gradient(90% 70% at 85% 0%, rgba(203,160,99,.30), transparent 60%), linear-gradient(160deg,#1B1712,#0B0B08);
}
body.p-dinamico .dh-bento .dh-b1::after { color:rgba(203,160,99,.12) !important; font-size:clamp(7rem,5rem + 8vw,15rem) !important; }
body.p-dinamico .dh-bento .dh-b1 .feature-icon-din { width:96px; height:96px; background:radial-gradient(circle at 30% 25%, rgba(255,255,255,.14), rgba(203,160,99,.12) 70%); color:var(--c-terra-dd); }
body.p-dinamico .dh-bento .dh-b1 .feature-icon-din svg { width:40px; height:40px; }
body.p-dinamico .dh-bento .dh-b1 h3 { font-size:clamp(2.2rem,1.2rem + 2.6vw,4.2rem) !important; line-height:1 !important; margin-bottom:.9rem !important; }
body.p-dinamico .dh-bento .dh-b1 p { font-size:1.12rem !important; }
body.p-dinamico .dh-bento .dh-b3 { --c-text-1:#14110C; --c-text-2:#3B3228; --c-text-3:#3B3228; --c-terra-dd:#5E4520; background:var(--gold-grad); border-color:transparent; }
body.p-dinamico .dh-bento .dh-b3:hover { background:var(--gold-grad); filter:brightness(1.05); }
body.p-dinamico .dh-bento .dh-b3 .feature-icon-din { background:rgba(255,255,255,.35); border-color:rgba(20,17,12,.35); color:#14110C; }
body.p-dinamico .dh-bento .dh-b3::after { color:rgba(20,17,12,.12) !important; }
body.p-dinamico .dh-bento .dh-b4 { flex-direction:row; align-items:flex-end; justify-content:flex-start; gap:2rem; padding-top:clamp(1.4rem,2.2vw,2.6rem); padding-left:clamp(6.4rem,7vw,9rem); min-height:clamp(180px,13vw,240px); }
body.p-dinamico .dh-bento .dh-b4 h3 { flex:0 0 auto; max-width:14ch; margin:0; }
body.p-dinamico .dh-bento .dh-b4 p { margin:0 0 .3rem; }
@media (max-width:1080px) {
  body.p-dinamico .dh-bento { grid-template-columns:repeat(2, minmax(0,1fr)); grid-template-rows:none; }
  body.p-dinamico .dh-bento .feature, body.p-dinamico .dh-bento .dh-b2, body.p-dinamico .dh-bento .dh-b3, body.p-dinamico .dh-bento .dh-b4 { grid-column:auto; grid-row:auto; }
  body.p-dinamico .dh-bento .dh-b1 { grid-column:1 / -1; min-height:340px; }
  body.p-dinamico .dh-bento .dh-b4 { grid-column:1 / -1; }
}
@media (max-width:640px) {
  body.p-dinamico .dh-bento { grid-template-columns:1fr; }
  body.p-dinamico .dh-bento .feature { min-height:190px; padding-top:5.4rem; justify-content:flex-start; }
  body.p-dinamico .dh-bento .dh-b1 { min-height:320px; padding-top:8rem; }
  body.p-dinamico .dh-bento .dh-b1 .feature-icon-din { width:68px; height:68px; }
  body.p-dinamico .dh-bento .dh-b1 .feature-icon-din svg { width:30px; height:30px; }
  body.p-dinamico .dh-bento .dh-b1 h3 { font-size:clamp(2rem,9vw,2.6rem) !important; }
  body.p-dinamico .dh-bento .dh-b4 { flex-direction:column; align-items:flex-start; gap:.5rem; padding-left:clamp(1.4rem,2.2vw,2.6rem); }
  body.p-dinamico .dh-bento .dh-b4 h3 { max-width:none; }
}

/* ================================================================
   GALERÍA — tira horizontal de borde a borde, con arrastre y progreso
   ================================================================ */
body.p-dinamico .dh-gal { overflow:hidden; padding-bottom:clamp(3rem,6vw,6rem); }
body.p-dinamico .dh-gal > .container { max-width:none; padding:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; }
body.p-dinamico .dh-gal .text-center.mb-lg { grid-column:1; grid-row:1; padding:0 var(--gutter); margin-bottom:clamp(1.5rem,3vw,3rem); }
body.p-dinamico .dh-gal .text-center.mt-lg { grid-column:2; grid-row:1; padding:0 var(--gutter) 0 0; margin:0 0 clamp(1.5rem,3vw,3rem); text-align:right; align-self:end; }
body.p-dinamico .dh-strip {
  grid-column:1 / -1; grid-row:2; display:flex; gap:clamp(12px,1.5vw,28px); overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-padding-inline:var(--gutter); padding:1rem var(--gutter) 3.2rem; margin:0;
  scrollbar-width:none; -webkit-overflow-scrolling:touch; cursor:grab; grid-template-columns:none;
}
body.p-dinamico .dh-strip::-webkit-scrollbar { display:none; }
body.p-dinamico .dh-strip.is-dragging { cursor:grabbing; scroll-snap-type:none; }
body.p-dinamico .dh-strip.is-dragging .galeria-item { pointer-events:none; }
body.p-dinamico .dh-strip .galeria-item {
  flex:0 0 clamp(250px, 27vw, 580px); width:auto; aspect-ratio:4/5; scroll-snap-align:start; border-radius:var(--r-md); background:#14110C;
  box-shadow:0 0 0 1px rgba(203,160,99,.5), 0 30px 46px -28px rgba(40,26,8,.6); transition:transform .6s var(--ease), box-shadow .6s var(--ease);
}
body.p-dinamico .dh-strip .galeria-item::after { content:''; position:absolute; inset:10px; z-index:2; pointer-events:none; border:1px solid rgba(255,238,205,.42); border-radius:3px; }
body.p-dinamico .dh-strip .galeria-item:hover, body.p-dinamico .dh-strip .galeria-item:focus-visible { transform:translateY(-6px); box-shadow:0 0 0 1px var(--c-terra), 0 38px 52px -26px rgba(40,26,8,.7); }
body.p-dinamico .dh-strip .gp-overlay { inset:10px; }
@media (min-width:901px) {
  body.p-dinamico .dh-strip .galeria-item:nth-child(even) { margin-top:3.2rem; }
  body.p-dinamico .dh-strip .galeria-item:nth-child(3n) { aspect-ratio:1/1; flex-basis:clamp(280px, 30vw, 640px); }
  body.p-dinamico .dh-strip .galeria-item:nth-child(3n):nth-child(even) { margin-top:0; align-self:flex-end; }
}
body.p-dinamico .dh-strip-controls { grid-column:1 / -1; grid-row:3; display:flex; align-items:center; gap:1rem; padding:0 var(--gutter); margin-top:-1.2rem; }
body.p-dinamico .dh-strip-progress { flex:1; height:2px; background:var(--c-border-m); position:relative; overflow:hidden; border-radius:2px; }
body.p-dinamico .dh-strip-progress i { position:absolute; left:0; top:0; bottom:0; width:var(--gp-w,20%); background:var(--gold-grad); transform:translateX(var(--gp-x,0)); border-radius:2px; }
body.p-dinamico .dh-arrow { width:52px; height:52px; border-radius:50%; border:1px solid var(--c-border-m); background:var(--c-white); color:var(--c-text-1); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all var(--transition); }
body.p-dinamico .dh-arrow:hover { border-color:var(--c-terra); background:var(--c-terra); color:#14110C; }
body.p-dinamico .dh-arrow[disabled] { opacity:.35; pointer-events:none; }
@media (max-width:700px) {
  body.p-dinamico .dh-gal > .container { grid-template-columns:1fr; }
  body.p-dinamico .dh-gal .text-center.mt-lg { grid-column:1; grid-row:4; text-align:left; padding:0 var(--gutter); margin:1.6rem 0 0; }
  body.p-dinamico .dh-strip .galeria-item { flex-basis:min(74vw, 340px); }
}

/* ================================================================
   FAQ — titular fijo a la izquierda, preguntas numeradas a la derecha
   ================================================================ */
body.p-dinamico .dh-faq > .container { max-width:none; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(2rem,6vw,9rem); align-items:start; }
body.p-dinamico .dh-faq .text-center.mb-lg { display:block; position:sticky; top:calc(var(--header-h) + 2rem); margin:0; text-align:left; max-width:none; }
body.p-dinamico .dh-faq .text-center.mb-lg h2 { font-size:clamp(2.2rem,1rem + 3.6vw,4.8rem); }
body.p-dinamico .dh-faq .text-center.mb-lg .separator { margin:1.4rem 0 0; width:96px; background:linear-gradient(90deg, var(--c-terra), rgba(203,160,99,0)); }
body.p-dinamico .dh-faq .text-center.mb-lg .separator::before { left:0; margin-left:0; }
body.p-dinamico .dh-faq .faq-list { max-width:none !important; margin:0 !important; counter-reset:dhq; }
body.p-dinamico .dh-faq .faq-item { counter-increment:dhq; }
body.p-dinamico .dh-faq .faq-q { font-size:clamp(1.08rem,.95rem + .4vw,1.45rem); padding:clamp(1.3rem,2vw,2.1rem) .15rem; justify-content:flex-start; gap:clamp(.8rem,1.6vw,1.8rem); }
body.p-dinamico .dh-faq .faq-q::before { content:counter(dhq, decimal-leading-zero) / ''; flex:0 0 auto; font-family:var(--font-display); font-variation-settings:'opsz' 12; font-size:clamp(1.1rem,1rem + .5vw,1.6rem); color:var(--c-terra-dd); min-width:2ch; }
body.p-dinamico .dh-faq .faq-q span { margin-left:auto; }
body.p-dinamico .dh-faq .faq-a { font-size:1.06rem; max-width:62ch; padding-left:calc(2ch + clamp(.8rem,1.6vw,1.8rem) + .6rem); }
@media (max-width:900px) {
  body.p-dinamico .dh-faq > .container { grid-template-columns:1fr; }
  body.p-dinamico .dh-faq .text-center.mb-lg { position:static; margin-bottom:2rem; }
}
@media (max-width:560px) { body.p-dinamico .dh-faq .faq-a { padding-left:.15rem; } }

/* ================================================================
   RELACIONADAS — paneles de foto que se expanden al pasar el cursor
   ================================================================ */
body.p-dinamico .dh-related > .container { max-width:none; }
body.p-dinamico .dh-rel { display:flex; gap:clamp(8px,1vw,16px); height:clamp(380px, 42vw, 600px); grid-template-columns:none; counter-reset:dhrel; }
body.p-dinamico .dh-rel .related-card {
  position:relative; isolation:isolate; overflow:hidden; flex:1 1 0; min-width:0; display:flex; align-items:flex-end; padding:0; counter-increment:dhrel;
  border:0; border-radius:var(--r-xl); background:#14110C; transform:none; text-decoration:none;
  --c-text-1:#F4EEE3; --c-terra-dd:#D9B77E; --c-text-3:rgba(244,238,227,.7);
  transition:flex .9s var(--ease), box-shadow .6s var(--ease);
}
body.p-dinamico .dh-rel:not(.has-js) .related-card:hover, body.p-dinamico .dh-rel .related-card.is-open, body.p-dinamico .dh-rel .related-card:focus-visible { background:#14110C; flex:2.6; transform:none; box-shadow:var(--shadow-lg); }
body.p-dinamico .dh-rel-n1 .related-card, body.p-dinamico .dh-rel-n1 .related-card:hover, body.p-dinamico .dh-rel-n1 .related-card.is-open { flex:1; }
body.p-dinamico .rc-media { position:absolute; inset:0; z-index:-2; background:var(--dh-bg) center / cover no-repeat; transform:scale(1.02); filter:saturate(.82) brightness(.78); transition:transform 1.3s var(--ease), filter .9s var(--ease); }
body.p-dinamico .rc-media-empty { background:radial-gradient(80% 70% at 80% 0%, rgba(203,160,99,.34), transparent 62%), linear-gradient(160deg,#1B1712,#0B0B08); filter:none; }
body.p-dinamico .dh-rel .related-card:hover .rc-media, body.p-dinamico .dh-rel .related-card.is-open .rc-media, body.p-dinamico .dh-rel .related-card:focus-visible .rc-media { transform:scale(1.07); filter:none; }
body.p-dinamico .dh-rel .related-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(11,11,8,.88) 0%, rgba(11,11,8,.2) 55%, rgba(11,11,8,.05) 100%); }
body.p-dinamico .dh-rel .related-card::after {
  content:counter(dhrel, decimal-leading-zero) / ''; position:absolute; left:clamp(1rem,1.8vw,2rem); top:clamp(.8rem,1.4vw,1.6rem);
  font-family:var(--font-display); font-variation-settings:'opsz' 26; font-size:clamp(3.4rem,2.4rem + 3.4vw,7rem); line-height:1; letter-spacing:-.03em;
  color:transparent; -webkit-text-stroke:1px rgba(244,238,227,.55); pointer-events:none; transition:-webkit-text-stroke-color .6s var(--ease), color .6s var(--ease);
}
body.p-dinamico .dh-rel .related-card:hover::after, body.p-dinamico .dh-rel .related-card.is-open::after { color:rgba(203,160,99,.2); -webkit-text-stroke-color:#D9B77E; }
body.p-dinamico .rc-body {
  position:relative; margin:clamp(10px,1.2vw,18px); padding:clamp(1rem,1.5vw,1.6rem) clamp(1.1rem,1.7vw,1.8rem); border-radius:var(--r-lg); min-width:0; max-width:calc(100% - 2*clamp(10px,1.2vw,18px));
  background:linear-gradient(140deg, rgba(20,17,12,.62), rgba(20,17,12,.4)); border:1px solid rgba(203,160,99,.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3); backdrop-filter:blur(16px) saturate(1.3);
}
body.p-dinamico .dh-rel .related-card-label { color:var(--c-terra-dd); margin-bottom:.45rem; }
body.p-dinamico .dh-rel .related-card-title { font-size:clamp(1.15rem,.95rem + 1vw,2rem); line-height:1.12; color:#F4EEE3; font-variation-settings:'opsz' 12; font-optical-sizing:none; overflow-wrap:break-word; }
body.p-dinamico .rc-arrow { position:absolute; right:clamp(1rem,1.6vw,1.8rem); top:clamp(1rem,1.6vw,1.8rem); width:48px; height:48px; border-radius:50%; border:1px solid rgba(203,160,99,.6); color:#F4EEE3; display:flex; align-items:center; justify-content:center; background:rgba(11,11,8,.4); transition:background-color .4s var(--ease), color .4s var(--ease), transform .6s var(--ease); }
body.p-dinamico .dh-rel .related-card:hover .rc-arrow, body.p-dinamico .dh-rel .related-card.is-open .rc-arrow { background:var(--c-terra); color:#14110C; transform:rotate(45deg); }
body.p-dinamico .dh-rel-n1 .related-card { min-height:clamp(320px, 34vw, 520px); }
@media (max-width:900px) {
  body.p-dinamico .dh-rel .related-card.is-open { flex:none; box-shadow:none; }
  body.p-dinamico .dh-rel .related-card.is-open::after { color:transparent; -webkit-text-stroke-color:rgba(244,238,227,.55); }
  body.p-dinamico .dh-rel .related-card.is-open .rc-arrow { background:rgba(11,11,8,.4); color:#F4EEE3; transform:none; }
  body.p-dinamico .dh-rel { height:auto; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); }
  body.p-dinamico .dh-rel .related-card { aspect-ratio:4/3; flex:none; }
  body.p-dinamico .dh-rel .related-card:hover { flex:none; }
  body.p-dinamico .dh-rel .related-card:last-child:nth-child(odd) { grid-column:1 / -1; aspect-ratio:16/8; }
  body.p-dinamico .dh-rel-n1 .related-card { aspect-ratio:16/10; min-height:0; }
  body.p-dinamico .rc-media { filter:none; }
}
@media (max-width:560px) {
  body.p-dinamico .dh-rel { grid-template-columns:1fr; }
  body.p-dinamico .dh-rel .related-card, body.p-dinamico .dh-rel .related-card:last-child:nth-child(odd) { aspect-ratio:4/3.2; grid-column:auto; }
}

/* ================================================================
   OTRAS LÍNEAS — dos portadas grandes con foto
   ================================================================ */
body.p-dinamico .dh-cross > .container { max-width:none; }
body.p-dinamico .dh-cross-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(10px,1.3vw,22px); }
body.p-dinamico .dh-cross-grid .precio-link-card {
  position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-rows:1fr auto; align-items:end; gap:1rem;
  min-height:clamp(280px, 27vw, 460px); padding:clamp(1.2rem,2vw,2.2rem); border:0; border-radius:var(--r-xl); background:#14110C;
  --c-text-1:#F4EEE3; --c-terra-dd:#D9B77E; --c-text-3:rgba(244,238,227,.7);
  transition:transform .7s var(--ease), box-shadow .7s var(--ease);
}
body.p-dinamico .dh-cross-grid .precio-link-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
body.p-dinamico .pl-media { position:absolute; inset:0; z-index:-2; background:var(--dh-bg) center / cover no-repeat; filter:saturate(.85) brightness(.8); transition:transform 1.4s var(--ease), filter .9s var(--ease); }
body.p-dinamico .pl-media-empty { background:radial-gradient(80% 70% at 80% 0%, rgba(203,160,99,.34), transparent 62%), linear-gradient(160deg,#1B1712,#0B0B08); filter:none; }
body.p-dinamico .dh-cross-grid .precio-link-card:hover .pl-media { transform:scale(1.06); filter:none; }
body.p-dinamico .dh-cross-grid .precio-link-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(11,11,8,.9) 0%, rgba(11,11,8,.35) 55%, rgba(11,11,8,.12) 100%), radial-gradient(420px circle at var(--mx,50%) var(--my,0%), rgba(203,160,99,.22), transparent 62%); }
body.p-dinamico .dh-cross-grid .precio-link-icon { grid-column:1; grid-row:1; align-self:start; width:56px; height:56px; color:#F4EEE3; background:rgba(11,11,8,.4); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
body.p-dinamico .dh-cross-grid .precio-link-body { grid-column:1 / 3; grid-row:2; }
body.p-dinamico .dh-cross-grid .precio-link-title { white-space:normal; overflow:visible; text-overflow:clip; font-family:var(--font-display); font-variation-settings:'opsz' 26; font-size:clamp(1.9rem,1.2rem + 2.4vw,3.8rem); line-height:1.04; letter-spacing:-.015em; font-weight:400; color:#F4EEE3; margin-bottom:.5rem; overflow-wrap:break-word; }
body.p-dinamico .dh-cross-grid .precio-link-desde { font-size:1rem; color:#E3C68F; }
body.p-dinamico .dh-cross-grid .precio-link-arrow { grid-column:3; grid-row:2; align-self:end; width:52px; height:52px; border-radius:50%; border:1px solid rgba(203,160,99,.6); display:flex; align-items:center; justify-content:center; color:#F4EEE3; background:rgba(11,11,8,.4); transition:background-color .4s var(--ease), color .4s var(--ease), transform .5s var(--ease); margin:0; }
body.p-dinamico .dh-cross-grid .precio-link-card:hover .precio-link-arrow { background:var(--c-terra); color:#14110C; transform:translateX(0) rotate(-45deg); }
@media (max-width:700px) { body.p-dinamico .dh-cross-grid { grid-template-columns:1fr; } body.p-dinamico .dh-cross-grid .precio-link-card { min-height:260px; } }

/* ================================================================
   CTA FINAL — titular gigante a la izquierda, acción a la derecha
   ================================================================ */
body.p-dinamico .dh-cta { text-align:left; padding:clamp(5rem,12vw,13rem) 0; overflow:hidden; }
body.p-dinamico .dh-cta > .container { max-width:none; display:grid; grid-template-columns:minmax(0,8fr) minmax(0,4fr); column-gap:clamp(2rem,5vw,8rem); align-items:end; }
body.p-dinamico .dh-cta .eyebrow { grid-column:1 / -1; justify-content:flex-start; margin:0 0 1.5rem; }
body.p-dinamico .dh-cta .eyebrow::after { display:none; }
body.p-dinamico .dh-cta h2 { grid-column:1; grid-row:2 / 4; font-size:clamp(2.4rem, .5rem + 5.4vw, 6.6rem); line-height:.97; letter-spacing:-.026em; margin:0; text-wrap:balance; overflow-wrap:break-word; }
body.p-dinamico .dh-cta .container > p:not(.eyebrow) { grid-column:2; grid-row:2; align-self:end; margin:0 0 1.8rem; max-width:34ch; font-size:1.15rem; }
body.p-dinamico .dh-cta-actions { grid-column:2; grid-row:3; display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-start; }
body.p-dinamico .dh-cta .dh-cta-mark {
  position:absolute; z-index:0; right:-12vw; top:50%; width:min(62vw,860px); aspect-ratio:1; translate:0 -50%; border-radius:50%; pointer-events:none;
  border:1px solid rgba(203,160,99,.2); box-shadow:0 0 0 clamp(40px,6vw,110px) rgba(203,160,99,.04), 0 0 0 clamp(80px,12vw,220px) rgba(203,160,99,.025);
}
@media (max-width:900px) {
  body.p-dinamico .dh-cta > .container { grid-template-columns:1fr; }
  body.p-dinamico .dh-cta h2, body.p-dinamico .dh-cta .container > p:not(.eyebrow), body.p-dinamico .dh-cta-actions { grid-column:1; grid-row:auto; }
  body.p-dinamico .dh-cta .container > p:not(.eyebrow) { margin-top:1.4rem; }
  body.p-dinamico .dh-cta-actions .btn { width:100%; }
}

/* ================================================================
   MOVIMIENTO
   ================================================================ */
body.p-dinamico .reveal { transition-delay:calc(var(--i, 0) * 85ms); }
@media (prefers-reduced-motion: reduce) {
  body.p-dinamico .dh-hero-bg::before, body.p-dinamico .dh-hero .inner-hero-media img { animation:none; translate:none; scale:1.02; }
  body.p-dinamico .dh-scroll-cue i { animation:none; width:100%; opacity:.4; }
  body.p-dinamico .reveal { transition-delay:0s; }
  body.p-dinamico .dh-rel .related-card, body.p-dinamico .dh-bento .feature, body.p-dinamico .rc-media, body.p-dinamico .pl-media { transition:none; }
}
