/* =========================================================
   INVERSIONES Y CONSTRUCCIONES ALIVAR, C.A.
   Estilos del sitio - Prototipo v1 (basado en diseño Figma)
   Soporta TEMA OSCURO (por defecto) y TEMA CLARO via
   <html data-theme="light">. Acento dorado/ocre en ambos.
   ========================================================= */

:root{
  /* --- Marca (igual en ambos temas) --- */
  --gold:      #c8912f;   /* dorado principal (fondos de botón/acento fuerte) */
  --gold-2:    #e0a93f;   /* dorado de texto/acento */
  --gold-ink:  #1a1206;   /* texto sobre dorado */

  /* --- Superficies y texto (TEMA OSCURO por defecto) --- */
  --bg:        #0f0f11;   /* fondo base */
  --bg-alt:    #141417;   /* fondo de sección alterna */
  --surface:   #17171a;   /* tarjetas / paneles */
  --surface-2: #1e1e22;
  --surface-3: #26262b;   /* chips de íconos */
  --border:    #33333a;
  --text:      #cfcfd4;   /* cuerpo */
  --text-muted:#a6a6ad;
  --text-dim:  #7d7d86;
  --heading:   #ffffff;

  --header-bg:      rgba(15,15,17,.72);
  --header-bg-solid:rgba(15,15,17,.96);
  --header-border:  rgba(255,255,255,.06);

  --hero-radial: rgba(200,145,47,.14);
  --hero-g1: #121214;
  --hero-g2: #0f0f11;
  --hero-stripes: rgba(255,255,255,.02);

  --panel-g1: #1c1c20;   /* panel info de contacto */
  --panel-g2: #131316;

  --ph-g1: #2a2a30;      /* placeholder de foto */
  --ph-g2: #131316;
  --ph-stripes: rgba(255,255,255,.025);

  --btn-outline-border: rgba(255,255,255,.28);
  --btn-outline-color:  #ffffff;

  --shadow: 0 18px 40px -18px rgba(0,0,0,.55);

  --font-head: 'Poppins', 'Segoe UI', Arial, sans-serif;
  --font-body: 'Inter', 'Segoe UI', Arial, sans-serif;
  --container: 1200px;
  --radius: 10px;
  --transition: .28s cubic-bezier(.4,0,.2,1);
}

/* =========================================================
   TEMA CLARO
   ========================================================= */
:root[data-theme="light"]{
  --gold-2:    #a8751a;   /* dorado más oscuro para legibilidad sobre claro */

  --bg:        #f5f6f8;
  --bg-alt:    #eef1f5;
  --surface:   #ffffff;
  --surface-2: #f3f5f8;
  --surface-3: #eceff3;
  --border:    #e0e4ea;
  --text:      #4a4f57;
  --text-muted:#6b7280;
  --text-dim:  #8b909a;
  --heading:   #1a1d23;

  --header-bg:      rgba(255,255,255,.78);
  --header-bg-solid:rgba(255,255,255,.97);
  --header-border:  rgba(0,0,0,.07);

  --hero-radial: rgba(200,145,47,.16);
  --hero-g1: #ffffff;
  --hero-g2: #eef1f5;
  --hero-stripes: rgba(0,0,0,.02);

  --panel-g1: #ffffff;
  --panel-g2: #f0f2f6;

  --ph-g1: #dfe3e9;
  --ph-g2: #eef1f5;
  --ph-stripes: rgba(0,0,0,.03);

  --btn-outline-border: rgba(0,0,0,.2);
  --btn-outline-color:  #1a1d23;

  --shadow: 0 18px 40px -20px rgba(30,40,60,.22);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .3s ease, color .3s ease;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-head); color:var(--heading); line-height:1.15; font-weight:700; }

/* ---------- Utilidades ---------- */
.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 24px; }
.eyebrow{
  display:inline-block; font-family:var(--font-head); font-weight:600;
  color:var(--gold-2); text-transform:uppercase; letter-spacing:.18em;
  font-size:.78rem; margin-bottom:18px;
}
.section{ padding:96px 0; position:relative; }
.section-head{ max-width:720px; margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-title{ font-size:clamp(1.7rem, 3.4vw, 2.6rem); margin-bottom:16px; }
.section-title .accent{ color:var(--gold-2); }
.lead{ color:var(--text-muted); font-size:1.02rem; }

.btn{
  display:inline-flex; align-items:center; gap:10px; cursor:pointer;
  font-family:var(--font-head); font-weight:600; font-size:.9rem;
  padding:15px 30px; border-radius:6px; border:2px solid transparent;
  transition:var(--transition); letter-spacing:.02em;
}
.btn-primary{ background:var(--gold); color:var(--gold-ink); }
.btn-primary:hover{ background:var(--gold-2); transform:translateY(-2px); box-shadow:0 12px 24px -10px rgba(200,145,47,.6); }
.btn-outline{ border-color:var(--btn-outline-border); color:var(--btn-outline-color); }
.btn-outline:hover{ border-color:var(--gold-2); color:var(--gold-2); }
.btn-dark{ background:#111; color:#fff; }
.btn-dark:hover{ background:#000; transform:translateY(-2px); }

/* ---------- Placeholder de foto ---------- */
.photo-ph{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:
    linear-gradient(135deg, rgba(200,145,47,.16), rgba(0,0,0,0) 55%),
    repeating-linear-gradient(45deg, var(--ph-stripes) 0 12px, transparent 12px 24px),
    linear-gradient(160deg, var(--ph-g1), var(--ph-g2));
  min-height:280px; display:flex; align-items:flex-end;
  border:1px solid var(--border);
}
.photo-ph .tag{
  font-family:var(--font-head); font-size:.72rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--text-muted);
  background:rgba(0,0,0,.28); padding:8px 14px; margin:14px; border-radius:4px;
  border:1px solid var(--border); backdrop-filter:blur(4px);
}
:root[data-theme="light"] .photo-ph .tag{ background:rgba(255,255,255,.55); }
.photo-ph .ph-icon{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-60%);
  width:56px; height:56px; opacity:.5;
}

/* ---------- Imágenes reales en contenedores ---------- */
.media-fill{ position:relative; overflow:hidden; border-radius:var(--radius); border:1px solid var(--border); }
.media-fill img{ width:100%; height:100%; object-fit:cover; display:block; }
.safety-media img{ width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; }
.why-media img{ width:100%; height:360px; object-fit:cover; display:block; }
.why-media,.safety-media{ overflow:hidden; border-radius:var(--radius); border:1px solid var(--border); }
.card-media{ height:200px; overflow:hidden; border-bottom:1px solid var(--border); }
.card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.card:hover .card-media img{ transform:scale(1.06); }

/* =========================================================
   HEADER / NAV
   ========================================================= */
.header{
  position:fixed; top:0; left:0; width:100%; z-index:100;
  background:var(--header-bg); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--header-border);
  transition:var(--transition);
}
.header.scrolled{ background:var(--header-bg-solid); border-bottom-color:var(--border); }
.nav{ display:flex; align-items:center; justify-content:space-between; height:76px; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand-logo{
  height:52px; width:auto;
}
.brand-txt strong{ display:block; font-family:var(--font-head); color:var(--heading); font-size:.95rem; line-height:1.1; letter-spacing:.02em; }
.brand-txt span{ font-size:.68rem; color:var(--text-dim); letter-spacing:.14em; text-transform:uppercase; }
.menu{ display:flex; align-items:center; gap:34px; }
.menu a{ font-family:var(--font-head); font-weight:500; font-size:.9rem; color:var(--text); position:relative; transition:var(--transition); }
.menu a::after{ content:''; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--gold-2); transition:var(--transition); }
.menu a:hover{ color:var(--heading); } .menu a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:14px; }

/* Botón cambia-tema */
.theme-toggle{
  width:42px; height:42px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface-2); color:var(--text); cursor:pointer;
  display:grid; place-items:center; transition:var(--transition); flex-shrink:0;
}
.theme-toggle:hover{ border-color:var(--gold-2); color:var(--gold-2); }
.theme-toggle .icon-sun{ display:none; }
.theme-toggle .icon-moon{ display:block; }
:root[data-theme="light"] .theme-toggle .icon-sun{ display:block; }
:root[data-theme="light"] .theme-toggle .icon-moon{ display:none; }

.burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; }
.burger span{ width:26px; height:2px; background:var(--heading); transition:var(--transition); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative; padding:150px 0 90px; overflow:hidden;
  background:
    radial-gradient(1100px 600px at 80% -10%, var(--hero-radial), transparent 60%),
    linear-gradient(180deg, var(--hero-g1) 0%, var(--hero-g2) 100%);
}
.hero::before{
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg, var(--hero-stripes) 0 14px, transparent 14px 28px);
  pointer-events:none;
}
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:50px; align-items:center; position:relative; z-index:2; }
.hero h1{ font-size:clamp(2.1rem, 4.6vw, 3.5rem); margin:6px 0 22px; }
.hero h1 .accent{ color:var(--gold-2); }
.hero p{ font-size:1.06rem; color:var(--text-muted); max-width:560px; margin-bottom:34px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }
.hero-media{ position:relative; }
.hero-photo{
  position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--border);
  min-height:340px; box-shadow:var(--shadow);
}
.hero-photo img{ width:100%; height:100%; object-fit:cover; }
.hero-badge{
  position:absolute; left:-18px; bottom:26px; background:var(--gold);
  color:var(--gold-ink); padding:16px 22px; border-radius:12px; box-shadow:var(--shadow);
  font-family:var(--font-head); z-index:3;
}
.hero-badge b{ display:block; font-size:1.6rem; line-height:1; }
.hero-badge span{ font-size:.75rem; font-weight:600; }

/* Barra de stats bajo el hero */
.stats{ background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:34px 24px; text-align:center; border-right:1px solid var(--border); }
.stat:last-child{ border-right:0; }
.stat b{ display:block; font-family:var(--font-head); font-size:2.2rem; color:var(--gold-2); line-height:1; }
.stat span{ font-size:.85rem; color:var(--text-muted); margin-top:8px; display:block; }

/* =========================================================
   ¿POR QUÉ ELEGIRNOS?
   ========================================================= */
.why{ background:var(--bg); }
.why-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; }
.why-media{ position:relative; }
.why-list{ display:grid; gap:22px; margin-top:8px; }
.why-item{ display:flex; gap:20px; padding:22px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); transition:var(--transition); }
.why-item:hover{ border-color:var(--gold); transform:translateY(-3px); box-shadow:var(--shadow); }
.why-item .num{ font-family:var(--font-head); font-weight:700; color:var(--gold-2); font-size:1.1rem; background:var(--surface-3); width:44px; height:44px; border-radius:8px; display:grid; place-items:center; flex-shrink:0; }
.why-item h3{ font-size:1.05rem; margin-bottom:6px; }
.why-item p{ font-size:.92rem; color:var(--text-muted); }

/* =========================================================
   SERVICIOS
   ========================================================= */
.services{ background:linear-gradient(180deg,var(--bg),var(--bg-alt)); }
.cards-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:var(--transition); }
.card:hover{ transform:translateY(-6px); border-color:var(--gold); box-shadow:var(--shadow); }
.card .photo-ph{ border-radius:0; border:0; border-bottom:1px solid var(--border); min-height:190px; }
.card-body{ padding:26px 24px 30px; }
.card-icon{ width:52px; height:52px; border-radius:10px; background:var(--surface-3); display:grid; place-items:center; margin-bottom:18px; color:var(--gold-2); }
.card h3{ font-size:1.18rem; margin-bottom:12px; }
.card p{ font-size:.93rem; color:var(--text-muted); margin-bottom:18px; }
.card .more{ font-family:var(--font-head); font-weight:600; font-size:.85rem; color:var(--gold-2); display:inline-flex; align-items:center; gap:8px; }
.card .more svg{ transition:var(--transition); }
.card:hover .more svg{ transform:translateX(4px); }

/* =========================================================
   SEGURIDAD / HSE
   ========================================================= */
.safety{ background:var(--bg); }
.safety-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:56px; align-items:center; }
.safety h2{ font-size:clamp(1.6rem,3vw,2.4rem); margin-bottom:20px; }
.safety p{ color:var(--text-muted); margin-bottom:28px; }
.safety-media{ position:relative; min-height:400px; }
.play-btn{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:82px; height:82px; border-radius:50%; background:var(--gold);
  display:grid; place-items:center; cursor:pointer; border:0;
  box-shadow:0 0 0 0 rgba(200,145,47,.5); animation:pulse 2.4s infinite;
}
.play-btn svg{ margin-left:4px; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(200,145,47,.5);} 70%{ box-shadow:0 0 0 24px rgba(200,145,47,0);} 100%{ box-shadow:0 0 0 0 rgba(200,145,47,0);} }
.safety-points{ display:grid; gap:14px; margin-bottom:28px; }
.safety-points li{ display:flex; gap:12px; align-items:flex-start; color:var(--text); font-size:.95rem; }
.safety-points li svg{ flex-shrink:0; margin-top:3px; color:var(--gold-2); }

/* =========================================================
   CAPACIDADES
   ========================================================= */
.caps{ background:linear-gradient(180deg,var(--bg-alt),var(--bg)); }
.cards-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.cap{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:30px 24px; transition:var(--transition); position:relative; overflow:hidden; }
.cap::before{ content:''; position:absolute; top:0; left:0; width:100%; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:var(--transition); }
.cap:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.cap:hover::before{ transform:scaleX(1); }
.cap-icon{ width:54px; height:54px; border-radius:12px; background:var(--surface-3); display:grid; place-items:center; color:var(--gold-2); margin-bottom:18px; }
.cap h3{ font-size:1.06rem; margin-bottom:10px; }
.cap p{ font-size:.9rem; color:var(--text-muted); }

/* =========================================================
   CTA / CONTACTO
   ========================================================= */
.contact{ background:var(--bg); }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:16px; overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow); }
.contact-info{ background:linear-gradient(160deg,var(--panel-g1),var(--panel-g2)); padding:56px 48px; }
.contact-info .eyebrow{ margin-bottom:14px; }
.contact-info h2{ font-size:clamp(1.5rem,2.6vw,2.1rem); margin-bottom:18px; }
.contact-info p{ color:var(--text-muted); margin-bottom:34px; }
.info-list{ display:grid; gap:20px; }
.info-item{ display:flex; gap:16px; align-items:flex-start; }
.info-item .ic{ width:46px; height:46px; border-radius:10px; background:var(--gold); color:var(--gold-ink); display:grid; place-items:center; flex-shrink:0; }
.info-item b{ display:block; color:var(--heading); font-family:var(--font-head); font-size:.95rem; }
.info-item span{ font-size:.9rem; color:var(--text-muted); }
.info-item .note{ color:var(--gold-2); font-size:.75rem; }

.contact-form{ background:var(--gold); padding:56px 48px; }
.contact-form h3{ color:var(--gold-ink); font-size:1.35rem; margin-bottom:6px; }
.contact-form .sub{ color:#4a3410; font-size:.9rem; margin-bottom:26px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-family:var(--font-head); font-weight:600; font-size:.78rem; color:#3a2909; margin-bottom:6px; text-transform:uppercase; letter-spacing:.06em; }
.field input,.field textarea{
  width:100%; padding:13px 15px; border-radius:6px; border:1px solid rgba(0,0,0,.18);
  background:rgba(255,255,255,.92); font-family:var(--font-body); font-size:.92rem; color:#1a1206;
  transition:var(--transition);
}
.field input:focus,.field textarea:focus{ outline:none; border-color:#1a1206; background:#fff; }
.field textarea{ resize:vertical; min-height:96px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form .btn{ width:100%; justify-content:center; margin-top:6px; }
.contact-form .btn[disabled]{ opacity:.65; cursor:not-allowed; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-status{ display:none; padding:12px 16px; border-radius:6px; font-size:.9rem; font-weight:600; margin-bottom:14px; }
.form-status.show{ display:block; }
.form-status.ok{ background:#123d1f; color:#7ff0a8; border:1px solid #1e5c32; }
.form-status.err{ background:#4a1414; color:#ffb3b3; border:1px solid #7a2323; }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--surface); border-top:1px solid var(--border); padding:64px 0 28px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
.footer .brand-logo{ height:56px; margin-bottom:18px; }
.footer p{ font-size:.9rem; color:var(--text-dim); max-width:300px; }
.footer h4{ font-size:.85rem; text-transform:uppercase; letter-spacing:.12em; color:var(--heading); margin-bottom:20px; }
.footer li{ margin-bottom:12px; }
.footer li a{ font-size:.9rem; color:var(--text-muted); transition:var(--transition); }
.footer li a:hover{ color:var(--gold-2); padding-left:4px; }
.socials{ display:flex; gap:12px; margin-top:6px; }
.socials a{ width:40px; height:40px; border-radius:8px; background:var(--surface-3); display:grid; place-items:center; color:var(--text); transition:var(--transition); }
.socials a:hover{ background:var(--gold); color:var(--gold-ink); }
.footer-bottom{ border-top:1px solid var(--border); padding-top:24px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.82rem; color:var(--text-dim); }

/* =========================================================
   REVEAL (animación de entrada)
   ========================================================= */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-media{ max-width:420px; }
  .why-grid,.safety-grid{ grid-template-columns:1fr; }
  .safety-media{ min-height:300px; }
  .why-media img{ height:300px; }
  .cards-4{ grid-template-columns:repeat(2,1fr); }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:760px){
  .menu, .nav-cta .btn{ display:none; }
  .burger{ display:flex; }
  .menu.open{
    display:flex; position:absolute; top:76px; left:0; width:100%;
    flex-direction:column; gap:0; background:var(--surface); border-bottom:1px solid var(--border);
  }
  .menu.open a{ padding:16px 24px; width:100%; border-bottom:1px solid var(--border); }
  .menu.open a::after{ display:none; }
  .section{ padding:66px 0; }
  .why-media img{ height:220px; }
  .cards-3{ grid-template-columns:1fr; }
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2){ border-right:0; }
  .stat{ border-bottom:1px solid var(--border); }
  .form-row{ grid-template-columns:1fr; }
  .contact-info,.contact-form{ padding:40px 28px; }
  .footer-grid{ grid-template-columns:1fr; }
}
@media (max-width:460px){
  .cards-4{ grid-template-columns:1fr; }
  .stats-grid{ grid-template-columns:1fr; }
  .stat{ border-right:0; }
}
