:root{
  --crema:#FAF6F0;
  --crema-2:#F2EAE0;
  --tinta:#3E2E23;
  --tinta-oscura:#2B211A;
  --dorado:#B08954;
  --dorado-oscuro:#8F6B3F;
  --dorado-claro:#D9B98A;
  --texto-suave:#8A7360;
  --texto-medio:#6B4F3A;
  --borde:#E4D8C8;
  --blanco:#FFFFFF;
  --serif:'Instrument Serif',Georgia,serif;
  --sans:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--crema);
  color:var(--tinta);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}

a{color:var(--dorado);text-decoration:none}
a:hover{color:var(--dorado-oscuro)}

img{max-width:100%}

@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12)}}
@keyframes fadeRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ---------- Utilidades de texto ---------- */
.jj-eyebrow{
  margin:0;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--dorado-oscuro);
}
.jj-eyebrow--claro{color:var(--dorado-claro)}

.jj-title{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.2rem,4vw,3.4rem);
  line-height:.98;
  color:var(--tinta);
}
.jj-title em{font-style:italic;color:var(--dorado-oscuro)}

.jj-lead{
  margin:0;
  font-size:1.05rem;
  line-height:1.8;
  color:var(--texto-suave);
  text-wrap:pretty;
}

/* ---------- Botones ---------- */
.jj-sheen{position:relative;overflow:hidden}
.jj-sheen::after{
  content:"";
  position:absolute;
  top:0;
  left:-150%;
  width:60%;
  height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);
  transition:left .6s ease;
  pointer-events:none;
}
.jj-sheen:hover::after{left:150%}

.jj-btn{
  font-family:var(--sans);
  font-weight:600;
  font-size:.95rem;
  padding:16px 34px;
  border-radius:999px;
  display:inline-block;
  border:none;
  cursor:pointer;
  text-align:center;
  transition:transform .42s cubic-bezier(.34,1.4,.64,1),box-shadow .42s cubic-bezier(.34,1.4,.64,1),background .25s ease,color .25s ease;
}
.jj-btn:active{transform:translateY(0) scale(.99)}

.jj-btn--dorado{
  color:var(--crema);
  background:var(--dorado);
  box-shadow:0 4px 14px rgba(62,46,35,.18);
}
.jj-btn--dorado:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 34px rgba(62,46,35,.32);
  background:var(--dorado-oscuro);
  color:var(--crema);
}

.jj-btn--crema{
  color:var(--tinta-oscura);
  background:var(--crema);
  box-shadow:0 4px 14px rgba(62,46,35,.14);
}
.jj-btn--crema:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 32px rgba(62,46,35,.3);
  color:var(--tinta-oscura);
}

.jj-btn--tinta{
  color:var(--crema);
  background:var(--tinta);
  box-shadow:0 4px 14px rgba(62,46,35,.2);
}
.jj-btn--tinta:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 30px rgba(62,46,35,.32);
  background:var(--tinta-oscura);
  color:var(--crema);
}

.jj-btn--whatsapp{
  color:#fff;
  background:#25D366;
  box-shadow:0 4px 14px rgba(37,211,102,.28);
}
.jj-btn--whatsapp:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 30px rgba(37,211,102,.4);
  filter:brightness(.97);
  color:#fff;
}

.jj-btn-ghost{
  font-weight:600;
  font-size:.9rem;
  color:var(--texto-medio);
  border:1px solid var(--borde);
  padding:13px 26px;
  border-radius:999px;
  display:inline-block;
  align-self:flex-start;
  transition:all .25s ease,transform .42s cubic-bezier(.34,1.4,.64,1),box-shadow .42s cubic-bezier(.34,1.4,.64,1);
}
.jj-btn-ghost:hover{
  border-color:var(--dorado);
  color:var(--dorado-oscuro);
  transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(62,46,35,.14);
}
.jj-btn-ghost:active{transform:translateY(0) scale(.99)}

.jj-btn-ghost--dorado{border-color:var(--dorado)}
.jj-btn-ghost--dorado:hover{
  background:var(--dorado);
  color:var(--crema);
  box-shadow:0 12px 26px rgba(62,46,35,.2);
}

/* ---------- Navegación ---------- */
.jj-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  background:rgba(250,246,240,.85);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--borde);
}
.jj-header__bar{
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
  height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.jj-header__logo{display:flex;align-items:center;flex-shrink:0}
.jj-header__logo img{height:52px;width:auto;object-fit:contain;display:block}

.jj-nav{display:flex;align-items:center;gap:26px}

.jj-link{
  position:relative;
  font-family:var(--sans);
  font-size:.875rem;
  font-weight:500;
  color:var(--texto-suave);
  transition:color .2s ease;
}
.jj-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-5px;
  width:100%;
  height:1.5px;
  background:var(--dorado);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .32s cubic-bezier(.65,0,.35,1);
}
.jj-link:hover::after,.jj-link.is-active::after{transform:scaleX(1)}
.jj-link:hover,.jj-link.is-active{color:var(--tinta)}
.jj-link.is-active{font-weight:600}

.jj-nav__cta{
  font-family:var(--sans);
  font-size:.875rem;
  font-weight:600;
  color:var(--crema);
  background:var(--tinta);
  padding:11px 22px;
  border-radius:999px;
  display:inline-block;
  box-shadow:0 3px 10px rgba(62,46,35,.16);
  transition:transform .42s cubic-bezier(.34,1.4,.64,1),box-shadow .42s cubic-bezier(.34,1.4,.64,1);
}
.jj-nav__cta:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(62,46,35,.3);
  color:var(--crema);
}

.jj-burger{
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:12px;
  flex-direction:column;
  gap:5px;
  min-width:44px;
  min-height:44px;
  justify-content:center;
  align-items:center;
}
.jj-burger span{
  display:block;
  width:22px;
  height:2px;
  background:var(--tinta);
  border-radius:2px;
  transition:transform .3s ease,opacity .3s ease;
}
.jj-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.jj-burger.is-open span:nth-child(2){opacity:0}
.jj-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.jj-nav-mobile{
  display:none;
  background:var(--crema);
  border-bottom:1px solid var(--borde);
  padding:12px 24px 24px;
  flex-direction:column;
  gap:4px;
}
.jj-nav-mobile.is-open{display:flex}

.jj-link-mobile{
  position:relative;
  font-family:var(--sans);
  font-size:1rem;
  font-weight:500;
  color:var(--texto-suave);
  padding:12px 4px;
  border-bottom:1px solid #EFE6D9;
  transition:transform .32s cubic-bezier(.65,0,.35,1),color .2s ease;
}
.jj-link-mobile::after{
  content:"";
  position:absolute;
  left:4px;
  bottom:6px;
  width:30px;
  height:1.5px;
  background:var(--dorado);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .32s cubic-bezier(.65,0,.35,1);
}
.jj-link-mobile:hover,.jj-link-mobile.is-active{transform:translateX(8px);color:var(--tinta)}
.jj-link-mobile.is-active{font-weight:600}
.jj-link-mobile:hover::after,.jj-link-mobile.is-active::after{transform:scaleX(1)}

.jj-nav-mobile__cta{
  font-family:var(--sans);
  font-size:.95rem;
  font-weight:600;
  color:var(--crema);
  background:var(--tinta);
  padding:13px 22px;
  border-radius:999px;
  text-align:center;
  margin-top:12px;
  box-shadow:0 3px 10px rgba(62,46,35,.16);
}
.jj-nav-mobile__cta:hover{color:var(--crema)}

@media(max-width:900px){
  .jj-nav{display:none}
  .jj-burger{display:flex}
}

/* ---------- Secciones ---------- */
.jj-section{padding:110px 24px}
.jj-section--crema{background:var(--crema)}
.jj-section--crema2{background:var(--crema-2)}
.jj-section--tinta{background:var(--tinta-oscura)}

.jj-container{max-width:1180px;margin:0 auto}
.jj-container--angosto{max-width:820px;margin:0 auto}

/* Hero con imagen de fondo y parallax */
.jj-hero{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.jj-hero--completo{min-height:100vh}
.jj-hero--interior{padding:220px 24px 110px}

.jj-hero__media{
  position:absolute;
  top:-20%;
  left:0;
  width:100%;
  height:140%;
  will-change:transform;
}
.jj-hero__media img,.jj-hero__media video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.jj-hero__media img{
  animation:kenburns 22s ease-in-out alternate infinite;
  will-change:transform;
}
.jj-hero__velo{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:linear-gradient(180deg,rgba(43,33,26,.55) 0%,rgba(43,33,26,.82) 100%);
}
.jj-hero__contenido{
  position:relative;
  z-index:2;
  max-width:900px;
  margin:0 auto;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:26px;
}
.jj-hero--completo .jj-hero__contenido{padding:140px 24px 80px}

.jj-hero__titulo{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.8rem,7vw,5.2rem);
  line-height:.98;
  letter-spacing:-2px;
  color:var(--crema);
  text-shadow:0 2px 30px rgba(43,33,26,.4);
  animation:fadeRise .8s ease-out both;
}
.jj-hero--interior .jj-hero__titulo{
  font-size:clamp(2.6rem,6vw,4.4rem);
  letter-spacing:-1px;
}
.jj-hero__titulo em{font-style:italic;color:var(--dorado-claro)}

.jj-hero__bajada{
  margin:0;
  max-width:560px;
  font-size:1.1rem;
  line-height:1.7;
  color:#E8DCC9;
  text-shadow:0 1px 16px rgba(43,33,26,.4);
  text-wrap:pretty;
  animation:fadeRise .8s ease-out .2s both;
}
.jj-hero .jj-eyebrow{animation:fadeRise .8s ease-out both}
.jj-hero .jj-btn{animation:fadeRise .8s ease-out .4s both}

/* Bloque de dos columnas texto + imagen */
.jj-split{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:64px;
}
.jj-split--invertido{flex-wrap:wrap-reverse}
.jj-split__texto{
  flex:1 1 380px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.jj-split__media{flex:1 1 380px}
.jj-split__media img{
  width:100%;
  height:auto;
  display:block;
  border-radius:20px;
  border:1px solid var(--borde);
}

/* Encabezado de sección */
.jj-encabezado{
  display:flex;
  flex-direction:column;
  gap:18px;
  max-width:640px;
}
.jj-encabezado--centrado{
  max-width:720px;
  margin:0 auto;
  text-align:center;
  align-items:center;
}

/* Grillas y tarjetas */
.jj-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:28px;
}

.jj-card{
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:20px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  color:inherit;
  transition:transform .35s ease,box-shadow .35s ease;
}
.jj-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 48px rgba(62,46,35,.12);
  color:inherit;
}
.jj-card__media{height:220px;overflow:hidden}
.jj-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.jj-card:hover .jj-card__media img{transform:scale(1.06)}
.jj-card__cuerpo{
  padding:28px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.jj-card__titulo{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:1.7rem;
  color:var(--tinta);
}
.jj-card__texto{
  margin:0;
  font-size:.95rem;
  line-height:1.7;
  color:var(--texto-suave);
  text-wrap:pretty;
}

/* Tarjeta sin imagen (pilares, compromisos, servicios) */
.jj-card-plana{
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:20px;
  padding:36px;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:transform .35s ease,box-shadow .35s ease;
}
.jj-card-plana:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 48px rgba(62,46,35,.10);
}
.jj-card-plana__numero{
  margin:0;
  font-family:var(--serif);
  font-size:2.2rem;
  line-height:1;
  color:var(--dorado);
}
.jj-card-plana__titulo{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:1.7rem;
  color:var(--tinta);
}
.jj-card-plana__texto{
  margin:0;
  font-size:.95rem;
  line-height:1.75;
  color:var(--texto-suave);
  text-wrap:pretty;
}

.jj-lista{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.jj-lista li{
  font-size:.95rem;
  line-height:1.6;
  color:var(--texto-suave);
  padding-left:18px;
  position:relative;
}
.jj-lista li::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  width:6px;
  height:6px;
  border-radius:999px;
  background:var(--dorado);
}

/* Cita destacada */
.jj-cita{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-style:italic;
  font-size:clamp(1.8rem,3.4vw,2.6rem);
  line-height:1.25;
  color:var(--tinta);
  text-wrap:pretty;
}

/* Etiquetas */
.jj-tags{display:flex;flex-wrap:wrap;gap:10px}
.jj-tag{
  font-size:.85rem;
  font-weight:500;
  color:var(--texto-medio);
  border:1px solid var(--borde);
  background:var(--blanco);
  padding:9px 18px;
  border-radius:999px;
}

/* Instagram */
.jj-ig-grid{
  max-width:900px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
}
.jj-ig-cell{
  position:relative;
  display:block;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:14px;
  background:#EFE6D8;
}
.jj-ig-cell img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .55s cubic-bezier(.2,.7,.2,1);
}
.jj-ig-cell:hover img{transform:scale(1.07)}
.jj-ig-cell__velo{
  position:absolute;
  inset:0;
  background:rgba(43,33,26,.34);
  opacity:0;
  transition:opacity .4s ease;
}
.jj-ig-cell:hover .jj-ig-cell__velo{opacity:1}

/* CTA final */
.jj-cta{
  max-width:820px;
  margin:0 auto;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:30px;
}
.jj-cta__titulo{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.4rem,5vw,3.8rem);
  line-height:.98;
  color:var(--crema);
}
.jj-cta__titulo em{font-style:italic;color:var(--dorado)}
.jj-cta__texto{
  margin:0;
  font-size:1.05rem;
  line-height:1.7;
  color:#A8937D;
  max-width:520px;
  text-wrap:pretty;
}

/* ---------- Galería ---------- */
.jj-galeria{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px;
}
.jj-galeria img{
  width:100%;
  height:340px;
  object-fit:cover;
  display:block;
  border-radius:20px;
  border:1px solid var(--borde);
}

/* ---------- Formulario ---------- */
.jj-form{
  max-width:760px;
  margin:0 auto;
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:20px;
  padding:clamp(28px,5vw,52px);
  display:flex;
  flex-direction:column;
  gap:26px;
}
.jj-form__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:20px;
}
.jj-campo{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:.85rem;
  font-weight:500;
  color:var(--texto-medio);
}
.jj-campo input,.jj-campo textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--borde);
  border-radius:12px;
  background:var(--blanco);
  font-family:var(--sans);
  font-size:.95rem;
  color:var(--tinta);
  outline:none;
  transition:border-color .2s ease;
}
.jj-campo input:focus,.jj-campo textarea:focus{border-color:var(--dorado)}
.jj-campo textarea{resize:vertical}
.jj-campo input[type=date]{padding:13px 16px}

.jj-grupo{display:flex;flex-direction:column;gap:10px}
.jj-grupo__label{
  margin:0;
  font-size:.85rem;
  font-weight:500;
  color:var(--texto-medio);
}
.jj-pills{display:flex;flex-wrap:wrap;gap:10px}

/* La píldora es un <label> que envuelve un input oculto: el estado
   seleccionado viene del :checked, sin JavaScript. */
.jj-pill{
  font-family:var(--sans);
  font-size:.88rem;
  font-weight:500;
  cursor:pointer;
  padding:11px 20px;
  border-radius:999px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  border:1px solid var(--borde);
  background:var(--crema);
  color:var(--texto-medio);
  transition:all .2s ease;
}
.jj-pill input{
  position:absolute;
  opacity:0;
  width:0;
  height:0;
}
.jj-pill:has(input:checked){
  border-color:var(--dorado);
  background:var(--dorado);
  color:#fff;
}
.jj-pill:has(input:focus-visible){outline:2px solid var(--dorado-oscuro);outline-offset:2px}

.jj-form__acciones{display:flex;flex-wrap:wrap;gap:14px}
.jj-form__acciones .jj-btn{flex:1 1 220px}

.jj-form__nota{
  margin:0;
  font-size:.82rem;
  color:var(--texto-suave);
  text-align:center;
}

.jj-form__mensaje{
  margin:0;
  font-size:.9rem;
  border-radius:12px;
  padding:14px 16px;
}
.jj-form__mensaje--error{
  color:#A34B2E;
  background:#F9EDE5;
  border:1px solid #E8C9B4;
}
.jj-form__mensaje--ok{
  color:#2F6B4F;
  background:#E8F3EC;
  border:1px solid #BFDDC9;
}

/* Honeypot anti-spam: oculto para personas, visible para bots */
.jj-honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* ---------- FAQ ---------- */
.jj-faq{display:flex;flex-direction:column;gap:12px}
.jj-faq__item{
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:16px;
  overflow:hidden;
}
.jj-faq__item summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  cursor:pointer;
  padding:20px 24px;
  font-family:var(--sans);
  font-size:1rem;
  font-weight:500;
  color:var(--tinta);
  min-height:44px;
  list-style:none;
}
.jj-faq__item summary::-webkit-details-marker{display:none}
.jj-faq__item summary::after{
  content:"+";
  font-family:var(--serif);
  font-size:1.6rem;
  color:var(--dorado);
  line-height:1;
  flex-shrink:0;
}
.jj-faq__item[open] summary::after{content:"−"}
.jj-faq__item p{
  margin:0;
  padding:0 24px 22px;
  font-size:.95rem;
  line-height:1.75;
  color:var(--texto-suave);
  text-wrap:pretty;
}

/* ---------- Relato (página Origen) ---------- */
.jj-relato{
  display:flex;
  flex-wrap:wrap;
  gap:72px;
  align-items:flex-start;
}
.jj-relato__cuerpo{
  flex:1.4 1 440px;
  display:flex;
  flex-direction:column;
  gap:52px;
}
.jj-relato__bloque{display:flex;flex-direction:column;gap:16px}
.jj-relato__bloque h2{
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:2rem;
  color:var(--tinta);
}
.jj-relato__bloque p{
  margin:0;
  font-size:1.02rem;
  line-height:1.9;
  color:var(--texto-medio);
  text-wrap:pretty;
}
.jj-capitular::first-letter{
  float:left;
  font-family:var(--serif);
  font-size:4.6rem;
  line-height:.78;
  padding:6px 12px 0 0;
  color:var(--dorado-oscuro);
}
.jj-relato__figura{
  flex:1 1 320px;
  margin:0;
  position:sticky;
  top:110px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.jj-relato__figura img{
  width:100%;
  height:auto;
  display:block;
  border-radius:20px;
  border:1px solid var(--borde);
}
.jj-relato__figura figcaption{
  font-size:.85rem;
  color:var(--texto-suave);
  font-style:italic;
  text-align:center;
}

/* ---------- Footer ---------- */
.jj-footer{
  background:var(--tinta-oscura);
  color:#C9B8A6;
  font-family:var(--sans);
}
.jj-footer__cols{
  max-width:1180px;
  margin:0 auto;
  padding:72px 24px 40px;
  display:flex;
  flex-wrap:wrap;
  gap:48px;
}
.jj-footer__marca{
  flex:2 1 280px;
  display:flex;
  flex-direction:column;
  gap:20px;
  align-items:flex-start;
}
.jj-footer__marca img{
  height:52px;
  width:auto;
  object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:.92;
}
.jj-footer__marca p{
  margin:0;
  font-size:.9rem;
  line-height:1.7;
  max-width:340px;
  color:#A8937D;
}
.jj-footer__col{
  flex:1 1 180px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.jj-footer__col h3{
  margin:0 0 6px;
  font-family:var(--sans);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--dorado);
}
.jj-footer__col a{font-size:.9rem;color:#C9B8A6}
.jj-footer__col a:hover{color:var(--crema)}
.jj-footer__base{border-top:1px solid rgba(228,216,200,.15)}
.jj-footer__base div{
  max-width:1180px;
  margin:0 auto;
  padding:20px 24px;
  font-size:.8rem;
  color:var(--texto-suave);
}

/* WhatsApp flotante */
.jj-wa{
  position:fixed;
  bottom:24px;
  right:24px;
  z-index:1100;
  width:58px;
  height:58px;
  border-radius:999px;
  background:#25D366;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(37,211,102,.4);
  transition:transform .4s cubic-bezier(.34,1.4,.64,1),box-shadow .4s cubic-bezier(.34,1.4,.64,1);
}
.jj-wa:hover{
  transform:translateY(-4px) scale(1.1);
  box-shadow:0 18px 36px rgba(37,211,102,.5);
}
.jj-wa svg{width:30px;height:30px;display:block}

/* ---------- Animación de entrada al hacer scroll ---------- */
.jj-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s ease-out,transform .8s ease-out;
}
.jj-reveal.is-visible{opacity:1;transform:translateY(0)}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001s !important;
    animation-iteration-count:1 !important;
    transition-duration:.001s !important;
  }
  .jj-reveal{opacity:1;transform:none}
}

@media(max-width:640px){
  .jj-section{padding:72px 20px}
  .jj-hero--interior{padding:160px 20px 72px}
  .jj-split{gap:40px}
  .jj-relato{gap:48px}
  .jj-relato__figura{position:static}
}
