/* ============================================================
   TERRITORIO AMÉRICA — Sistema de diseño v2
   Real estate premium · Verde bosque + Cobre · Fraunces/Archivo
   ============================================================ */
:root{
  /* Universo "Espacios que Venden" — Halcyon Green · Alabaster · Golden Oak · Charcoal */
  --bosque:#4A574E;          /* Halcyon profundo — secciones de autoridad */
  --bosque-osc:#272E29;      /* Halcyon oscurecido */
  --bosque-prof:#0C1D15;     /* Charcoal verdoso — nav, hero, footer */
  --cobre:#A9834C;           /* Golden Oak — acento madera miel */
  --cobre-claro:#C9A468;     /* Golden Oak claro */
  --crema:#EDEAE0;           /* Alabaster SW 7008 */
  --crema-suave:#F5F3EC;     /* Pure White cálido SW 7005 */
  --tinta:#2B2F2C;           /* Casi negro cálido */
  --piedra:#8C948C;          /* Gris piedra cálido */
  --tradewind:#BFD1CE;       /* Tradewind SW 6218 — acento puntual */
  --firma:#E5B906;           /* Amarillo corporativo — SOLO firma gráfica puntual */
  --linea:rgba(74,87,78,.16);
  --linea-clara:rgba(237,234,224,.16);
  --sombra:0 24px 60px rgba(12,29,21,.15);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Archivo',sans-serif;font-weight:300;background:var(--crema);color:var(--tinta);line-height:1.75;font-size:16px;overflow-x:hidden}
h1,h2,h3,h4,.serif{font-family:'Fraunces',serif}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{font-family:inherit}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
section{position:relative;padding:110px 0}

/* ---------- texto util ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--cobre)}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--cobre)}
.claro .eyebrow,.eyebrow.claro{color:var(--cobre-claro)}
.claro .eyebrow::before,.eyebrow.claro::before{background:var(--cobre-claro)}
.titulo{font-size:clamp(32px,3.8vw,48px);font-weight:500;line-height:1.12;color:var(--bosque);margin:18px 0 16px;letter-spacing:-.01em}
.titulo em{font-style:italic;color:var(--cobre)}
.claro .titulo{color:var(--crema)}
.claro .titulo em{color:var(--cobre-claro)}
.sub{font-size:17.5px;font-weight:300;color:#3A463E;max-width:600px;line-height:1.75}
.claro .sub{color:rgba(244,239,230,.68)}
.centrado{text-align:center}
.centrado .sub{margin-left:auto;margin-right:auto}
.miga{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--piedra)}
.miga a:hover{color:var(--cobre-claro)}
.miga .acento{color:var(--cobre-claro)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 32px;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:none;cursor:pointer;transition:all .3s ease;line-height:1}
.btn-cobre{background:var(--cobre);color:var(--crema-suave)}
.btn-cobre:hover{background:var(--bosque);transform:translateY(-2px)}
.claro .btn-cobre:hover,.fondo-verde .btn-cobre:hover{background:var(--cobre-claro);color:var(--bosque-prof)}
.btn-verde{background:var(--bosque);color:var(--crema-suave)}
.btn-verde:hover{background:var(--cobre);transform:translateY(-2px)}
.btn-linea{background:transparent;color:var(--bosque);border:1px solid var(--linea)}
.btn-linea:hover{border-color:var(--cobre);color:var(--cobre)}
.btn-linea.claro,.claro .btn-linea{color:var(--crema);border-color:var(--linea-clara)}
.btn-linea.claro:hover,.claro .btn-linea:hover{border-color:var(--cobre-claro);color:var(--cobre-claro)}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:18px 40px;transition:all .35s ease;background:linear-gradient(180deg,rgba(12,29,21,.85),rgba(12,29,21,0))}
.nav.compacta{background:rgba(12,29,21,.96);backdrop-filter:blur(14px);padding:12px 40px;box-shadow:0 1px 0 var(--linea-clara)}
.nav-logo{display:flex;align-items:center;min-width:0}
.nav-logo img{height:33px;width:auto;max-width:min(44vw,215px);object-fit:contain}
.nav-links{display:flex;gap:34px;align-items:center}
.nav-links a{font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,239,230,.78);transition:color .25s;padding:6px 0;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--cobre-claro);transition:right .3s}
.nav-links a:hover::after,.nav-links a.activo::after{right:0}
.nav-links a:hover,.nav-links a.activo{color:var(--crema)}
.nav-cta{padding:9px 16px!important;font-size:11.5px!important;background:var(--cobre);color:var(--crema-suave)!important;font-weight:600}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--cobre-claro)}
.nav-der{display:flex;align-items:center;gap:12px}
.hamburguesa{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px}
.hamburguesa span{width:24px;height:2px;background:var(--crema);transition:all .3s}
.menu-movil{display:none;position:fixed;top:0;right:0;bottom:0;width:min(320px,84vw);background:var(--bosque-prof);z-index:300;padding:100px 36px 40px;flex-direction:column;gap:6px;transform:translateX(100%);transition:transform .38s cubic-bezier(.22,1,.36,1);box-shadow:-30px 0 80px rgba(0,0,0,.4)}
.menu-movil.abierto{transform:none}
.menu-movil a{font-size:16px;font-weight:500;color:rgba(244,239,230,.8);padding:12px 0;border-bottom:1px solid var(--linea-clara)}
.menu-movil a.activo,.menu-movil a:hover{color:var(--cobre-claro)}
.cerrar-menu{position:absolute;top:24px;right:28px;background:none;border:none;color:var(--crema);font-size:26px;cursor:pointer}

/* ---------- HERO ---------- */
.hero,.hero-int{position:relative;background:var(--bosque-prof);color:var(--crema);overflow:hidden}
.hero{min-height:92vh;display:flex;align-items:center;padding:170px 0 110px}
.hero-int{padding:180px 0 90px}
.survey{position:absolute;inset:0;pointer-events:none;opacity:.55}
.hero .contenido,.hero-int .contenido{position:relative;z-index:2}
.hero h1,.hero-int h1{font-size:clamp(40px,5.6vw,70px);font-weight:500;line-height:1.06;letter-spacing:-.015em;color:var(--crema)}
.hero h1 em,.hero-int h1 em{font-style:italic;color:var(--cobre-claro)}
.hero .sub,.hero-int .sub{margin-top:26px;color:rgba(244,239,230,.7)}
.hero-acciones{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px}
.hero-meta{margin-top:60px;display:flex;gap:52px;flex-wrap:wrap}
.meta .num{font-family:'Fraunces';font-size:30px;font-weight:600;color:var(--crema)}
.meta .num span{color:var(--cobre-claro)}
.meta .lbl{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin-top:5px;max-width:200px}

.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:70px;align-items:center}

/* ---------- PARCELA (tarjeta firma) ---------- */
.parcela{position:relative;background:var(--crema);color:var(--tinta);padding:40px 36px;box-shadow:0 34px 90px rgba(0,0,0,.4)}
.parcela::before{content:"";position:absolute;inset:12px;border:1px solid var(--linea);pointer-events:none}
.parcela-tag{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--cobre);font-weight:600}
.parcela h3{font-size:26px;font-weight:600;margin:14px 0 6px;color:var(--bosque)}
.parcela .coords{font-size:12px;color:var(--piedra);letter-spacing:.06em;margin-bottom:22px}
.parcela-row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--linea);font-size:14px}
.parcela-row .k{color:var(--piedra)}
.parcela-row .v{font-weight:600;text-align:right}
.parcela-row .v.up{color:var(--cobre)}
.parcela-sello{margin-top:24px;display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px dashed var(--linea)}
.sello-circ{flex-shrink:0;width:58px;height:58px;border:2px solid var(--firma);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:10px;text-align:center;line-height:1.2;color:var(--tinta);letter-spacing:.06em;transform:rotate(-8deg)}
.parcela-sello p{font-size:13px;color:var(--piedra);font-style:italic}

/* ---------- SECCIONES DE FONDO ---------- */
.fondo-verde{background:var(--bosque);color:var(--crema)}
.fondo-verde-osc{background:var(--bosque-osc);color:var(--crema)}
.fondo-suave{background:var(--crema-suave)}

/* ---------- GRIDS Y CARTAS ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:56px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
.carta{position:relative;background:var(--crema-suave);border:1px solid var(--linea);padding:38px 32px;transition:transform .35s,box-shadow .35s;text-align:left}
.carta:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.fondo-verde .carta,.fondo-verde-osc .carta{background:rgba(244,239,230,.045);border-color:var(--linea-clara)}
.carta h3{font-size:21px;font-weight:600;color:var(--bosque);margin:14px 0 10px}
.fondo-verde .carta h3,.fondo-verde-osc .carta h3{color:var(--crema)}
.carta p{font-size:14.5px;font-weight:300;color:#3A463E;line-height:1.7}
.fondo-verde .carta p,.fondo-verde-osc .carta p{color:rgba(244,239,230,.62)}
.carta .rotulo{font-family:'Fraunces';font-size:15px;color:var(--cobre);letter-spacing:.06em;font-style:italic}
.fondo-verde .carta .rotulo,.fondo-verde-osc .carta .rotulo{color:var(--cobre-claro)}

/* ---------- LISTAS pro/contra, entregables ---------- */
.panel{position:relative;background:var(--crema-suave);border:1px solid var(--linea);padding:42px 38px}
.fondo-verde .panel,.fondo-verde-osc .panel{background:rgba(244,239,230,.04);border-color:var(--linea-clara)}
.panel h3{font-size:23px;margin-bottom:20px;color:var(--bosque)}
.fondo-verde .panel h3{color:var(--crema)}
.panel ul{list-style:none}
.panel li{padding:13px 0;border-top:1px solid var(--linea);font-size:15px;font-weight:300;color:#3A463E;display:flex;gap:12px;align-items:baseline}
.fondo-verde .panel li{border-color:var(--linea-clara);color:rgba(244,239,230,.72)}
.panel li::before{content:"—";color:var(--cobre);font-weight:600;flex-shrink:0}
.panel.negativo li::before{content:"✕";font-size:12px;color:var(--piedra)}
.panel.negativo h3{color:var(--piedra)}
.panel a.enlace{color:var(--cobre);text-decoration:underline}

/* ---------- CITA GRANDE ---------- */
.cita-grande{font-family:'Fraunces';font-size:clamp(24px,3vw,34px);font-style:italic;font-weight:400;line-height:1.4;color:var(--bosque)}
.claro .cita-grande,.fondo-verde .cita-grande,.fondo-verde-osc .cita-grande{color:var(--crema)}
.cita-grande .acento{color:var(--cobre)}
.fondo-verde .cita-grande .acento,.fondo-verde-osc .cita-grande .acento{color:var(--cobre-claro)}

/* ---------- FORM ---------- */
.form-panel{position:relative;background:var(--crema-suave);border:1px solid var(--linea);padding:52px 48px;max-width:860px;margin:0 auto;box-shadow:var(--sombra)}
.form-panel::before{content:"";position:absolute;inset:14px;border:1px solid var(--linea);pointer-events:none}
.form-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:26px;z-index:2}
.campo{display:flex;flex-direction:column;gap:8px}
.campo-full{grid-column:1/-1}
.campo label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bosque)}
.campo input,.campo select,.campo textarea{padding:15px 16px;background:#fff;border:1px solid var(--linea);font-family:'Archivo';font-size:15px;color:var(--tinta);transition:border .25s}
.campo textarea{min-height:130px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--tradewind);box-shadow:0 0 0 3px rgba(191,209,206,.35)}

/* ============================================================
   PROYECTOS — catálogo de casas
   ============================================================ */
.casas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:60px}
.casa{position:relative;background:var(--crema-suave);border:1px solid var(--linea);cursor:pointer;transition:transform .35s,box-shadow .35s;overflow:hidden}
.casa:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.casa-visual{position:relative;aspect-ratio:4/3;background:var(--bosque);overflow:hidden}
.casa-visual img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.casa:hover .casa-visual img{transform:scale(1.05)}
.casa-visual .sin-foto{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:rgba(244,239,230,.55)}
.sin-foto .circ{width:56px;height:56px;border:1px solid var(--linea-clara);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:20px;color:var(--cobre-claro)}
.sin-foto span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase}
.casa-lago{position:absolute;bottom:13px;left:13px;z-index:2;background:rgba(12,29,21,.78);backdrop-filter:blur(6px);color:var(--crema);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:7px 12px;border:1px solid var(--linea-clara)}
.casa-cuerpo{padding:24px 24px 26px}
.casa-cuerpo h3{font-size:20px;font-weight:600;color:var(--bosque);margin-bottom:4px}
.casa-cuerpo .dir{font-size:12.5px;color:var(--piedra);letter-spacing:.05em;margin-bottom:16px}
.casa-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--cobre);border:1px solid rgba(169,131,76,.35);padding:6px 10px}
.chip.off{color:var(--piedra);border-color:var(--linea);opacity:.55}
.casa-abrir{margin-top:18px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bosque);display:inline-flex;align-items:center;gap:8px}
.casa-abrir::after{content:"→";transition:transform .3s}
.casa:hover .casa-abrir::after{transform:translateX(4px)}
.casa:hover .casa-abrir{color:var(--cobre)}

/* ---------- MODAL CASA ---------- */
.modal-fondo{position:fixed;inset:0;background:rgba(12,29,21,.78);backdrop-filter:blur(8px);z-index:400;display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:5vh 20px 60px}
.modal-fondo.abierto{display:flex}
.modal{position:relative;background:var(--crema);width:min(980px,100%);box-shadow:0 40px 120px rgba(0,0,0,.5);animation:modalIn .4s cubic-bezier(.22,1,.36,1)}
@keyframes modalIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.modal-cerrar{position:absolute;top:18px;right:18px;z-index:5;width:42px;height:42px;background:var(--bosque);color:var(--crema);border:none;font-size:20px;cursor:pointer;transition:background .3s}
.modal-cerrar:hover{background:var(--cobre)}
.modal-cab{padding:40px 44px 0}
.modal-cab .parcela-tag{display:block;margin-bottom:8px}
.modal-cab h2{font-size:clamp(26px,3vw,36px);font-weight:600;color:var(--bosque);line-height:1.1}
.modal-cab .dir{font-size:13px;color:var(--piedra);letter-spacing:.06em;margin-top:6px}
.modal-tabs{display:flex;gap:4px;padding:26px 44px 0;border-bottom:1px solid var(--linea);flex-wrap:wrap}
.mtab{background:none;border:none;border-bottom:2px solid transparent;padding:12px 18px;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--piedra);cursor:pointer;transition:all .25s;margin-bottom:-1px}
.mtab:hover{color:var(--bosque)}
.mtab.activo{color:var(--cobre);border-bottom-color:var(--cobre)}
.mtab:disabled{opacity:.35;cursor:not-allowed}
.modal-panel{padding:34px 44px 44px;min-height:340px}
.tour-marco{position:relative;aspect-ratio:16/9;background:var(--bosque-prof)}
.tour-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tour-carga{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:rgba(244,239,230,.6);cursor:pointer}
.tour-carga .play{width:74px;height:74px;border:1.5px solid var(--cobre-claro);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--cobre-claro);font-size:22px;transition:all .3s}
.tour-carga:hover .play{background:var(--cobre);border-color:var(--cobre);color:var(--crema)}
.tour-carga span{font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.media-nota{margin-top:14px;font-size:12.5px;color:var(--piedra);font-style:italic}
.media-marco{position:relative;aspect-ratio:16/9;background:var(--bosque);display:flex;align-items:center;justify-content:center;overflow:hidden}
.media-marco img{width:100%;height:100%;object-fit:cover}
.media-marco video{width:100%;height:100%;object-fit:contain;background:#000}
.media-ph{display:flex;flex-direction:column;align-items:center;gap:12px;color:rgba(244,239,230,.55);text-align:center;padding:20px}
.media-ph .circ{width:60px;height:60px;border:1px solid var(--linea-clara);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:20px;color:var(--cobre-claro)}
.media-ph span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;line-height:1.8}
.modal-pie{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 44px 40px;flex-wrap:wrap}
.modal-pie .btn{padding:14px 26px;font-size:12.5px}

/* ---------- REVEAL ---------- */
.aparece{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.aparece.visible{opacity:1;transform:none}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}
@media(prefers-reduced-motion:reduce){.aparece{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ---------- FOOTER ---------- */
footer{background:var(--bosque-prof);padding:70px 0 40px;color:rgba(244,239,230,.6)}
.foot{display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;padding-bottom:46px;border-bottom:1px solid var(--linea-clara)}
.foot-logo img{height:60px;width:auto}
.foot-tag{font-size:14px;margin-top:16px;max-width:300px;font-weight:300;line-height:1.7}
.foot-nav{display:flex;flex-direction:column;gap:4px}
.foot-nav a{font-size:14px;padding:5px 0;color:rgba(244,239,230,.6);transition:color .25s}
.foot-nav a:hover{color:var(--cobre-claro)}
.foot-legal{padding-top:30px;display:flex;justify-content:space-between;font-size:12px;color:var(--piedra);flex-wrap:wrap;gap:12px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1020px){
  .grid3,.casas-grid{grid-template-columns:1fr 1fr}
  .hero-grid{grid-template-columns:1fr;gap:56px}
}
@media(max-width:820px){
  .nav{padding:14px 18px}
  .nav.compacta{padding:10px 18px}
  .nav-logo img{height:26px;max-width:50vw}
  .nav-cta{padding:8px 12px!important;font-size:10.5px!important}
  .nav-links{display:none}
  .hamburguesa{display:flex}
  .menu-movil{display:flex}
  .grid2{grid-template-columns:1fr}
  section{padding:84px 0}
  .hero{padding:150px 0 90px}
  .hero-int{padding:150px 0 70px}
}
@media(max-width:640px){
  .wrap{padding:0 20px}
  .grid3,.casas-grid{grid-template-columns:1fr}
  .form-panel{padding:38px 26px}
  .form-grid{grid-template-columns:1fr}
  .modal-cab,.modal-tabs,.modal-panel,.modal-pie{padding-left:24px;padding-right:24px}
  .hero-meta{gap:30px}
  .parcela{padding:32px 24px}
}

/* ============================================================
   v2.1 — Validación real · Noticias · Newsletter · Caminos
   ============================================================ */

/* Caminos con visual (wordmarks) */
.camino-visual{margin:-42px -38px 26px;aspect-ratio:16/7;overflow:hidden;background:var(--bosque);position:relative}
.camino-visual img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.panel:hover .camino-visual img{transform:scale(1.04)}
.camino-visual .visual-alt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:26px;font-style:italic;color:var(--cobre-claro);letter-spacing:.02em}

/* ---------- VALIDACIÓN REAL / TESTIMONIOS ---------- */
.valida-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;margin-top:60px}
.valida-fotos{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.valida-fotos figure{position:relative;overflow:hidden;background:var(--bosque);margin:0}
.valida-fotos figure:first-of-type{grid-column:1/-1;aspect-ratio:16/10}
.valida-fotos figure:not(:first-of-type){aspect-ratio:1/1}
.valida-fotos img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.valida-fotos figure:hover img{transform:scale(1.05)}
.valida-fotos figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 18px;background:linear-gradient(0deg,rgba(12,29,21,.85),transparent);color:var(--crema);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.valida-sello{position:absolute;top:-26px;right:-10px;z-index:3;width:96px;height:96px;border:2px solid var(--firma);border-radius:50%;background:var(--crema);display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:11px;text-align:center;line-height:1.25;color:var(--tinta);letter-spacing:.08em;transform:rotate(-10deg);box-shadow:0 14px 34px rgba(12,29,21,.18)}

.testis{display:flex;flex-direction:column;gap:18px}
.testi{position:relative;background:var(--crema-suave);border:1px solid var(--linea);padding:28px 30px 24px}
.testi::before{content:"“";position:absolute;top:10px;left:22px;font-family:'Fraunces';font-size:64px;line-height:1;color:rgba(169,131,76,.22)}
.testi p{position:relative;font-size:15.5px;font-weight:300;line-height:1.75;color:#33403A;font-style:italic}
.testi footer{margin-top:16px;display:flex;align-items:center;gap:12px;background:none;padding:0;color:inherit}
.testi .avatar{width:40px;height:40px;border-radius:50%;background:var(--bosque);color:var(--crema);display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:14px;flex-shrink:0}
.testi .quien{font-size:13px;font-weight:600;color:var(--bosque)}
.testi .rol{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--piedra)}
.valida-cifras{display:flex;gap:36px;flex-wrap:wrap;margin-top:26px;padding-top:24px;border-top:1px solid var(--linea)}
.vc .n{font-family:'Fraunces';font-size:26px;font-weight:600;color:var(--cobre)}
.vc .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin-top:3px}

/* ---------- NOTICIAS ---------- */
.noticias-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
.noti{background:var(--crema-suave);border:1px solid var(--linea);overflow:hidden;transition:transform .35s,box-shadow .35s;display:flex;flex-direction:column}
.noti:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.noti-visual{aspect-ratio:16/10;overflow:hidden;background:var(--bosque)}
.noti-visual img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.noti:hover .noti-visual img{transform:scale(1.06)}
.noti-cuerpo{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.noti time{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cobre);font-weight:600}
.noti h3{font-size:19px;font-weight:600;color:var(--bosque);margin:10px 0 8px;line-height:1.3}
.noti p{font-size:14px;font-weight:300;color:#3A463E;line-height:1.7;flex:1}
.noti .leer{margin-top:16px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bosque);display:inline-flex;align-items:center;gap:8px}
.noti .leer::after{content:"→";transition:transform .3s}
.noti:hover .leer{color:var(--cobre)}
.noti:hover .leer::after{transform:translateX(4px)}

/* ---------- NEWSLETTER ---------- */
.news-banda{position:relative;background:var(--bosque);color:var(--crema);padding:70px 0;overflow:hidden}
.news-inner{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;z-index:2}
.news-inner h2{font-size:clamp(26px,3vw,36px);font-weight:500;color:var(--crema);line-height:1.15}
.news-inner h2 em{font-style:italic;color:var(--cobre-claro)}
.news-inner .sub{margin-top:14px;font-size:15.5px;color:rgba(244,239,230,.65)}
.news-form{display:flex;gap:12px;flex-wrap:wrap}
.news-form input{flex:1;min-width:240px;padding:17px 18px;background:rgba(244,239,230,.07);border:1px solid var(--linea-clara);color:var(--crema);font-family:'Archivo';font-size:15px;transition:border .25s}
.news-form input::placeholder{color:rgba(244,239,230,.4)}
.news-form input:focus{outline:none;border-color:var(--tradewind)}
.news-nota{margin-top:12px;font-size:12px;color:var(--piedra);letter-spacing:.03em}

@media(max-width:960px){
  .valida-grid,.news-inner{grid-template-columns:1fr}
  .noticias-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .noticias-grid{grid-template-columns:1fr}
  .valida-sello{width:80px;height:80px;top:-18px;right:6px;font-size:10px}
}

/* ============================================================
   v2.2 — Mejoras: filtros, destacada, social, subir, pulido
   ============================================================ */
::selection{background:var(--cobre);color:var(--crema-suave)}
html{scrollbar-width:thin;scrollbar-color:var(--bosque) var(--crema)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--crema)}
::-webkit-scrollbar-thumb{background:var(--bosque);border-radius:6px;border:2px solid var(--crema)}
a:focus-visible,button:focus-visible{outline:2px solid var(--tradewind);outline-offset:3px}

/* Filtros de casas */
.filtros{display:flex;gap:10px;flex-wrap:wrap;margin-top:44px}
.filtro-btn{background:transparent;border:1px solid var(--linea);padding:11px 20px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--piedra);cursor:pointer;transition:all .28s}
.filtro-btn:hover{border-color:var(--cobre);color:var(--cobre)}
.filtro-btn.activo{background:var(--bosque);border-color:var(--bosque);color:var(--crema-suave)}
.casa.oculta{display:none}
.filtro-vacio{display:none;margin-top:40px;padding:40px;text-align:center;border:1px dashed var(--linea);color:var(--piedra);font-style:italic}

/* Casa destacada (index) */
.destacada{display:grid;grid-template-columns:1.1fr .9fr;gap:0;background:var(--crema-suave);border:1px solid var(--linea);overflow:hidden;margin-top:56px;box-shadow:var(--sombra)}
.destacada-visual{position:relative;min-height:420px;background:var(--bosque)}
.destacada-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.destacada-visual .tag{position:absolute;top:20px;left:20px;background:rgba(12,29,21,.88);backdrop-filter:blur(6px);color:var(--crema);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--linea-clara)}
.destacada-cuerpo{padding:52px 48px;display:flex;flex-direction:column;justify-content:center}
.destacada-cuerpo h3{font-size:clamp(26px,2.6vw,34px);font-weight:600;color:var(--bosque);margin:14px 0 6px}
.destacada-cuerpo .dir{font-size:13px;color:var(--piedra);letter-spacing:.06em;margin-bottom:20px}
.destacada-cuerpo p{font-size:15.5px;font-weight:300;color:#3E463F;line-height:1.75;margin-bottom:28px}
.destacada-specs{display:flex;gap:30px;flex-wrap:wrap;margin-bottom:32px;padding-top:22px;border-top:1px solid var(--linea)}
.spec .n{font-family:'Fraunces';font-size:20px;font-weight:600;color:var(--cobre)}
.spec .l{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin-top:2px}

/* Botón volver arriba */
.subir{position:fixed;bottom:26px;right:26px;z-index:150;width:48px;height:48px;background:var(--bosque);color:var(--crema);border:none;font-size:18px;cursor:pointer;opacity:0;transform:translateY(14px);pointer-events:none;transition:all .35s;box-shadow:0 10px 30px rgba(12,29,21,.3)}
.subir.visible{opacity:1;transform:none;pointer-events:auto}
.subir:hover{background:var(--cobre)}

/* Social en footer */
.foot-social{display:flex;gap:12px;margin-top:20px}
.foot-social a{width:40px;height:40px;border:1px solid var(--linea-clara);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;letter-spacing:.05em;color:rgba(237,234,224,.7);transition:all .3s}
.foot-social a:hover{border-color:var(--cobre-claro);color:var(--cobre-claro);transform:translateY(-3px)}

/* Skeleton del tour al cargar */
.tour-marco.cargando::after{content:"Cargando recorrido...";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(237,234,224,.55);font-size:12px;letter-spacing:.18em;text-transform:uppercase;animation:parpadeo 1.4s ease infinite}
@keyframes parpadeo{50%{opacity:.35}}

@media(max-width:900px){.destacada{grid-template-columns:1fr}.destacada-visual{min-height:280px}.destacada-cuerpo{padding:38px 28px}}

/* ============================================================
   v3 — Portal de noticias + Artículos
   ============================================================ */

/* Cabecera del portal */
.portal-sub{font-size:17px;font-weight:300;color:rgba(244,239,230,.7);max-width:620px;margin-top:22px;line-height:1.8}
.portal-cats{display:flex;gap:10px;flex-wrap:wrap;margin-top:44px;position:relative;z-index:2}

/* Artículo destacado del portal */
.port-destacado{display:grid;grid-template-columns:1.15fr .85fr;background:var(--crema-suave);border:1px solid var(--linea);overflow:hidden;margin-top:56px;box-shadow:var(--sombra);cursor:pointer;transition:transform .35s}
.port-destacado:hover{transform:translateY(-4px)}
.port-destacado .visual{position:relative;min-height:380px;background:var(--bosque);overflow:hidden}
.port-destacado .visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.port-destacado:hover .visual img{transform:scale(1.04)}
.port-destacado .cuerpo{padding:48px 46px;display:flex;flex-direction:column;justify-content:center}
.port-destacado .cuerpo h2{font-size:clamp(24px,2.6vw,32px);font-weight:600;color:var(--bosque);line-height:1.25;margin:12px 0 14px}
.port-destacado .cuerpo p{font-size:15.5px;font-weight:300;color:#3A463E;line-height:1.75}
.port-destacado time{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cobre);font-weight:600}

/* Grid del portal (reutiliza .noticias-grid y .noti) */
.noti.oculta{display:none}
.cargar-wrap{text-align:center;margin-top:54px}
.portal-conteo{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin-top:16px}

/* ---------- PÁGINA DE ARTÍCULO ---------- */
.art-cab{position:relative;background:var(--bosque-prof);color:var(--crema);padding:170px 0 80px;overflow:hidden}
.art-cab .contenido{position:relative;z-index:2;max-width:820px}
.art-cab h1{font-size:clamp(30px,4vw,48px);font-weight:500;line-height:1.15;letter-spacing:-.01em;color:var(--crema);margin-top:20px}
.art-cab h1 em{font-style:italic;color:var(--cobre-claro)}
.art-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:26px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra)}
.art-meta .cat{color:var(--cobre-claro);font-weight:600}
.art-portada{max-width:980px;margin:-50px auto 0;position:relative;z-index:3;padding:0 32px}
.art-portada figure{position:relative;aspect-ratio:16/8;overflow:hidden;background:var(--bosque);box-shadow:var(--sombra);margin:0}
.art-portada img{width:100%;height:100%;object-fit:cover}
.art-portada figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 18px;background:linear-gradient(0deg,rgba(12,29,21,.8),transparent);color:rgba(237,234,224,.85);font-size:11px;letter-spacing:.1em;text-transform:uppercase}

.art-layout{max-width:760px;margin:0 auto;padding:70px 32px 40px}
.prosa{font-size:16.5px;font-weight:300;line-height:1.85;color:var(--tinta)}
.prosa p{margin-bottom:26px}
.prosa h2{font-family:'Fraunces';font-size:clamp(24px,2.6vw,30px);font-weight:600;color:var(--bosque);line-height:1.25;margin:52px 0 20px}
.prosa h2 em{font-style:italic;color:var(--cobre)}
.prosa h3{font-family:'Fraunces';font-size:21px;font-weight:600;color:var(--bosque);margin:38px 0 14px}
.prosa a{color:var(--cobre);text-decoration:underline;text-underline-offset:3px}
.prosa a:hover{color:var(--bosque)}
.prosa strong{font-weight:600;color:var(--bosque)}
.prosa ul,.prosa ol{margin:0 0 26px 0;padding-left:0;list-style:none}
.prosa li{padding:10px 0 10px 26px;position:relative;border-bottom:1px solid var(--linea)}
.prosa ul li::before{content:"—";position:absolute;left:0;color:var(--cobre);font-weight:600}
.prosa ol{counter-reset:n}
.prosa ol li{counter-increment:n}
.prosa ol li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;font-family:'Fraunces';font-style:italic;color:var(--cobre);font-size:14px}
.prosa blockquote{margin:40px 0;padding:30px 34px;background:var(--crema-suave);border-left:2px solid var(--cobre);font-family:'Fraunces';font-style:italic;font-size:19px;line-height:1.6;color:var(--bosque)}
.art-dato{margin:40px 0;padding:30px 34px;background:var(--bosque);color:var(--crema)}
.art-dato .k{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--cobre-claro);font-weight:600}
.art-dato p{margin:12px 0 0;font-size:15.5px;color:rgba(244,239,230,.8);line-height:1.75}

.art-cta{margin:56px 0 0;padding:42px 40px;background:var(--bosque-prof);color:var(--crema);text-align:center;position:relative;overflow:hidden}
.art-cta h2{font-family:'Fraunces';font-size:clamp(22px,2.4vw,28px);font-weight:500;color:var(--crema);position:relative;z-index:2}
.art-cta h2 em{font-style:italic;color:var(--cobre-claro)}
.art-cta p{font-size:14.5px;color:rgba(244,239,230,.65);margin:12px auto 24px;max-width:480px;position:relative;z-index:2}
.art-cta .btn{position:relative;z-index:2}

.art-pie{max-width:760px;margin:0 auto;padding:10px 32px 30px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.art-tags{display:flex;gap:8px;flex-wrap:wrap}
.art-autor{display:flex;align-items:center;gap:14px;max-width:760px;margin:0 auto;padding:26px 32px;border-top:1px solid var(--linea)}
.art-autor .avatar{width:48px;height:48px;border-radius:50%;background:var(--bosque);color:var(--crema);display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:16px;flex-shrink:0}
.art-autor .quien{font-size:14px;font-weight:600;color:var(--bosque)}
.art-autor .rol{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--piedra);margin-top:2px}

.art-rel{background:var(--crema-suave);padding:90px 0}
@media(max-width:900px){
  .port-destacado{grid-template-columns:1fr}
  .port-destacado .visual{min-height:240px}
  .port-destacado .cuerpo{padding:34px 26px}
  .art-portada{margin-top:-30px}
}


/* ============================================================
   v4 — Hero con foto · Bio · VSL · Banda de foto
   ============================================================ */
.hero-foto{position:relative;box-shadow:0 34px 90px rgba(0,0,0,.45)}
.hero-foto img{width:100%;height:100%;min-height:420px;max-height:560px;object-fit:cover;object-position:center 30%;display:block}
.hero-foto::before{content:"";position:absolute;inset:14px;border:1px solid rgba(237,234,224,.35);pointer-events:none;z-index:2}
.hero-foto .pie{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 22px;background:linear-gradient(0deg,rgba(12,29,21,.88),transparent);color:var(--crema);display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.hero-foto .pie .t{font-family:'Fraunces';font-style:italic;font-size:16px}
.hero-foto .pie .c{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--cobre-claro);font-weight:600}

/* Bio de América */
.bio-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start;margin-top:56px}
.bio-col h3{font-family:'Fraunces';font-size:22px;font-weight:600;color:var(--bosque);margin:0 0 12px}
.bio-col p{font-size:15.5px;font-weight:300;color:#3A463E;line-height:1.8;margin-bottom:20px}
.bio-col p strong{font-weight:600;color:var(--bosque)}
.bio-hitos{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--linea)}
.hito{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--linea);align-items:baseline}
.hito .n{font-family:'Fraunces';font-style:italic;font-size:20px;color:var(--cobre);flex-shrink:0;width:44px}
.hito .t{font-size:14.5px;font-weight:300;color:#3A463E;line-height:1.7}
.hito .t strong{font-weight:600;color:var(--bosque)}

/* VSL / video */
.vsl{max-width:820px;margin:64px auto 0}
.vsl a{display:block;position:relative;overflow:hidden;box-shadow:var(--sombra)}
.vsl img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .5s}
.vsl a:hover img{transform:scale(1.02)}
.vsl .play-capa{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(12,29,21,.25);transition:background .3s}
.vsl a:hover .play-capa{background:rgba(12,29,21,.15)}
.vsl .play-btn{width:84px;height:84px;border-radius:50%;background:rgba(12,29,21,.82);border:1.5px solid var(--cobre-claro);display:flex;align-items:center;justify-content:center;color:var(--cobre-claro);font-size:26px;padding-left:6px;transition:all .3s}
.vsl a:hover .play-btn{background:var(--cobre);color:var(--crema);border-color:var(--cobre)}
.vsl .vsl-pie{margin-top:14px;text-align:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--piedra)}

/* Banda de foto ancha */
.banda-foto{position:relative;overflow:hidden}
.banda-foto img{width:100%;max-height:640px;object-fit:cover;display:block}
.banda-foto .pie{position:absolute;left:0;right:0;bottom:0;padding:26px 0;background:linear-gradient(0deg,rgba(12,29,21,.85),transparent)}
.banda-foto .pie .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;color:var(--crema)}
.banda-foto .pie .t{font-family:'Fraunces';font-style:italic;font-size:clamp(17px,2vw,22px)}
.banda-foto .pie .c{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cobre-claro);font-weight:600}

/* Por qué entrar — panel */
.urgencia{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;margin-top:56px}
.urgencia .cita-grande{font-size:clamp(21px,2.4vw,28px)}
.urgencia-lista{display:flex;flex-direction:column;border-top:1px solid var(--linea-clara)}
.urgencia-lista .fila{padding:18px 0;border-bottom:1px solid var(--linea-clara);font-size:15px;font-weight:300;color:rgba(244,239,230,.75);line-height:1.7;display:flex;gap:14px}
.urgencia-lista .fila::before{content:"→";color:var(--cobre-claro);flex-shrink:0}
.urgencia-lista .fila strong{font-weight:600;color:var(--crema)}

@media(max-width:960px){
  .bio-grid,.urgencia{grid-template-columns:1fr;gap:40px}
  .hero-foto img{min-height:320px}
}


/* ============================================================
   v5 — Video embebido · Testimonios en video · Requisitos
   ============================================================ */
.video-marco{position:relative;aspect-ratio:16/9;background:var(--bosque-prof);box-shadow:var(--sombra);overflow:hidden}
.video-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-ancho{max-width:860px;margin:56px auto 0}
.testi-videos{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
.testi-video{background:var(--crema-suave);border:1px solid var(--linea);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s}
.testi-video:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.fondo-verde .testi-video,.fondo-verde-osc .testi-video{background:rgba(244,239,230,.045);border-color:var(--linea-clara)}
.testi-video .video-marco{aspect-ratio:16/9;box-shadow:none}
.testi-video .cuerpo{padding:20px 22px 24px}
.testi-video h3{font-size:18px;font-weight:600;color:var(--bosque);margin-bottom:4px}
.fondo-verde .testi-video h3,.fondo-verde-osc .testi-video h3{color:var(--crema)}
.testi-video .rol{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cobre);font-weight:600}
.resultados-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}
.resultados-grid .video-marco{box-shadow:none;border:1px solid var(--linea-clara)}
@media(max-width:960px){.testi-videos,.resultados-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.testi-videos,.resultados-grid{grid-template-columns:1fr}}

/* ============================================================
   v6 — Páginas de casa · Galería · Tours con previsualización
   ============================================================ */
.casa-cab{padding:0 0 10px}
.casa-cab .chips-fila{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.casa-cab .chips-fila .chip{background:rgba(244,239,230,.09);border:1px solid var(--linea-clara);color:rgba(237,234,224,.8);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 13px}
.casa-intro{max-width:820px;margin:0 auto}
.casa-intro p{font-size:16.5px;font-weight:300;line-height:1.85;color:var(--tinta);margin-bottom:24px}
.casa-intro p strong{font-weight:600;color:var(--bosque)}

.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:44px}
.galeria figure{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bosque);cursor:zoom-in}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.galeria figure:hover img{transform:scale(1.05)}
.galeria figure.ancha{grid-column:span 2;aspect-ratio:16/9}
@media(max-width:860px){.galeria{grid-template-columns:1fr 1fr}.galeria figure.ancha{grid-column:span 2}}
@media(max-width:560px){.galeria{grid-template-columns:1fr}.galeria figure.ancha{grid-column:span 1;aspect-ratio:4/3}}

.tours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:44px}
.tour-card{background:rgba(244,239,230,.045);border:1px solid var(--linea-clara);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s}
.tour-card:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.tour-card .cuerpo{padding:18px 20px 22px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.tour-card h3{font-size:16px;font-weight:600;color:var(--crema)}
.tour-card .abrir{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--cobre-claro);white-space:nowrap}

/* Previsualización de tour (miniatura Matterport antes de cargar el iframe) */
.tour-prev{position:relative;aspect-ratio:16/9;background:var(--bosque-prof);overflow:hidden;cursor:pointer;display:block;width:100%;border:0;padding:0}
.tour-prev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease,filter .4s}
.tour-prev:hover img{transform:scale(1.04);filter:brightness(.82)}
.tour-prev .capa{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,29,21,.72),rgba(12,29,21,.18));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.tour-prev .play{width:74px;height:74px;border:1.5px solid var(--cobre-claro);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--cobre-claro);font-size:20px;background:rgba(12,29,21,.35);transition:all .3s}
.tour-prev:hover .play{background:var(--cobre);border-color:var(--cobre);color:var(--crema)}
.tour-prev .etq{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(237,234,224,.9)}

/* Lightbox de galería */
.lbox{position:fixed;inset:0;background:rgba(12,29,21,.94);z-index:300;display:none;align-items:center;justify-content:center;padding:30px}
.lbox.abierto{display:flex}
.lbox img{max-width:94vw;max-height:88vh;object-fit:contain;box-shadow:var(--sombra)}
.lbox .cerrar-lb{position:absolute;top:22px;right:26px;background:none;border:0;color:var(--crema);font-size:26px;cursor:pointer;line-height:1}
.lbox .nav-lb{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px solid var(--linea-clara);color:var(--crema);width:46px;height:46px;border-radius:50%;cursor:pointer;font-size:18px}
.lbox .nav-lb.prev{left:20px}.lbox .nav-lb.sig{right:20px}

/* ============================================================
   v7 — Acordeón de temario (landflipping)
   ============================================================ */
.temario{max-width:900px;margin:52px auto 0;border-top:1px solid var(--linea)}
.fondo-verde .temario,.fondo-verde-osc .temario{border-color:var(--linea-clara)}
.tema{border-bottom:1px solid var(--linea)}
.fondo-verde .tema,.fondo-verde-osc .tema{border-color:var(--linea-clara)}
.tema-cab{width:100%;background:none;border:0;padding:26px 46px 26px 0;text-align:left;cursor:pointer;position:relative;display:flex;align-items:baseline;gap:18px}
.tema-num{font-size:11px;letter-spacing:.16em;color:var(--cobre);font-weight:600;flex:0 0 auto}
.tema-cab h3{font-family:'Fraunces';font-size:clamp(18px,2.1vw,22px);font-weight:500;color:var(--bosque);line-height:1.3}
.fondo-verde .tema-cab h3,.fondo-verde-osc .tema-cab h3{color:var(--crema)}
.tema-cab::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:22px;color:var(--cobre-claro);transition:transform .3s}
.tema.abierto .tema-cab::after{content:"−"}
.tema-cuerpo{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.4,0,.2,1)}
.tema-cuerpo .interior{padding:0 46px 30px 0;font-size:15.5px;font-weight:300;line-height:1.8;color:var(--piedra)}
.fondo-verde .tema-cuerpo .interior,.fondo-verde-osc .tema-cuerpo .interior{color:rgba(237,234,224,.72)}
.tema-cuerpo .interior p+p{margin-top:16px}
.tema-cuerpo .interior ul{list-style:none;margin-top:14px}
.tema-cuerpo .interior li{position:relative;padding-left:22px;margin-bottom:10px}
.tema-cuerpo .interior li::before{content:"—";position:absolute;left:0;color:var(--cobre)}
.lista-check{list-style:none;max-width:760px;margin:38px auto 0;text-align:left}
.lista-check li{position:relative;padding-left:34px;margin-bottom:18px;font-size:16px;font-weight:300;line-height:1.75;color:var(--tinta)}
.fondo-verde .lista-check li,.fondo-verde-osc .lista-check li{color:rgba(237,234,224,.8)}
.lista-check li::before{content:"";position:absolute;left:0;top:11px;width:14px;height:1.5px;background:var(--cobre)}

/* ============================================================
   v8 — Reproductor con portada · Tours destacados · Animaciones
   ============================================================ */

/* ---------- Reproductor con portada (façade) ---------- */
.video-marco{aspect-ratio:var(--ar,16/9)}
.vid{position:relative;aspect-ratio:var(--ar,16/9);background:var(--bosque-prof);overflow:hidden;cursor:pointer;isolation:isolate}
.vid img.vid-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter .5s ease}
.vid:hover img.vid-poster,.vid:focus-visible img.vid-poster{transform:scale(1.045);filter:brightness(.72)}
.vid .vid-capa{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  background:linear-gradient(180deg,rgba(12,29,21,.28),rgba(12,29,21,.62));transition:background .45s ease}
.vid:hover .vid-capa{background:linear-gradient(180deg,rgba(12,29,21,.22),rgba(12,29,21,.5))}
.vid .vid-play{position:relative;width:78px;height:78px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--cobre-claro);background:rgba(12,29,21,.34);backdrop-filter:blur(3px);transition:transform .4s cubic-bezier(.22,1,.36,1),background .35s,border-color .35s}
.vid .vid-play svg{width:22px;height:24px;fill:var(--cobre-claro);margin-left:4px;transition:fill .35s}
.vid:hover .vid-play{transform:scale(1.09);background:var(--cobre);border-color:var(--cobre)}
.vid:hover .vid-play svg{fill:var(--crema)}
.vid .vid-play::after{content:"";position:absolute;inset:-1.5px;border-radius:50%;border:1.5px solid var(--cobre-claro);opacity:.55;animation:latido 2.6s ease-out infinite}
.vid .vid-etq{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(237,234,224,.92);font-weight:600;text-shadow:0 2px 12px rgba(12,29,21,.6)}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid.cargando::after{content:"Cargando video…";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:rgba(237,234,224,.6);font-size:11px;letter-spacing:.18em;text-transform:uppercase;pointer-events:none;animation:parpadeo 1.4s ease infinite}
.vid.cargando iframe{position:relative;z-index:2}
.vid-vertical{max-width:390px;margin-inline:auto}
@keyframes latido{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.42);opacity:0}100%{opacity:0}}
@media(max-width:640px){
  .vid .vid-play{width:62px;height:62px}
  .vid .vid-play svg{width:18px;height:20px}
  .vid .vid-etq{font-size:10px;letter-spacing:.16em}
  .video-ancho{margin-top:34px}
}

/* ---------- Tours 3D más visibles ---------- */
.tour-card.destacado{grid-column:1/-1}
.tour-card.destacado .tour-prev{aspect-ratio:21/9}
@media(max-width:760px){.tour-card.destacado .tour-prev{aspect-ratio:16/10}}
.tour-prev .play{width:86px;height:86px;position:relative}
.tour-prev .play::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:1.5px solid var(--cobre-claro);opacity:.5;animation:latido 2.6s ease-out infinite}
.tour-prev .etq{font-weight:600}
.tour-prev .badge3d{position:absolute;top:16px;left:16px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  background:rgba(12,29,21,.72);border:1px solid var(--cobre);color:var(--cobre-claro);
  font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:7px 12px;backdrop-filter:blur(4px)}
.tour-prev .badge3d::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cobre-claro);animation:respira 2.2s ease-in-out infinite}
@keyframes respira{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
.tour-hint{margin-top:14px;text-align:center;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(237,234,224,.5)}
.tour-marco{aspect-ratio:16/9}
.modal .tour-prev .play{width:76px;height:76px}

/* Distintivo 3D en las tarjetas de casa */
.casa-3d{position:absolute;top:13px;left:13px;z-index:2;display:inline-flex;align-items:center;gap:6px;
  background:rgba(12,29,21,.74);border:1px solid rgba(201,164,104,.55);color:var(--cobre-claro);
  font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:6px 10px;
  transform:translateY(-6px);opacity:0;transition:all .45s cubic-bezier(.22,1,.36,1)}
.casa.visible .casa-3d,.casa:hover .casa-3d{transform:none;opacity:1}
.casa-3d::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cobre-claro)}

/* ---------- Animaciones ---------- */
.aparece{transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s)}
.galeria figure{opacity:0;clip-path:inset(0 0 100% 0);transition:opacity .9s ease,clip-path 1s cubic-bezier(.22,1,.36,1),transform .6s ease;transition-delay:var(--d,0s)}
.galeria figure.visible{opacity:1;clip-path:inset(0 0 0 0)}
.survey{will-change:transform}
.barra-lectura{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--cobre),var(--cobre-claro));z-index:400;transition:width .12s linear}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-18deg);transition:left .7s ease}
.btn:hover::after{left:140%}
.carta,.noti,.casa,.testi-video,.tour-card{will-change:transform}
.carta:hover{border-color:rgba(169,131,76,.45)}
@media(prefers-reduced-motion:reduce){
  .vid .vid-play::after,.tour-prev .play::after,.casa-3d::before,.tour-prev .badge3d::before{animation:none}
  .galeria figure{opacity:1;clip-path:none;transition:none}
  .btn::after{display:none}
}
.vid-caja{box-shadow:var(--sombra)}
.testi-video .vid-caja,.resultados-grid .vid-caja{box-shadow:none;border:1px solid var(--linea-clara)}
.vid.vid-vertical.vid-caja{box-shadow:0 30px 70px rgba(12,29,21,.28)}
/* Ajustes finos del reproductor dentro de rejillas */
.testi-videos{align-items:start}
.testi-video .vid-vertical{max-width:260px}
.testi-video .vid-vertical .vid-play{width:58px;height:58px}
.testi-video .vid-vertical .vid-play svg{width:16px;height:18px}
.vid:focus-visible{outline:2px solid var(--cobre-claro);outline-offset:3px}
.tour-prev:focus-visible{outline:2px solid var(--cobre-claro);outline-offset:3px}

/* ============================================================
   v9 — Video en móvil · Portada de respaldo · Ajustes finos
   ============================================================ */
.vid{width:100%;max-width:100%}
.vid-poster{background:var(--bosque)}

/* Respaldo de marca si la portada remota no carga */
.vid.sin-portada{background:
  radial-gradient(120% 120% at 30% 0%,rgba(169,131,76,.22),transparent 60%),
  linear-gradient(160deg,var(--bosque-prof),var(--bosque-osc))}
.vid.sin-portada .vid-capa{background:none}
.vid.sin-portada::before{content:"";position:absolute;inset:0;opacity:.16;
  background:url("../assets/TerritorioAmerica-Blanco-vertical.png") center/min(220px,52%) no-repeat}
.tour-prev.sin-portada{background:linear-gradient(160deg,var(--bosque-prof),var(--bosque-osc))}

/* --- Móvil --- */
@media(max-width:760px){
  .vid-vertical{max-width:min(330px,80vw)}
  .testi-video .vid-vertical{max-width:100%}
  .video-ancho{margin-top:26px}
  .vid .vid-etq{display:none}
  .vid.vid-caja .vid-etq{display:block}
  .tour-prev .badge3d{top:10px;left:10px;font-size:9.5px;padding:5px 9px;letter-spacing:.14em}
  .tour-prev .play{width:66px;height:66px;font-size:18px}
  .tour-prev .etq{font-size:10px;letter-spacing:.14em;padding:0 20px;text-align:center}
  .tour-card.destacado .tour-prev{aspect-ratio:16/10}
  .casa-3d{font-size:9px;padding:5px 8px;top:10px;left:10px}
}
@media(max-width:520px){
  .vid-vertical{max-width:min(300px,86vw)}
  .video-marco,.vid{box-shadow:0 14px 40px rgba(12,29,21,.22)}
}
/* Pantallas muy altas: el vertical nunca supera la ventana */
@media(max-height:820px) and (min-width:761px){
  .vid-vertical{max-width:min(360px,calc((100vh - 220px) * 0.5625))}
}

/* ============================================================
   v10 — Proyectos locales de alumnos: galería dentro del modal
   ============================================================ */
.casa-fotos{position:absolute;top:13px;left:13px;z-index:2;display:inline-flex;align-items:center;gap:6px;
  background:rgba(12,29,21,.74);border:1px solid rgba(201,164,104,.55);color:var(--cobre-claro);
  font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:6px 10px;
  font-family:var(--sans);transform:translateY(-6px);opacity:0;
  transition:all .45s cubic-bezier(.22,1,.36,1)}
.casa.visible .casa-fotos,.casa:hover .casa-fotos{transform:none;opacity:1}
.casa-fotos::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cobre-claro)}
.gal-visor{background:var(--bosque-prof);overflow:hidden}
.gal-visor img#gal-grande{width:100%;height:100%;object-fit:contain;background:var(--bosque-prof);
  animation:galEntra .45s cubic-bezier(.2,.7,.3,1)}
@keyframes galEntra{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
.gal-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(237,234,224,.28);
  background:rgba(12,29,21,.62);color:var(--crema);font-size:1.7rem;line-height:1;
  cursor:pointer;transition:background .25s,transform .25s,border-color .25s;
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)
}
.gal-nav:hover{background:var(--cobre);border-color:var(--cobre);transform:translateY(-50%) scale(1.08)}
.gal-nav.prev{left:12px} .gal-nav.sig{right:12px}
.gal-cont{
  position:absolute;right:14px;bottom:12px;z-index:3;
  background:rgba(12,29,21,.72);color:var(--crema);border-radius:999px;
  padding:4px 12px;font-size:.75rem;font-family:var(--sans);letter-spacing:.04em
}
.gal-cont b{color:var(--cobre-claro);font-weight:600}
.gal-tira{
  display:flex;gap:8px;overflow-x:auto;padding:12px 2px 4px;
  scrollbar-width:thin;scroll-snap-type:x proximity
}
.gal-tira::-webkit-scrollbar{height:6px}
.gal-tira::-webkit-scrollbar-thumb{background:rgba(169,131,76,.45);border-radius:999px}
.gal-min{
  flex:0 0 84px;height:60px;padding:0;border-radius:8px;overflow:hidden;cursor:pointer;
  border:1px solid rgba(237,234,224,.14);background:none;opacity:.62;
  transition:opacity .25s,border-color .25s,transform .25s;scroll-snap-align:center
}
.gal-min img{width:100%;height:100%;object-fit:cover;display:block}
.gal-min:hover{opacity:.9;transform:translateY(-2px)}
.gal-min.activo{opacity:1;border-color:var(--cobre);box-shadow:0 0 0 1px var(--cobre)}
@media(max-width:760px){
  .gal-nav{width:40px;height:40px;font-size:1.4rem}
  .gal-min{flex:0 0 68px;height:50px}
  .casa-fotos{font-size:9px;padding:5px 9px}
}
@media(prefers-reduced-motion:reduce){
  .gal-visor img#gal-grande{animation:none}
  .gal-min,.gal-nav{transition:none}
}

/* ============================================================
   v11 — Tarjetas: etiquetas sin solaparse y llamada al tour
   ============================================================ */
/* el rótulo del lago baja a la esquina inferior; arriba mandan
   las insignias de tour/fotos, que antes se pisaban entre sí */
.casa-lago{font-size:9.5px;letter-spacing:.14em;padding:6px 11px}
.casa-3d,.casa-fotos{font-size:9.5px;letter-spacing:.14em;padding:5px 9px}
/* si una tarjeta llevara las dos insignias, la segunda se va a la derecha */
.casa-visual .casa-3d ~ .casa-fotos{left:auto;right:13px}

/* velo inferior para que el rótulo se lea sobre fotos claras */
.casa-visual::before{
  content:"";position:absolute;inset:auto 0 0 0;height:42%;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,rgba(12,29,21,.62),rgba(12,29,21,0));
  opacity:.9;transition:opacity .4s
}
.casa:hover .casa-visual::before{opacity:1}

/* al pasar por encima, la tarjeta dice qué va a abrir */
.casa-visual::after{
  content:"Ver el proyecto";position:absolute;left:50%;top:50%;z-index:3;
  transform:translate(-50%,-46%);opacity:0;pointer-events:none;
  background:rgba(12,29,21,.82);border:1px solid rgba(201,164,104,.55);
  color:var(--cobre-claro);font-family:var(--sans);
  font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  padding:9px 16px;backdrop-filter:blur(6px);white-space:nowrap;
  transition:opacity .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1)
}
.casa:not([data-tour=""]) .casa-visual::after{content:"Recorrer en 3D"}
.casa[data-tour=""]:not([data-galeria=""]) .casa-visual::after{content:"Ver las fotos"}
.casa[data-tour=""][data-galeria=""]:not([data-maqueta=""]) .casa-visual::after{content:"Ver la maqueta"}
.casa:hover .casa-visual::after,.casa:focus-visible .casa-visual::after{opacity:1;transform:translate(-50%,-50%)}

@media(max-width:760px){
  .casa-lago{bottom:10px;left:10px;font-size:9px;padding:5px 9px}
  .casa-3d,.casa-fotos{top:10px;left:10px;font-size:9px;padding:4px 8px}
  .casa-visual .casa-3d ~ .casa-fotos{right:10px}
  /* en táctil no hay hover: la llamada se muestra siempre, discreta */
  .casa-visual::after{opacity:.92;transform:translate(-50%,-50%);font-size:9px;padding:7px 13px}
}
@media(prefers-reduced-motion:reduce){
  .casa-visual::after,.casa-visual::before{transition:none}
}

/* ============================================================
   v12 — Portadas con aspecto de reproductor + visor a pantalla
         completa en móvil + cabecera que no se pisa
   ============================================================ */

/* --- La portada ahora se lee como un video, no como una foto --- */
.vid .vid-capa{
  background:linear-gradient(180deg,rgba(12,29,21,.10) 0%,rgba(12,29,21,.16) 42%,rgba(12,29,21,.70) 100%)
}
.vid:hover .vid-capa{
  background:linear-gradient(180deg,rgba(12,29,21,.06) 0%,rgba(12,29,21,.12) 42%,rgba(12,29,21,.62) 100%)
}
/* línea de reproducción decorativa al pie, como la barra de un player */
.vid .vid-capa::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--cobre) 0 18%,rgba(237,234,224,.28) 18% 100%);
  transform:scaleX(1);transform-origin:left;opacity:.75;transition:opacity .4s,height .3s
}
.vid:hover .vid-capa::after{opacity:1;height:4px}
/* duración, abajo a la derecha */
.vid-dur{
  position:absolute;right:11px;bottom:13px;z-index:2;
  background:rgba(12,29,21,.86);color:var(--crema);
  font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.06em;
  padding:3px 8px;border-radius:3px;line-height:1.35;
  font-variant-numeric:tabular-nums;pointer-events:none;
  box-shadow:0 2px 10px rgba(12,29,21,.35)
}
.vid .vid-play{width:72px;height:72px;box-shadow:0 12px 34px rgba(12,29,21,.45)}
.vid .vid-play::after{opacity:.42}
.vid .vid-etq{
  font-size:10.5px;letter-spacing:.22em;
  background:rgba(12,29,21,.42);padding:5px 12px;backdrop-filter:blur(4px)
}

/* --- Visor a pantalla completa (móvil): el video ya no se recorta --- */
.visor{
  position:fixed;inset:0;z-index:900;display:none;
  align-items:center;justify-content:center;padding:14px;overflow:hidden;
  background:rgba(6,15,11,.96);backdrop-filter:blur(10px);
  height:100vh;height:100dvh          /* 100vh en móvil incluye la barra del navegador */
}
.visor.abierto{display:flex;animation:visorEntra .3s ease}
@keyframes visorEntra{from{opacity:0}to{opacity:1}}
.visor-caja{
  position:relative;margin:auto;background:#000;overflow:hidden;
  width:100%;aspect-ratio:var(--ar,16/9);
  /* red de seguridad: aunque el JS fallara, jamás puede salirse de pantalla */
  max-width:calc(100vw - 24px);
  max-height:calc(100vh - 88px);
  max-height:calc(100dvh - 88px)
}
.visor-caja iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.visor-cerrar{
  position:absolute;top:14px;right:14px;z-index:2;
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(237,234,224,.3);
  background:rgba(12,29,21,.72);color:var(--crema);font-size:20px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center
}
.visor-cerrar:hover{background:var(--cobre);border-color:var(--cobre)}
.visor-pie{
  position:absolute;left:0;right:0;bottom:18px;text-align:center;
  font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(237,234,224,.45)
}

@media(max-width:760px){
  .vid-dur{font-size:10.5px;right:9px;bottom:11px;padding:3px 7px}
  .vid .vid-play{width:64px;height:64px;box-shadow:0 8px 22px rgba(12,29,21,.4)}
  .vid .vid-capa::after{height:3px}
}

/* --- Cabecera móvil: el logo y el botón dejan de pelearse --- */
.nav-logo{flex:0 1 auto;min-width:0}
.nav-der{flex:0 0 auto}
.cta-largo{display:inline}
@media(max-width:820px){
  .nav{gap:10px}
  .nav-logo img{height:24px;max-width:42vw}
  .nav-cta{padding:8px 13px!important;font-size:10.5px!important;white-space:nowrap}
}
@media(max-width:560px){
  .nav{padding:12px 14px;gap:8px}
  .nav.compacta{padding:9px 14px}
  .nav-logo img{height:21px;max-width:38vw}
  .cta-largo{display:none}          /* "Entrar al Territorio" -> "Entrar" */
  .nav-cta{padding:7px 12px!important;font-size:10px!important;letter-spacing:.1em!important}
  .nav-der{gap:8px}
  .hamburguesa{padding:4px}
  .hamburguesa span{width:21px}
}
@media(max-width:360px){
  .nav-logo img{height:19px;max-width:34vw}
  .nav-cta{padding:6px 10px!important;font-size:9.5px!important}
}

/* ============================================================
   v13 — Acceso de alumnos dentro de la propia web
   ============================================================ */
.hero-acceso{padding-bottom:46px}
.acceso-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.95fr);gap:34px;align-items:start}
.acceso-panel{background:var(--crema-suave);border:1px solid var(--linea);box-shadow:var(--sombra)}
.acceso-cab{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:18px 24px;border-bottom:1px solid var(--linea)
}
.acceso-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--bosque)}
.acceso-seguro{
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cobre);
  display:inline-flex;align-items:center;gap:7px
}
.acceso-seguro::before{
  content:"";width:11px;height:13px;flex:0 0 auto;background:var(--cobre);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-4Zm0 10.5h6c-.5 3.6-2.8 6.9-6 8V11.5Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-4Zm0 10.5h6c-.5 3.6-2.8 6.9-6 8V11.5Z'/%3E%3C/svg%3E") center/contain no-repeat
}
.acceso-marco{position:relative;min-height:520px;background:var(--crema-suave);overflow:hidden}
.acceso-puerta{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:16px;padding:34px 30px
}
.acceso-puerta .circ{
  width:64px;height:64px;border:1px solid var(--linea);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-size:22px;color:var(--cobre)
}
.acceso-puerta h2{font-size:24px;font-weight:600;color:var(--bosque)}
.acceso-puerta p{max-width:360px;font-size:14px;line-height:1.7;color:var(--piedra)}
.acceso-puerta .btn{margin-top:6px}
.acceso-iframe{
  position:relative;z-index:1;display:block;width:100%;height:520px;border:0;
  opacity:0;pointer-events:none;transition:opacity .5s ease
}
.acceso-marco.listo .acceso-iframe{opacity:1;pointer-events:auto}
.acceso-marco.listo .acceso-puerta{opacity:0;pointer-events:none}
.acceso-nota{padding:16px 24px 20px;font-size:12.5px;color:var(--piedra);border-top:1px solid var(--linea)}
.acceso-nota a{color:var(--cobre);text-decoration:underline;text-underline-offset:3px}
.acceso-lado h2{font-size:22px;font-weight:600;color:var(--bosque);margin-bottom:18px}
.acceso-lado .lista-check{margin-bottom:30px}
.acceso-ayuda{border:1px solid var(--linea);padding:24px;background:rgba(74,87,78,.04)}
.acceso-ayuda h3{font-size:15px;font-weight:600;color:var(--bosque);margin-bottom:8px}
.acceso-ayuda p{font-size:13.5px;color:var(--piedra);line-height:1.65;margin-bottom:18px}

@media(max-width:900px){
  .acceso-grid{grid-template-columns:1fr;gap:28px}
}
@media(max-width:560px){
  .acceso-cab{padding:14px 16px}
  .acceso-nota{padding:14px 16px 18px}
  .acceso-marco{min-height:440px}
  .acceso-iframe{height:440px}
  .acceso-puerta{padding:28px 22px;gap:13px}
  .acceso-puerta h2{font-size:21px}
}

/* ============================================================
   v14 — Video servido por la propia web (sin Drive de por medio)
   ============================================================ */
.vid-nativo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;background:#000;display:block;border:0
}
.visor-caja .vid-nativo{position:absolute}
.media-marco .vid-nativo{position:absolute}
/* el navegador ya pone sus controles: quitamos la capa de la portada */
.vid.reproduciendo .vid-capa,.vid.reproduciendo .vid-dur{display:none}

/* ============================================================
   v15 — Escena de bosque, lago y atardecer
   Sustituye el plano topográfico de rayas por una escena real
   del territorio. Cinco capas con parallax independiente:
   foto del lago, bruma, resplandor del sol, arboleda en primer
   plano y velo que garantiza la legibilidad del texto.
   ============================================================ */
:root{
  --lago:#2F5D6B;              /* azul del lago */
  --lago-claro:#6E9FAC;
  --rosa:#C77E9C;              /* magenta del atardecer */
  --rosa-claro:#E4A8B8;
  --ambar:#E8A56C;             /* sol bajo */
}

.escena{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:var(--bosque-prof)}
.escena i{
  position:absolute;display:block;left:-6%;right:-6%;top:-7%;bottom:-7%;
  background-repeat:no-repeat;background-position:center 44%;background-size:cover;
  transform:translate3d(0,0,0);backface-visibility:hidden
}
.escena .e-foto{
  background-image:url("../assets/img/fondo-lago.jpg");
  filter:saturate(1.06) contrast(1.03);opacity:.95
}
@media(max-width:900px){.escena .e-foto{background-image:url("../assets/img/fondo-lago-movil.jpg")}}
/* móvil en vertical: el mismo plano encuadrado de pie, sin recortes brutales */
@media(max-width:900px) and (orientation:portrait){
  .escena .e-foto{background-image:url("../assets/img/fondo-lago-alto.jpg")}
}

/* resplandor del sol: respira despacio */
.escena .e-sol{
  background:
    radial-gradient(34% 30% at 63% 33%, rgba(255,214,158,.50), rgba(233,150,120,.20) 44%, transparent 72%),
    radial-gradient(70% 44% at 63% 40%, rgba(199,126,156,.16), transparent 70%);
  mix-blend-mode:screen;animation:respiraSol 11s ease-in-out infinite
}
@keyframes respiraSol{0%,100%{opacity:.78;transform:scale(1)}50%{opacity:1;transform:scale(1.045)}}

/* bruma sobre el agua + brillo del lago */
.escena .e-bruma{
  background:
    radial-gradient(58% 20% at 22% 64%, rgba(237,234,224,.20), transparent 72%),
    radial-gradient(48% 16% at 76% 71%, rgba(237,234,224,.14), transparent 74%);
  animation:derivaBruma 54s ease-in-out infinite
}
@keyframes derivaBruma{0%,100%{transform:translate3d(-2.5%,0,0)}50%{transform:translate3d(2.5%,-1%,0)}}
.escena .e-bruma::after{
  content:"";position:absolute;left:0;right:0;top:56%;height:22%;
  background:repeating-linear-gradient(180deg,rgba(237,234,224,.13) 0 1px,transparent 1px 7px);
  -webkit-mask-image:radial-gradient(60% 100% at 58% 50%,#000,transparent 78%);
          mask-image:radial-gradient(60% 100% at 58% 50%,#000,transparent 78%);
  animation:brilloAgua 7s ease-in-out infinite
}
@keyframes brilloAgua{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:.7;transform:translateY(2px)}}

/* arboleda: dos planos, el de delante más oscuro y más alto */
.escena .e-arbolado{
  top:auto;height:min(30%,220px);bottom:8%;left:-8%;right:-8%;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 240' preserveAspectRatio='none'><path d='M-30 240L-30 191Q13 112 56 191L39 180Q79 83 119 180L99 214Q131 171 162 214L149 192Q179 114 208 192L209 206L257 126L304 206L301 175Q326 70 351 175L346 186L372 61L399 186L398 197L427 98L457 197L457 203L505 118L553 203L549 191L595 77L641 191L625 218L667 168L708 218L709 198Q751 129 793 198L775 200L822 108L869 200L853 211L895 142L937 211L929 200L965 108L1001 200L995 188L1024 65L1054 188L1054 200L1082 105L1110 200L1107 208L1141 133L1174 208L1168 194L1198 87L1227 194L1228 188L1250 66L1271 188L1268 197Q1309 126 1349 197L1341 206L1367 127L1394 206L1381 210Q1408 161 1435 210L1428 179Q1474 78 1520 179L1480 240Z' fill='%230B1F19'/></svg>") bottom center/100% 100% no-repeat;opacity:.9
}
.escena .e-arboles{
  top:auto;height:min(38%,270px);bottom:-2px;left:-9%;right:-9%;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 240' preserveAspectRatio='none'><path d='M-30 240L-30 188L-8 67L15 188L14 177L47 31L80 177L69 150Q100 3 130 150L125 163L152 -17L179 163L166 150Q187 4 208 150L204 206L239 127L274 206L273 142Q295 -18 317 142L314 202L346 114L379 202L378 171L418 10L458 171L443 175L474 23L505 175L504 162L528 -19L552 162L548 187L580 62L613 187L602 208L622 134L642 208L640 186L674 59L708 186L707 173L732 17L756 173L743 198Q780 130 817 198L813 203L845 117L877 203L876 155Q911 17 945 155L934 162L973 -19L1013 162L1001 169L1034 2L1066 169L1057 156L1080 -41L1103 156L1100 194L1138 86L1175 194L1175 174Q1212 67 1250 174L1245 197L1266 98L1287 197L1277 172L1296 15L1314 172L1310 201L1335 109L1359 201L1356 203L1396 116L1436 203L1430 162Q1459 36 1487 162L1480 240Z' fill='%23061310'/></svg>") bottom center/100% 100% no-repeat
}

/* el contenido siempre por encima de la escena */
.hero .contenido,.hero-int .contenido,.art-cab .contenido,.news-inner{position:relative;z-index:2}

/* firma discreta, sustituye a los rótulos de las rayas */
.escena .e-velo::after{
  content:"CAROLINA DEL SUR · CAROLINA DEL NORTE · GEORGIA · TEXAS";
  position:absolute;right:26px;bottom:18px;
  font-family:'Archivo',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:.24em;
  color:rgba(228,168,184,.40);white-space:nowrap
}
.news-banda .escena .e-velo::after{display:none}

@media(max-width:900px){
  /* en el móvil manda la legibilidad: el paisaje se ve arriba del todo y
     el texto cae siempre sobre fondo oscuro */
  .escena i{background-position:center 50%}
  .escena .e-arbolado{display:none}
  .escena .e-velo::after{font-size:8.5px;letter-spacing:.16em;right:16px;bottom:12px}
}
@media(max-width:620px){.escena .e-velo::after{display:none}}

@media(prefers-reduced-motion:reduce){
  .escena .e-sol,.escena .e-bruma,.escena .e-bruma::after{animation:none}
}

/* acentos nuevos de la paleta (lago y atardecer) sin tocar la marca */
.eyebrow::before{background:linear-gradient(90deg,var(--cobre),var(--rosa))}
.claro .eyebrow::before,.eyebrow.claro::before{background:linear-gradient(90deg,var(--cobre-claro),var(--rosa-claro))}
.barra-lectura{background:linear-gradient(90deg,var(--cobre),var(--rosa),var(--lago-claro))}
a:focus-visible,button:focus-visible{outline-color:var(--rosa-claro)}
.titulo em::after{content:none}

/* ============================================================
   v16 — Carrusel del territorio (sustituye al VSL de inicio)
   Fundido encadenado + zoom lento tipo documental, barra de
   avance, miniaturas y arrastre en táctil.
   ============================================================ */
.carrusel{max-width:920px;margin:66px auto 0}
.car-marco{
  position:relative;overflow:hidden;background:var(--bosque-prof);
  box-shadow:0 34px 90px rgba(12,29,21,.34);isolation:isolate
}
.car-marco::before{content:"";position:absolute;inset:12px;z-index:4;border:1px solid rgba(237,234,224,.22);pointer-events:none}
.car-pista{position:relative;aspect-ratio:16/9}
.car-lam{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity 1.05s cubic-bezier(.4,0,.2,1)}
.car-lam.activa{opacity:1;visibility:visible;z-index:2}
.car-lam img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.03)}
.car-lam.activa img{animation:carZoom 8.5s linear forwards}
@keyframes carZoom{from{transform:scale(1.02)}to{transform:scale(1.11)}}
.car-lam figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding:52px 30px 24px;display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;
  background:linear-gradient(0deg,rgba(12,29,21,.92),rgba(12,29,21,.42) 52%,transparent);
  color:var(--crema)
}
.car-lam figcaption .t{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(16px,2.1vw,21px)}
.car-lam figcaption .c{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--rosa-claro);font-weight:600}
.car-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:48px;height:48px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(237,234,224,.3);background:rgba(12,29,21,.55);color:var(--crema);
  font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);transition:background .28s,border-color .28s,transform .28s,opacity .28s;opacity:.62
}
.car-marco:hover .car-nav{opacity:1}
.car-nav:hover{background:var(--cobre);border-color:var(--cobre);transform:translateY(-50%) scale(1.07)}
.car-nav.prev{left:16px}.car-nav.sig{right:16px}
.car-barra{position:absolute;left:0;right:0;bottom:0;z-index:5;height:3px;background:rgba(237,234,224,.18)}
.car-barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cobre),var(--rosa-claro))}
.car-barra i.corre{animation:carAvance var(--dur,8.5s) linear forwards}
@keyframes carAvance{from{width:0}to{width:100%}}
.car-tira{display:flex;gap:9px;overflow-x:auto;padding:12px 2px 2px;scrollbar-width:thin;scroll-snap-type:x proximity}
.car-tira::-webkit-scrollbar{height:5px}
.car-tira::-webkit-scrollbar-thumb{background:rgba(169,131,76,.45);border-radius:99px}
.car-min{
  flex:0 0 96px;height:62px;padding:0;border:1px solid var(--linea);background:none;cursor:pointer;
  overflow:hidden;opacity:.55;transition:opacity .25s,border-color .25s,transform .25s;scroll-snap-align:center
}
.car-min img{width:100%;height:100%;object-fit:cover;display:block}
.car-min:hover{opacity:.85;transform:translateY(-2px)}
.car-min.activa{opacity:1;border-color:var(--cobre);box-shadow:0 0 0 1px var(--cobre)}
.car-pie{margin-top:14px;text-align:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--piedra)}
@media(max-width:760px){
  .carrusel{margin-top:44px}
  .car-pista{aspect-ratio:4/3}
  .car-nav{width:40px;height:40px;font-size:20px;opacity:1}
  .car-nav.prev{left:10px}.car-nav.sig{right:10px}
  .car-lam figcaption{padding:44px 18px 18px}
  .car-min{flex:0 0 76px;height:50px}
  .car-marco::before{inset:8px}
}
@media(prefers-reduced-motion:reduce){
  .car-lam.activa img{animation:none;transform:none}
  .car-barra i.corre{animation:none;width:100%}
  .car-lam{transition:none}
}

/* ============================================================
   v17 — El tour 3D se queda dentro de la página, también en móvil
   ============================================================ */
.tour-marco{position:relative;overflow:hidden}
.tour-marco:fullscreen,.tour-marco:-webkit-full-screen{width:100vw;height:100vh;aspect-ratio:auto;background:#000}
.tour-full{
  position:absolute;right:12px;bottom:12px;z-index:4;
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  background:rgba(12,29,21,.74);border:1px solid rgba(201,164,104,.55);color:var(--cobre-claro);
  font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:8px 13px;backdrop-filter:blur(6px);transition:background .25s,color .25s,border-color .25s
}
.tour-full:hover{background:var(--cobre);border-color:var(--cobre);color:var(--crema)}
.tour-full span{
  width:11px;height:11px;flex:0 0 auto;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9V4h5v2H6v3H4Zm11-5h5v5h-2V6h-3V4ZM4 15h2v3h3v2H4v-5Zm14 0h2v5h-5v-2h3v-3Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9V4h5v2H6v3H4Zm11-5h5v5h-2V6h-3V4ZM4 15h2v3h3v2H4v-5Zm14 0h2v5h-5v-2h3v-3Z'/%3E%3C/svg%3E") center/contain no-repeat
}
.tour-marco:fullscreen .tour-full,.tour-marco:-webkit-full-screen .tour-full{right:18px;bottom:18px}

/* en el móvil el recorrido necesita alto real para poder caminarse */
@media(max-width:760px){
  .modal-panel .tour-marco{aspect-ratio:auto;height:min(66vh,540px)}
  .tour-card .tour-marco{aspect-ratio:auto;height:min(58vh,460px)}
  .tour-full{right:9px;bottom:9px;font-size:9px;padding:7px 11px;letter-spacing:.12em}
  /* el modal ocupa casi toda la pantalla: el tour manda */
  .modal-fondo{padding:2vh 10px 30px}
  .modal-panel{padding:22px 18px 30px;min-height:0}
  .modal-cab{padding:30px 20px 0}
  .modal-tabs{padding:18px 20px 0}
  .modal-pie{padding:0 20px 28px}
}

/* ============================================================
   v18 — Portada de la ficha: América en la casa + la maqueta
   ============================================================ */
.casa-portada{display:grid;grid-template-columns:1.42fr .88fr;gap:20px;align-items:stretch}
.casa-portada.solo{grid-template-columns:1fr;max-width:900px;margin:0 auto}
.casa-portada figure{position:relative;margin:0;overflow:hidden;background:var(--bosque);box-shadow:var(--sombra)}
.casa-portada figure::before{content:"";position:absolute;inset:10px;z-index:2;border:1px solid rgba(237,234,224,.28);pointer-events:none}
.casa-portada .cp-grande{aspect-ratio:4/3}
.casa-portada .cp-chica{aspect-ratio:3/4}
.casa-portada.solo .cp-grande{aspect-ratio:16/9}
.casa-portada img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.casa-portada .cp-chica img{object-fit:contain;background:#fff}
.casa-portada figure:hover img{transform:scale(1.03)}
.casa-portada figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:3;padding:44px 20px 16px;
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;color:var(--crema);
  background:linear-gradient(0deg,rgba(12,29,21,.92),rgba(12,29,21,.34) 58%,transparent)
}
.casa-portada figcaption .t{font-family:'Fraunces',serif;font-style:italic;font-size:16px}
.casa-portada figcaption .c{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--rosa-claro);font-weight:600}
@media(max-width:860px){
  .casa-portada{grid-template-columns:1fr;gap:14px}
  .casa-portada .cp-chica{aspect-ratio:4/3}
  .casa-portada figcaption{padding:38px 16px 14px}
}

/* nota que sustituye al conteo de proyectos */
.nota-portafolio{
  margin-top:52px;padding:22px 26px;border:1px dashed var(--linea);
  font-size:14.5px;font-weight:300;font-style:italic;color:#3A463E;line-height:1.7;
  max-width:720px;margin-left:auto;margin-right:auto
}

/* ============================================================
   v19 — Fondo en movimiento: bosque, lago y atardecer
   El video pesa 3 MB y NO bloquea nada: primero se pinta la foto
   (el mismo fotograma, así no hay salto) y el video entra después,
   solo si el aparato y la conexión lo permiten. Se pausa cuando la
   escena sale de pantalla.
   ============================================================ */
.escena .e-video{
  position:absolute;left:-6%;top:-7%;
  width:112%;height:114%;object-fit:cover;object-position:center 46%;
  opacity:0;transition:opacity 1.1s ease;pointer-events:none;border:0;
  transform:translate3d(0,0,0);backface-visibility:hidden
}
.escena.con-video .e-video{opacity:1}
/* con el video puesto sobran las capas que lo imitaban */
.escena.con-video .e-foto{opacity:0;transition:opacity 1.1s ease}
.escena.con-video .e-bruma,
.escena.con-video .e-arbolado,
.escena.con-video .e-arboles{opacity:0;transition:opacity .9s ease}
.escena.con-video .e-sol{animation:none;opacity:0}
.escena .e-foto{transition:opacity 1.1s ease}

.escena .e-video,.escena .e-foto{object-position:center 40%;background-position:center 40%}

/* el subtítulo del hero iba al 70 % de opacidad: sobre paisaje se leía
   flojo. Subimos el contraste sin cambiar el color de marca */
.hero .sub,.hero-int .sub{color:rgba(246,242,235,.88)}
.hero .meta .lbl{color:rgba(237,234,224,.72)}
.miga{color:rgba(237,234,224,.66)}

/* ============================================================
   v21 — Cabecera minimalista
   Nada de tarjetas ni cristales: el paisaje ocupa todo y el texto
   se sostiene con un degradado suave que no tiene borde visible.
   Menos elementos, más aire, entrada más calmada.
   ============================================================ */

/* --- El velo: un solo degradado en diagonal, sin bordes ni cajas --- */
.escena .e-velo{
  left:0;right:0;top:0;bottom:0;
  background:
    /* sombra que nace abajo a la izquierda, donde vive el texto */
    linear-gradient(102deg,
      rgba(7,15,12,.88) 0%,
      rgba(7,15,12,.74) 26%,
      rgba(7,15,12,.44) 52%,
      rgba(7,15,12,.16) 76%,
      rgba(7,15,12,.04) 100%),
    /* entrada de la barra de navegación y salida hacia la sección */
    linear-gradient(180deg,
      rgba(7,15,12,.60) 0px, rgba(7,15,12,.14) 130px, rgba(7,15,12,0) 320px,
      rgba(7,15,12,0) 58%, rgba(7,15,12,.36) 82%, rgba(12,29,21,.96) 100%)
}
.hero-int .escena .e-velo,.art-cab .escena .e-velo{
  background:
    linear-gradient(102deg,
      rgba(7,15,12,.90) 0%, rgba(7,15,12,.78) 32%,
      rgba(7,15,12,.50) 62%, rgba(7,15,12,.22) 100%),
    linear-gradient(180deg,
      rgba(7,15,12,.64) 0px, rgba(7,15,12,.18) 130px, rgba(7,15,12,.04) 300px,
      rgba(7,15,12,.34) 80%, rgba(12,29,21,.96) 100%)
}
.news-banda .escena{background:var(--bosque)}
.news-banda .escena .e-velo{
  background:linear-gradient(102deg,rgba(74,87,78,.94) 0%,rgba(74,87,78,.82) 46%,rgba(74,87,78,.58) 100%)
}
/* con el vídeo puesto, su propio sol manda */
.escena.con-video .e-sol{animation:none;opacity:0}

/* el contenido siempre por encima de la escena */
.hero .contenido,.hero-int .contenido,.art-cab .contenido,.news-inner{position:relative;z-index:2}

/* --- Tipografía del hero: aire y contraste, sin caja --- */
.hero .hero-grid > div:first-child{max-width:660px}
.hero h1,.hero-int h1,.art-cab h1{
  text-shadow:0 2px 30px rgba(5,12,9,.55),0 1px 4px rgba(5,12,9,.35)
}
.hero .sub,.hero-int .sub,.art-cab .art-meta{
  color:rgba(248,245,240,.90);
  text-shadow:0 1px 18px rgba(5,12,9,.70),0 1px 3px rgba(5,12,9,.4)
}
.hero .eyebrow,.hero-int .eyebrow{text-shadow:0 1px 14px rgba(5,12,9,.7)}
.hero .meta .num{text-shadow:0 2px 20px rgba(5,12,9,.6)}
.hero .meta .lbl{color:rgba(240,236,228,.78);text-shadow:0 1px 12px rgba(5,12,9,.65)}
.miga{color:rgba(240,236,228,.76);text-shadow:0 1px 12px rgba(5,12,9,.65)}

/* filete fino sobre el rótulo: la única firma gráfica que queda */
.hero .eyebrow::before,.hero-int .eyebrow::before{
  width:46px;height:1px;background:linear-gradient(90deg,var(--cobre-claro),var(--rosa-claro))
}

/* --- Entrada más calmada: nada rebota, todo asienta --- */
.hero .aparece,.hero-int .aparece,.art-cab .aparece{
  transform:translateY(16px);
  transition:opacity 1.15s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--d,0s)
}
.hero h1.aparece{transform:translateY(20px)}
.hero .aparece.visible,.hero-int .aparece.visible,.art-cab .aparece.visible{transform:none}
.hero .d1{--d:.10s}.hero .d2{--d:.22s}.hero .d3{--d:.34s}
.hero-int .d1{--d:.10s}.hero-int .d2{--d:.20s}.hero-int .d3{--d:.30s}

/* la escena entra con un fundido lento: no aparece de golpe.
   OJO: se anima el contenedor, nunca las capas. Una animación con
   fill-mode "both" fija la opacidad de la capa y pisaría las reglas
   que apagan la arboleda cuando entra el vídeo. */
.escena{animation:escenaEntra 1.6s ease-out both}
@keyframes escenaEntra{from{opacity:0}to{opacity:1}}

/* --- Indicador de scroll: una línea, nada más --- */
.hero::after{
  content:"";position:absolute;left:50%;bottom:26px;z-index:3;
  width:1px;height:58px;transform:translateX(-50%);
  background:linear-gradient(180deg,transparent,rgba(240,236,228,.55));
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);
          mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent);
  animation:baja 2.8s ease-in-out infinite
}
@keyframes baja{0%,100%{opacity:.25;transform:translateX(-50%) scaleY(.7)}50%{opacity:.9;transform:translateX(-50%) scaleY(1)}}

/* firma de estados, en fino */
.escena .e-velo::after{
  content:"CAROLINA DEL SUR · CAROLINA DEL NORTE · GEORGIA · TEXAS";
  position:absolute;right:28px;bottom:20px;
  font-family:'Archivo',sans-serif;font-size:9px;font-weight:500;letter-spacing:.28em;
  color:rgba(240,236,228,.42);white-space:nowrap;
  text-shadow:0 1px 12px rgba(5,12,9,.85)
}
.news-banda .escena .e-velo::after,.hero .escena .e-velo::after{display:none}

@media(max-width:900px){
  /* en vertical el vídeo ya viene encuadrado de pie: el degradado
     solo tiene que proteger la zona del texto */
  .escena .e-velo{
    background:linear-gradient(180deg,
      rgba(7,15,12,.58) 0px, rgba(7,15,12,.34) 110px,
      rgba(7,15,12,.74) 265px, rgba(7,15,12,.86) 58%, rgba(12,29,21,.96) 100%)
  }
  .hero-int .escena .e-velo,.art-cab .escena .e-velo{
    background:linear-gradient(180deg,
      rgba(7,15,12,.66) 0px, rgba(7,15,12,.36) 120px,
      rgba(7,15,12,.62) 280px, rgba(12,29,21,.96) 100%)
  }
  .hero .hero-grid > div:first-child{max-width:none}
  .hero::after{height:44px;bottom:18px}
  .escena .e-velo::after{font-size:8px;letter-spacing:.16em;right:16px;bottom:12px}
}
@media(max-width:620px){.escena .e-velo::after{display:none}}

@media(prefers-reduced-motion:reduce){
  .hero::after,.escena i{animation:none}
}

/* ============================================================
   v22 — Acceso de alumnos y apartado de ebooks
   ============================================================ */
.acceso-marco{min-height:0}
.acceso-puerta{position:static;padding:52px 34px 46px}
.acceso-destino{
  margin-top:14px;font-size:11.5px;letter-spacing:.14em;text-transform:lowercase;
  color:var(--piedra);display:inline-flex;align-items:center;gap:7px
}
.acceso-destino::before{
  content:"";width:11px;height:13px;flex:0 0 auto;background:var(--piedra);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 8h-1V6a5 5 0 0 0-10 0v2H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2ZM9 6a3 3 0 0 1 6 0v2H9V6Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 8h-1V6a5 5 0 0 0-10 0v2H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2ZM9 6a3 3 0 0 1 6 0v2H9V6Z'/%3E%3C/svg%3E") center/contain no-repeat
}

/* ---------- Ebooks ---------- */
.ebook{display:grid;grid-template-columns:.82fr 1.18fr;gap:0;margin-top:56px;
  background:var(--crema-suave);border:1px solid var(--linea);overflow:hidden;box-shadow:var(--sombra)}
.ebook-visual{position:relative;min-height:420px;background:var(--bosque-prof);overflow:hidden;
  display:flex;align-items:center;justify-content:center;padding:44px}
.ebook-visual::before{content:"";position:absolute;inset:0;
  background:radial-gradient(90% 70% at 50% 30%,rgba(199,126,156,.30),transparent 70%),
             linear-gradient(160deg,var(--bosque-prof),var(--bosque-osc))}
.ebook-visual img{position:relative;z-index:2;width:min(300px,72%);height:auto;
  box-shadow:0 34px 70px rgba(0,0,0,.55);transition:transform .6s cubic-bezier(.22,1,.36,1)}
.ebook:hover .ebook-visual img{transform:translateY(-6px) rotate(-1.5deg)}
.ebook-visual .sello{position:absolute;z-index:3;top:20px;left:20px;
  font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--rosa-claro);border:1px solid rgba(228,168,184,.45);padding:7px 12px;
  background:rgba(12,29,21,.5);backdrop-filter:blur(4px)}
.ebook-cuerpo{padding:52px 48px;display:flex;flex-direction:column;justify-content:center}
.ebook-cuerpo h3{font-family:'Fraunces',serif;font-size:clamp(26px,2.8vw,34px);font-weight:600;
  color:var(--bosque);margin:14px 0 8px;line-height:1.15}
.ebook-cuerpo h3 em{font-style:italic;color:var(--cobre)}
.ebook-cuerpo .dir{font-size:13px;color:var(--piedra);letter-spacing:.06em;margin-bottom:18px}
.ebook-cuerpo p{font-size:15.5px;font-weight:300;color:#3A463E;line-height:1.75;margin-bottom:24px}
.ebook-datos{display:flex;gap:30px;flex-wrap:wrap;margin:0 0 30px;padding-top:22px;border-top:1px solid var(--linea)}
.ebook-datos .d .n{font-family:'Fraunces',serif;font-size:21px;font-weight:600;color:var(--cobre)}
.ebook-datos .d .l{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin-top:2px}
.ebook-acciones{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){
  .ebook{grid-template-columns:1fr}
  .ebook-visual{min-height:300px;padding:34px}
  .ebook-visual img{width:min(220px,58%)}
  .ebook-cuerpo{padding:36px 26px}
}

/* ============================================================
   v23 — Agenda (Calendly)
   ============================================================ */
.form-nota{margin-top:14px;font-size:13px;font-weight:300;color:var(--piedra);line-height:1.6;max-width:560px}
.agenda-caja{position:relative;margin-top:48px;background:var(--crema-suave);
  border:1px solid var(--linea);box-shadow:var(--sombra);overflow:hidden}
.agenda-widget{position:relative;z-index:2;width:100%}
.agenda-widget iframe{border:0}
/* mientras baja el calendario */
.agenda-widget.cargando::after{
  content:"Cargando el calendario…";position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;color:var(--piedra);
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  animation:parpadeo 1.4s ease infinite
}
/* si Calendly no responde, sale el botón en vez de un hueco en blanco */
.agenda-respaldo{position:absolute;inset:0;z-index:1;display:none;
  flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px;text-align:center}
.agenda-respaldo p{font-size:15px;color:var(--piedra)}
.agenda-widget.sin-calendario{height:auto!important;min-height:0!important}
.agenda-widget.sin-calendario ~ .agenda-respaldo{display:flex;position:static;padding:70px 30px}
/* el botón de respaldo también aparece si el calendario tarda demasiado */
.agenda-caja:has(.agenda-widget.sin-calendario){min-height:0}
.agenda-pie{margin-top:22px;font-size:14px;font-weight:300;color:var(--piedra)}
.agenda-pie a{color:var(--cobre);text-decoration:underline;text-underline-offset:3px}
.agenda-pie a:hover{color:var(--bosque)}
@media(max-width:760px){
  .agenda-caja{margin-top:34px}
  .agenda-widget{height:660px!important}
}
