/* Fuentes: Playfair Display (titulares) + Raleway (cuerpo) — versión 2026-07-22 */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400&family=Raleway:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap');

/* ============================================================
   VERSIÓN APROBADA POR EL USUARIO — 2026-07-22 16:21
   (exportada del panel Personalizar)
   Playfair Display + Raleway 15.5px · nav 1.1rem · acento #b6924f ·
   paleta Jade #206352 · velo hero 0% · secciones 4rem ·
   titulares peso 500 · interlineado 1.55 · redondeo 14px · papel Crema
   ============================================================ */
:root{
  --forest:#206352;
  --forest-dark:#123f33;
  --forest-mid:#2f8a72;
  --cream:#f6f2e7;
  --cream-dim:#ece5d2;
  --gold:#b6924f;
  --ink:#1c1c1a;
  --serif:'Playfair Display', Georgia, serif;
  --sans:'Raleway', 'Segoe UI', Arial, sans-serif;
  --radius:14px;
  --hero-veil:0;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; font-size:15.5px;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
.eyebrow{
  font-family:var(--sans);
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.8rem;
  font-weight:600;
  color:var(--gold);
}
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  line-height:1.12;
  color:var(--forest-dark);
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.85rem 1.7rem;
  font-family:var(--sans);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid currentColor;
  transition:all .25s ease;
  white-space:nowrap;
}
.btn-light{color:#fff; border-color:rgba(255,255,255,.65);}
.btn-light:hover{background:#fff; color:var(--forest-dark);}
.btn-dark{color:var(--forest-dark); border-color:var(--forest-dark);}
.btn-dark:hover{background:var(--forest-dark); color:#fff;}
.btn-gold{background:var(--gold); color:#fff; border-color:var(--gold);}
.btn-gold:hover{background:transparent; color:var(--gold);}

/* ---------- HEADER ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem clamp(1.2rem,4vw,3rem);
  background:transparent;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
header.scrolled{
  background:var(--forest-dark);
  padding-top:.7rem; padding-bottom:.7rem;
  box-shadow:0 6px 24px rgba(0,0,0,.18);
}
.logo{display:flex; align-items:center;}
.logo-img-real{height:66px; width:auto; display:block; border-radius:50%;}
.footer-logo-img-real{height:52px; width:auto; display:block; border-radius:50%;}
.logo-anim-wrap{
  background:transparent;
  display:flex; align-items:center; justify-content:center;
  height:104px; width:auto;
}
.logo-anim-wrap iframe{width:100%; height:100%; border:0; display:block;}
.logo-anim-wrap video{width:100%; height:100%; object-fit:contain; display:block;}
.logo-anim-wrap img{height:100%; width:auto; object-fit:contain;}
.logo-anim-wrap .logo-scrolled{display:none;}
header.scrolled .logo-anim-wrap .logo-top{display:none;}
header.scrolled .logo-anim-wrap .logo-scrolled{display:block;}
.logo-top{filter:drop-shadow(0 2px 9px rgba(14,33,24,.6)) drop-shadow(0 1px 3px rgba(14,33,24,.55));}
.logo-scrolled{filter:drop-shadow(0 2px 10px rgba(0,0,0,.3));}
.footer-logo-img{height:104px; width:auto; display:block;}
@media (max-width:980px){ .footer-logo-img{height:78px;} }
.footer-logo-video{height:120px; width:auto; display:block; margin-left:-8px;}
nav.mainnav{display:flex; align-items:center; gap:1.6rem;}
nav.mainnav > ul{display:flex; gap:1.6rem; flex-wrap:wrap;}
nav.mainnav > ul > li{position:relative; padding:.6rem 0;}
nav.mainnav > ul > li > a{
  color:#fff; font-size:1.1rem; letter-spacing:.005em; text-transform:none; font-weight:600;
  display:flex; align-items:center; gap:.35rem;
}
nav.mainnav > ul > li > a.active{color:var(--gold);}
.caret{width:8px; height:8px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.85;}

.submenu{
  position:absolute; top:100%; left:-1.4rem;
  min-width:300px;
  background:var(--forest-dark);
  padding:1.1rem 0;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:all .22s ease;
  box-shadow:0 20px 40px rgba(0,0,0,.25);
  border-top:2px solid var(--gold);
}
li.has-sub:hover .submenu, li.has-sub:focus-within .submenu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.submenu a{
  display:block; padding:.65rem 1.4rem;
  font-size:.99rem; letter-spacing:.005em; text-transform:none; font-weight:400;
  color:rgba(255,255,255,.85);
  border-left:2px solid transparent;
}
.submenu a:hover{color:#e7cf9b; background:rgba(255,255,255,.07);}

.header-cta{display:flex; align-items:center; gap:1.4rem;}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.burger span{width:24px; height:2px; background:#fff; display:block;}

/* ---------- HERO (home) ---------- */
.hero{
  position:relative; min-height:100vh; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end;
  background:var(--forest-dark);
}
/* Capa de imagen animada (efecto Ken Burns: zoom/paneo lento en bucle) */
.hero-media{position:absolute; inset:0; z-index:0; overflow:hidden;}
.hero-media img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
  transform-origin:55% 45%;
  animation:hero-kenburns 22s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes hero-kenburns{
  0%   { transform:scale(1.06) translate(0,0); }
  100% { transform:scale(1.18) translate(-2.4%,-1.6%); }
}
@media (prefers-reduced-motion: reduce){
  .hero-media img{animation:none; transform:scale(1.06);}
}
/* Degradado de legibilidad sobre la imagen */
.hero::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(14,33,24,.35) 0%, rgba(14,33,24,.25) 40%, rgba(14,33,24,.88) 100%);
}
.hero::after, .page-hero::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:var(--forest-dark); opacity:var(--hero-veil,0); pointer-events:none;
}
.hero-inner{
  padding:clamp(255px,30vh,310px) clamp(1.2rem,4vw,3rem) 4.5rem;
  max-width:900px; position:relative; z-index:2;
}
.hero .eyebrow{color:var(--cream-dim); margin-bottom:1rem; text-shadow:0 1px 12px rgba(14,33,24,.45);}
.hero h1{
  color:#fff; font-size:clamp(2.6rem,6vw,4.6rem); font-weight:400;
  margin-bottom:1.3rem;
}
.hero h1 em{font-style:italic; color:var(--gold);}
.hero p{color:rgba(255,255,255,.86); font-size:1.25rem; max-width:620px; margin-bottom:2.2rem; font-weight:300;}
.hero-actions{display:flex; flex-wrap:wrap; gap:.9rem;}

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{
  position:relative; min-height:400px;
  display:flex; align-items:flex-end;
  background-image:linear-gradient(180deg, rgba(14,33,24,.45) 0%, rgba(14,33,24,.82) 100%), var(--pagehero-img);
  background-size:cover; background-position:center;
}
.page-hero-inner{padding:9rem clamp(1.2rem,4vw,3rem) 3.2rem; max-width:900px; position:relative; z-index:1;}
.page-hero .eyebrow{color:var(--cream-dim); margin-bottom:.9rem;}
.page-hero h1{color:#fff; font-size:clamp(2.1rem,4.6vw,3.4rem); font-weight:400;}
.page-hero p{color:rgba(255,255,255,.85); font-size:1.1rem; max-width:640px; margin-top:1rem; font-weight:300;}

/* ---------- STRIP (3-up highlights) ---------- */
.strip{
  background:var(--forest);
  display:grid; grid-template-columns:repeat(3,1fr);
}
.strip a{
  padding:2.6rem clamp(1.2rem,3vw,2.6rem);
  border-right:1px solid rgba(255,255,255,.12);
  transition:background .25s ease;
}
.strip a:last-child{border-right:none;}
.strip a:hover{background:rgba(255,255,255,.05);}
.strip .num{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:.95rem;}
.strip h4{color:#fff; font-size:1.25rem; margin:.6rem 0 .5rem; font-weight:400;}
.strip p{color:rgba(255,255,255,.72); font-size:1.08rem; margin-bottom:1rem;}
.strip .link{color:var(--gold); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;}

/* ---------- SECTION GENERIC ---------- */
section{padding:4rem clamp(1.2rem,4vw,3rem);}
.section-head{max-width:640px; margin-bottom:3.2rem;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head .eyebrow{margin-bottom:.8rem; display:block;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem); font-weight:400;}
.section-head p{margin-top:1rem; color:#4a4a45; font-size:1rem; max-width:560px;}

/* welcome / intro */
.intro{background:var(--cream); display:grid; grid-template-columns:1.05fr .95fr; gap:4rem; align-items:center;}
.intro-media{position:relative;}
.intro-media img{width:100%; height:520px; object-fit:cover;}
.intro-media .frame{
  position:absolute; inset:18px; border:1px solid rgba(255,255,255,.55); pointer-events:none;
}
.intro-text h2{font-size:clamp(1.9rem,3.2vw,2.6rem); margin-bottom:1.4rem;}
.intro-text p{color:#3f3f3a; margin-bottom:1.1rem; font-size:1.02rem;}
.intro-text .btn{margin-top:1rem;}

/* services */
.services{background:var(--cream-dim);}
.services-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:rgba(23,50,38,.14);
  border:1px solid rgba(23,50,38,.14);
}
.service-card{
  background:var(--cream-dim);
  padding:2.4rem 1.8rem;
  min-height:260px;
  display:flex; flex-direction:column; justify-content:space-between;
  transition:background .25s ease, transform .25s ease;
}
.service-card:hover{background:var(--forest); transform:translateY(-3px);}
.service-card:hover h3, .service-card:hover p{color:#fff;}
.service-card .idx{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1.2rem;}
.service-card .service-icon{
  width:54px; height:54px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(23,50,38,.06);
  color:var(--gold);
  transition:background .25s ease, color .25s ease;
}
.service-card .service-icon svg{width:24px; height:24px; stroke-width:1.6;}
.service-card:hover .service-icon{background:rgba(255,255,255,.14); color:#fff;}
.service-card h3{font-size:1.35rem; font-weight:500; margin:1rem 0 .6rem; color:var(--forest-dark); transition:color .25s ease;}
.service-card p{font-size:1.05rem; color:#5a5a53; transition:color .25s ease;}

/* service detail blocks (servicios.html) */
.service-detail{
  display:grid; grid-template-columns:.35fr .65fr; gap:2.5rem;
  padding:2.6rem 0; border-bottom:1px solid rgba(23,50,38,.14);
  scroll-margin-top:120px;
}
.service-detail:last-child{border-bottom:none;}
.service-detail .idx{font-family:var(--serif); font-style:italic; color:var(--gold); font-size:2.2rem;}
.service-detail-head .service-icon{
  width:60px; height:60px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(23,50,38,.06);
  color:var(--gold);
  margin-bottom:1.2rem;
}
.service-detail-head .service-icon svg{width:27px; height:27px; stroke-width:1.6;}
.service-detail h3{font-size:1.6rem; margin-bottom:.3rem;}
.service-detail .tagline{color:var(--gold); font-weight:600; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.9rem; display:block;}
.service-detail p{color:#3f3f3a; font-size:1.05rem;}
@media (max-width:700px){ .service-detail{grid-template-columns:1fr;} }

/* quote / testimonials */
.quotes{
  background:var(--forest-dark);
  color:#fff;
  text-align:center;
}
.quotes .section-head{margin:0 auto 3.5rem; text-align:center;}
.quotes .section-head p{color:rgba(255,255,255,.72); margin-left:auto; margin-right:auto;}
.quotes-viewport{overflow:hidden; width:100%; -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);}
.quote-track{
  display:flex; gap:0; width:max-content;
  animation:quoteScroll 90s linear infinite;
}
.quotes-viewport:hover .quote-track{animation-play-state:paused;}
@keyframes quoteScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.quote-card{
  flex:0 0 auto;
  width:min(600px,86vw);
  padding:0 3rem;
  border-right:1px solid rgba(255,255,255,.15);
}
.quote-card:first-child{padding-left:0;}
.quote-mark{font-family:var(--serif); font-size:3.4rem; color:var(--gold); line-height:1;}
.quote-card p.quote-text{font-family:var(--serif); font-size:1.55rem; font-weight:300; font-style:italic; color:#fff; margin:1rem 0 1.6rem;}
.quote-card .who{font-size:.95rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold);}
.quote-card .where{font-size:.95rem; color:rgba(255,255,255,.55);}

/* discover / more */
.discover-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(0,0,0,.06);}
.discover-card{
  position:relative; height:380px; overflow:hidden;
  display:flex; align-items:flex-end;
}
.discover-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.discover-card:hover img{transform:scale(1.06);}
.discover-card:before{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,33,24,0) 30%, rgba(14,33,24,.85) 100%); z-index:1;}
.discover-card .content{position:relative; z-index:2; padding:1.8rem; color:#fff;}
.discover-card h3{color:#fff; font-size:1.3rem; font-weight:400; margin-bottom:.5rem;}
.discover-card .link{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:500;}

/* full photo gallery (galeria.html) */
.photo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.photo-grid figure{position:relative; overflow:hidden;}
.photo-grid img{width:100%; height:340px; object-fit:cover; transition:transform .5s ease;}
.photo-grid figure:hover img{transform:scale(1.06);}
.photo-grid figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1rem 1.2rem;
  background:linear-gradient(180deg, rgba(14,33,24,0) 0%, rgba(14,33,24,.85) 100%);
  color:#fff; font-size:.85rem; letter-spacing:.04em;
}
@media (max-width:900px){ .photo-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .photo-grid{grid-template-columns:1fr;} }

/* faq */
.faq{background:var(--cream);}
.faq-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2.6rem 3.2rem;}
.faq-item h4{font-family:var(--serif); font-size:1.15rem; font-weight:500; margin-bottom:.6rem; color:var(--forest-dark);}
.faq-item p{color:#4a4a45; font-size:.9rem;}
.faq-more{margin-top:2.8rem;}
@media (max-width:700px){ .faq-grid{grid-template-columns:1fr;} }

/* faq page (faq.html) — presentación por temas con acordeones */
.faq-intro{text-align:center; max-width:760px; margin:0 auto; padding-bottom:3rem;}
.faq-intro h2{font-size:clamp(2rem,3.8vw,2.9rem); font-weight:400;}
.faq-intro h2 em{font-style:italic; color:var(--gold);}
.faq-intro p{margin:1.2rem auto 0; color:#4a4a45; max-width:560px;}
.topic-pills{display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem; margin-top:2rem;}
.topic-pills a{
  border:1px solid var(--forest); color:var(--forest);
  padding:.55rem 1.5rem; border-radius:999px;
  font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  transition:all .25s ease;
}
.topic-pills a:hover{border-color:var(--gold); color:var(--gold);}
.faq-topic{max-width:820px; margin:0 auto; padding:0 0 4.5rem; scroll-margin-top:140px;}
.faq-topic-head{margin-bottom:1.8rem;}
.faq-topic-head .eyebrow{display:block; margin-bottom:.6rem;}
.faq-topic-head h2{font-size:clamp(1.7rem,3vw,2.3rem); font-weight:400;}
.faq-topic-head h2 em{font-style:italic; color:var(--gold);}
.faq-topic .chapter{
  background:#fffdf6;
  border:1px solid rgba(23,50,38,.16);
  margin-bottom:1.1rem;
  transition:box-shadow .35s ease;
}
.faq-topic .chapter:hover{box-shadow:0 14px 34px rgba(14,33,24,.08);}
.faq-topic .chapter summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:1.4rem;
  padding:1.5rem 1.7rem;
}
.faq-topic .chapter summary::-webkit-details-marker{display:none;}
.faq-topic .chapter summary h3{font-size:1.22rem; font-weight:500; color:var(--forest-dark);}
.faq-topic .chevron{
  flex:0 0 auto; width:40px; height:40px; border-radius:50%;
  background:var(--cream-dim); color:var(--forest-dark);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s ease, background .3s ease;
}
.faq-topic .chapter[open] .chevron{transform:rotate(180deg); background:var(--gold); color:#fff;}
.chapter-body{
  border-top:1px solid rgba(23,50,38,.14);
  padding:1.4rem 1.7rem 1.8rem;
  color:#3f3f3a; font-size:1rem; line-height:1.75;
}
.chapter-body p{margin-bottom:1rem;}
.chapter-body p:last-child{margin-bottom:0;}
.chapter-body ul{list-style:none; margin:.4rem 0 1rem;}
.chapter-body li{display:flex; gap:.7rem; align-items:flex-start; margin-bottom:.55rem;}
.chapter-body li:before{content:''; flex:0 0 auto; width:6px; height:6px; border-radius:50%; background:var(--gold); margin-top:.55rem;}
.chapter-body a.inline-link{color:var(--forest); text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(182,146,79,.5);}
.chapter-body a.inline-link:hover{color:var(--gold);}
.stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem; margin:1.3rem 0;}
.stat-grid.two{grid-template-columns:repeat(2,1fr);}
.stat-card{background:var(--cream-dim); padding:1.1rem .8rem; text-align:center;}
.stat-card .big{font-family:var(--serif); font-size:1.7rem; color:var(--forest-dark); line-height:1.1;}
.stat-card .label{font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-top:.35rem; display:block;}
.lot-figure{background:var(--cream-dim); padding:2.2rem clamp(1rem,3vw,2.4rem); margin-bottom:1.8rem; border:1px solid rgba(23,50,38,.12);}
.lot-figure-diagrama{background:#fbf9f2; padding:1rem clamp(.8rem,2vw,1.6rem) 1.6rem;}
.lot-figure-diagrama img{max-width:820px; margin:0 auto; mix-blend-mode:multiply;}
.lot-figure svg{width:100%; height:auto; display:block;}
.lot-figure figcaption{margin-top:1.1rem; text-align:center; font-size:.9rem; color:#4a4a45;}
.lot-figure figcaption strong{color:var(--forest-dark);}
@media (max-width:640px){
  .stat-grid{grid-template-columns:1fr 1fr;}
  .faq-topic .chapter summary{padding:1.2rem 1.2rem;}
  .chapter-body{padding:1.2rem 1.2rem 1.5rem;}
}

/* contact page */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:3rem;}
.contact-card{background:var(--cream-dim); padding:2.6rem; border:1px solid rgba(23,50,38,.12); margin-bottom:1.6rem;}
.contact-card h3{font-size:1.25rem; margin-bottom:1.1rem;}
.contact-card p{color:#4a4a45; margin-bottom:.6rem; font-size:1rem;}
.contact-card a.inline-link{color:var(--forest); text-decoration:underline;}
.map-box{
  width:100%; min-height:360px; height:100%;
  background:var(--cream-dim) url('hero-standalone.jpg') center/cover no-repeat;
  border:1px solid rgba(23,50,38,.12);
  position:relative;
}
.map-box:after{content:'Ver mapa / Cómo llegar'; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(14,33,24,.45); color:#fff; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

/* legal / reglamento */
.legal-content{max-width:820px; margin:0 auto;}
.legal-content h3{
  margin-top:3.2rem; margin-bottom:1.1rem; font-size:1.05rem; color:var(--gold);
  font-family:var(--sans); text-transform:uppercase; letter-spacing:.08em; font-weight:600;
  border-bottom:1px solid rgba(23,50,38,.15); padding-bottom:.7rem;
}
.legal-content h3:first-child{margin-top:0;}
.legal-content p{margin-bottom:1.1rem; font-size:1rem; color:#3a3a35; line-height:1.75;}
.legal-content ul{margin:0 0 1.4rem 1.2rem; list-style:disc;}
.legal-content li{margin-bottom:.6rem; font-size:.98rem; color:#3a3a35;}
.legal-content strong{color:var(--forest-dark);}
.legal-content a{color:var(--gold-text); text-decoration:underline; text-underline-offset:3px;}
.legal-content a:hover{color:var(--forest-dark);}

/* aviso de tratamiento de datos (Ley 8968) */
.consent-nota{
  font-family:var(--sans); font-size:.8rem; font-weight:300;
  line-height:1.55; color:#6b6b62;
  margin:1.2rem 0 1.1rem; max-width:60ch;
}
.consent-nota a{color:var(--gold-text); text-decoration:underline; text-underline-offset:2px;}
.consent-nota a:hover{color:var(--forest-dark);}

/* CTA banner */
.cta-banner{
  background:var(--forest);
  padding:4rem clamp(1.2rem,4vw,3rem);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem;
}
.cta-banner h2{color:#fff; font-size:clamp(1.7rem,3vw,2.3rem); font-weight:400; max-width:520px;}
.cta-banner p{color:rgba(255,255,255,.72); margin-top:.6rem; max-width:480px;}

/* footer */
footer{background:var(--forest-dark); color:rgba(255,255,255,.78); padding:4.5rem clamp(1.2rem,4vw,3rem) 2rem;}
.footer-grid{display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.12);}
.footer-logo{margin-bottom:1rem;}
.footer-grid h5{font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:1.1rem; font-weight:500;}
.footer-grid li{margin-bottom:.65rem; font-size:.88rem;}
.footer-grid a:hover{color:#fff;}
.footer-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-top:1.8rem; font-size:.78rem; color:rgba(255,255,255,.5);}
.icon-link{display:inline-flex; align-items:center; gap:.5rem;}
.icon-link svg{width:16px; height:16px; flex:none;}
.socials{display:flex; flex-direction:column; gap:.7rem;}
.socials a{display:inline-flex; align-items:center; gap:.6rem; font-size:.9rem; color:inherit; text-decoration:none; transition:color .2s ease;}
.socials a svg{width:22px; height:22px; flex:none;}
.socials a:hover{color:var(--gold);}
footer .socials a{color:rgba(255,255,255,.8);}
footer .socials a:hover{color:var(--gold);}

.whatsapp-fab{
  position:fixed; right:1.6rem; bottom:1.6rem; z-index:90;
  width:58px; height:58px; border-radius:50%;
  background:var(--gold);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,.25);
  color:#fff; font-size:1.5rem;
}

.demo-banner{
  position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:var(--ink); color:#fff; font-family:var(--sans);
  font-size:.78rem; text-align:center; padding:.6rem 1rem;
  letter-spacing:.02em;
}
.demo-banner b{color:var(--gold);}

/* Cambio 47: el menú colapsa a hamburguesa ANTES (≤1240px) para que
   nunca se envuelva en dos líneas en laptops angostas. Incluye ocultar
   "Agende una Visita" (cambio 40), atado a la presencia de la hamburguesa. */
@media (max-width:1240px){
  nav.mainnav > ul{display:none;}
  .burger{display:flex;}
  .header-cta .btn-light{display:none;}
}
/* Rango compacto (1241–1440px): menú completo pero más apretado,
   para que quepa en UNA línea en laptops de 1280/1366px */
@media (min-width:1241px) and (max-width:1440px){
  .logo-anim-wrap{height:84px;}
  nav.mainnav{gap:.9rem;}
  nav.mainnav > ul{gap:.85rem;}
  nav.mainnav > ul > li > a{font-size:.9rem;}
  .header-cta{gap:.9rem;}
  .header-cta .btn{padding:.65rem 1.1rem; font-size:.7rem;}
}
@media (max-width:980px){
  .logo-anim-wrap{height:76px;}
  .strip{grid-template-columns:1fr;}
  .strip a{border-right:none; border-bottom:1px solid rgba(255,255,255,.12);}
  .intro{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .discover-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .services-grid{grid-template-columns:1fr;}
}

/* ---- Overrides de la versión aprobada (2026-07-14) ---- */
/* Peso de titulares display */
.hero h1,
.page-hero h1,
.section-head h2,
.intro-text h2,
.faq-intro h2,
.faq-topic-head h2,
.cta-banner h2,
.quote-card p.quote-text{font-weight:500;}

/* Redondeo en elementos con contorno/relleno (--radius) */
.btn,
.service-card,
.contact-card,
.faq-topic .chapter,
.stat-card,
.lot-figure,
.map-box{border-radius:var(--radius,0px);}

/* ============================================================
   CRO — componentes de conversión (auditoría 2026-07-07)
   Barra 24/7, barra móvil de llamada, CTAs por servicio,
   cinta de financiamiento y formulario de contacto.
   Inyección de barras: assets/cro.js
   ============================================================ */

/* Barra superior de atención 24/7 (todas las páginas) */
.cro-topbar{
  position:fixed; top:0; left:0; right:0; z-index:120;
  background:var(--forest-dark); color:rgba(255,255,255,.92);
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:.4rem 1.4rem; padding:.45rem clamp(1.2rem,4vw,3rem);
  font-family:var(--sans); font-size:.88rem; letter-spacing:.04em;
  border-bottom:1px solid rgba(255,255,255,.14);
  transition:transform .3s ease;
}
.cro-topbar strong{font-weight:600;}
.cro-topbar a{color:var(--gold); font-weight:600; display:inline-flex; align-items:center; gap:.4rem; transition:color .2s ease;}
.cro-topbar a:hover{color:#fff;}
.cro-topbar .cro-sep{color:rgba(255,255,255,.35);}
.cro-topbar.cro-hidden{transform:translateY(-100%);} /* ya no se usa: barra siempre visible (cambio 30) */
body.has-cro-topbar header{
  top:38px;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease, top .3s ease;
}
body.has-cro-topbar header.scrolled{top:38px;}

/* Barra móvil Llamar / WhatsApp (cambio 41: ya NO es fija; fluye al final) */
.cro-movilbar{
  display:none; position:static;
  background:var(--forest-dark); border-top:1px solid rgba(255,255,255,.16);
  padding:.6rem .8rem; gap:.6rem;
}
.cro-movilbar .btn{flex:1; justify-content:center;}
@media (max-width:700px){
  .cro-movilbar{display:flex;}
  .whatsapp-fab{display:none;}
}

/* Fila de confianza bajo los CTAs del hero */
.cro-confianza{display:flex; flex-wrap:wrap; gap:.4rem 1.6rem; margin-top:1.6rem;}
.cro-confianza span{color:rgba(255,255,255,.82); font-size:.9rem; letter-spacing:.03em;}
.cro-confianza span:before{content:'✓'; color:var(--gold); margin-right:.45rem; font-weight:600;}

/* Botón pequeño para CTAs contextuales */
.btn-sm{padding:.6rem 1.2rem; font-size:.7rem;}

/* CTAs por servicio (servicios.html) */
.service-cta{margin-top:1.2rem; display:flex; flex-wrap:wrap; gap:.7rem;}

/* Cinta de financiamiento */
.financia{
  background:var(--gold); color:#fff;
  padding:1.7rem clamp(1.2rem,4vw,3rem);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem;
}
.financia strong{font-family:var(--serif); font-weight:400; font-size:1.35rem;}
.financia p{font-size:.95rem; color:rgba(255,255,255,.9); margin-top:.2rem;}
.financia .btn{color:#fff; border-color:rgba(255,255,255,.75);}
.financia .btn:hover{background:#fff; color:var(--gold);}

/* Formulario de contacto */
.form-card{background:#fffdf6; border:1px solid rgba(23,50,38,.16); padding:2.4rem clamp(1.4rem,3vw,2.6rem);}
.form-card h3{font-size:1.35rem; margin-bottom:.4rem;}
.form-card .form-nota{color:#4a4a45; font-size:.92rem; margin-bottom:1.6rem;}
.form-card .campo{margin-bottom:1.15rem;}
.form-card label{display:block; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--forest-dark); margin-bottom:.4rem;}
.form-card input, .form-card select, .form-card textarea{
  width:100%; padding:.75rem .85rem; font-family:var(--sans); font-size:1rem;
  border:1px solid rgba(23,50,38,.28); background:#fff; color:var(--ink);
}
.form-card input:focus, .form-card select:focus, .form-card textarea:focus{outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);}
.form-card .btn{cursor:pointer;}
.form-card .respuesta{font-size:.85rem; color:#6a6a60; margin-top:.9rem;}

/* Aviso de urgencia dentro del formulario */
.cro-aviso{
  background:rgba(182,146,79,.13); border:1px solid var(--gold);
  padding:1.3rem 1.4rem; margin-bottom:1.3rem;
}
.cro-aviso strong{color:var(--forest-dark); font-family:var(--serif); font-size:1.1rem; font-weight:500; display:block; margin-bottom:.35rem;}
.cro-aviso p{color:#3f3f3a; font-size:.95rem; margin-bottom:1rem;}
.cro-aviso .btn{margin-right:.6rem; margin-bottom:.4rem;}

/* Mapa real (Google Maps embebido) */
.map-box.has-iframe:after{display:none;}
.map-box.has-iframe iframe{width:100%; height:100%; min-height:360px; border:0; display:block;}

/* ============================================================
   POLISH — capa visual premium (Editorial Luxury, 2026-07-07)
   Grano de papel, curvas de movimiento con masa física,
   reveals al hacer scroll, botones pill con icono anidado,
   double-bezel en tarjetas y microinteracciones del menú.
   Inyección de elementos: assets/cro.js
   ============================================================ */
:root{
  --ease-lux:cubic-bezier(0.32,0.72,0,1);
  --shadow-lux:0 30px 70px -35px rgba(14,33,24,.35), 0 4px 14px -8px rgba(14,33,24,.12);
}

/* Grano de papel (fijo, no interfiere con el scroll) */
.grain-overlay{
  position:fixed; inset:0; z-index:55; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Eyebrows como insignia pill */
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  border:1px solid rgba(182,146,79,.45); border-radius:999px;
  padding:.4rem 1.05rem; font-size:.8rem; letter-spacing:.18em;
}
.eyebrow::before{content:''; width:5px; height:5px; border-radius:50%; background:var(--gold);}
.section-head .eyebrow{margin-bottom:1.1rem;}

/* Botones: pill, masa física y presión táctil */
.btn{
  border-radius:999px;
  transition:transform .6s var(--ease-lux), background .45s var(--ease-lux), color .45s var(--ease-lux), border-color .45s var(--ease-lux), box-shadow .6s var(--ease-lux);
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:scale(.98);}
.btn-gold{box-shadow:0 14px 34px -14px rgba(182,146,79,.55);}
.btn-gold:hover{box-shadow:0 20px 44px -16px rgba(182,146,79,.6);}

/* Icono anidado "botón dentro del botón" (lo inyecta cro.js) */
.btn .btn-icn{
  width:1.7rem; height:1.7rem; border-radius:50%; flex:0 0 auto;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.22); font-size:.85rem; line-height:1;
  margin-right:-.55rem;
  transition:transform .6s var(--ease-lux), background .45s var(--ease-lux);
}
.btn:hover .btn-icn{transform:translate(3px,-2px) scale(1.06); background:rgba(255,255,255,.34);}
.btn-gold:hover .btn-icn{background:rgba(182,146,79,.18);}
.btn-dark .btn-icn{background:rgba(23,50,38,.10);}
.btn-dark:hover .btn-icn{background:rgba(255,255,255,.2);}

/* Menú: subrayado dorado cinético */
nav.mainnav > ul > li > a{position:relative;}
nav.mainnav > ul > li > a::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease-lux);
}
nav.mainnav > ul > li > a:hover::after, nav.mainnav > ul > li > a.active::after{transform:scaleX(1);}

/* Submenú: revelado escalonado */
.submenu{transition:opacity .4s var(--ease-lux), visibility .4s var(--ease-lux), transform .5s var(--ease-lux);}
.submenu a{opacity:0; transform:translateY(8px); transition:opacity .5s var(--ease-lux), transform .5s var(--ease-lux), color .3s ease, border-color .3s ease, background .3s ease;}
li.has-sub:hover .submenu a, li.has-sub:focus-within .submenu a{opacity:1; transform:translateY(0);}
li.has-sub:hover .submenu a:nth-of-type(2){transition-delay:.04s;}
li.has-sub:hover .submenu a:nth-of-type(3){transition-delay:.08s;}
li.has-sub:hover .submenu a:nth-of-type(4){transition-delay:.12s;}
li.has-sub:hover .submenu a:nth-of-type(5){transition-delay:.16s;}
li.has-sub:hover .submenu a:nth-of-type(6){transition-delay:.2s;}
li.has-sub:hover .submenu a:nth-of-type(7){transition-delay:.24s;}

/* Double-bezel: tarjetas como objetos físicos */
.contact-card, .form-card, .faq-topic .chapter, .lot-figure{
  border-radius:calc(var(--radius,0px) + 14px);
  outline:1px solid rgba(23,50,38,.10); outline-offset:6px;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.7), var(--shadow-lux);
}
.map-box{border-radius:calc(var(--radius,0px) + 14px); overflow:hidden; outline:1px solid rgba(23,50,38,.10); outline-offset:6px; box-shadow:var(--shadow-lux);}
.service-card{transition:background .5s var(--ease-lux), transform .6s var(--ease-lux), box-shadow .6s var(--ease-lux);}
.service-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lux);}
.discover-card img{transition:transform .9s var(--ease-lux);}
.strip a{transition:background .5s var(--ease-lux);}

/* Reveals al entrar en viewport (los asigna cro.js) */
.reveal-up{opacity:0; transform:translateY(26px); filter:blur(6px);
  transition:opacity .9s var(--ease-lux), transform .9s var(--ease-lux), filter .9s var(--ease-lux);
  transition-delay:var(--rv-delay,0s);
}
.reveal-up.in-view{opacity:1; transform:translateY(0); filter:blur(0);}

/* Prueba de logo con fondo blanco (activada en cro.js, LOGO_MODE="blanco") */
img.logo-blanco{
  background:#fff; border-radius:14px; padding:6px;
  box-shadow:0 6px 22px -8px rgba(14,33,24,.35);
  object-fit:contain;
}
.footer-logo img.logo-blanco{padding:8px;}

/* Logo como sello de agua en blanco (cro.js, LOGO_MODE="sello"):
   tiñe el PNG transparente de blanco puro, sin caja ni fondo */
img.logo-sello{
  filter:brightness(0) invert(1);
  opacity:.9;
  transition:opacity .5s var(--ease-lux);
}
.logo:hover img.logo-sello{opacity:1;}
.footer-logo img.logo-sello{opacity:.75;}

/* Pulso sereno del botón de WhatsApp */
.whatsapp-fab{transition:transform .6s var(--ease-lux), box-shadow .6s var(--ease-lux);}
.whatsapp-fab:hover{transform:translateY(-3px) scale(1.05);}
.whatsapp-fab::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  border:1.5px solid rgba(182,146,79,.65);
  animation:fabPulse 3.2s var(--ease-lux) infinite;
}
@keyframes fabPulse{
  0%{transform:scale(1); opacity:.8;}
  70%{transform:scale(1.45); opacity:0;}
  100%{transform:scale(1.45); opacity:0;}
}

@media (prefers-reduced-motion: reduce){
  .reveal-up{opacity:1; transform:none; filter:none; transition:none;}
  .whatsapp-fab::after{animation:none;}
  .btn, .btn .btn-icn, .service-card, .discover-card img{transition:none;}
}

/* ===== Jerarquía de servicios: Camposanto destacado ===== */
.service-featured{
  border:1px solid rgba(182,146,79,.45);
  background:rgba(255,255,255,.55);
  padding:3rem clamp(1.4rem,3.5vw,3rem);
  margin-bottom:2.4rem;
  border-bottom:1px solid rgba(182,146,79,.45);
}
.service-featured h3{font-size:clamp(1.9rem,3vw,2.4rem);}
.service-featured .tagline{font-size:.84rem;}
.service-featured > div > p{font-size:1.12rem;}

/* Mini-tarjetas de tipos de lote */
.lot-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin:1.7rem 0 .5rem;}
.lot-card{border:1px solid rgba(23,50,38,.15); background:#fff; padding:1.4rem 1.3rem;}
.lot-card h4{font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--forest-dark); margin-bottom:.55rem;}
.lot-card p{font-size:.93rem !important; color:#5a5a53; line-height:1.55; margin:0;}
@media (max-width:820px){ .lot-grid{grid-template-columns:1fr;} }

/* ===== Servicios complementarios (nivel 3, compactos) ===== */
.comp-block{margin-top:3.4rem;}
.comp-block .comp-eyebrow{color:var(--gold); font-weight:600; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; display:block; margin-bottom:.4rem;}
.comp-block > p{color:#5a5a53; font-size:.98rem; max-width:640px;}
.comp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin-top:1.8rem;}
.comp-card{border:1px solid rgba(23,50,38,.12); padding:1.5rem 1.3rem; scroll-margin-top:120px;}
.comp-card .service-icon{
  width:44px; height:44px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(23,50,38,.06); color:var(--gold); margin-bottom:.9rem;
}
.comp-card .service-icon svg{width:21px; height:21px;}
.comp-card h4{font-family:var(--serif); font-weight:500; font-size:1.1rem; color:var(--forest-dark); margin-bottom:.5rem;}
.comp-card p{font-size:.92rem !important; color:#5a5a53; line-height:1.55; margin:0;}
.comp-cta{margin-top:1.6rem;}
@media (max-width:820px){ .comp-grid{grid-template-columns:1fr;} }

/* Jerarquía en la grilla del index */
.service-card-featured{grid-column:1/-1; background:#fff; min-height:0;}
.service-card-featured h3{font-size:1.7rem;}
.service-card-featured p{max-width:680px; font-size:1.1rem;}
.comp-label{
  margin:2.6rem auto .9rem; text-align:center;
  color:var(--gold); font-weight:600; font-size:.78rem;
  letter-spacing:.12em; text-transform:uppercase;
}
.services-grid-comp{grid-template-columns:repeat(3,1fr);}
.services-grid-comp .service-card{min-height:170px; padding:1.8rem 1.6rem;}
.services-grid-comp .service-card h3{font-size:1.12rem;}
.services-grid-comp .service-card p{font-size:.93rem;}
@media (max-width:820px){ .services-grid-comp{grid-template-columns:1fr;} }

/* Grilla de 6 pasos (repatriaciones): filas siempre completas, sin celdas vacías */
.services-grid-3{grid-template-columns:repeat(3,1fr);}
.services-grid-3 .service-card{min-height:200px;}
@media (max-width:980px){ .services-grid-3{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .services-grid-3{grid-template-columns:1fr;} }

/* ============================================================
   Escala editorial de la página Servicios (2026-07-15)
   El detalle de servicios vivía en la escala "legal" del
   Reglamento; estas reglas lo suben a la escala del resto
   del sitio: títulos display, cuerpo 1.1rem, lienzo 1160px.
   ============================================================ */
.svc-content .service-detail{padding:3.6rem 0; gap:3rem;}
.svc-content .service-detail h3{font-size:clamp(1.6rem,2.4vw,2rem);}
.svc-content .service-detail .tagline{font-size:.8rem; margin-bottom:1.1rem;}
.svc-content .service-detail p{font-size:1.08rem; line-height:1.7; color:#3f3f3a;}
.svc-content .service-detail-head .service-icon{width:64px; height:64px;}
.svc-content .service-detail-head .service-icon svg{width:28px; height:28px;}
.svc-content .service-cta{margin-top:1.6rem;}
.svc-content .service-featured{padding:3.6rem clamp(1.6rem,4vw,3.6rem);}
.svc-content .service-featured h3{font-size:clamp(1.9rem,3.2vw,2.6rem);}
.svc-content .service-featured > div > p{font-size:1.12rem;}
.svc-content .lot-card{padding:1.7rem 1.5rem;}
.svc-content .lot-card h4{font-size:1.2rem; margin-bottom:.6rem;}
.svc-content .lot-card p{font-size:1rem !important; line-height:1.6;}
.svc-content .ceniz-opciones{padding-bottom:3.2rem;}
.svc-content .ceniz-opciones > p{font-size:1.08rem; line-height:1.7; max-width:760px;}
.svc-content .ceniz-card figcaption{padding:1.5rem 1.5rem 1.7rem;}
.svc-content .ceniz-card h4{font-size:1.2rem; margin-bottom:.6rem;}
.svc-content .ceniz-card figcaption p{font-size:1rem !important; line-height:1.65;}
.svc-content .comp-block{margin-top:4rem;}
.svc-content .comp-block .comp-eyebrow{font-size:.78rem;}
.svc-content .comp-block > p{font-size:1.05rem;}
.svc-content .comp-card{padding:1.8rem 1.6rem;}
.svc-content .comp-card h4{font-size:1.18rem; margin-bottom:.6rem;}
.svc-content .comp-card p{font-size:1rem !important; line-height:1.6;}
@media (max-width:700px){
  .svc-content .service-detail{padding:2.8rem 0; gap:1.6rem;}
  .svc-content .service-featured{padding:2.4rem 1.4rem;}
}

/* ============================================================
   ESCALA TIPOGRÁFICA UNIFICADA (2026-07-15) — 6 niveles
   1 · Hero portada:       clamp(2.6, 6vw, 4.6)   [.hero h1]
   2 · Hero interno:       clamp(2.1, 4.6vw, 3.4) [.page-hero h1]
   3 · Título de sección:  clamp(1.9, 3.2vw, 2.6) [h2 de secciones + Camposanto destacado]
   4 · Título de servicio: clamp(1.6, 2.4vw, 2.0) [.service-detail h3]
   5 · Tarjeta:            1.3rem                 [tarjetas estándar]
   6 · Tarjeta compacta:   1.18rem                [complementarios, lotes, cenizarios, mini-FAQ]
   Cualquier título nuevo debe mapearse a uno de estos niveles.
   ============================================================ */
.section-head h2, .intro-text h2, .faq-intro h2, .faq-topic-head h2{font-size:clamp(1.9rem,3.2vw,2.6rem);}
.cta-banner h2{font-size:clamp(1.7rem,2.8vw,2.2rem);}
.service-card h3, .discover-card h3, .form-card h3, .contact-card h3{font-size:1.3rem;}
.strip h4{font-size:1.3rem;}
.faq-topic .chapter summary h3{font-size:1.25rem;}
.service-card-featured h3{font-size:1.55rem;}
.services-grid-comp .service-card h3{font-size:1.18rem;}
.faq-item h4{font-size:1.18rem;}

/* Opciones de cenizarios (servicios.html) */
.ceniz-opciones{
  padding:0 0 2.6rem; margin-bottom:.4rem;
  border-bottom:1px solid rgba(23,50,38,.14);
  scroll-margin-top:120px;
}
.ceniz-opciones > p{color:#3f3f3a; font-size:1.02rem; max-width:680px;}
/* Grid 2 columnas: los 2 tipos de texto arriba (misma altura, sin huecos)
   y el "Árbol de Amor Eterno" abajo a todo el ancho, con foto al lado. */
.ceniz-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem; margin-top:1.6rem;}
.ceniz-card{border:1px solid rgba(23,50,38,.15); background:#fff; margin:0; display:flex; flex-direction:column;}
.ceniz-card img{width:100%; height:180px; object-fit:cover;}
.ceniz-card figcaption{padding:1.4rem 1.4rem 1.5rem; display:flex; flex-direction:column; justify-content:center; flex:1;}
.ceniz-card h4{font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--forest-dark); margin-bottom:.5rem;}
.ceniz-card figcaption p{font-size:.92rem; color:#5a5a53; line-height:1.6; margin:0;}
.ceniz-card .caps{border-top:1px solid rgba(23,50,38,.12); padding-top:.7rem; margin-top:.8rem; color:#3f3f3a;}
.ceniz-card .caps strong{color:var(--forest-dark);}
/* Tarjeta destacada horizontal (Árbol de Amor Eterno) */
.ceniz-card--wide{grid-column:1 / -1; flex-direction:row; align-items:stretch;}
.ceniz-card--wide img{width:44%; max-width:440px; height:auto; align-self:stretch;}
.ceniz-card--wide figcaption{flex:1; justify-content:center;}
.ceniz-opciones .service-cta{margin-top:1.6rem;}
@media (max-width:820px){
  .ceniz-grid{grid-template-columns:1fr;}
  .ceniz-card img{height:210px;}
  .ceniz-card--wide{flex-direction:column;}
  .ceniz-card--wide img{width:100%; max-width:none; height:210px;}
}

/* Etiqueta divisoria "Complementarios" en el submenú */
.submenu-label{
  display:block; margin:.7rem 1.4rem .35rem; padding-top:.8rem;
  border-top:1px solid rgba(255,255,255,.18);
  color:var(--gold); font-size:.68rem; letter-spacing:.18em;
  text-transform:uppercase; font-weight:500;
}
.submenu a:nth-of-type(n+5){color:rgba(255,255,255,.7);}
.submenu a:nth-of-type(n+5):hover{color:#fff;}

/* ============================================================
   GALERÍA COMPLETA (cambio 31 — 2026-07-16)
   Filtros por categoría + grilla masonry + lightbox
   ============================================================ */
.gal-filtros{display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin:0 auto 2.4rem; padding:0 clamp(1.2rem,4vw,3rem); max-width:1160px; scroll-margin-top:120px;}
.gal-filtro{font-family:var(--sans); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; padding:.6rem 1.2rem; border:1px solid rgba(23,50,38,.25); background:transparent; color:var(--forest-dark); cursor:pointer; border-radius:var(--radius); transition:all .25s ease;}
.gal-filtro:hover{border-color:var(--gold); color:var(--gold);}
.gal-filtro.active{background:var(--forest); border-color:var(--forest); color:#fff;}
.gal-grid{columns:3; column-gap:1.1rem; max-width:1280px; margin:0 auto; padding:0 clamp(1.2rem,4vw,3rem);}
.gal-item{break-inside:avoid; margin:0 0 1.1rem; position:relative; overflow:hidden; cursor:zoom-in; border-radius:var(--radius); background:var(--forest-dark);}
.gal-item img{width:100%; display:block; transition:transform .5s ease, opacity .3s ease;}
.gal-item:hover img{transform:scale(1.04); opacity:.92;}
.gal-item figcaption{position:absolute; left:0; right:0; bottom:0; padding:1.6rem .9rem .7rem; background:linear-gradient(180deg, rgba(14,33,24,0), rgba(14,33,24,.78)); color:#fff; font-family:var(--sans); font-size:.85rem; letter-spacing:.02em; opacity:0; transform:translateY(6px); transition:all .3s ease;}
.gal-item:hover figcaption{opacity:1; transform:translateY(0);}
.gal-item.gal-oculta{display:none;}
@media (max-width:1024px){ .gal-grid{columns:2;} }
@media (max-width:640px){ .gal-grid{columns:1;} .gal-item figcaption{opacity:1; transform:none;} }

.gal-lb{position:fixed; inset:0; z-index:400; background:rgba(10,22,18,.94); display:none; align-items:center; justify-content:center; flex-direction:column; padding:2.5rem;}
.gal-lb.open{display:flex;}
.gal-lb img{max-width:min(92vw,1200px); max-height:78vh; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.gal-lb-cap{color:var(--cream-dim); margin-top:1rem; font-family:var(--sans); font-size:.95rem; letter-spacing:.03em; text-align:center;}
.gal-lb-btn{position:absolute; top:50%; transform:translateY(-50%); background:none; border:1px solid rgba(255,255,255,.4); color:#fff; width:46px; height:46px; border-radius:50%; font-size:1.3rem; cursor:pointer; transition:border-color .25s ease, color .25s ease; display:flex; align-items:center; justify-content:center; line-height:1;}
.gal-lb-btn:hover{border-color:var(--gold); color:var(--gold);}
.gal-lb-prev{left:1.2rem;}
.gal-lb-next{right:1.2rem;}
.gal-lb-close{top:1.2rem; right:1.2rem; transform:none; font-size:1rem;}
.gal-lb-count{position:absolute; top:1.5rem; left:1.6rem; color:rgba(255,255,255,.65); font-family:var(--sans); font-size:.85rem; letter-spacing:.1em;}
@media (max-width:640px){ .gal-lb{padding:1rem;} .gal-lb-prev{left:.4rem;} .gal-lb-next{right:.4rem;} }

/* ============================================================
   BARRA SUPERIOR 24h EN BLANCO (cambio 36 — 2026-07-17)
   La topbar (.cro-topbar) siempre blanca; el menú queda verde.
   ============================================================ */
.cro-topbar{
  background:#fff;
  color:var(--forest-dark);
  border-bottom:1px solid rgba(18,63,51,.12);
}
.cro-topbar strong{color:var(--forest-dark);}
.cro-topbar .cro-sep{color:rgba(18,63,51,.35);}

/* ============================================================
   REFINAMIENTO MÓVIL (cambio 37 — 2026-07-17)
   Barra 24h compacta sin solapar el menú + escala tipográfica
   proporcional en teléfono. Analizado a 390px.
   ============================================================ */
@media (max-width:560px){
  /* Barra 24h: más compacta, sin separadores, para que ocupe 2 líneas */
  .cro-topbar{
    font-size:.7rem; letter-spacing:.01em;
    gap:.15rem .8rem; padding:.45rem .9rem;
    justify-content:center;
  }
  .cro-topbar .cro-sep{display:none;}
  /* El menú baja para no quedar tapado por la barra (≈2 líneas) */
  body.has-cro-topbar header,
  body.has-cro-topbar header.scrolled{top:58px;}

  /* --- Escala de texto en teléfono --- */
  .hero h1{font-size:2.3rem; line-height:1.12;}
  .hero p{font-size:1rem; line-height:1.55;}
  .page-hero h1{font-size:1.9rem;}
  .page-hero p{font-size:1rem; line-height:1.55;}
  .section-head h2,
  .intro-text h2,
  .faq-intro h2,
  .faq-topic-head h2{font-size:1.7rem;}
  .cta-banner h2{font-size:1.5rem;}
  .cta-banner p{font-size:.95rem;}
  .intro-text p{font-size:1rem;}
  .service-detail p,
  .svc-content .service-detail p,
  .service-featured p{font-size:1rem; line-height:1.6;}
  .financia strong{font-size:1.15rem;}
  .financia p{font-size:.9rem;}
  .quote-card p.quote-text{font-size:1.15rem;}

  /* Evita el scroll horizontal: el diagrama de cripta a ancho completo */
  .lot-figure-diagrama img{max-width:100%;}
}

/* ============================================================
   FOTOS MÓVIL SIN RECORTE (cambio 49 — 2026-07-21)
   En teléfono, las fotos con alto fijo + object-fit:cover se
   recortaban mucho (solo se veía el centro, texto de rótulos
   cortado). Se cambian a una proporción apaisada 3/2 para que
   se aprecie casi toda la foto. El page-hero solo baja de alto
   (mantiene min-height para no cortar su texto superpuesto).
   ============================================================ */
@media (max-width:700px){
  .intro-media img{height:auto; aspect-ratio:3 / 2;}
  .discover-card{height:auto; aspect-ratio:3 / 2;}
  .photo-grid img{height:auto; aspect-ratio:3 / 2;}
  .page-hero{min-height:320px;}
}

/* ============================================================
   DOBLE ACCESO EN PORTADA (cambio 44 — 2026-07-18)
   Dos tarjetas "Necesito ayuda ahora" / "Planificar en previsión"
   que flotan solapadas sobre el final del hero (estilo PdR).
   Reemplaza a la antigua franja .strip del index.
   ============================================================ */
.dual-acceso{
  display:grid; grid-template-columns:1fr 1fr; gap:1.2rem;
  padding:0 clamp(1.2rem,4vw,3rem) 3rem;
  margin-top:-4.2rem; position:relative; z-index:5;
  background:transparent;
}
.dual-card{
  padding:2.4rem clamp(1.4rem,3vw,2.6rem);
  display:flex; flex-direction:column; gap:.9rem; align-items:flex-start;
  border-radius:calc(var(--radius,0px) + 10px);
  box-shadow:var(--shadow-lux);
}
.dual-card .eyebrow{margin-bottom:.2rem;}
.dual-card h3{font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,2.6vw,2rem);}
.dual-card p{font-size:1rem; line-height:1.6;}
.dual-links{display:flex; flex-wrap:wrap; gap:.45rem .5rem; margin:.3rem 0 .6rem;}
.dual-links a{
  font-size:.8rem; letter-spacing:.06em; padding:.42rem .95rem;
  border-radius:999px; border:1px solid currentColor; opacity:.85;
  transition:opacity .25s ease, background .25s ease;
}
.dual-links a:hover{opacity:1; background:rgba(255,255,255,.08);}
.dual-ahora{background:var(--forest-dark); color:#fff;}
.dual-ahora h3{color:#fff;}
.dual-ahora p{color:rgba(255,255,255,.8);}
.dual-ahora .eyebrow{border-color:rgba(182,146,79,.6);}
.dual-futuro{background:#fffdf6; border:1px solid rgba(23,50,38,.16); color:var(--forest-dark);}
.dual-futuro p{color:#3f3f3a;}
.dual-futuro .dual-links a:hover{background:rgba(23,50,38,.05);}
@media (max-width:860px){
  .dual-acceso{grid-template-columns:1fr; margin-top:-2.4rem; padding-bottom:2.2rem;}
}

/* ============================================================
   MENÚ MÓVIL DESPLEGABLE (cambio 38 — 2026-07-17)
   Panel que baja del header al tocar la hamburguesa + morph a X.
   JS: assets/cro.js. Activo en <=980px.
   ============================================================ */
.burger span{transition:transform .3s var(--ease-lux,ease), opacity .2s ease;}
@media (max-width:1240px){
  /* Panel desplegado — panel lateral a media pantalla (cambio 48 — 2026-07-21) */
  body.nav-open nav.mainnav > ul{
    display:flex; flex-direction:column; flex-wrap:nowrap; gap:0;
    position:absolute; top:100%; right:0; left:auto; z-index:5;
    width:clamp(272px, 52vw, 420px); max-width:100%;
    background:var(--forest-dark);
    padding:.4rem 0 1.2rem;
    box-shadow:-18px 24px 60px rgba(0,0,0,.45);
    border-top:1px solid rgba(255,255,255,.12);
    border-left:1px solid rgba(255,255,255,.10);
    border-bottom-left-radius:16px;
    max-height:calc(100dvh - 120px); overflow-y:auto;
  }
  body.nav-open nav.mainnav > ul > li{width:100%;}
  body.nav-open nav.mainnav > ul > li{padding:0; border-bottom:1px solid rgba(255,255,255,.08);}
  body.nav-open nav.mainnav > ul > li > a{
    padding:1rem clamp(1.2rem,5vw,2.4rem); font-size:1.15rem; justify-content:space-between;
  }
  /* Submenú Servicios: acordeón colapsable (colapsado por defecto al tocar) */
  body.nav-open .submenu{
    position:static; visibility:visible; transform:none;
    min-width:0; background:rgba(0,0,0,.18); box-shadow:none;
    border-top:none;
    max-height:0; opacity:0; overflow:hidden; padding:0 0 0 0;
    transition:max-height .42s var(--ease-lux,ease), opacity .3s ease, padding .3s ease;
  }
  body.nav-open li.has-sub.sub-open .submenu{
    max-height:80vh; opacity:1; padding:.3rem 0 .5rem;
  }
  body.nav-open .submenu a{
    opacity:1; transform:none; font-size:1rem;
    padding:.6rem clamp(1.8rem,7vw,3rem); border-left:none;
  }
  body.nav-open .submenu-label{margin:.5rem clamp(1.8rem,7vw,3rem) .2rem; border-top:none; padding-top:.4rem;}
  /* Caret del acordeón: gira al abrir */
  body.nav-open li.has-sub > a .caret{transition:transform .3s var(--ease-lux,ease); margin-top:0;}
  body.nav-open li.has-sub.sub-open > a .caret{transform:rotate(225deg);}
  /* Hamburguesa → X */
  body.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  body.nav-open .burger span:nth-child(2){opacity:0;}
  body.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ============================================================
   CAMPOSANTO DESTACADO CON BANNER (cambio 53 — 2026-07-22)
   Banner (foto aérea) arriba + cuerpo con los tipos de lote
   en lista de divisores (reemplaza el layout de 2 columnas y
   las cajas .lot-card en el bloque Camposanto de servicios.html).
   ============================================================ */
.camp-feat{padding:0 !important; overflow:hidden; border-radius:var(--radius); background:#fffdf9; scroll-margin-top:120px;}
.camp-feat-banner{width:100%; height:clamp(220px,30vw,340px); object-fit:cover; display:block; margin:0;}
.camp-feat-body{padding:clamp(2rem,3.4vw,3.4rem);}
.camp-feat .service-icon{width:52px; height:52px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:rgba(23,50,38,.06); color:var(--gold); margin-bottom:1rem;}
.camp-feat .service-icon svg{width:25px; height:25px; stroke-width:1.6;}
.camp-feat .tagline{display:block;}
.camp-feat h3{margin:0 0 1rem;}
.camp-feat-head{max-width:64ch; margin-bottom:1rem;}
.camp-feat-head p{color:#3f3f3a; font-size:1.05rem; line-height:1.65; margin:0 0 1rem;}
.camp-lots{display:grid; grid-template-columns:repeat(3,1fr); gap:0 2.2rem; margin:1.6rem 0 1.9rem;}
.camp-lot{padding:1.1rem 0 .2rem; border-top:1px solid rgba(23,50,38,.14);}
.camp-lot h4{font-family:var(--serif); font-weight:500; font-size:1.12rem; color:var(--forest-dark); margin:0 0 .4rem;}
.camp-lot p{font-size:.9rem; color:#5a5a53; line-height:1.55; margin:0;}
@media (max-width:820px){ .camp-lots{grid-template-columns:1fr; gap:0;} }

/* Lista "Por qué elegir Memorial Park" (nosotros.html) — Opción B sin números
   (2 columnas, divisores finos; clase propia para no tocar .faq-grid del FAQ). */
.why-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 3.2rem;}
.why-item{padding:1.15rem 0; border-top:1px solid rgba(23,50,38,.14);}
.why-item h4{font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--forest-dark); margin:0 0 .4rem;}
.why-item p{color:#4a4a45; font-size:.9rem; line-height:1.55; margin:0;}
@media (max-width:700px){ .why-grid{grid-template-columns:1fr;} }

/* ============================================================
   PULIDO "EMIL" — SECCIÓN SERVICIOS (cambio 54 — 2026-07-22)
   Cohesión (mismo lenguaje de tarjetas y esquinas) + micro-
   interacciones sobrias: hover de tarjeta y feedback al pulsar.
   Solo transform/opacity/sombra; con guardas de hover y de
   prefers-reduced-motion. Curva ease-out fuerte de Emil.
   ============================================================ */
:root{ --ease-out-strong:cubic-bezier(0.23,1,0.32,1); }

/* Tarjetas de la sección: fondo y borde consistentes + microinteracción */
.svc-content .comp-card{background:#fff; border-color:rgba(23,50,38,.15);}
.svc-content .comp-card,
.ceniz-card{
  transition:transform .22s var(--ease-out-strong),
             box-shadow .22s var(--ease-out-strong),
             border-color .22s var(--ease-out-strong);
}
@media (hover:hover) and (pointer:fine){
  .svc-content .comp-card:hover,
  .ceniz-card:hover{
    transform:translateY(-3px);
    border-color:rgba(182,146,79,.45);
    box-shadow:0 18px 34px -22px rgba(14,33,24,.32);
  }
}

/* Botones de la sección: hover ágil (<300ms) + respuesta al pulsar */
.svc-content .btn,
.financia .btn{
  transition:transform .18s var(--ease-out-strong),
             background .26s var(--ease-out-strong),
             color .26s var(--ease-out-strong),
             border-color .26s var(--ease-out-strong),
             box-shadow .26s var(--ease-out-strong);
}
.svc-content .btn:active,
.financia .btn:active{ transform:scale(.97); }

@media (prefers-reduced-motion: reduce){
  .svc-content .comp-card, .ceniz-card,
  .svc-content .btn, .financia .btn{ transition:none; }
  .svc-content .comp-card:hover, .ceniz-card:hover{ transform:none; box-shadow:none; }
  .svc-content .btn:active, .financia .btn:active{ transform:none; }
}

/* ============================================================
   ARREGLOS DE AUDITORÍA PRE-LANZAMIENTO (cambio 55 — 2026-07-22)
   1) Contraste: dorado legible para TEXTO pequeño sobre fondo
      claro (WCAG AA). El dorado --gold (#b6924f) se conserva
      para bordes, íconos y texto sobre fondo oscuro.
   2) Fix del hover de la barra 24h (era #fff sobre barra blanca
      = invisible).
   3) Objetivos táctiles ≥44px en dispositivos táctiles.
   ============================================================ */
:root{ --gold-text:#7d5f28; }  /* 5.9:1 sobre blanco · 5.3:1 sobre crema */

.cro-topbar a{ color:var(--gold-text); }
.cro-topbar a:hover{ color:var(--forest-dark); }

.section-head .eyebrow,
.faq-intro .eyebrow,
.faq-topic-head .eyebrow,
.service-detail .tagline,
.service-featured .tagline,
.camp-feat .tagline,
.comp-block .comp-eyebrow,
.stat-card .label{ color:var(--gold-text); }

@media (hover:none) and (pointer:coarse){
  .btn{ min-height:44px; }
  .btn-sm{ min-height:44px; padding-top:.7rem; padding-bottom:.7rem; }
}

/* ============================================================
   VERSIÓN DE DISEÑO "2026-07-22 16:21" (cambio 56)
   Titulares Playfair Display, cuerpo Raleway, peso 500,
   esquinas 14px. Coherencia de radio en las tarjetas propias
   de servicios (que no usaban --radius) para que redondeen
   igual que el resto del sitio.
   ============================================================ */
.ceniz-card, .comp-card, .lot-card{ border-radius:var(--radius); }
.ceniz-card{ overflow:hidden; }

/* ============================================================
   ESCALA DE TÍTULOS — jerarquía FAQ (cambio 58 — 2026-07-22)
   Los subtítulos de tema del FAQ (.faq-topic-head h2) habían
   quedado del mismo tamaño que los títulos de sección por una
   regla unificada previa. Aquí (fuente única, gana por orden)
   se les da un escalón menor para recuperar la jerarquía.
   ============================================================ */
.faq-topic-head h2{ font-size:clamp(1.5rem,2.6vw,2rem); }
@media (max-width:560px){ .faq-topic-head h2{ font-size:1.4rem; } }

/* ============================================================
   PULIDO "IMPECABLE" (cambio 61 — 2026-07-22)
   2) Superficies de tarjeta en off-white cálido (papel), no blanco puro.
   4) Aparición serena de secciones al entrar en viewport.
   (3) hover del submenú sin barrita: editado arriba en .submenu a:hover)
   ============================================================ */
.lot-card, .ceniz-card, .service-card-featured, .svc-content .comp-card{ background:#fffdf9; }

.reveal-init{ opacity:0; transform:translateY(10px); }
.reveal-in{ opacity:1; transform:none; transition:opacity .7s var(--ease-lux,ease), transform .7s var(--ease-lux,ease); }
@media (prefers-reduced-motion: reduce){
  .reveal-init{ opacity:1; transform:none; }
  .reveal-in{ transition:none; }
}

/* ============================================================
   PROCESO COMO LÍNEA DE TIEMPO CON NODOS (cambio 62 — 2026-07-22)
   Reemplaza las 6 tarjetas iguales del "proceso de repatriación"
   por pasos con punto dorado sobre un hilo fino. Sin números.
   ============================================================ */
.proceso-tl{ position:relative; max-width:560px; margin:2.4rem auto 0; }
.proceso-tl::before{ content:''; position:absolute; left:5px; top:.6rem; bottom:1rem; width:1px; background:rgba(182,146,79,.5); }

/* Layout a 2 columnas: medallón (imagen) a la izquierda + línea de tiempo a la derecha */
.proceso-wrap{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; margin-top:2.2rem; }
.proceso-wrap .proceso-tl{ max-width:none; margin:0; }
.proceso-media{ display:flex; justify-content:center; }
.proceso-medallion{ position:relative; width:min(360px,88%); aspect-ratio:1; margin:0 auto; }
.proceso-photo{ position:absolute; inset:5%; width:90%; height:90%; border-radius:50%; object-fit:cover; display:block; }
.proceso-ring{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
@media (max-width:820px){
  .proceso-wrap{ grid-template-columns:1fr; gap:1.6rem; }
  .proceso-media{ margin-bottom:.2rem; }
  .proceso-medallion{ width:min(240px,64%); }
}
.proceso-step{ position:relative; padding:0 0 1.7rem 2rem; }
.proceso-step:last-child{ padding-bottom:0; }
.proceso-dot{ position:absolute; left:0; top:.5rem; width:11px; height:11px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px var(--cream-dim); }
.proceso-step h3{ font-family:var(--serif); font-weight:500; font-size:1.15rem; color:var(--forest-dark); margin:0 0 .25rem; }
.proceso-step p{ font-size:.98rem; color:#5a5a53; line-height:1.55; margin:0; max-width:56ch; }
@media (max-width:560px){ .proceso-step p{ font-size:1rem; } }
