:root{
  --bg:#0b0f17;
  --card:#111827;
  --muted:#94a3b8;
  --text:#e5e7eb;
  --white:#ffffff;
  --line:rgba(255,255,255,.10);
  --primary:#fbbf24;
  --primary2:#fde68a;
  --shadow: 0 18px 50px rgba(0,0,0,.45);
  --radius: 18px;
  --radius2: 24px;
  --max: 1160px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 600px at 15% 10%, rgba(251,191,36,.16), transparent 60%),
    radial-gradient(900px 500px at 80% 0%, rgba(59,130,246,.12), transparent 55%),
    var(--bg);
  color:var(--text);
}

a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}

.container{width:min(var(--max), calc(100% - 32px)); margin:0 auto}

.header{
  position:sticky; top:0; z-index:50;
  background: rgba(11,15,23,.75);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 0;
  gap:14px;
}
.brand__logo{height:36px; width:auto; filter: invert(1) saturate(0); opacity:.95}
.nav{display:flex; gap:18px; align-items:center}
.nav a{color:var(--muted); font-weight:500}
.nav a:hover{color:var(--text)}

.header__actions{display:flex; gap:10px; align-items:center}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 14px;
  border-radius: 999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  color:var(--text);
  font-weight:600;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
  gap:10px;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.06)}
.btn--primary{
  background: linear-gradient(180deg, var(--primary), var(--primary2));
  color:#111827;
  border-color: rgba(0,0,0,.15);
}
.btn--sm{padding:8px 12px; font-size:13px}
.btn--ghost{background: transparent}
.btn--wa{
  background: rgba(16,185,129,.14);
  border-color: rgba(16,185,129,.35);
}
.btn--block{width:100%}

.burger{
  display:none;
  width:44px; height:44px;
  border:1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.04);
}
.burger span{display:block; height:2px; width:18px; background: var(--text); margin:5px auto; opacity:.9}

.mobileMenu{
  border-top: 1px solid var(--line);
  background: rgba(11,15,23,.95);
}
.mobileMenu__inner{
  padding: 12px 0 16px;
  display:flex; flex-direction:column; gap:10px;
}
.mobileMenu__inner a{padding:10px 12px; border-radius: 12px; color: var(--muted); background: rgba(11,15,23,.55); border:1px solid var(--line)}
.mobileMenu__inner a.btn{color:var(--text)}

.hero{padding: 54px 0 18px}
.hero__grid{display:grid; grid-template-columns: 1.1fr .9fr; gap:26px; align-items:center}
.badge{
  display:inline-flex; padding:6px 10px; border-radius:999px;
  border:1px solid var(--line); color: var(--muted); background: rgba(255,255,255,.03);
  font-size: 13px;
}
h1{font-size: clamp(34px, 4vw, 52px); line-height:1.05; margin: 14px 0 10px}
.lead{color: var(--muted); font-size: 16px; line-height:1.6; margin:0 0 18px; max-width: 56ch}
.hero__cta{display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 18px}

.hero__quicknav{display:flex; gap:10px; flex-wrap:wrap; margin: 0 0 18px}
.hero__quicknav .btn--ghost{background: rgba(255,255,255,.03)}
.hero__quicknav .btn--ghost:hover{background: rgba(255,255,255,.06)}

.hero__stats{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap:10px;
}
.stat{
  position:relative;
  z-index:2;
  border:1px solid var(--line);
  background: rgba(11,15,23,.55);
  backdrop-filter: blur(6px);
  border-radius: var(--radius);
  padding: 12px;
}
.stat__k{font-weight:700; font-size: 14px; letter-spacing:.2px}
.stat__v{color: var(--muted); font-size: 13px; margin-top: 4px}

.hero__media{
  position:relative;
  min-height: 420px;
}
.hero__card{
  position:absolute;
  border-radius: var(--radius2);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow: var(--shadow);
}
.hero__card img{width:100%; height:100%; object-fit: cover}
.hero__card{right:0; top: 10px; width: 88%; height: 78%}
.hero__card--small{left: 0; bottom: 0; width: 56%; height: 42%}
.hero__card--small2{right: 6%; bottom: -8px; width: 44%; height: 34%; opacity:.95}

.section{padding: 56px 0}
.section--alt{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.section__head{display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom: 18px}
.section__head h2{margin:0; font-size: 30px}
.section__head p{margin:0; color: var(--muted); max-width: 70ch; line-height: 1.6}

.cards{
  display:flex;
  flex-direction: column;
  gap: 14px;
  max-width: 980px;
  margin: 0 auto;
}

.card{
  display:flex;
  gap: 16px;
  align-items: stretch;
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  border-radius: var(--radius2);
  padding: 16px;
  min-height: 0;
}

.card__media{
  flex: 0 0 220px;
  width: 220px;
  height: 140px;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
}

.card__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
}

.card__body{
  flex: 1 1 auto;
  min-width: 0;
}

/* Mobile: apilar imagen + texto */
@media (max-width: 640px){
  .cards{ max-width: 100%; }
  .card{ flex-direction: column; }
  .card__media{ width: 100%; flex-basis: auto; height: 180px; }
}


.card.is-clickable{cursor:pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.card.is-clickable:hover{transform: translateY(-2px); border-color: rgba(255,255,255,.22); box-shadow: 0 10px 24px rgba(0,0,0,.28);}
.card.is-clickable:focus-within{outline: 2px solid rgba(94,234,212,.55); outline-offset: 2px;}
.card h3{margin:0 0 8px; font-size: 18px}
.card p{margin:0 0 10px; color: var(--muted); line-height:1.6}
.card ul{margin:0; padding-left: 18px; color: var(--muted); line-height:1.7}
.card--emergency{
  background: radial-gradient(500px 240px at 30% 0%, rgba(16,185,129,.20), transparent 70%), rgba(255,255,255,.03);
}
.link{color: var(--primary2); font-weight:600}
.link:hover{color: var(--primary)}

.gallery{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.gItem{
  border:1px solid var(--line);
  border-radius: 16px;
  overflow:hidden;
  background: rgba(255,255,255,.02);
  cursor:pointer;
  position:relative;
}
.gItem img{width:100%; height: 180px; object-fit: cover; transition: transform .25s ease}
.gItem:hover img{transform: scale(1.04)}
.gItem__cap{
  position:absolute; left:10px; bottom:10px;
  font-size: 12px; color: rgba(255,255,255,.9);
  background: rgba(0,0,0,.35);
  padding: 6px 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
}

.split{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 16px;
  align-items:start;
}
.lead2{color: var(--muted); line-height: 1.7; margin: 10px 0 16px}
.ticks{display:grid; gap:10px}
.tick{border:1px solid var(--line); background: rgba(255,255,255,.03); border-radius: 14px; padding: 12px; color: var(--muted)}
.panel{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  border-radius: var(--radius2);
  padding: 16px;
}
.panel h3{margin: 0 0 6px; font-size: 16px}
.panel p{margin:0 0 12px; color: var(--muted); line-height:1.6}
.panel ul{margin:0; padding-left:18px; color: var(--muted); line-height:1.7}

.contact{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 14px;
  align-items:start;
}
.form{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  border-radius: var(--radius2);
  padding: 16px;
}
.form__row{display:grid; grid-template-columns: 1fr 1fr; gap:10px}
label{display:grid; gap:8px; font-weight:600; font-size: 13px; color: rgba(255,255,255,.9); margin-bottom: 10px}
input, select, textarea{
  width:100%;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(0,0,0,.18);
  color: var(--text);
  padding: 12px 12px;
  outline:none;
}
textarea{resize: vertical}
input:focus,select:focus,textarea:focus{border-color: rgba(251,191,36,.6)}
.form__actions{display:flex; gap:10px; flex-wrap:wrap; margin-top: 6px}
.fineprint{margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height:1.6}
.fineprint a{color: var(--primary2)}
.side{display:grid; gap: 12px}
.side__box{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  border-radius: var(--radius2);
  padding: 16px;
}
.side__box h3{margin:0 0 8px}
.side__box p{margin:0 0 10px; color: var(--muted); line-height:1.6}

.footer{
  border-top:1px solid var(--line);
  padding: 22px 0;
  background: rgba(0,0,0,.18);
}
.footer__inner{display:grid; grid-template-columns: 1.4fr .6fr 1fr; gap: 14px; align-items:start}
.footer__brand img{height: 30px; filter: invert(1) saturate(0); opacity:.95}
.footer__brand p{margin:10px 0 0; color: var(--muted); line-height:1.6}
.footer__links{display:grid; gap:10px}
.footer__links a{color: var(--muted)}
.footer__links a:hover{color: var(--text)}
.footer__copy{color: var(--muted); line-height:1.8}
.footer__copy a{color: var(--primary2)}

.floatingWa{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display:flex; align-items:center; gap:10px;
  background: rgba(16,185,129,.16);
  border: 1px solid rgba(16,185,129,.35);
  padding: 12px 14px;
  border-radius: 999px;
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
}
.floatingWa span{font-weight:700}

@media (max-width: 980px){
  .nav{display:none}
  .burger{display:inline-block}
  .hero__grid, .split, .contact{grid-template-columns: 1fr}
  .hero__media{min-height: 320px}
  .cards{grid-template-columns: 1fr 1fr}
  .gallery{grid-template-columns: repeat(3, 1fr)}
  .footer__inner{grid-template-columns: 1fr}
}

@media (max-width: 620px){
  .hero{padding-top: 36px}
  .hero__stats{grid-template-columns: 1fr; gap:10px}
  .cards{grid-template-columns: 1fr}
  .gallery{grid-template-columns: repeat(2, 1fr)}
  .gItem img{height: 150px}
  .form__row{grid-template-columns: 1fr}
  .header__actions .btn--ghost{display:none}
}


/* Hero image (single, curated) */
.hero__card--single{overflow:hidden}
.hero__card--single img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}


/* Hero carousel */
.hero__carousel{position:relative; border-radius: 22px; overflow:hidden; background: rgba(255,255,255,.04); box-shadow: var(--shadow)}
.hero__slides{display:flex; width:100%; transition: transform .5s ease}
.hero__slide{min-width:100%; position:relative}
.hero__slide img{display:block; width:100%; height:100%; object-fit:cover; aspect-ratio: 16/10}
.hero__slide figcaption{position:absolute; left:14px; bottom:14px; padding:8px 10px; border-radius: 999px; font-weight:700; font-size:.85rem; background: rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.18); backdrop-filter: blur(6px)}
.hero__dots{position:absolute; right:14px; bottom:14px; display:flex; gap:8px}
.hero__dots .dot{width:10px; height:10px; border-radius:999px; border:1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.14); cursor:pointer}
.hero__dots .dot.is-active{background: rgba(255,255,255,.9)}

/* Service card link */
.card__link{display:inline-flex; margin-top:12px; color: rgba(255,255,255,.92); font-weight:700; text-decoration:none}
.card__link:hover{text-decoration:underline}

.subcards{display:grid; gap:10px; margin-top: 12px}
.subcard{
  display:block;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.02);
  border-radius: 16px;
  padding: 12px;
  text-decoration:none;
  color: rgba(255,255,255,.92);
}
.subcard:hover{border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.04)}
.subcard__title{font-weight:800; letter-spacing:.2px; margin-bottom: 6px}
.subcard__text{color: var(--muted); font-size: 12px; line-height: 1.45}
.subcard__cta{margin-top: 8px; font-weight:800; font-size: 12px; color: rgba(255,255,255,.92)}

/* Video cards */
.section--tight{padding-top: 28px}
.videoCards{display:grid; grid-template-columns: repeat(4,1fr); gap:14px}
.vCard{display:block; padding:16px; border-radius:18px; background: rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); text-decoration:none; color:inherit; box-shadow: 0 18px 40px rgba(0,0,0,.25)}
.vCard:hover{transform: translateY(-2px); transition: transform .2s ease}
.vCard__k{font-weight:800; font-size:1rem}
.vCard__v{margin-top:6px; color: var(--muted)}
.vCard__cta{margin-top:10px; font-weight:800; color: rgba(255,255,255,.92)}

@media (max-width: 900px){
  .videoCards{grid-template-columns:1fr; }
}

.slogan{margin-top:10px; font-weight:800; color: rgba(255,255,255,.92)}


/* v4 additions */
.hero__collage{
  border-radius: var(--radius2);
  overflow:hidden;
  border:1px solid var(--line);
  background: rgba(255,255,255,.02);
}
.hero__collage img{
  width:100%;
  height:auto;
  display:block;
}


.callout{
  margin-top: 18px;
  border:1px solid var(--line);
  border-radius: var(--radius2);
  padding: 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  background: rgba(255,255,255,.03);
}
.callout h3{ margin: 0 0 6px 0; }
.callout p{ margin:0; color: var(--muted); }
@media (max-width: 820px){
  .callout{ flex-direction:column; align-items:flex-start; }

@media (max-width: 420px){
  .cards{grid-template-columns: 1fr}
}

}


/* Accessibility: hide skip link until focus */
.skip{
  position:absolute;
  left:-9999px;
  top:0;
  padding:10px 14px;
  background:#111;
  color:#fff;
  border-radius:10px;
  z-index:9999;
  text-decoration:none;
}
.skip:focus{
  left:12px;
  top:12px;
  outline:2px solid rgba(255,255,255,.6);
}

/* Stronger slogan presence */
.brand__tag{
  font-weight:700;
  opacity:.95;
}
.slogan{
  font-weight:800;
  letter-spacing:.2px;
  font-size:1.15rem;
  margin-top:.6rem;
}

/* Floating WhatsApp button */
.waFloat{
  position:fixed;
  right:16px;
  bottom:16px;
  width:56px;
  height:56px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(16,185,129,.95);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  z-index:9998;
  border:1px solid rgba(255,255,255,.16);
}
.waFloat svg{
  width:28px;
  height:28px;
  fill:#fff;
}
.waFloat:hover{ transform: translateY(-1px); }

/* Bottom bar (mobile app-like) */
.bottomBar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  display:none;
  z-index:9997;
  padding: 10px 12px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
  background: rgba(11,18,32,.78);
  backdrop-filter: blur(10px);
  border-top: 1px solid rgba(255,255,255,.10);
}
.bottomBar__inner{max-width: 1120px; margin: 0 auto; display:flex; gap:10px; justify-content:space-between;}
.bottomBar a{
  flex:1;
  text-decoration:none;
  color: rgba(255,255,255,.92);
  font-weight:800;
  font-size: 12px;
  text-align:center;
  padding: 12px 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
}
.bottomBar a:active{transform: translateY(1px)}
.bottomBar a.is-primary{background: rgba(16,185,129,.18); border-color: rgba(16,185,129,.35)}

@media (max-width: 719px){
  .bottomBar{display:block;}
  /* leave space so content isn't hidden behind the bar */
  body{padding-bottom: 88px;}
  /* keep WhatsApp floating button above bottom bar */
  .waFloat{bottom: 92px;}
}

/* Google card */
.googleCard{
  margin-top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  text-decoration:none;
  color:inherit;
}
.googleCard__title{ font-weight:700; }
.googleCard__sub{ opacity:.9; font-size:.92rem; }
.stars{ letter-spacing:1px; opacity:.95; }

/* Gallery items should look clickable */
.gItem{ cursor:pointer; }

/* Header brand */
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text)}
.brand__txt{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-weight:800; letter-spacing:.3px}


/* --- Ajustes tipografía cards Servicios (contenido más chico, títulos igual) --- */
.card p{ font-size: 12px; line-height: 1.35; }
.card ul li{ font-size: 12px; line-height: 1.35; }
.card a{ font-size: 12px; }

/* Mantener títulos como estaban (no tocar h3) */

/* Card destacada */
.card.featured{
  border: 1px solid rgba(255, 202, 40, 0.45);
  box-shadow: 0 0 0 1px rgba(255, 202, 40, 0.12), 0 18px 50px rgba(0,0,0,0.35);
  background: linear-gradient(180deg, rgba(255, 202, 40, 0.06), rgba(0,0,0,0));
}
.card .badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: .02em;
  color: rgba(255, 235, 200, 0.95);
  background: rgba(255, 202, 40, 0.16);
  border: 1px solid rgba(255, 202, 40, 0.25);
}


/* Clients */
.clients-note{
  margin-top: 14px;
  opacity: 0.85;
}

.clients-grid{
  margin-top: 18px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

@media (min-width: 900px){
  .clients-grid{
    grid-template-columns: 1fr 1fr;
    gap: 22px;
  }
}

.client-card{
  display: block;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 18px 40px rgba(0,0,0,0.30);
  background: rgba(255,255,255,0.04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.client-card img{
  width: 100%;
  height: auto;
  display: block;
}

.client-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 55px rgba(0,0,0,0.38);
  border-color: rgba(255,202,40,0.35);
}
