:root{
  --bg:#05070b;
  --bg-soft:#0c111a;
  --bg-card:rgba(15,22,34,0.9);
  --blue:#005dff;
  --blue-soft:#69b7ff;
  --orange:#ff5200;
  --text:#ffffff;
  --muted:#cfd8e6;
  --line:rgba(255,255,255,0.12);
  --shadow:0 18px 50px rgba(0,0,0,0.32);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:linear-gradient(180deg,#030508 0%, #08101b 100%);
  color:var(--text);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:14px 28px;
  background:rgba(4,7,12,0.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(91,160,255,0.18);
}
.logo img{height:50px;width:auto}
.nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.nav a{
  padding:10px 16px;
  border:1px solid rgba(0,93,255,0.42);
  border-radius:999px;
  color:#eaf2ff;
  font-size:.96rem;
  transition:.25s ease;
  background:rgba(255,255,255,0.03);
}
.nav a:hover,.nav a.active{
  background:linear-gradient(180deg, rgba(0,93,255,0.90), rgba(0,93,255,0.68));
  border-color:rgba(105,183,255,0.98);
  color:#ffffff;
  box-shadow:0 0 0 1px rgba(255,255,255,0.14) inset, 0 0 18px rgba(0,93,255,0.48), 0 0 34px rgba(105,183,255,0.22);
}
.hero{
  position:relative;
  min-height:72vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.slides,.slide{
  position:absolute;
  inset:0;
}
.slide{
  opacity:0;
  transition:opacity 1.4s ease-in-out;
  background-position:center;
  background-size:cover;
  filter:brightness(1.12) saturate(1.06) contrast(1.01);
}
.slide.active{opacity:1}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, rgba(0,93,255,0.18), transparent 30%),
    linear-gradient(90deg, rgba(2,5,10,0.52) 0%, rgba(2,5,10,0.20) 45%, rgba(2,5,10,0.42) 100%),
    linear-gradient(180deg, rgba(2,5,10,0.08), rgba(2,5,10,0.38));
  z-index:1;
}
.hero-content{
  position:relative;
  z-index:2;
  width:min(760px, calc(100% - 48px));
  margin:0 auto 56px 32px;
  padding:30px 30px 26px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:24px;
  background:rgba(6,10,18,0.54);
  backdrop-filter:blur(8px);
  box-shadow:var(--shadow);
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--blue-soft);
  font-size:.9rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:24px;
  height:2px;
  background:var(--orange);
  opacity:.9;
}
.hero h1,
.section h1{
  margin:18px 0 14px;
  line-height:1.05;
  font-size:clamp(2.4rem, 5.8vw, 4.8rem);
}
.hero p{margin:0;max-width:62ch;color:#e7edf7;font-size:1.05rem}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:12px 20px;
  border-radius:14px;
  font-weight:700;
  letter-spacing:.01em;
  transition:.25s ease;
}
.btn.primary{
  background:linear-gradient(180deg, var(--blue), #0845b8);
  color:#fff;
  box-shadow:0 10px 28px rgba(11,95,255,0.28);
}
.btn.primary:hover{transform:translateY(-1px)}
.btn.secondary{
  border:1px solid rgba(91,160,255,0.45);
  background:rgba(255,255,255,0.04);
}
.btn.accent{
  background:var(--orange);
  border:1px solid var(--orange);
  color:#ffffff;
  box-shadow:0 10px 26px rgba(255,82,0,0.24);
}
.btn.accent:hover{
  background:#e84900;
  border-color:#ff6a24;
  transform:translateY(-1px);
}
.dots{
  position:absolute;
  left:34px;
  bottom:18px;
  z-index:3;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.dot{
  width:12px;
  height:12px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.35);
  background:rgba(255,255,255,0.18);
  cursor:pointer;
  transition:.25s ease;
}
.dot.active{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,93,255,0.22), 0 0 18px rgba(0,93,255,0.35)}
.section{padding:64px 22px}
.container{width:min(1200px, 100%);margin:0 auto}
.section h2{
  margin:0 0 16px;
  font-size:clamp(1.9rem, 4vw, 3rem);
}
.section p{color:var(--muted);max-width:74ch}
.grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
  margin-top:28px;
}
.card, .panel{
  padding:24px;
  border:1px solid rgba(91,160,255,0.16);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(14,19,30,0.95), rgba(8,13,22,0.95));
  box-shadow:var(--shadow);
}
.line{
  width:54px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--blue), rgba(255,106,26,0.6));
  margin-bottom:16px;
}
.card h3{margin:0 0 10px;font-size:1.16rem}
.card p{margin:0;color:var(--muted)}
.contact-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:start;
  margin-top:24px;
}
form{display:grid;gap:14px}
input,textarea{
  width:100%;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid rgba(91,160,255,0.20);
  background:#0b1220;
  color:#fff;
  outline:none;
}
input::placeholder,textarea::placeholder{color:#9eb0cc}
textarea{min-height:160px;resize:vertical}
.legal-box{
  margin-top:18px;
  padding:20px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.03);
}
.small-note{font-size:.86rem;color:var(--blue-soft);text-transform:uppercase;letter-spacing:.08em}
.site-footer{
  padding:24px 18px 38px;
  text-align:center;
  color:#d6e2f7;
  border-top:1px solid rgba(255,255,255,0.06);
  background:rgba(0,0,0,0.28);
}
.list-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.list-columns ul{margin:0;padding-left:18px;color:var(--muted)}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.badge{padding:8px 12px;border-radius:999px;border:1px solid rgba(91,160,255,0.22);background:rgba(255,255,255,0.03);color:#eaf2ff;font-size:.92rem}
@media (max-width: 980px){
  .grid{grid-template-columns:1fr 1fr}
  .contact-grid,.list-columns{grid-template-columns:1fr}
  .hero-content{margin:0 18px 54px 18px;width:auto}
}
@media (max-width: 720px){
  .site-header{padding:14px 16px;flex-direction:column;align-items:flex-start}
  .nav{width:100%}
  .nav a{font-size:.92rem;padding:9px 13px}
  .hero{min-height:68vh}
  .hero-content{padding:24px 18px}
  .dots{left:20px}
  .section{padding:54px 16px}
  .grid{grid-template-columns:1fr}
}

/* Responsive refinements: smartphone, tablet and desktop */
html, body { max-width: 100%; overflow-x: hidden; }
.site-header { min-height: 78px; }
.nav a { white-space: nowrap; }
.hero { min-height: clamp(540px, 72svh, 820px); }
.slide { background-repeat: no-repeat; background-position: center center; }
.hero-content { max-width: 760px; }

@media (min-width: 721px) and (max-width: 1100px) {
  .site-header { padding: 12px 20px; gap: 16px; }
  .logo img { height: 46px; }
  .nav { gap: 8px; }
  .nav a { padding: 9px 13px; font-size: .92rem; }
  .hero { min-height: 620px; }
  .hero-content { width: min(690px, calc(100% - 40px)); margin: 0 20px 54px; }
  .grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 720px) {
  .site-header {
    position: sticky;
    padding: 12px 14px 10px;
    gap: 10px;
    align-items: center;
  }
  .logo img { height: 42px; }
  .nav {
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    gap: 8px;
    padding-bottom: 3px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { flex: 0 0 auto; padding: 8px 12px; font-size: .88rem; }
  .hero {
    min-height: 640px;
    align-items: flex-end;
  }
  .slide { background-position: center center; }
  .hero::before {
    background:
      linear-gradient(180deg, rgba(2,5,10,.10) 0%, rgba(2,5,10,.18) 38%, rgba(2,5,10,.68) 100%);
  }
  .hero-content {
    width: calc(100% - 28px);
    margin: 0 14px 54px;
    padding: 20px 18px;
    border-radius: 18px;
    background: rgba(6,10,18,.66);
  }
  .hero h1, .section h1 { font-size: clamp(2rem, 10vw, 3.1rem); }
  .hero p { font-size: .98rem; }
  .dots { left: 18px; bottom: 18px; gap: 8px; }
  .dot { width: 10px; height: 10px; }
  .section { padding: 48px 14px; }
  .grid, .contact-grid, .list-columns { grid-template-columns: 1fr; }
  .card, .panel { padding: 20px; }
  .cta-row { gap: 10px; }
  .btn { width: 100%; }
}

@media (min-width: 1101px) {
  .hero-content { margin-left: max(32px, calc((100vw - 1200px)/2)); }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
  .slide, .nav a, .btn { transition: none !important; }
}

/* Formulario de contacto y privacidad */
.privacy-summary{
  padding:14px 16px;
  border-radius:14px;
  border:1px solid rgba(91,160,255,0.18);
  background:rgba(255,255,255,0.03);
  color:var(--muted);
  font-size:.92rem;
  line-height:1.5;
}
.privacy-summary a{
  color:var(--blue-soft);
  text-decoration:underline;
  text-underline-offset:3px;
}
.privacy-check{
  display:flex;
  align-items:flex-start;
  gap:11px;
  color:#f3f7ff;
  font-size:.94rem;
  cursor:pointer;
}
.privacy-check input[type='checkbox']{
  width:18px;
  height:18px;
  min-width:18px;
  margin:3px 0 0;
  padding:0;
  accent-color:var(--blue);
  cursor:pointer;
}
button.btn:disabled{
  opacity:.42;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
  filter:saturate(.45);
}
button.btn:disabled:hover{
  transform:none;
}

/* Página legal */
.legal-page .container{max-width:980px}
.legal-intro{
  margin-bottom:34px;
  padding:18px 20px;
  border-left:4px solid var(--orange);
  background:rgba(255,255,255,0.035);
  border-radius:0 14px 14px 0;
}
.legal-section{
  padding:24px 0;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.legal-section h2{
  margin:0 0 12px;
  font-size:clamp(1.25rem,2.5vw,1.65rem);
  color:#ffffff;
}
.legal-section p{margin:8px 0;max-width:none}
.legal-section ul{
  margin:10px 0 8px 1.2rem;
  padding-left:1rem;
  color:var(--muted);
}
.legal-section li{margin:5px 0}
.legal-warning{margin-top:28px}


/* Selector de idioma */
.language-switcher{
  display:flex;
  gap:6px;
  align-items:center;
  flex:0 0 auto;
}
.language-switcher a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:34px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid rgba(105,183,255,.26);
  color:#dbe9ff;
  background:rgba(255,255,255,.025);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.06em;
  transition:.2s ease;
}
.language-switcher a:hover,
.language-switcher a.active{
  border-color:var(--blue-soft);
  background:rgba(0,93,255,.28);
  color:#fff;
  box-shadow:0 0 14px rgba(0,93,255,.25);
}
.translation-note{
  margin:-18px 0 24px;
  color:#aebed6;
  font-size:.9rem;
  font-style:italic;
}
.home-actions{margin-top:28px}
@media (max-width:1180px){
  .site-header{flex-wrap:wrap}
  .nav{order:3;width:100%;justify-content:flex-start}
  .language-switcher{margin-left:auto}
}
@media (max-width:720px){
  .site-header{flex-direction:row;align-items:center}
  .logo{flex:1 1 auto}
  .language-switcher{order:2;margin-left:auto}
  .nav{order:3;width:100%}
  .language-switcher a{min-width:34px;height:31px;padding:0 7px;font-size:.72rem}
}


/* Footer legal links and cookie policy */
.site-footer{display:flex;flex-direction:column;align-items:center;gap:10px;}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;font-size:.92rem;}
.footer-links a{color:var(--blue-soft);text-decoration:none;}
.footer-links a:hover,.footer-links a:focus-visible{color:#ffffff;text-decoration:underline;}
.cookie-table-wrap{width:100%;overflow-x:auto;margin:20px 0 28px;border:1px solid rgba(91,160,255,0.16);border-radius:16px;}
.cookie-table{width:100%;min-width:720px;border-collapse:collapse;background:rgba(8,13,22,0.72);}
.cookie-table th,.cookie-table td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,0.08);}
.cookie-table th{color:#ffffff;background:rgba(0,93,255,0.14);}
.cookie-table td{color:var(--muted)}
.cookie-table tr:last-child td{border-bottom:0}
@media (max-width:720px){.footer-links{font-size:.88rem}.cookie-table th,.cookie-table td{padding:12px 13px}}

/* Estado del formulario de contacto / Formspree */
.form-status{
  display:none;
  min-height:0;
  padding:12px 14px;
  border-radius:12px;
  font-size:.95rem;
  line-height:1.45;
}
.form-status.active{display:block}
.form-status.success{
  color:#eafff0;
  background:rgba(43,160,83,.14);
  border:1px solid rgba(78,205,123,.42);
}
.form-status.error{
  color:#fff1ec;
  background:rgba(255,82,0,.12);
  border:1px solid rgba(255,82,0,.46);
}
