@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/hanken-grotesk-latin-300-normal.woff2) format('woff2');}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/hanken-grotesk-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/hanken-grotesk-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/hanken-grotesk-latin-600-normal.woff2) format('woff2');}
/* ============================================================
   CASAS NORUEGA · hoja de estilos v2
   Paleta del logotipo: negro, dorado, blanco. El verde se reserva
   para WhatsApp: es el único color que pide acción.
   ============================================================ */
:root{
  --paper:#FFFFFF;
  --paper-2:#F6F6F4;
  --paper-3:#EFEEEA;
  --ink:#111110;
  --ink-2:#3A3A38;
  --mute:#6B6B66;      /* 5,4:1 sobre blanco */
  --mark:#73736E;      /* 4,7:1 */
  --faint:#B6B6B1;     /* solo trazos y decoración */
  --line:#E6E6E1;
  --line-2:#F0F0EC;
  --gold:#C4A468;      /* relleno y trazos */
  --gold-dk:#7A6230;   /* dorado como texto, 5,8:1 */
  --night:#0D0D0C;
  --night-2:#171715;
  --wa:#25D366;        /* verde WhatsApp */
  --wa-hi:#2FE071;
  --wa-ink:#0A2A16;    /* texto sobre verde, 7,8:1 */
  --r:18px;
  --r-sm:10px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --nav-h:76px;
}
html{ color-scheme:light; -webkit-font-smoothing:antialiased; scroll-behavior:smooth; }
*{ box-sizing:border-box; }
body{
  margin:0; background:var(--paper); color:var(--ink-2);
  font-family:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  font-weight:400; font-size:16px; line-height:1.68;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
input,select,textarea{ font:inherit; color:var(--ink); }
::selection{ background:var(--gold); color:#fff; }
:where(a,button,input,select,textarea,summary):focus-visible{ outline:2px solid var(--ink); outline-offset:3px; border-radius:6px; }

.wrap{ width:100%; max-width:1240px; margin:0 auto; padding:0 40px; }
@media(max-width:760px){ .wrap{ padding:0 20px; } }

h1,h2,h3{ margin:0; color:var(--ink); font-weight:300; letter-spacing:-.02em; line-height:1.08; text-wrap:balance; }
p{ margin:0; }
.dim{ color:var(--mute); }
.mark{ font-size:11px; letter-spacing:.16em; color:var(--mark); font-weight:500; font-variant-numeric:tabular-nums; text-transform:uppercase; }
.num{ font-variant-numeric:tabular-nums; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- cinta de revisión ---------- */
.rev{ background:var(--ink); color:rgba(255,255,255,.82); font-size:12.5px; text-align:center; padding:8px 44px 8px 16px; position:relative; z-index:120; }
.rev b{ color:var(--gold); font-weight:500; }
.rev button{ position:absolute; right:10px; top:50%; transform:translateY(-50%); width:28px; height:28px; border-radius:50%; color:#fff; opacity:.7; }
.rev button:hover{ opacity:1; }

/* ============ CURSOR ============ */
#cursor{
  position:fixed; top:0; left:0; width:8px; height:8px; border-radius:50%;
  background:var(--ink); pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); opacity:0;
  transition:width .3s var(--ease), height .3s var(--ease), background .3s var(--ease), opacity .3s var(--ease);
  mix-blend-mode:difference;
}
#cursor.on{ opacity:1; }
#cursor.big{ width:46px; height:46px; background:var(--gold); }
@media(hover:none),(pointer:coarse){ #cursor{ display:none; } }

/* ============ NAV ============ */
.nav{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.9);
  backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid transparent; transition:border-color .45s var(--ease);
}
.nav.stuck{ border-bottom-color:var(--line); }
.nav-in{ display:flex; align-items:center; justify-content:space-between; gap:20px; height:var(--nav-h); }
.brand{ display:flex; align-items:center; gap:12px; flex:none; }
.brand img{ height:26px; width:auto; }
.brand span{ font-size:12.5px; letter-spacing:.2em; font-weight:500; color:var(--ink); white-space:nowrap; }
.menu{ display:flex; align-items:center; gap:24px; }
.menu a.lk{ position:relative; font-size:13.5px; color:var(--ink-2); padding:4px 0; white-space:nowrap; }
.menu a.lk::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:100%; background:var(--ink); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.menu a.lk:hover::after, .menu a.lk.on::after{ transform:scaleX(1); }
.menu a.lk.on{ color:var(--ink); }
.burger{ display:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--line); align-items:center; justify-content:center; }
.burger svg{ width:18px; height:18px; }
@media(max-width:1180px){ .menu a.lk{ display:none; } .burger{ display:inline-flex; } }
@media(max-width:520px){ .brand span{ display:none; } .nav .wa-btn .wa-long{ display:none; } }

/* menú móvil */
.drawer{ position:fixed; inset:0; z-index:300; background:var(--paper); display:flex; flex-direction:column;
  transform:translateY(-100%); transition:transform .55s var(--ease); visibility:hidden; }
.drawer.open{ transform:none; visibility:visible; }
.drawer-hd{ display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); padding:0 20px; border-bottom:1px solid var(--line); }
.drawer nav{ flex:1; overflow:auto; padding:18px 20px 30px; display:flex; flex-direction:column; }
.drawer nav a{ font-size:1.6rem; font-weight:300; color:var(--ink); padding:12px 0; border-bottom:1px solid var(--line-2); letter-spacing:-.02em; display:flex; justify-content:space-between; align-items:center; }
.drawer nav a small{ font-size:11px; letter-spacing:.14em; color:var(--mark); }
.drawer .wa-btn{ margin:0 20px 24px; justify-content:center; }

/* ---------- botón pill (secundario) ---------- */
.pill{
  position:relative; display:inline-flex; align-items:center; gap:14px;
  padding:13px 15px 13px 24px; border-radius:999px; min-height:48px;
  border:1px solid var(--ink); background:transparent; color:var(--ink);
  font-size:14px; font-weight:500; overflow:hidden; isolation:isolate; white-space:nowrap;
  transition:color .45s var(--ease), border-color .45s var(--ease), transform .12s ease-out;
}
.pill::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--ink); transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease); }
.pill:hover{ color:#fff; }
.pill:hover::before{ transform:scaleX(1); transform-origin:left; }
.pill:active{ transform:scale(.97); }
.pill i{ width:26px; height:26px; border-radius:50%; background:var(--gold); display:grid; place-items:center; flex:none; transition:transform .5s var(--ease); }
.pill i svg{ width:11px; height:11px; display:block; }
.pill i svg path{ stroke:var(--night); }
.pill:hover i{ transform:translateX(3px) rotate(45deg); }
.pill.lite{ border-color:rgba(255,255,255,.45); color:#fff; }
.pill.lite::before{ background:#fff; }
.pill.lite:hover{ color:var(--night); border-color:#fff; }
.pill.sm{ min-height:40px; padding:9px 12px 9px 18px; font-size:13px; }
.pill.sm i{ width:22px; height:22px; }

/* ---------- botón WhatsApp (primario) ---------- */
.wa-btn{
  display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:12px 22px 12px 18px;
  border-radius:999px; background:var(--wa); color:var(--wa-ink); font-weight:600; font-size:14.5px;
  letter-spacing:-.005em; white-space:nowrap; position:relative;
  transition:background .3s var(--ease), transform .12s ease-out, box-shadow .3s var(--ease);
}
.wa-btn:hover{ background:var(--wa-hi); }
.wa-btn:active{ transform:scale(.97); }
.wa-btn svg{ width:20px; height:20px; flex:none; }
.wa-btn.sm{ min-height:42px; padding:9px 16px 9px 13px; font-size:13.5px; }
.wa-btn.lg{ min-height:56px; padding:15px 28px 15px 22px; font-size:16px; }
.wa-btn.block{ width:100%; justify-content:center; }

/* flotante */
.wa-float{ position:fixed; right:20px; bottom:20px; z-index:200; width:60px; height:60px; border-radius:50%;
  background:var(--wa); color:var(--wa-ink); display:grid; place-items:center;
  box-shadow:0 10px 30px rgba(10,42,22,.28); transition:transform .3s var(--ease), background .3s; }
.wa-float:hover{ background:var(--wa-hi); transform:scale(1.06); }
.wa-float:active{ transform:scale(.95); }
.wa-float svg{ width:30px; height:30px; }
.wa-float::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid var(--wa); animation:waPulse 2.2s var(--ease) 1.2s 3; opacity:0; }
@keyframes waPulse{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.7); opacity:0; } }
.wa-float .tip{ position:absolute; right:72px; top:50%; transform:translateY(-50%) translateX(8px); background:var(--ink); color:#fff;
  font-size:13px; font-weight:500; padding:8px 14px; border-radius:999px; white-space:nowrap; opacity:0; pointer-events:none;
  transition:opacity .3s var(--ease), transform .3s var(--ease); }
.wa-float:hover .tip{ opacity:1; transform:translateY(-50%); }
@media(max-width:760px){ .wa-float{ right:14px; bottom:14px; width:56px; height:56px; } }

/* ============ PÁGINAS ============ */
#app{ min-height:70vh; }
section{ padding:112px 0; }
@media(max-width:760px){ section{ padding:72px 0; } }
.head{ display:flex; gap:30px; align-items:baseline; margin-bottom:48px; flex-wrap:wrap; }
.head h2{ font-size:clamp(1.7rem,3vw,2.5rem); max-width:20ch; }
.head p{ flex-basis:100%; max-width:56ch; color:var(--mute); font-size:15.5px; margin-top:-6px; }
.head.solo{ margin-bottom:26px; }
.page-hd{ padding-top:64px; padding-bottom:46px; }
.page-hd h1{ font-size:clamp(2.2rem,5vw,4.2rem); max-width:16ch; margin-top:14px; }
.page-hd p{ margin-top:22px; font-size:17px; color:var(--mute); max-width:58ch; }
.crumbs{ font-size:12.5px; color:var(--mark); display:flex; gap:8px; flex-wrap:wrap; }
.crumbs a:hover{ color:var(--ink); }
.crumbs span[aria-hidden]{ color:var(--faint); }

/* ============ HERO ROTATIVO ============ */
.hero{ padding-top:14px; }
.hero-fig{ position:relative; border-radius:var(--r); overflow:hidden; height:min(80vh,780px); min-height:540px; background:var(--night); }
.slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.2s var(--ease); }
.slide.on{ opacity:1; }
.slide img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 7s linear; }
.slide.on img{ transform:scale(1); }
.hero-fig::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,9,.42) 0%,rgba(10,10,9,.06) 30%,rgba(10,10,9,.18) 55%,rgba(10,10,9,.78) 100%); }
.hero-top{ position:absolute; z-index:3; top:34px; left:44px; right:44px; display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.hero-tag{ color:rgba(255,255,255,.9); font-size:11.5px; letter-spacing:.16em; font-weight:500; display:flex; align-items:center; gap:10px; text-transform:uppercase; }
.hero-tag::before{ content:""; width:24px; height:1px; background:var(--gold); flex:none; }
.hero-line{ color:rgba(255,255,255,.78); font-size:13px; max-width:34ch; text-align:right; }
.hero-body{ position:absolute; z-index:3; left:0; right:0; bottom:0; padding:0 44px 40px; display:grid; grid-template-columns:1fr auto; gap:28px; align-items:end; }
.hero-body h1{ color:#fff; font-size:clamp(2.2rem,4.6vw,4.2rem); max-width:15ch; font-weight:300; }
.hero-body h1 .gd{ color:var(--gold); }
.hero-sub{ color:rgba(255,255,255,.84); font-size:16px; max-width:52ch; margin-top:18px; }
.hero-act{ display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.hero-ctl{ display:flex; flex-direction:column; align-items:flex-end; gap:16px; }
.hero-arr{ display:flex; gap:8px; }
.hero-arr button{ width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,.4); color:#fff; display:grid; place-items:center; transition:background .3s, border-color .3s; }
.hero-arr button:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.hero-arr svg{ width:16px; height:16px; }
.dots{ display:flex; gap:6px; }
.dots button{ width:38px; height:28px; display:flex; align-items:center; }
.dots button span{ display:block; width:100%; height:2px; background:rgba(255,255,255,.32); position:relative; overflow:hidden; border-radius:2px; }
.dots button span i{ position:absolute; inset:0; background:#fff; transform:scaleX(0); transform-origin:left; }
.dots button.on span i{ animation:prog var(--dur,5.5s) linear forwards; }
.dots button.done span i{ transform:scaleX(1); }
.hero-fig.paused .dots button.on span i{ animation-play-state:paused; }
@keyframes prog{ to{ transform:scaleX(1); } }
@media(max-width:860px){
  .hero-fig{ height:min(88vh,720px); min-height:620px; }
  .hero-body{ grid-template-columns:1fr; padding:0 22px 24px; }
  .hero-top{ top:22px; left:22px; right:22px; }
  .hero-line{ display:none; }
  .hero-ctl{ align-items:flex-start; flex-direction:row; justify-content:space-between; width:100%; }
  .hero-arr{ display:none; }
  .hero-sub{ font-size:15px; }
  .hero-fig::after{ background:linear-gradient(180deg,rgba(10,10,9,.5) 0%,rgba(10,10,9,.1) 26%,rgba(10,10,9,.35) 48%,rgba(10,10,9,.88) 100%); }
}
.hero-meta{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:20px 4px 0; border-bottom:1px solid var(--line); padding-bottom:20px; }
.hero-meta div{ font-size:13px; color:var(--mute); }
@media(max-width:760px){ .hero-meta{ gap:4px 18px; } .hero-meta div:nth-child(2){ display:none; } }
.hero-meta div b{ color:var(--ink); font-weight:500; }

/* ---- declaración ---- */
.stmt{ display:grid; grid-template-columns:1.35fr .85fr; gap:72px; align-items:center; }
@media(max-width:960px){ .stmt{ grid-template-columns:1fr; gap:38px; } }
.stmt-txt{ font-size:clamp(1.35rem,2.5vw,2.05rem); line-height:1.34; color:var(--ink); font-weight:300; letter-spacing:-.015em; max-width:22ch; }
.stmt-sub{ margin-top:34px; font-size:15px; color:var(--mute); max-width:44ch; }
.stmt-fig{ border-radius:var(--r); overflow:hidden; aspect-ratio:4/3.2; }
.stmt-fig img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.stmt-fig:hover img{ transform:scale(1.05); }

/* ============ LÍNEAS ============ */
.lines{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.line-card{ position:relative; display:block; border-radius:var(--r); overflow:hidden; background:var(--night); min-height:380px; color:#fff; isolation:isolate; }
.line-card.big{ grid-column:1 / -1; min-height:520px; }
.line-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease); }
.line-card:hover img{ transform:scale(1.045); }
.line-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(8,8,7,.08) 20%,rgba(8,8,7,.8) 100%); }
.line-bd{ position:absolute; left:0; right:0; bottom:0; padding:30px; }
.line-card.big .line-bd{ padding:40px 44px; max-width:760px; }
.line-badge{ display:inline-flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; color:var(--night); background:var(--gold); padding:6px 12px; border-radius:999px; margin-bottom:16px; }
.line-card h3{ color:#fff; font-size:clamp(1.7rem,3vw,2.5rem); }
.line-card.big h3{ font-size:clamp(2.2rem,4vw,3.4rem); }
.line-meta{ display:flex; gap:14px; align-items:center; margin-top:10px; font-size:13px; color:rgba(255,255,255,.78); flex-wrap:wrap; }
.line-meta b{ color:#fff; font-weight:500; }
.line-pos{ margin-top:14px; font-size:15px; color:rgba(255,255,255,.84); max-width:58ch; }
.line-card:not(.big) .line-pos{ font-size:14px; }
.line-go{ margin-top:22px; display:inline-flex; align-items:center; gap:10px; font-size:13.5px; font-weight:500; color:#fff; }
.line-go i{ width:30px; height:30px; border-radius:50%; background:#fff; color:var(--ink); display:grid; place-items:center; transition:transform .5s var(--ease); }
.line-go i svg{ width:11px; height:11px; }
.line-card:hover .line-go i{ transform:rotate(45deg); }
@media(max-width:980px){ .lines{ grid-template-columns:1fr; } .line-card,.line-card.big{ min-height:420px; } .line-card.big .line-bd{ padding:28px; } }

/* ============ TARJETAS DE MODELO ============ */
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:52px 30px; }
.grid.two{ grid-template-columns:1fr 1fr; gap:56px 40px; }
@media(max-width:980px){ .grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:640px){ .grid,.grid.two{ grid-template-columns:1fr; gap:44px; } }
.card{ display:block; }
.card-fig{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:4/3; background:var(--paper-2); }
.card-fig img{ width:100%; height:100%; object-fit:cover; transition:transform 1.05s var(--ease); }
.card:hover .card-fig img{ transform:scale(1.055); }
.card-go{ position:absolute; right:14px; bottom:14px; height:38px; padding:0 18px; border-radius:999px; background:rgba(255,255,255,.95); color:var(--ink);
  display:inline-flex; align-items:center; gap:9px; font-size:12.5px; font-weight:500; opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
.card:hover .card-go, .card:focus-visible .card-go{ opacity:1; transform:none; }
@media(hover:none){ .card-go{ opacity:1; transform:none; } }
.card-tag{ position:absolute; left:14px; top:14px; background:var(--ink); color:#fff; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:500; padding:5px 10px; border-radius:999px; }
.card-bd{ padding-top:18px; }
.card-row{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
.card-row h3{ font-size:1.42rem; font-weight:400; letter-spacing:-.02em; }
.card-row .m2{ font-size:13px; color:var(--mute); font-variant-numeric:tabular-nums; white-space:nowrap; }
.card-rule{ height:1px; background:var(--line); margin:13px 0; position:relative; }
.card-rule::after{ content:""; position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .7s var(--ease); }
.card:hover .card-rule::after{ transform:scaleX(1); }
.card-bd p{ font-size:14px; color:var(--mute); }
.card-price{ margin-top:12px; display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:13px; color:var(--mute); }
.card-price b{ color:var(--ink); font-weight:500; font-size:15px; font-variant-numeric:tabular-nums; }

/* ---- imagen completa ---- */
.feat{ position:relative; border-radius:var(--r); overflow:hidden; height:min(74vh,680px); min-height:420px; }
.feat img{ width:100%; height:100%; object-fit:cover; transition:transform 1.6s var(--ease); }
.feat:hover img{ transform:scale(1.04); }
.feat::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,8,7,.1) 0%,rgba(8,8,7,.02) 40%,rgba(8,8,7,.74) 100%); }
.feat-bd{ position:absolute; z-index:2; left:0; bottom:0; padding:44px; max-width:680px; }
.feat-bd .mark{ color:rgba(255,255,255,.75); margin-bottom:16px; display:block; }
.feat-bd h2{ color:#fff; font-size:clamp(1.6rem,2.9vw,2.4rem); }
.feat-bd p{ color:rgba(255,255,255,.8); font-size:15px; margin-top:16px; max-width:46ch; }
.feat-bd .wa-btn,.feat-bd .pill{ margin-top:24px; }
@media(max-width:760px){ .feat-bd{ padding:24px; } }

/* ============ FICHA DE MODELO ============ */
.ficha{ display:grid; grid-template-columns:1.22fr .78fr; gap:56px; align-items:start; padding-bottom:40px; }
@media(max-width:1020px){ .ficha{ grid-template-columns:1fr; gap:36px; } }
.gal-main{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:16/10.5; background:var(--paper-2); cursor:zoom-in; }
.gal-main img{ width:100%; height:100%; object-fit:cover; }
.gal-main img.plan{ object-fit:contain; background:#fff; padding:14px; }
.gal-main .zoom{ position:absolute; right:14px; bottom:14px; height:40px; padding:0 16px; border-radius:999px; background:rgba(255,255,255,.95); color:var(--ink); display:inline-flex; gap:8px; align-items:center; font-size:13px; font-weight:500; }
.gal-main .zoom svg{ width:15px; height:15px; }
.gal-cap{ font-size:12.5px; color:var(--mute); margin-top:10px; min-height:20px; }
.thumbs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:10px; margin-top:12px; }
.thumbs button{ position:relative; aspect-ratio:4/3; border-radius:var(--r-sm); overflow:hidden; border:1px solid var(--line); background:#fff; opacity:.72; transition:opacity .3s, border-color .3s; }
.thumbs button.on{ opacity:1; border-color:var(--ink); }
.thumbs button:hover{ opacity:1; }
.thumbs img{ width:100%; height:100%; object-fit:cover; }
.thumbs img.plan{ object-fit:contain; padding:4px; }
.thumbs .tlab{ position:absolute; left:6px; bottom:6px; font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; background:var(--gold); color:var(--night); padding:2px 7px; border-radius:999px; }

.f-side{ position:sticky; top:calc(var(--nav-h) + 20px); }
.f-line{ font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dk); font-weight:600; }
.f-side h1{ font-size:clamp(2.4rem,4.4vw,3.6rem); margin-top:8px; }
.f-sum{ margin-top:14px; font-size:15.5px; color:var(--mute); max-width:44ch; }
.var-lb{ margin-top:28px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--mark); font-weight:500; }
.vars{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.vars button{ min-height:44px; padding:0 18px; border-radius:999px; border:1px solid var(--line); font-size:14px; font-weight:500; font-variant-numeric:tabular-nums; transition:border-color .3s, background .3s, color .3s, transform .12s; }
.vars button:hover{ border-color:var(--ink); }
.vars button.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.vars button:active{ transform:scale(.97); }
.price{ margin-top:26px; padding:22px; border-radius:var(--r); background:var(--paper-2); }
.price .lb{ font-size:12px; color:var(--mute); }
.price .v{ font-size:clamp(1.8rem,3vw,2.3rem); color:var(--ink); font-weight:300; letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1.15; margin-top:4px; }
.price .v small{ font-size:.42em; color:var(--mute); letter-spacing:0; margin-left:6px; }
.price .note{ font-size:12px; color:var(--mute); margin-top:8px; line-height:1.5; }
.f-act{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.f-act .pill{ justify-content:space-between; }

.spec{ width:100%; border-collapse:collapse; font-size:14.5px; }
.spec th,.spec td{ text-align:left; padding:13px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.spec th{ font-weight:400; color:var(--mute); width:44%; padding-right:14px; }
.spec td{ color:var(--ink); }
.spec td .tbd{ color:var(--mark); font-style:normal; }
.f-desc{ display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; padding:40px 0 20px; }
@media(max-width:1020px){ .f-desc{ grid-template-columns:1fr; gap:30px; } }
.f-desc .txt p{ font-size:16.5px; line-height:1.72; color:var(--ink-2); max-width:62ch; }
.f-desc .txt p + p{ margin-top:16px; }
.chips{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
.chip{ display:inline-flex; align-items:center; gap:8px; font-size:13px; padding:7px 14px; border-radius:999px; border:1px solid var(--line); color:var(--ink-2); }
.chip b{ font-weight:600; color:var(--ink); }
.svc-mini{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media(max-width:760px){ .svc-mini{ grid-template-columns:1fr; } }
.svc-mini a{ display:block; padding:20px; border-radius:var(--r); border:1px solid var(--line); transition:border-color .3s, background .3s; }
.svc-mini a:hover{ border-color:var(--ink); background:var(--paper-2); }
.svc-mini b{ display:block; color:var(--ink); font-weight:500; font-size:16px; }
.svc-mini span{ display:block; font-size:13.5px; color:var(--mute); margin-top:6px; }

/* ============ LIGHTBOX ============ */
#lb{ position:fixed; inset:0; z-index:400; background:rgba(13,13,12,.96); display:none; flex-direction:column; }
#lb.open{ display:flex; }
.lb-hd{ display:flex; justify-content:space-between; align-items:center; padding:14px 18px; color:#fff; gap:12px; }
.lb-hd .cap{ font-size:14px; color:rgba(255,255,255,.82); }
.lb-hd .bt{ display:flex; gap:8px; }
.lb-hd button{ min-width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.3); color:#fff; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 14px; font-size:13px; }
.lb-hd button:hover{ background:#fff; color:var(--ink); }
.lb-hd svg{ width:16px; height:16px; }
.lb-bd{ flex:1; overflow:auto; display:flex; align-items:center; justify-content:center; padding:0 18px 18px; }
.lb-bd img{ max-width:100%; max-height:100%; object-fit:contain; background:#fff; border-radius:8px; }
#lb.zoomed .lb-bd{ align-items:flex-start; justify-content:flex-start; }
#lb.zoomed .lb-bd img{ max-width:none; max-height:none; cursor:grab; }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; display:grid; place-items:center; }
.lb-nav:hover{ background:#fff; color:var(--ink); }
.lb-nav svg{ width:18px; height:18px; }
.lb-prev{ left:16px; } .lb-next{ right:16px; }
#lb.zoomed .lb-nav{ display:none; }

/* ============ TABLA DE VALORES ============ */
.tbl-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--r); }
.tbl{ width:100%; border-collapse:collapse; min-width:760px; font-size:14.5px; }
.tbl th{ text-align:left; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:500; color:var(--mark); padding:16px 18px; border-bottom:1px solid var(--line); background:var(--paper-2); position:sticky; top:0; }
.tbl td{ padding:15px 18px; border-bottom:1px solid var(--line-2); vertical-align:middle; }
.tbl tr:last-child td{ border-bottom:0; }
.tbl tr.grp td{ background:#fff; padding-top:26px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dk); font-weight:600; border-bottom:1px solid var(--line); }
.tbl td.m{ color:var(--ink); font-weight:500; }
.tbl td.r{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.tbl td.r b{ color:var(--ink); font-weight:500; }
.tbl tbody tr:not(.grp):hover td{ background:var(--paper-2); }
.tbl .act{ display:flex; gap:8px; justify-content:flex-end; }
.lnk{ font-size:13px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--line); padding-bottom:1px; transition:border-color .3s; }
.lnk:hover{ border-color:var(--ink); }
.notice{ display:flex; gap:12px; align-items:flex-start; padding:16px 18px; border-radius:var(--r-sm); background:var(--paper-2); font-size:13.5px; color:var(--ink-2); line-height:1.55; margin-top:18px; }
.notice svg{ width:18px; height:18px; flex:none; margin-top:2px; color:var(--gold-dk); }
.notice b{ color:var(--ink); font-weight:600; }

/* ============ SERVICIOS ============ */
.svcs{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:980px){ .svcs{ grid-template-columns:1fr; } }
.svc{ border:1px solid var(--line); border-radius:var(--r); overflow:hidden; display:flex; flex-direction:column; background:#fff; position:relative; }
.svc.hl{ border-color:var(--ink); }
.svc-fig{ aspect-ratio:16/10; overflow:hidden; background:var(--paper-2); }
.svc-fig img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.svc:hover .svc-fig img{ transform:scale(1.05); }
.svc-bd{ padding:26px; display:flex; flex-direction:column; flex:1; }
.svc-n{ font-size:11px; letter-spacing:.16em; color:var(--mark); font-weight:500; }
.svc h3{ font-size:1.6rem; font-weight:400; margin-top:8px; }
.svc .fr{ font-size:14.5px; color:var(--mute); margin-top:8px; }
.svc ul{ list-style:none; padding:0; margin:20px 0 24px; display:flex; flex-direction:column; gap:9px; flex:1; }
.svc li{ position:relative; padding-left:26px; font-size:14px; color:var(--ink-2); }
.svc li::before{ content:""; position:absolute; left:0; top:5px; width:15px; height:15px; border-radius:50%; background:var(--paper-3); }
.svc li::after{ content:""; position:absolute; left:4.5px; top:8.5px; width:6px; height:3.5px; border-left:1.5px solid var(--ink); border-bottom:1.5px solid var(--ink); transform:rotate(-45deg); }
.svc-badge{ position:absolute; top:14px; right:14px; z-index:2; background:var(--gold); color:var(--night); font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; padding:6px 12px; border-radius:999px; }
.cmp td.c{ text-align:center; width:15%; }
.cmp th.c{ text-align:center; }
.ok{ display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--ink); color:#fff; }
.ok svg{ width:12px; height:12px; }
.no{ display:inline-block; width:12px; height:1.5px; background:var(--faint); vertical-align:middle; }
.found{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media(max-width:860px){ .found{ grid-template-columns:1fr; } }
.fd{ border-top:1px solid var(--ink); padding-top:24px; }
.fd svg.ill{ width:100%; height:auto; display:block; margin-bottom:22px; background:var(--paper-2); border-radius:var(--r); }
.fd h3{ font-size:1.5rem; font-weight:400; }
.fd dl{ margin:16px 0 0; display:grid; grid-template-columns:120px 1fr; gap:10px 16px; font-size:14.5px; }
.fd dt{ color:var(--mute); }
.fd dd{ margin:0; color:var(--ink-2); }
.cta-band{ display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; padding:30px 34px; border-radius:var(--r); background:var(--paper-2); margin-top:40px; }
.cta-band p{ font-size:1.3rem; color:var(--ink); font-weight:300; letter-spacing:-.01em; max-width:30ch; }

/* ============ COTIZADOR ============ */
.qz{ display:grid; grid-template-columns:1fr 340px; gap:40px; align-items:start; }
@media(max-width:1020px){ .qz{ grid-template-columns:1fr; } }
.qz-prog{ display:flex; align-items:center; gap:14px; margin-bottom:26px; }
.qz-prog .bar{ flex:1; height:3px; background:var(--line); border-radius:3px; overflow:hidden; }
.qz-prog .bar i{ display:block; height:100%; background:var(--ink); transition:width .6s var(--ease); }
.qz-prog span{ font-size:12.5px; color:var(--mute); white-space:nowrap; font-variant-numeric:tabular-nums; }
.qz-step h2{ font-size:clamp(1.6rem,2.8vw,2.3rem); }
.qz-step > p{ color:var(--mute); margin-top:10px; font-size:15px; }
.opts{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:26px; }
.opts.three{ grid-template-columns:repeat(3,1fr); }
@media(max-width:760px){ .opts,.opts.three{ grid-template-columns:1fr; } }
.opt{ text-align:left; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:border-color .3s, transform .12s, box-shadow .3s; position:relative; }
.opt:hover{ border-color:var(--ink); }
.opt:active{ transform:scale(.985); }
.opt.on{ border-color:var(--ink); box-shadow:0 0 0 1px var(--ink); }
.opt[disabled]{ opacity:.45; cursor:not-allowed; }
.opt .of{ aspect-ratio:16/9; background:var(--paper-2); overflow:hidden; }
.opt .of img{ width:100%; height:100%; object-fit:cover; }
.opt .ob{ padding:16px 18px 18px; }
.opt b{ display:block; font-weight:500; font-size:16.5px; color:var(--ink); }
.opt span{ display:block; font-size:13.5px; color:var(--mute); margin-top:4px; }
.opt .ck{ position:absolute; top:12px; right:12px; width:26px; height:26px; border-radius:50%; background:var(--ink); color:#fff; display:none; place-items:center; }
.opt.on .ck{ display:grid; }
.opt .ck svg{ width:12px; height:12px; }
.opt.row{ flex-direction:row; align-items:center; }
.opt.row .ob{ padding:18px 20px; }
.qz-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:28px; }
.back{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px 0 10px; border-radius:999px; font-size:14px; color:var(--ink-2); }
.back:hover{ background:var(--paper-2); }
.back svg{ width:16px; height:16px; }
.terr{ margin-top:30px; padding:22px; border-radius:var(--r); background:var(--paper-2); }
.terr b{ display:block; color:var(--ink); font-weight:500; }
.terr .seg{ display:inline-flex; gap:6px; margin-top:12px; flex-wrap:wrap; }
.terr .seg button{ min-height:42px; padding:0 18px; border-radius:999px; border:1px solid var(--line); background:#fff; font-size:14px; }
.terr .seg button.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.terr p{ font-size:13.5px; color:var(--mute); margin-top:12px; }
.qz-sum{ position:sticky; top:calc(var(--nav-h) + 20px); border:1px solid var(--line); border-radius:var(--r); padding:24px; background:#fff; }
.qz-sum h3{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mark); font-weight:500; }
.qz-sum dl{ margin:14px 0 0; display:grid; grid-template-columns:auto 1fr; gap:10px 14px; font-size:14px; }
.qz-sum dt{ color:var(--mute); }
.qz-sum dd{ margin:0; color:var(--ink); text-align:right; }
.qz-sum dd.nil{ color:var(--mark); }
@media(max-width:1020px){ .qz-sum{ position:static; } }
.result{ border-radius:var(--r); background:var(--night); color:#fff; padding:34px; margin-top:26px; }
.result .lb{ display:block; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.result .v{ font-size:clamp(2.2rem,5vw,3.6rem); font-weight:300; letter-spacing:-.025em; margin-top:8px; font-variant-numeric:tabular-nums; line-height:1.05; }
.result .v.alt{ font-size:clamp(1.6rem,3.4vw,2.4rem); }
.result .sel{ margin-top:14px; font-size:14.5px; color:rgba(255,255,255,.82); }
.result .disc{ margin-top:18px; font-size:12.5px; color:rgba(255,255,255,.62); line-height:1.55; max-width:62ch; }
.result .wa-btn{ margin-top:24px; }
.qform{ margin-top:30px; }
.qform summary{ cursor:pointer; font-size:14.5px; font-weight:500; color:var(--ink); list-style:none; display:flex; align-items:center; gap:10px; }
.qform summary::-webkit-details-marker{ display:none; }
.qform summary::before{ content:"+"; width:26px; height:26px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; font-weight:400; }
.qform[open] summary::before{ content:"−"; }

/* ============ FORMULARIOS ============ */
.form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:20px; }
.form .full{ grid-column:1 / -1; }
@media(max-width:640px){ .form{ grid-template-columns:1fr; } }
.fld label{ display:block; font-size:12.5px; color:var(--mute); margin-bottom:6px; }
.fld input,.fld select,.fld textarea{ width:100%; min-height:50px; padding:13px 16px; border-radius:var(--r-sm); border:1px solid var(--line); background:#fff; transition:border-color .3s; }
.fld textarea{ min-height:110px; resize:vertical; }
.fld input:focus,.fld select:focus,.fld textarea:focus{ outline:none; border-color:var(--ink); }
.fld.bad input,.fld.bad select{ border-color:#B4231C; }
.fld .err{ display:none; font-size:12px; color:#B4231C; margin-top:5px; }
.fld.bad .err{ display:block; }
.form-note{ font-size:12.5px; color:var(--mute); }
.night .fld label{ color:rgba(255,255,255,.62); }
.night .fld input,.night .fld select,.night .fld textarea{ background:var(--night-2); border-color:rgba(255,255,255,.14); color:#fff; }
.night .fld input:focus,.night .fld select:focus,.night .fld textarea:focus{ border-color:var(--gold); }
.night .form-note{ color:rgba(255,255,255,.55); }

/* ============ CÓMO CONSTRUIMOS / PROCESO ============ */
.craft-fig{ border-radius:var(--r); overflow:hidden; aspect-ratio:21/9; margin-bottom:56px; }
@media(max-width:760px){ .craft-fig{ aspect-ratio:4/3; } }
.craft-fig img{ width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease); }
.craft-fig:hover img{ transform:scale(1.045); }
.sys{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
@media(max-width:860px){ .sys{ grid-template-columns:1fr; } }
.sys-card{ border-top:1px solid var(--ink); padding-top:22px; }
.sys-card .fig{ border-radius:var(--r); overflow:hidden; background:var(--paper-2); aspect-ratio:4/3; margin-bottom:22px; }
.sys-card .fig img{ width:100%; height:100%; object-fit:cover; }
.sys-card .fig img.plan{ object-fit:contain; background:#fff; }
.sys-card h3{ font-size:1.5rem; font-weight:400; }
.sys-card p{ font-size:15px; color:var(--mute); margin-top:10px; max-width:52ch; }
.sys-card ul{ margin:16px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.sys-card li{ font-size:14px; color:var(--ink-2); padding-left:18px; position:relative; }
.sys-card li::before{ content:""; position:absolute; left:0; top:11px; width:8px; height:1px; background:var(--gold-dk); }
.steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:1px solid var(--line); }
@media(max-width:980px){ .steps{ grid-template-columns:1fr; } }
.step{ padding:26px 22px 8px 0; position:relative; }
.step + .step{ padding-left:22px; border-left:1px solid var(--line); }
@media(max-width:980px){ .step + .step{ padding-left:0; border-left:0; border-top:1px solid var(--line); } }
.step .n{ font-size:12px; color:var(--gold-dk); font-weight:600; letter-spacing:.08em; font-variant-numeric:tabular-nums; }
.step h3{ font-size:1.15rem; font-weight:500; margin-top:12px; letter-spacing:-.01em; }
.step p{ font-size:14px; color:var(--mute); margin-top:8px; }
.step .pz{ display:inline-block; margin-top:12px; font-size:12px; color:var(--ink); background:var(--paper-2); padding:4px 10px; border-radius:999px; }
.cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
@media(max-width:980px){ .cols{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .cols{ grid-template-columns:1fr; } }
.col{ border-top:1px solid var(--ink); padding-top:20px; }
.col h3{ font-size:1.05rem; font-weight:500; letter-spacing:-.005em; margin-bottom:10px; }
.col p{ font-size:14px; color:var(--mute); }
.col .yr{ display:block; font-size:2rem; font-weight:300; color:var(--ink); margin-bottom:6px; letter-spacing:-.02em; }

/* ============ PROYECTOS ============ */
.empty{ border:1px dashed var(--faint); border-radius:var(--r); padding:56px 30px; text-align:center; }
.empty h3{ font-size:1.5rem; font-weight:400; }
.empty p{ font-size:15px; color:var(--mute); max-width:52ch; margin:12px auto 0; }
.empty .wa-btn,.empty .pill{ margin-top:24px; }

/* ============ SHOWROOM ============ */
.show{ display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:stretch; }
@media(max-width:980px){ .show{ grid-template-columns:1fr; gap:30px; } }
.show-badge{ display:inline-flex; align-items:center; gap:10px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--night); background:var(--gold); padding:7px 14px; border-radius:999px; }
.show-badge.open{ background:var(--wa); color:var(--wa-ink); }
.show-badge i{ width:7px; height:7px; border-radius:50%; background:currentColor; }
.show h2{ font-size:clamp(1.9rem,3.4vw,2.8rem); margin-top:18px; }
.show-info{ margin-top:26px; display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.show-info div{ display:grid; grid-template-columns:110px 1fr; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); font-size:15px; }
.show-info dt{ color:var(--mute); }
.show-info dd{ margin:0; color:var(--ink); }
.show-act{ display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }
.map{ position:relative; border-radius:var(--r); overflow:hidden; background:var(--paper-2); min-height:420px; }
.map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.85) contrast(1.05); }
.map .ph{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:24px; color:var(--mute); font-size:14px; }
.map .ph svg{ width:34px; height:34px; color:var(--gold-dk); }

/* ============ FAQ ============ */
.faq{ border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 4px; font-size:1.15rem; color:var(--ink); font-weight:400; letter-spacing:-.01em; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary i{ width:32px; height:32px; border-radius:50%; border:1px solid var(--line); flex:none; position:relative; transition:transform .4s var(--ease), background .3s; }
.faq summary i::before,.faq summary i::after{ content:""; position:absolute; left:50%; top:50%; width:12px; height:1.5px; background:var(--ink); transform:translate(-50%,-50%); }
.faq summary i::after{ transform:translate(-50%,-50%) rotate(90deg); transition:transform .4s var(--ease); }
.faq details[open] summary i::after{ transform:translate(-50%,-50%) rotate(0); }
.faq summary:hover i{ background:var(--paper-2); }
.faq .ans{ padding:0 60px 24px 4px; font-size:15.5px; color:var(--mute); max-width:76ch; }
.faq-grid{ display:grid; grid-template-columns:.7fr 1.3fr; gap:56px; }
@media(max-width:900px){ .faq-grid{ grid-template-columns:1fr; gap:24px; } }

/* ============ CIERRE OSCURO ============ */
.night{ background:var(--night); color:rgba(255,255,255,.78); }
.night .mark{ color:rgba(255,255,255,.55); }
.cta{ padding:120px 0 100px; display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:start; }
@media(max-width:960px){ .cta{ grid-template-columns:1fr; gap:36px; padding:80px 0 70px; } }
.cta-l h2{ color:#fff; font-size:clamp(2rem,4.1vw,3.3rem); max-width:13ch; font-weight:300; margin-top:16px; }
.cta-l p{ font-size:15px; color:rgba(255,255,255,.62); max-width:36ch; margin-top:20px; }
.cta-l .wa-btn{ margin-top:30px; }
.cta-r h3{ color:#fff; font-size:1.2rem; font-weight:400; }
.form-ok{ display:none; padding:20px; border-radius:var(--r-sm); background:var(--night-2); color:#fff; font-size:15px; margin-top:20px; }
.form-ok.on{ display:block; }

.ft{ border-top:1px solid rgba(255,255,255,.11); padding:58px 0 0; overflow:hidden; }
.ft-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:52px; }
@media(max-width:980px){ .ft-top{ grid-template-columns:1fr 1fr; gap:34px; } }
@media(max-width:540px){ .ft-top{ grid-template-columns:1fr; } }
.ft-brand img{ height:46px; width:auto; margin-bottom:20px; }
.ft-brand p{ font-size:13.5px; color:rgba(255,255,255,.55); max-width:28ch; }
.ft h4{ font-size:11px; letter-spacing:.16em; font-weight:500; color:rgba(255,255,255,.5); margin:0 0 18px; }
.ft-col a, .ft-col p{ display:block; font-size:14px; color:rgba(255,255,255,.78); margin-bottom:11px; width:fit-content; }
.ft-col p.sm{ font-size:13px; color:rgba(255,255,255,.55); }
.ft-col a{ position:relative; transition:color .4s var(--ease), transform .4s var(--ease); }
.ft-col a:hover{ color:var(--gold); transform:translateX(5px); }
.ghost{ font-size:clamp(3.6rem,15.5vw,12.6rem); font-weight:300; letter-spacing:-.04em; color:#fff; opacity:.07; line-height:.8; white-space:nowrap; user-select:none; padding:0 0 4px 40px; }
@media(max-width:760px){ .ghost{ padding-left:20px; } }
.ft-end{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:22px 0 90px; border-top:1px solid rgba(255,255,255,.11); }
.ft-end p, .ft-end a{ font-size:12px; color:rgba(255,255,255,.5); }
.ft-end a:hover{ color:var(--gold); }

/* ============ REVELADO ============ */
.rv{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.rv.in{ opacity:1; transform:none; }
.page-in{ animation:pageIn .6s var(--ease); }
@keyframes pageIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }

@media(prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.15s !important; }
  .rv{ opacity:1; transform:none; }
  .slide img, .slide.on img{ transform:none; }
  html{ scroll-behavior:auto; }
  .wa-float::after{ display:none; }
}

/* ============ MetroIA · conexión CRM y SEO (v3) ============ */
#app:focus{ outline:none; }
/* palabra clave del H1, discreta sobre el titular */
.h1k{ display:block; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; color:var(--mark); margin-bottom:14px; line-height:1.4; }
.hero-body h1 .h1k{ color:rgba(255,255,255,.72); }
.f-side h1 .h1k{ margin-bottom:10px; }
.show-h1{ font-size:clamp(1.9rem,3.4vw,2.8rem); margin-top:18px; }
/* campo trampa: fuera de pantalla, nunca visible */
.hp{ position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden; }
/* botón flotante: se retira si hay otro WhatsApp grande en pantalla */
.wa-float{ transition:transform .35s var(--ease), opacity .35s var(--ease), background .3s; }
body.wa-off .wa-float{ opacity:0; transform:translateY(16px) scale(.9); pointer-events:none; }
/* estados de envío */
button[aria-busy="true"]{ opacity:.6; cursor:progress; }
button[aria-busy="true"] i{ animation:spin 1s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.form-ok b{ color:var(--gold); font-weight:500; }
.form-ok:focus{ outline:none; }
/* cotizador: ficha antes del valor */
.result.gate{ position:relative; }
.result .v.blur{ filter:blur(14px); user-select:none; opacity:.55; }
.result .lock{ display:inline-flex; align-items:center; gap:8px; margin-top:10px; font-size:12.5px; color:var(--gold); letter-spacing:.02em; }
.result .lock svg{ width:15px; height:15px; }
.gate-f{ margin-top:26px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); }
.result .fld label{ color:rgba(255,255,255,.66); }
.result .fld input{ background:var(--night-2); border-color:rgba(255,255,255,.16); color:#fff; }
.result .fld input:focus{ border-color:var(--gold); }
.result .fld .err{ color:#FF8A80; }
.result .fld.bad input{ border-color:#FF8A80; }
.result .form-note{ color:rgba(255,255,255,.6); max-width:34ch; }
.opt-l{ color:rgba(255,255,255,.4); font-size:11.5px; margin-left:4px; }
.gate-act{ display:flex; justify-content:space-between; gap:14px; align-items:center; flex-wrap:wrap; }
.pill.dark{ border-color:var(--gold); color:#fff; }
.pill.dark::before{ background:var(--gold); }
.pill.dark:hover{ color:var(--night); }
.pill.dark i{ background:#fff; }
.result.reveal .v{ animation:valIn .9s var(--ease) both; }
@keyframes valIn{ from{ opacity:0; filter:blur(12px); transform:translateY(6px); } to{ opacity:1; filter:none; transform:none; } }
.qnote{ margin-top:14px; font-size:13px; color:rgba(255,255,255,.72); }
.qnote:empty{ display:none; }
.qnote.warn{ color:var(--gold); }
.credit{ font-size:12px; color:rgba(255,255,255,.5); }
.credit b{ color:rgba(255,255,255,.78); font-weight:500; }
@media(max-width:640px){ .rev-l{ display:none; } }
@media(prefers-reduced-motion:reduce){ .result.reveal .v{ animation:none; } body.wa-off .wa-float{ transform:none; } }
.h1k.f-line{ color:var(--gold-dk); font-weight:600; }

/* ============ edición 2 del cliente ============ */
/* pie: la marca completa, sin cortes en ningún ancho */
.ghost{ font-size:11.4vw; text-align:center; padding:0 0 6px; letter-spacing:-.045em; }
@media(min-width:1700px){ .ghost{ font-size:12.2rem; } }
@media(max-width:760px){ .ghost{ padding-left:0; } }
/* tres materialidades */
.sys.three{ grid-template-columns:repeat(3,1fr); gap:32px; }
@media(max-width:1020px){ .sys.three{ grid-template-columns:1fr 1fr; } }
@media(max-width:700px){ .sys.three{ grid-template-columns:1fr; } }
.sys-card .fig svg.sip{ width:100%; height:100%; display:block; }
.mat-lb{ margin-top:22px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--mark); font-weight:500; }
.svc-nota{ margin-top:12px; font-size:13px; color:var(--gold-dk); font-weight:500; }
/* garantías: dos columnas */
.cols:has(> .col:nth-child(2):last-child){ grid-template-columns:1fr 1fr; max-width:820px; }
/* modelo próximamente */
.card.prox .prox-fig{ background:var(--night); display:grid; place-items:center; }
.prox-nm{ font-size:clamp(2.6rem,5vw,3.8rem); font-weight:300; letter-spacing:-.03em; color:rgba(255,255,255,.14); }
.card.prox .card-tag{ background:var(--gold); color:var(--night); }
.card.prox .card-price{ align-items:center; }
.card.prox .card-price .wa-btn{ min-height:44px; }
