/* Cerrajería Koi — landing pages stylesheet */
:root{
  --bg:#0B0D18;
  --bg-2:#0E1120;
  --bg-3:#12162A;
  --ink:#F2EFF8;
  --muted:#B4B0C4;
  --muted-2:#8E8AA3;
  --accent:#8B6CF6;
  --accent-soft:#B79CFF;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
  --radius:14px;
}

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

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}

a{color:inherit}

.wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 20px}

.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:.7rem 1.1rem;border-radius:8px;z-index:120;text-decoration:none;font-size:.85rem}
.skip:focus{left:1rem;top:1rem}

/* ---------- header ---------- */
.hdr{
  position:sticky;top:0;z-index:80;
  background:rgba(11,13,24,.86);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.85rem;padding-bottom:.85rem}

.brand{
  display:inline-flex;align-items:center;gap:.55rem;
  text-decoration:none;color:var(--ink);
  font-size:1rem;letter-spacing:.01em;font-weight:400;
}
.brand img{width:34px;height:36px;object-fit:contain;flex:0 0 auto}
.brand b{color:var(--accent-soft);font-weight:600}

.nav{display:flex;align-items:center;gap:1.5rem}
.nav a{color:var(--muted);text-decoration:none;font-size:.9rem;transition:color .2s ease}
.nav a:hover{color:var(--ink)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.72rem 1.15rem;border-radius:999px;
  font-size:.9rem;font-weight:500;line-height:1;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  border:1px solid transparent;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease;
}
.btn svg{width:17px;height:17px;flex:0 0 auto}
.btn:hover{transform:translateY(-1px)}

.btn-p{background:var(--accent);color:#fff;border-color:transparent}
.btn-p:hover{background:#7957E8}

.btn-s{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-s:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.28)}

/* ---------- mobile nav ---------- */
.burger{
  display:none;width:40px;height:40px;flex:0 0 auto;
  align-items:center;justify-content:center;
  background:transparent;border:1px solid var(--line-strong);
  border-radius:10px;cursor:pointer;padding:0;
}
.burger span{display:block;width:16px;height:1.5px;background:var(--ink);position:relative;transition:background-color .2s ease}
.burger span::before,.burger span::after{
  content:"";position:absolute;left:0;width:16px;height:1.5px;background:var(--ink);
  transition:transform .22s ease,top .22s ease;
}
.burger span::before{top:-5px}
.burger span::after{top:5px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

.mnav{
  display:none;flex-direction:column;
  padding:.4rem 20px 1.3rem;
  background:var(--bg-2);
  border-bottom:1px solid var(--line);
}
.mnav.open{display:flex}
.mnav a{
  color:var(--muted);text-decoration:none;font-size:.95rem;
  padding:.7rem 0;border-bottom:1px solid rgba(255,255,255,.05);
}
.mnav a:hover{color:var(--ink)}
.mnav .btn{margin-top:1rem;border-bottom:0;color:#fff;justify-content:center}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding:2.6rem 0 4.2rem}
.hero-a{background:radial-gradient(120% 95% at 12% 0%,rgba(139,108,246,.22),transparent 58%)}
.hero-b{background:radial-gradient(120% 95% at 82% 0%,rgba(139,108,246,.20),transparent 58%)}
.hero-c{background:radial-gradient(120% 95% at 50% 0%,rgba(139,108,246,.18),transparent 62%)}

.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;list-style:none;margin:0 0 2.2rem;padding:0;font-size:.76rem;color:var(--muted-2)}
.crumbs li{display:flex;align-items:center;gap:.45rem}
.crumbs li+li::before{content:"/";color:rgba(255,255,255,.25)}
.crumbs a{color:var(--muted-2);text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs li[aria-current]{color:var(--muted)}

.hero-grid{display:grid;gap:2.4rem;align-items:center}

.badge{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.42rem .85rem;border-radius:999px;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.03);
  font-size:.74rem;letter-spacing:.02em;color:#CFC9E6;
}
.badge i{width:7px;height:7px;border-radius:50%;background:#5BE3A0;box-shadow:0 0 0 3px rgba(91,227,160,.16);flex:0 0 auto}

h1{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:600;
  font-size:clamp(2rem,7vw,3.35rem);
  line-height:1.06;
  letter-spacing:-.01em;
  margin:1.1rem 0 1rem;
}
h1 span{display:block}
.accent{color:var(--accent-soft);font-style:italic;font-weight:500}

.lede{margin:0;max-width:46ch;color:#C6C2D6;font-size:1rem;line-height:1.68}
.lede strong{color:var(--ink);font-weight:600}

.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.9rem}

.frame{
  margin:0;position:relative;overflow:hidden;
  border-radius:18px;border:1px solid var(--line);
  background:#0F1220;
}
.frame img{width:100%;height:100%;object-fit:cover;object-position:center top}
.frame.land img{aspect-ratio:467/327}
.frame figcaption{
  position:absolute;left:.8rem;bottom:.8rem;
  padding:.32rem .65rem;border-radius:999px;
  background:rgba(11,13,24,.66);backdrop-filter:blur(6px);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#D8D2EC;
}

/* ---------- typography blocks ---------- */
.eyebrow{
  display:inline-block;margin-bottom:.9rem;
  font-size:.71rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent-soft);
}
h2{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:600;font-size:clamp(1.45rem,4.4vw,2.05rem);
  line-height:1.22;letter-spacing:-.005em;margin:0 0 1.1rem;
}
h3{font-size:1rem;font-weight:600;margin:0 0 .5rem}

.intro{padding:3rem 0 3.4rem}
.cols{display:grid;gap:1rem}
.cols p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.75}

.rule{border:0;border-top:1px solid var(--line);margin:0}

/* ---------- service blocks ---------- */
.svc{display:grid;gap:1.8rem;align-items:center;padding:3rem 0}
.svc p{margin:0 0 1rem;color:var(--muted);font-size:.94rem;line-height:1.72}
.num{display:block;font-family:'Playfair Display',serif;font-size:.85rem;letter-spacing:.22em;color:var(--accent);margin-bottom:.35rem}

.chk{list-style:none;margin:1.1rem 0 1.3rem;padding:0;display:grid;gap:.55rem}
.chk li{position:relative;padding-left:1.4rem;color:#C6C2D6;font-size:.92rem;line-height:1.55}
.chk li::before{content:"";position:absolute;left:0;top:.52em;width:6px;height:6px;border-radius:2px;background:var(--accent)}

.link{
  display:inline-block;color:var(--accent-soft);text-decoration:none;
  font-size:.92rem;font-weight:500;
  border-bottom:1px solid rgba(183,156,255,.35);padding-bottom:2px;
}
.link:hover{color:#D3C2FF;border-color:rgba(211,194,255,.6)}

/* ---------- coverage ---------- */
.cover{padding:3.4rem 0;background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.zones{display:grid;gap:.9rem;margin-top:1.4rem}
.zone{
  padding:1.35rem;border-radius:var(--radius);
  background:var(--bg-3);border:1px solid rgba(255,255,255,.06);
}
.zone h3{margin:0 0 .55rem;font-size:1rem;line-height:1.35}
.zone small{display:block;margin-bottom:.4rem;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:#9A8FC0}
.zone p{margin:0;color:var(--muted);font-size:.89rem;line-height:1.62}

.note{
  margin-top:1.3rem;padding:1rem 1.15rem;
  border-left:2px solid var(--accent);
  border-radius:0 10px 10px 0;
  background:rgba(139,108,246,.07);
}
.note p{margin:0;font-size:.87rem;line-height:1.65;color:#C6C2D6}

/* ---------- steps ---------- */
#como-solicitar{padding:3.4rem 0}
.steps{list-style:none;counter-reset:s;margin:1.4rem 0 0;padding:0;display:grid;gap:.9rem}
.steps li{
  counter-increment:s;padding:1.3rem;border-radius:var(--radius);
  background:var(--bg-3);border:1px solid rgba(255,255,255,.06);
}
.steps li::before{
  content:counter(s,decimal-leading-zero);display:block;
  font-family:'Playfair Display',serif;font-size:.8rem;letter-spacing:.18em;
  color:var(--accent);margin-bottom:.45rem;
}
.steps h3{font-size:.98rem}
.steps p{margin:0;color:var(--muted);font-size:.89rem;line-height:1.62}

/* ---------- facts ---------- */
#confianza{padding:3.2rem 0}
.facts{display:grid;gap:.9rem;margin:1.4rem 0 0}
.fact{padding:1.3rem;border-radius:var(--radius);background:var(--bg-3);border:1px solid rgba(255,255,255,.06)}
.fact dt{margin-bottom:.5rem;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase;color:#9A8FC0}
.fact dd{margin:0;color:#C6C2D6;font-size:.9rem;line-height:1.68}
.fact dd a{color:var(--accent-soft);text-decoration:none}
.fact dd a:hover{text-decoration:underline}

/* ---------- faq ---------- */
#preguntas{padding:3.2rem 0}
.faq details{border-bottom:1px solid var(--line);padding:.95rem 0}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  font-size:.95rem;font-weight:500;color:#EDEAF6;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.05rem;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:"\2013"}
.faq p{margin:.7rem 0 0;color:var(--muted);font-size:.91rem;line-height:1.72}

/* ---------- final cta ---------- */
.cta{padding:3.8rem 0 4.4rem;text-align:center;background:radial-gradient(circle at 50% 0%,rgba(139,108,246,.16),transparent 62%)}
.cta img{width:104px;height:104px;object-fit:contain;margin:0 auto 1.2rem}
.cta h2{max-width:26ch;margin-left:auto;margin-right:auto}
.cta p{margin:0 auto;max-width:52ch;color:var(--muted);font-size:.95rem;line-height:1.7}
.cta .cta-row{justify-content:center}

/* ---------- footer ---------- */
.ftr{background:#070911;padding:2.8rem 0 0;border-top:1px solid var(--line)}
.ftr .wrap:first-child{display:grid;gap:2rem}
.ftr .brand{font-size:.98rem}
.ftr h2{
  font-family:'Inter',sans-serif;font-weight:600;
  font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;
  color:#9A8FC0;margin:0 0 .9rem;
}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.ftr ul a{color:var(--muted);text-decoration:none;font-size:.86rem;line-height:1.5}
.ftr ul a:hover{color:var(--ink)}
.ftr ul a[aria-current]{color:var(--accent-soft)}
.ftr address{font-style:normal;color:var(--muted);font-size:.86rem;line-height:1.95}
.ftr address a{color:var(--accent-soft);text-decoration:none}
.ftr address a:hover{text-decoration:underline}
.ftr p{color:var(--muted);font-size:.86rem;line-height:1.7;max-width:36ch}
.ftr .lg{border-top:1px solid var(--line);margin-top:2.2rem;padding-top:1.1rem;padding-bottom:1.1rem}
.legal{margin:0;font-size:.75rem;color:#7E7A92}

/* ---------- sticky mobile bar ---------- */
.bar{
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  display:none;gap:.55rem;padding:.65rem 12px;
  background:rgba(11,13,24,.94);
  backdrop-filter:blur(12px);
  border-top:1px solid var(--line-strong);
}
.bar .btn{flex:1;padding:.8rem .9rem;font-size:.87rem}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (min-width:760px){
  .hero{padding:3rem 0 5rem}
  .hero-grid{grid-template-columns:1.12fr .88fr;gap:3rem}
  .cols{grid-template-columns:1fr 1fr;gap:2rem}
  .svc{grid-template-columns:1fr 1fr;gap:3rem;padding:3.6rem 0}
  .svc.flip .frame{order:2}
  .zones{grid-template-columns:repeat(3,1fr);gap:1rem}
  .steps{grid-template-columns:repeat(3,1fr)}
  .facts{grid-template-columns:repeat(3,1fr)}
  .ftr .wrap:first-child{grid-template-columns:1.5fr 1fr 1fr;gap:2.4rem}
  .cta{padding:4.6rem 0 5.2rem}
}

@media (max-width:759px){
  .nav{display:none}
  .burger{display:inline-flex}
  .bar{display:flex}
  body{padding-bottom:4.4rem}
  .hero-grid{gap:1.8rem}
  .frame{max-width:420px;margin:0 auto}
  .svc .frame{max-width:460px}
  .cta img{width:88px;height:88px}
  .legal{text-align:center}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .btn:hover{transform:none}
}