:root{
  --gold:#d4af37;
  --gold-dark:#b48f2b;
  --bg:#000;
  --muted:#f3f1e9;
  --muted-2:rgba(243,243,233,0.9);
  --container:1100px;
  --radius:12px;
  --glass: rgba(255,255,255,0.03);
  --focus: 3px solid rgba(212,175,55,0.28);
  --card-grad: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
}

*{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:var(--bg);
  color:var(--muted-2);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.45;
  -webkit-font-feature-settings: "ss01" on;
  text-rendering:optimizeLegibility;
}

a{color:var(--gold); text-decoration:none}
a:focus{outline:var(--focus);}

/* Skip link for keyboard users */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:12px;top:12px;width:auto;height:auto;padding:8px 12px;border-radius:6px;background:#111;color:var(--muted-2);z-index:999}

/* Header / Nav */
header{
  border-bottom:2px solid var(--gold);
  background:linear-gradient(0deg, rgba(0,0,0,0.6), rgba(0,0,0,0.2));
  position:sticky; top:0; z-index:40;
  backdrop-filter: blur(4px);
}
.wrap{max-width:var(--container); margin:0 auto; padding:14px 20px; display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;gap:14px;align-items:center}
.brand img{height:52px;width:52px;object-fit:cover;border-radius:8px;background:#111}
.brand h1{font-size:18px;margin:0;letter-spacing:1px;color:var(--gold);font-weight:700}

nav{display:flex;gap:14px;align-items:center}
nav ul{display:flex;gap:8px;list-style:none;margin:0;padding:0}
nav li a{padding:8px 10px;border-radius:8px;font-weight:600;font-size:15px}
nav li a:hover{background:rgba(255,255,255,0.02)}

.cta{background:var(--gold); color:#000; padding:10px 16px;border-radius:8px;font-weight:700}
.cta:hover{background:var(--gold-dark)}

/* Mobile nav */
.hamburger{display:none;background:transparent;border:0;color:var(--muted-2);font-size:22px}
 

/* Hero */
.hero{
  min-height:62vh;
  display:grid;place-items:center;text-align:center;padding:48px 20px;position:relative;
  background-color:#0a0a0a;
  color:var(--muted-2);
  overflow:hidden;
}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(0.45);transform:scale(1.03);will-change:transform}
.hero__content{position:relative;z-index:2;max-width:980px;padding:40px;border-radius:16px}
.hero h2{margin:0;font-size:38px;color:var(--gold);letter-spacing:0.6px}
.hero p{margin:12px 0 18px;font-size:18px;color:#f7f3ea;opacity:0.95}
.hero .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* Sections */
main{max-width:var(--container);margin:0 auto;padding:36px 20px}
section{padding:34px 0;border-bottom:1px dashed rgba(255,255,255,0.03)}
h3{font-size:22px;margin:0 0 12px;padding-left:12px;border-left:6px solid var(--gold)}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--card-grad);padding:18px;border-radius:var(--radius);box-shadow:0 6px 18px rgba(0,0,0,0.5)}

@media(max-width:980px){.cols{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.cols{grid-template-columns:1fr}}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery img{width:100%;height:160px;object-fit:cover;border-radius:8px;cursor:pointer;display:block}
.gallery img[loading="lazy"]{opacity:0;transform:translateY(6px);transition:opacity .35s ease, transform .35s ease}
.gallery img.loaded{opacity:1;transform:none}
@media(max-width:980px){.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* Contact form */
.contact-grid{display:grid;grid-template-columns:1fr 360px;gap:20px}
.form input,.form textarea{width:100%;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,0.06);background:transparent;color:var(--muted-2)}
.form label{display:block;margin-bottom:8px;font-weight:600}
.form .group{margin-bottom:12px}
.form button{margin-top:6px}
@media(max-width:980px){.contact-grid{grid-template-columns:1fr}}

footer{border-top:2px solid var(--gold);padding:20px;text-align:center;color:var(--gold);margin-top:18px}

/* Modal / Lightbox */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);display:none;align-items:center;justify-content:center;z-index:120}
.overlay.active{display:flex}
.modal{background:#070707;padding:18px;border-radius:12px;max-width:920px;width:94%;color:var(--muted-2)}

/* Login small form */
.small-form{display:flex;flex-direction:column;gap:10px}
.muted{color:rgba(255,255,255,0.6);font-size:14px}

/* Utilities */
.flex{display:flex;gap:12px;align-items:center}
.hidden{display:none}

/* Simple responsive table for dashboard preview */
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid rgba(255,255,255,0.03);text-align:left}

/* Accessibility focus & reduced motion */
a:focus, button:focus, input:focus, textarea:focus{outline:var(--focus)}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important}
}

/* Small helpers */
.muted-2{color:rgba(243,243,233,0.7)}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {

 
  .hamburger {
    display: block;
  }

  nav {
    position: relative;
  }

  nav ul {
    position: absolute;
    top: 100%;
    right: 0;

    background: rgba(0, 0, 0, 0.95);
    flex-direction: column;
    gap: 15px;
    padding: 20px;
    border-radius: 12px;

    width: 220px;
    display: none; /* Se oculta por defecto para el móvil */

    box-shadow: 0 20px 40px rgba(0,0,0,.6);
    z-index: 100;
  }

  nav ul.active {
    display: flex; /* Se muestra con JS al añadir la clase 'active' */
  }

  .flex {
    display: none;
  }
}


.nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4); /* Le dimos un color para que se vea que cubre */
  z-index: 90;
  display: none;
}
.nav-overlay.active {
  display: block; /* Se muestra con JS al añadir la clase 'active' */
}