:root {
  --orange: #ff6500;
  --orange-light: #ff8a3d;
  --black: #080808;
  --black-2: #101010;
  --black-3: #171717;
  --white: #f7f7f5;
  --muted: #a9a9a9;
  --line: rgba(255,255,255,.1);
  --shadow: 0 20px 60px rgba(0,0,0,.28);
  --transition: .35s cubic-bezier(.2,.8,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--black);
  color: var(--white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow-x: hidden;
}
body.light-mode {
  --black: #f5f5f3;
  --black-2: #ffffff;
  --black-3: #ecece9;
  --white: #111;
  --muted: #555;
  --line: rgba(0,0,0,.1);
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.orange { color: var(--orange); }
.gradient-text {
  background: linear-gradient(100deg, #fff 20%, var(--orange) 70%, #ffad73);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Loader */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #080808;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
  color: #fff;
  letter-spacing: .12em;
  font-size: .8rem;
  transition: opacity .6s ease, visibility .6s ease;
}
.page-loader.hidden { opacity: 0; visibility: hidden; }
.loader-logo { width: 82px; height: 82px; object-fit: contain; border-radius: 50%; }
.loader-ring {
  position: absolute;
  width: 115px; height: 115px;
  border: 2px solid rgba(255,101,0,.18);
  border-top-color: var(--orange);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Navbar */
.glass-nav {
  background: rgba(8,8,8,.62);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: var(--transition);
}
.glass-nav.scrolled { background: rgba(8,8,8,.92); box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.navbar-brand { font-weight: 800; letter-spacing: -.02em; }
.nav-logo { width: 38px; height: 38px; object-fit: contain; border-radius: 50%; }
.nav-link {
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #bbb !important;
  padding: .7rem .75rem !important;
  position: relative;
}
.nav-link:hover, .nav-link.active { color: #fff !important; }
.nav-link.active::after {
  content: "";
  position: absolute;
  left: 12px; right: 12px; bottom: 2px;
  height: 2px; background: var(--orange);
  box-shadow: 0 0 12px var(--orange);
}
.icon-btn {
  width: 40px; height: 40px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.06);
  color: #fff;
  border-radius: 50%;
  transition: var(--transition);
}
.icon-btn:hover { transform: rotate(12deg); border-color: var(--orange); color: var(--orange); }

/* Hero */
.hero-section {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 80% 45%, rgba(255,101,0,.12), transparent 28%),
    radial-gradient(circle at 20% 80%, rgba(255,101,0,.06), transparent 30%),
    var(--black);
}
.hero-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}
.hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(1px);
  opacity: .55;
  animation: float 7s ease-in-out infinite;
}
.orb-one { width: 320px; height: 320px; right: 8%; top: 20%; background: radial-gradient(circle, rgba(255,101,0,.18), transparent 68%); }
.orb-two { width: 250px; height: 250px; left: -80px; bottom: 5%; background: radial-gradient(circle, rgba(255,101,0,.1), transparent 68%); animation-delay: -3s; }
@keyframes float { 50% { transform: translateY(-18px) translateX(10px); } }
.eyebrow, .section-kicker {
  color: var(--orange);
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .16em;
}
.eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 22px; }
.pulse-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 6px rgba(255,101,0,.12), 0 0 18px var(--orange); }
.display-title {
  font-size: clamp(3.1rem, 7vw, 6.8rem);
  line-height: .92;
  letter-spacing: -.065em;
  font-weight: 900;
  margin: 0 0 28px;
  max-width: 900px;
}
.hero-copy {
  max-width: 660px;
  color: #b9b9b9;
  font-size: 1.08rem;
  line-height: 1.8;
  margin-bottom: 34px;
}
.btn-orange {
  --bs-btn-bg: var(--orange);
  --bs-btn-border-color: var(--orange);
  --bs-btn-hover-bg: #ff7a20;
  --bs-btn-hover-border-color: #ff7a20;
  color: #fff;
  font-weight: 800;
  border-radius: 10px;
  padding: .9rem 1.25rem;
  box-shadow: 0 10px 30px rgba(255,101,0,.22);
}
.btn-orange:hover { color: #fff; transform: translateY(-2px); }
.hero-stats { display: flex; gap: 42px; margin-top: 60px; }
.hero-stats div { display: flex; flex-direction: column; gap: 4px; }
.hero-stats strong { font-size: 1.65rem; letter-spacing: -.04em; }
.hero-stats span { color: #858585; text-transform: uppercase; font-size: .63rem; letter-spacing: .12em; }
.hero-emblem { position: relative; height: 470px; display: grid; place-items: center; }
.hero-emblem img {
  width: min(390px, 85%);
  border-radius: 50%;
  filter: drop-shadow(0 0 45px rgba(255,101,0,.22));
  position: relative; z-index: 2;
}
.emblem-glow { position: absolute; width: 350px; height: 350px; border-radius: 50%; background: rgba(255,101,0,.08); filter: blur(35px); }
.floating-tag {
  position: absolute; z-index: 3;
  padding: 11px 15px;
  background: rgba(20,20,20,.72);
  border: 1px solid rgba(255,101,0,.35);
  border-radius: 999px;
  backdrop-filter: blur(12px);
  font-size: .75rem;
  font-weight: 700;
  box-shadow: 0 15px 40px rgba(0,0,0,.25);
}
.floating-tag i { color: var(--orange); margin-right: 6px; }
.tag-one { top: 65px; left: 10px; animation: float 5s ease-in-out infinite; }
.tag-two { right: 0; top: 190px; animation: float 6s ease-in-out infinite -2s; }
.tag-three { left: 20px; bottom: 75px; animation: float 6s ease-in-out infinite -4s; }
.scroll-indicator {
  position: absolute; bottom: 26px; left: 50%;
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  color: #777; font-size: .58rem; letter-spacing: .15em;
}

/* Sections */
.section-padding { padding: 120px 0; }
.dark-section { background: #0d0d0d; }
.gallery-section { background: #0a0a0a; }
.section-heading { max-width: 780px; }
.section-heading h2 {
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  line-height: 1;
  letter-spacing: -.055em;
  font-weight: 850;
  margin: 14px 0 18px;
}
.section-heading p { color: var(--muted); font-size: 1rem; line-height: 1.7; max-width: 650px; }
.section-heading.light p { color: #929292; }

/* Nosotros */
.feature-panel {
  min-height: 360px;
  padding: 44px;
  border-radius: 24px;
  background:
    linear-gradient(135deg, rgba(255,101,0,.14), transparent 45%),
    linear-gradient(180deg, #171717, #101010);
  border: 1px solid rgba(255,255,255,.09);
  position: relative;
  overflow: hidden;
}
.feature-panel::after {
  content: "";
  position: absolute;
  width: 230px; height: 230px; right: -100px; bottom: -120px;
  border: 1px solid rgba(255,101,0,.3); border-radius: 50%;
}
.feature-number { position: absolute; top: 25px; right: 30px; color: rgba(255,255,255,.15); font-size: 5rem; font-weight: 900; }
.feature-icon { color: var(--orange); font-size: 2rem; margin-bottom: 55px; }
.feature-panel h3 { font-size: 2rem; letter-spacing: -.04em; }
.feature-panel p { color: #aaa; line-height: 1.8; max-width: 650px; }
.mini-line { width: 60px; height: 3px; background: var(--orange); margin: 26px 0 13px; }
.small-label { font-size: .62rem; letter-spacing: .16em; color: #777; font-weight: 800; }
.info-stack { display: grid; gap: 14px; }
.info-card {
  display: flex; align-items: center; gap: 20px;
  padding: 24px;
  background: var(--black-3);
  border: 1px solid var(--line);
  border-radius: 18px;
  transition: var(--transition);
}
.info-card:hover { transform: translateX(8px); border-color: rgba(255,101,0,.35); }
.info-card > i { color: var(--orange); font-size: 1.5rem; }
.info-card h4 { margin: 0 0 4px; font-size: 1.05rem; }
.info-card p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.5; }

/* Careers */
.career-card {
  height: 100%;
  background: #141414;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  overflow: hidden;
  transition: var(--transition);
}
.career-card:hover { transform: translateY(-10px); border-color: rgba(255,101,0,.45); box-shadow: 0 25px 60px rgba(0,0,0,.35); }
.career-image { height: 245px; position: relative; overflow: hidden; }
.career-image::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.85)); }
.career-image img { width:100%; height:100%; object-fit:cover; transition: .7s ease; }
.career-card:hover .career-image img { transform: scale(1.06); }
.career-badge {
  position:absolute; z-index:2; top:16px; left:16px;
  background: var(--orange); color:#fff; font-size:.6rem; font-weight:900;
  letter-spacing:.12em; padding:8px 10px; border-radius:5px;
}
.career-body { padding: 28px; position: relative; }
.career-icon {
  width: 52px; height:52px; display:grid; place-items:center;
  background: rgba(255,101,0,.1); color:var(--orange);
  border:1px solid rgba(255,101,0,.2); border-radius:14px; font-size:1.35rem;
  margin-top:-54px; position:relative; z-index:3; margin-bottom:20px;
}
.career-body h3 { font-size: 1.25rem; line-height:1.25; letter-spacing:-.025em; min-height: 62px; }
.career-body p { color:#999; font-size:.86rem; line-height:1.7; }
.career-link {
  background: transparent; border: 0; padding: 8px 0; color: #fff;
  font-weight: 800; font-size: .78rem; letter-spacing: .05em;
  text-transform: uppercase;
}
.career-link i { color:var(--orange); margin-left:5px; transition:var(--transition); }
.career-link:hover i { margin-left:10px; }

/* Identity */
.identity-card {
  min-height: 300px; padding: 40px; border-radius:22px;
  background: var(--black-3); border:1px solid var(--line);
  position:relative; overflow:hidden;
}
.identity-card::before { content:""; position:absolute; inset:0; background: linear-gradient(130deg, rgba(255,101,0,.09), transparent 40%); pointer-events:none; }
.identity-card > i { font-size:2.2rem; color:var(--orange); }
.identity-card h3 { margin:22px 0 12px; font-size:2rem; }
.identity-card p { color:var(--muted); line-height:1.8; max-width:700px; }
.card-index { position:absolute; right:28px; top:20px; color:rgba(255,255,255,.1); font-weight:900; font-size:4rem; }
.values-strip {
  margin-top:28px; padding:20px; border:1px solid var(--line); border-radius:18px;
  display:flex; flex-wrap:wrap; align-items:center; gap:10px; background:var(--black-3);
}
.values-title { margin-right:auto; padding:8px 16px; display:flex; flex-direction:column; }
.values-title span { color:var(--orange); font-size:.6rem; letter-spacing:.15em; font-weight:900; }
.values-title strong { font-size:.9rem; }
.value-item { padding:10px 13px; border-radius:999px; background:rgba(255,255,255,.04); color:#bbb; font-size:.72rem; }
.value-item i { color:var(--orange); margin-right:5px; }

/* Gallery */
.gallery-grid {
  display:grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  grid-template-rows: 250px 250px;
  gap:14px;
}
.gallery-item {
  position:relative; border:0; padding:0; overflow:hidden; border-radius:18px;
  background:#111; cursor:pointer;
}
.gallery-item.item-large { grid-row:span 2; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:.6s ease; }
.gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.75)); opacity:.55; }
.gallery-item span { position:absolute; z-index:2; bottom:18px; left:20px; color:#fff; font-size:.7rem; font-weight:800; opacity:0; transform:translateY(8px); transition:var(--transition); }
.gallery-item:hover img { transform:scale(1.06); }
.gallery-item:hover span { opacity:1; transform:translateY(0); }

/* Contact */
.contact-section { background: linear-gradient(180deg, var(--black-2), var(--black)); }
.contact-title { font-size:clamp(2.6rem, 6vw, 5rem); line-height:.98; letter-spacing:-.06em; font-weight:900; margin:14px 0 22px; }
.contact-copy { color:var(--muted); line-height:1.8; max-width:560px; }
.contact-list { margin-top:35px; display:grid; gap:12px; }
.contact-row {
  display:flex; align-items:center; gap:16px; padding:17px;
  border:1px solid var(--line); border-radius:16px; transition:var(--transition);
}
.contact-row:hover { border-color:rgba(255,101,0,.35); transform:translateX(5px); }
.contact-icon { width:45px;height:45px;display:grid;place-items:center;border-radius:12px;background:rgba(255,101,0,.1);color:var(--orange); }
.contact-row small { display:block;color:#777;font-size:.6rem;letter-spacing:.14em;font-weight:900;margin-bottom:2px; }
.contact-row strong { display:block;font-size:.88rem; }
.social-panel { padding:42px; background:var(--black-3); border:1px solid var(--line); border-radius:24px; }
.social-panel h3 { font-size:2.2rem; margin:14px 0 8px; letter-spacing:-.04em; }
.social-panel p { color:var(--muted); }
.social-grid { display:grid; gap:10px; margin-top:28px; }
.social-card { display:flex; align-items:center; gap:14px; padding:15px 17px; border:1px solid var(--line); border-radius:13px; transition:var(--transition); }
.social-card:hover { background:rgba(255,101,0,.08); border-color:rgba(255,101,0,.3); transform:translateX(5px); }
.social-card > i:first-child { color:var(--orange); font-size:1.25rem; }
.social-card span { font-weight:750; font-size:.85rem; }
.social-card > i:last-child { margin-left:auto; color:#666; }

/* Footer */
.footer { background:#050505; border-top:1px solid rgba(255,255,255,.08); padding:35px 0 22px; }
.footer-top { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.footer-brand { display:flex; align-items:center; gap:12px; }
.footer-brand img { width:48px;height:48px;object-fit:contain;border-radius:50%; }
.footer-brand strong,.footer-brand span { display:block; }
.footer-brand strong { font-size:.7rem; letter-spacing:.08em; }
.footer-brand span { font-size:.58rem; color:#666; letter-spacing:.14em; margin-top:3px; }
.footer-socials { display:flex; gap:8px; }
.footer-socials a { width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.1);border-radius:50%;color:#aaa;transition:var(--transition); }
.footer-socials a:hover { color:var(--orange);border-color:var(--orange);transform:translateY(-3px); }
.footer-bottom { margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;color:#555;font-size:.68rem; }

/* Back top */
.back-top {
  position:fixed; right:22px; bottom:22px; z-index:50;
  width:45px;height:45px;border-radius:50%;border:1px solid rgba(255,101,0,.4);
  background:rgba(10,10,10,.8);color:var(--orange);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;transform:translateY(15px);transition:var(--transition);
}
.back-top.show { opacity:1;visibility:visible;transform:translateY(0); }
.back-top:hover { background:var(--orange);color:#fff; }

/* Modals */
.custom-modal,.image-modal { background:#111;color:#fff;border:1px solid rgba(255,101,0,.3);border-radius:18px;overflow:hidden; }
.custom-modal .modal-header,.image-modal .modal-header { border-bottom:1px solid rgba(255,255,255,.08); }
.custom-modal .modal-body { padding:28px; color:#aaa; line-height:1.8; }
.modal-tags { display:flex;flex-wrap:wrap;gap:8px;margin-top:18px; }
.modal-tags span { font-size:.7rem;padding:7px 10px;border-radius:999px;background:rgba(255,101,0,.1);color:#ff9a61;border:1px solid rgba(255,101,0,.2); }

/* Reveal */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* Light mode adjustments */
body.light-mode .glass-nav { background:rgba(255,255,255,.82); border-bottom-color:rgba(0,0,0,.08); }
body.light-mode .glass-nav.scrolled { background:rgba(255,255,255,.95); }
body.light-mode .nav-link { color:#666 !important; }
body.light-mode .nav-link:hover, body.light-mode .nav-link.active { color:#111 !important; }
body.light-mode .hero-section, body.light-mode .dark-section, body.light-mode .gallery-section, body.light-mode .footer { background:#f5f5f3; }
body.light-mode .hero-copy { color:#555; }
body.light-mode .floating-tag { background:rgba(255,255,255,.8); color:#222; }
body.light-mode .feature-panel { background:#fff; }
body.light-mode .career-card, body.light-mode .identity-card, body.light-mode .social-panel, body.light-mode .info-card, body.light-mode .values-strip { background:#fff; color:#111; }
body.light-mode .career-body p, body.light-mode .identity-card p { color:#666; }
body.light-mode .career-link { color:#111; }
body.light-mode .footer { border-top-color:rgba(0,0,0,.08); }
body.light-mode .footer-brand strong { color:#111; }
body.light-mode .footer-socials a { color:#555; border-color:rgba(0,0,0,.1); }
body.light-mode .back-top { background:rgba(255,255,255,.85); }

/* Responsive */
@media (max-width: 991.98px) {
  .section-padding { padding: 90px 0; }
  .display-title { font-size: clamp(3rem, 11vw, 5.5rem); }
  .hero-stats { gap: 25px; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:220px 220px; }
  .gallery-item.item-large { grid-row:span 2; }
}
@media (max-width: 575.98px) {
  .section-padding { padding:75px 0; }
  .hero-stats { gap:18px; margin-top:45px; }
  .hero-stats strong { font-size:1.35rem; }
  .hero-stats span { font-size:.52rem; }
  .feature-panel,.social-panel { padding:28px; }
  .gallery-grid { display:grid; grid-template-columns:1fr; grid-template-rows:240px 240px 240px 240px; }
  .gallery-item.item-large { grid-row:auto; }
  .footer-top,.footer-bottom { flex-direction:column; align-items:flex-start; }
  .navbar-collapse { padding:10px 0 15px; }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
