:root{
  --bg:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#e5e7eb;
  --brand:#25d366;
  --max:1100px;
  --radius:14px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:Arial, Helvetica, sans-serif; color:var(--text); background:var(--bg); }
.main-content{ max-width:var(--max); margin:0 auto; padding:0 18px; }

/* Header */
.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  z-index:8000;
}

.brand{ display:flex; align-items:center; gap:12px; min-width:0; }
.brand-logo{ width:208px; height:auto; display:block; }
.brand-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.brand-name{ font-weight:900; font-size:1.6rem; line-height:1.1; color:var(--text); white-space:nowrap; }
.brand-sub{ font-weight:800; font-size:1.05rem; line-height:1.15; color:var(--muted); white-space:nowrap; }

.site-nav--desktop .menu{ list-style:none; display:flex; gap:18px; align-items:center; }
.site-nav--desktop .menu a{ text-decoration:none; color:var(--text); font-weight:900; }

.header-actions{ display:flex; align-items:center; gap:12px; }

.cta-whatsapp{
  display:inline-block;
  text-decoration:none;
  border-radius:12px;
  padding:12px 16px;
  font-weight:900;
  background:var(--brand);
  color:#fff;
  border:1px solid transparent;
  white-space:nowrap;
}
.cta-whatsapp:hover{ filter:brightness(0.95); }

.hamburger{
  display:none;
  width:46px;
  height:44px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  padding:10px;
}
.hamburger-bar{ display:block; width:100%; height:3px; background:#111827; border-radius:999px; }
.hamburger-bar + .hamburger-bar{ margin-top:6px; }

/* Mobile menu */
.mobile-backdrop{
  position:fixed; inset:0;
  background:rgba(0,0,0,.38);
  opacity:0; pointer-events:none;
  transition:opacity 200ms ease;
  z-index:9000;
}
.mobile-menu{
  position:fixed; top:0; right:0; height:100vh;
  width:min(84vw, 340px);
  background:#fff;
  border-left:1px solid rgba(0,0,0,.12);
  box-shadow:-18px 0 44px rgba(17,24,39,.20);
  transform:translateX(110%);
  transition:transform 220ms ease;
  z-index:9500;
  display:flex; flex-direction:column;
}
.mobile-menu-head{ display:flex; align-items:center; justify-content:space-between; padding:14px; border-bottom:1px solid var(--line); }
.mobile-menu-title{ font-size:1.05rem; font-weight:900; }
.mobile-close{ width:40px; height:40px; border-radius:12px; border:1px solid var(--line); background:#fff; cursor:pointer; font-size:22px; line-height:1; }
.mobile-menu-list{ list-style:none; padding:10px; display:flex; flex-direction:column; gap:6px; overflow:auto; }
.mobile-menu-list a{ display:block; padding:12px 12px; border-radius:12px; text-decoration:none; color:#111827; font-weight:900; }
.mobile-menu-list a:hover{ background:rgba(0,0,0,.06); }
.mobile-menu-foot{ margin-top:auto; padding:12px; border-top:1px solid var(--line); }

body.menu-open .mobile-backdrop{ opacity:1; pointer-events:auto; }
body.menu-open .mobile-menu{ transform:translateX(0); }

/* Hero */
.hero{ padding:28px 0 18px; }
.hero-inner{ border:1px solid var(--line); border-radius:var(--radius); padding:22px; background:#fafafa; }
.hero h1{ max-width:34ch; line-height:1.15; overflow-wrap:anywhere; word-break:normal; hyphens:auto; }
.hero p{ max-width:60ch; line-height:1.55; }

.section-title{ margin:34px 0 18px; }
.section-title p{ color:var(--muted); }

/* Grid */
.grid{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:16px; }

/* Cards */
.card{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.card img{ width:100%; height:160px; object-fit:cover; background:#f3f4f6; display:block; }
.card-catalog{ padding:12px 14px; border-bottom:1px solid var(--line); }
.btn{ display:inline-block; text-decoration:none; border-radius:12px; padding:12px 16px; font-weight:900; border:1px solid transparent; }
.btn.primary{ background:var(--brand); color:#fff; }
.btn.primary:hover{ filter:brightness(0.95); }
.btn.catalog{ width:100%; text-align:center; background:#dc2626; color:#fff; border:1px solid #dc2626; padding:10px 14px; border-radius:12px; font-weight:900; display:block; }
.card-body{ padding:14px; display:flex; flex-direction:column; gap:10px; }
.card-title{ font-size:1.1rem; font-weight:900; }
.card-desc{ color:var(--muted); }

/* Portfolio covers */
.cover-card{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; padding:0; cursor:pointer; display:block; width:100%; text-align:left; }
.cover-media{ position:relative; overflow:hidden; }
.cover-img{ width:100%; height:180px; object-fit:cover; background:#f3f4f6; display:block; }
.cover-card:hover .cover-img{ transform:scale(1.05); transition:transform .2s ease; }
.cover-overlay{ position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.72), rgba(0,0,0,0) 60%); display:flex; align-items:flex-end; padding:12px; }
.cover-title{ color:#fff; font-weight:900; font-size:1.1rem; text-shadow:1px 1px 3px rgba(0,0,0,0.5); }

/* ✅ GALERIA DE VÍDEOS */
.video-card .cover-media::after {
  content: '▶';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 48px;
  color: white;
  text-shadow: 0 0 10px rgba(0,0,0,0.7);
  opacity: 0.8;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.video-card:hover .cover-media::after {
  transform: translate(-50%, -50%) scale(1.1);
  opacity: 1;
}

/* Lightbox */
.lightbox{ position:fixed; inset:0; display:none; z-index:10000; }
.lightbox.show{ display:block; }
.lightbox-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.65); }
.lightbox-panel{ position:relative; max-width:min(980px, calc(100vw - 24px)); max-height:calc(100vh - 24px); margin:12px auto; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.35); display:flex; flex-direction:column; }
.lightbox-close{ position:absolute; top:10px; right:10px; width:40px; height:40px; border-radius:9999px; border:1px solid rgba(0,0,0,.12); background:rgba(255,255,255,.95); cursor:pointer; font-size:24px; z-index:2; }
.lightbox-counter{ position:absolute; top:12px; left:12px; padding:8px 12px; border-radius:9999px; background:rgba(17,24,39,.72); color:#fff; font-weight:900; z-index:2; }
.lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:9999px; border:1px solid rgba(0,0,0,.14); background:rgba(255,255,255,.92); cursor:pointer; font-size:28px; display:flex; align-items:center; justify-content:center; z-index:2; }
.lightbox-nav.prev{ left:10px; }
.lightbox-nav.next{ right:10px; }
.lightbox-img{ width:100%; max-height:72vh; object-fit:contain; background:#0b0f14; }
.lightbox-caption{ padding:14px 16px; border-top:1px solid var(--line); }
.lightbox-title{ font-weight:900; }

/* ✅ LIGHTBOX DE VÍDEO */
.video-panel { background: black; }
.video-player-container {
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: #000;
}
.video-player-container iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.contact-card{ border:1px solid var(--line); border-radius:var(--radius); padding:16px; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.contact-cta{ font-weight:900; }

.site-footer{ padding:26px 0 40px; color:var(--muted); text-align:center; border-top:1px solid var(--line); margin-top:30px; }

/* Responsivo */
@media (max-width: 900px){
  .site-nav--desktop{ display:none; }
  .hamburger{ display:inline-block; }
  .site-header{ gap:12px; padding:10px 0; }
  .brand-logo{ width:150px; }
  .brand-name{ font-size:1.25rem; white-space:normal; text-align:left; }
  .brand-sub{ font-size:0.98rem; white-space:normal; max-width:26ch; overflow-wrap:anywhere; }
  .cta-whatsapp{ padding:10px 12px; font-size:0.95rem; }
  .grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px){
  .cta-whatsapp{ display:none; }
}