
:root{
  --navy:#061b33;--navy2:#0a2b4d;--blue:#0c82c6;--cyan:#79d8ff;
  --ice:#eef8fd;--white:#fff;--ink:#0a1726;--muted:#617386;--line:#d9e8f0;
  --radius:26px;--shadow:0 28px 70px rgba(2,28,54,.16)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:#fff;overflow-x:hidden}
a{text-decoration:none;color:inherit}img{display:block;width:100%}button,input,select,textarea{font:inherit}
.site-header{position:fixed;z-index:1000;top:0;left:0;width:100%;height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;transition:.35s;color:#fff}
.site-header.scrolled{height:72px;background:rgba(6,27,51,.92);backdrop-filter:blur(18px);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:52px;height:52px;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.22)}
.brand span{display:grid;text-transform:uppercase;line-height:1}.brand strong{font-family:"Space Grotesk";font-size:15px;letter-spacing:.08em}.brand small{font-size:9px;letter-spacing:.18em;opacity:.72;margin-top:6px}
.nav{display:flex;align-items:center;gap:24px;font-size:13px;font-weight:700}.nav a{opacity:.85;transition:.2s}.nav a:hover{opacity:1;color:var(--cyan)}
.nav-cta{padding:12px 18px;border:1px solid rgba(255,255,255,.35);border-radius:999px}.menu-toggle{display:none;background:none;border:0}
.hero{position:relative;min-height:100vh;color:#fff;display:flex;align-items:flex-end;padding:150px 7vw 72px;isolation:isolate}
.hero-media,.hero-overlay,.hero-grid{position:absolute;inset:0}.hero-media{z-index:-4}.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;object-position:center center}
.hero-overlay{z-index:-3;background:linear-gradient(90deg,rgba(1,15,31,.96) 0%,rgba(4,30,55,.78) 47%,rgba(4,30,55,.18) 100%),linear-gradient(0deg,rgba(1,13,26,.8),transparent 55%)}
.hero-grid{z-index:-2;opacity:.09;background-image:linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to right,black,transparent)}
.hero-content{width:min(850px,85vw)}.eyebrow,.project-kicker{display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:800;color:var(--cyan)}
.eyebrow span{width:32px;height:1px;background:var(--cyan)}h1,h2,h3,p{margin-top:0}
.hero h1{font-family:"Space Grotesk";font-size:clamp(52px,7.5vw,112px);line-height:.9;letter-spacing:-.055em;margin:24px 0 28px}
.hero h1 em,.contact-section em{font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.8)}
.hero-copy{max-width:670px;font-size:18px;line-height:1.75;color:rgba(255,255,255,.76)}
.hero-actions{display:flex;gap:14px;margin:34px 0 52px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:16px 22px;border-radius:999px;border:1px solid transparent;font-weight:800;font-size:13px;transition:.25s;cursor:pointer}
.button.primary{background:linear-gradient(135deg,var(--blue),#19a8e4);color:#fff;box-shadow:0 14px 40px rgba(12,130,198,.35)}.button.primary:hover{transform:translateY(-3px);box-shadow:0 18px 45px rgba(12,130,198,.48)}
.button.ghost{border-color:rgba(255,255,255,.32);color:#fff}.button.ghost:hover{background:#fff;color:var(--navy)}
.hero-stats{display:flex;gap:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);width:max-content;max-width:100%}.hero-stats div{display:grid;gap:4px}.hero-stats strong{font-family:"Space Grotesk";font-size:19px}.hero-stats span{font-size:11px;color:rgba(255,255,255,.58)}
.scroll-indicator{position:absolute;right:5vw;bottom:72px;display:flex;align-items:center;gap:12px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55)}.scroll-indicator span{height:60px;width:1px;background:linear-gradient(#fff,transparent)}
.section{padding:120px 7vw}.section-label{text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:800;color:var(--blue)}
.intro{background:linear-gradient(180deg,#fff,var(--ice))}.intro-copy{display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:end;margin:34px 0 64px}
.intro h2,.process h2,.quote-copy h2{font-family:"Space Grotesk";font-size:clamp(42px,5vw,76px);line-height:1;letter-spacing:-.045em;margin:0}.intro h2 span,.process h2 span{color:var(--blue)}
.intro-copy p,.process-heading p,.quote-copy p{color:var(--muted);line-height:1.8;font-size:16px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;min-height:260px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 14px 45px rgba(8,51,82,.06);transition:.3s}
.service-card:hover{transform:translateY(-8px);border-color:#9fdaf4;box-shadow:var(--shadow)}.service-card>span{align-self:flex-end;font-size:28px;color:var(--blue)}.service-number{font:700 12px "Space Grotesk";color:var(--blue)}
.service-card h3{font:700 25px "Space Grotesk";margin:0 0 12px}.service-card p{color:var(--muted);line-height:1.65;font-size:14px}
.project-section{min-height:780px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.project-section.reverse{direction:rtl;background:var(--navy);color:#fff}.project-section.reverse>*{direction:ltr}
.project-image{min-height:680px;overflow:hidden}.project-image img{height:100%;object-fit:cover;transition:transform 1s}.project-section:hover .project-image img{transform:scale(1.035)}
.project-content{padding:90px 7vw;display:flex;flex-direction:column;justify-content:center}.project-content h2{font:700 clamp(40px,4.7vw,72px)/1 "Space Grotesk";letter-spacing:-.045em;margin:18px 0 26px}.project-content>p{line-height:1.8;color:var(--muted)}.reverse .project-content>p{color:#a9bbcb}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 30px}.chips span{padding:8px 12px;border:1px solid var(--line);border-radius:999px;font-size:11px;font-weight:700}.reverse .chips span{border-color:rgba(255,255,255,.18)}
.feature-list{list-style:none;margin:0 0 34px;padding:0;border-top:1px solid var(--line)}.reverse .feature-list{border-color:rgba(255,255,255,.15)}.feature-list li{display:flex;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6}.reverse .feature-list li{border-color:rgba(255,255,255,.15)}.feature-list b{color:var(--blue)}
.text-link{font-weight:800;color:var(--blue);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid currentColor;padding-bottom:12px;width:min(290px,100%)}.text-link span{font-size:22px}
.process{background:#f7fbfd}.process-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:9vw;align-items:end;margin:36px 0 72px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #b9d7e7}.timeline article{padding:32px 28px 10px 0;position:relative}.timeline article:before{content:"";position:absolute;top:-6px;left:0;width:11px;height:11px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 7px #d9eff9}.timeline span{font:700 12px "Space Grotesk";color:var(--blue)}.timeline h3{font:700 22px "Space Grotesk";margin:18px 0 10px}.timeline p{font-size:13px;line-height:1.7;color:var(--muted)}
.visual-break{height:72vh;min-height:560px;position:relative;color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.visual-break:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(3,24,43,.35),rgba(3,24,43,.72))}.visual-break img{position:absolute;inset:0;height:100%;object-fit:cover}.visual-break div{position:relative;z-index:1}.visual-break span{letter-spacing:.2em;text-transform:uppercase;font-size:11px}.visual-break h2{font:700 clamp(48px,6vw,88px)/.98 "Space Grotesk";letter-spacing:-.05em;margin:20px 0}
.quote-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;background:linear-gradient(135deg,#061b33,#0b3a61);color:#fff}.quote-copy .section-label{color:var(--cyan)}.quote-copy h2{margin:32px 0}.quote-copy p{color:#b6c8d7}.whatsapp-direct{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.32);padding:16px 0;font-weight:800;color:var(--cyan)}
.quote-form{background:#fff;color:var(--ink);border-radius:30px;padding:34px;box-shadow:0 30px 70px rgba(0,0,0,.25)}.quote-form label{display:grid;gap:8px;margin-bottom:18px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#496276}.quote-form input,.quote-form select,.quote-form textarea{width:100%;border:0;border-bottom:1px solid #c7d9e3;padding:13px 0;background:transparent;outline:0;color:var(--ink);text-transform:none;letter-spacing:0}.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--blue)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{width:100%;border-radius:14px}.quote-form small{display:block;margin-top:14px;text-align:center;color:#8395a3;text-transform:none;letter-spacing:0;font-weight:500}
.contact-section{padding:100px 7vw;background:#e9f7fd;display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:center}.contact-section h2{font:700 clamp(46px,6vw,86px)/.95 "Space Grotesk";letter-spacing:-.055em;margin:20px 0}.contact-section em{-webkit-text-stroke:1px var(--blue)}.contact-details{display:grid;gap:16px}.contact-details a{font:700 23px "Space Grotesk";border-bottom:1px solid #b5d7e7;padding-bottom:12px}.contact-details p{color:var(--muted);line-height:1.7;font-size:13px}
footer{padding:28px 5vw;background:#031322;color:#9cb0c0;display:flex;align-items:center;justify-content:space-between;font-size:11px}.footer-brand{display:flex;align-items:center;gap:10px;color:#fff}.footer-brand img{width:38px;height:38px;border-radius:9px;object-fit:cover}.footer-brand div{display:grid}.footer-brand span{text-transform:uppercase;font-size:8px;letter-spacing:.12em;color:#8298aa}
.floating-wa{position:fixed;z-index:900;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;background:#24d366;display:grid;place-items:center;box-shadow:0 14px 30px rgba(0,0,0,.24);transition:.25s}.floating-wa:hover{transform:translateY(-4px) scale(1.04)}.floating-wa svg{width:30px;fill:#fff}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}
.cursor-glow{position:fixed;width:360px;height:360px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,rgba(64,188,240,.12),transparent 67%);transform:translate(-50%,-50%)}
@media(max-width:980px){
 .nav{position:fixed;inset:0;background:rgba(3,19,34,.98);flex-direction:column;justify-content:center;font-size:20px;transform:translateX(100%);transition:.35s}.nav.open{transform:none}.menu-toggle{display:grid;gap:7px;z-index:2}.menu-toggle span{display:block;width:28px;height:2px;background:#fff}
 .intro-copy,.process-heading,.quote-section,.contact-section{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.project-section,.project-section.reverse{grid-template-columns:1fr;direction:ltr}.project-image{min-height:500px}.timeline{grid-template-columns:1fr 1fr}.hero-stats{gap:24px}
}
@media(max-width:640px){
 .site-header{height:72px;padding:0 20px}.brand img{width:44px;height:44px}.hero{padding:130px 22px 54px;min-height:860px}.hero h1{font-size:52px}.hero-copy{font-size:15px}.hero-actions{flex-direction:column;align-items:stretch}.hero-stats{display:grid;grid-template-columns:1fr 1fr;width:100%}.scroll-indicator{display:none}
 .section{padding:86px 22px}.intro h2,.process h2,.quote-copy h2{font-size:43px}.project-content{padding:70px 22px}.project-image{min-height:390px}.timeline{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.quote-form{padding:24px}.contact-section{padding:78px 22px}footer{flex-direction:column;gap:18px;text-align:center}
}


/* Logo ampliado y sin fondo */
.brand img{
  width:78px;
  height:64px;
  object-fit:contain;
  border:0;
  border-radius:0;
  background:transparent;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.32));
}
.brand{gap:15px}
.brand strong{font-size:16px}
.footer-brand img{
  width:74px;
  height:58px;
  object-fit:contain;
  border-radius:0;
  background:transparent;
}

/* Catálogo visual */
.catalog-section{
  background:
    radial-gradient(circle at 86% 4%,rgba(64,188,240,.12),transparent 26%),
    linear-gradient(180deg,#ffffff 0%,#edf8fd 100%);
}
.catalog-heading{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:9vw;
  align-items:end;
  margin-bottom:42px;
}
.catalog-heading h2{
  font:700 clamp(42px,5vw,76px)/1 "Space Grotesk";
  letter-spacing:-.045em;
  margin:30px 0 0;
}
.catalog-heading h2 span{color:var(--blue)}
.catalog-heading p{
  color:var(--muted);
  line-height:1.85;
  margin:0;
}
.catalog-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 34px;
}
.catalog-filter{
  border:1px solid #bcdbe9;
  color:#35556b;
  background:rgba(255,255,255,.72);
  padding:11px 17px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  cursor:pointer;
  transition:.25s;
}
.catalog-filter:hover,.catalog-filter.active{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
  transform:translateY(-2px);
}
.catalog-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:250px;
  grid-auto-flow:dense;
  gap:16px;
}
.catalog-card{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  min-height:250px;
  background:#dfeaf0;
  border:1px solid rgba(7,43,71,.08);
  box-shadow:0 18px 42px rgba(2,39,67,.12);
  transition:opacity .3s,transform .3s;
}

.catalog-card::after{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  pointer-events:none;
  z-index:1;
}

.catalog-card.catalog-wide{grid-column:span 2}
.catalog-card.catalog-tall{grid-row:span 2}
.catalog-card.is-hidden{
  display:none;
}
.catalog-open{
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:#0a2844;
  cursor:pointer;
  color:#fff;
  text-align:left;
}
.catalog-open img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease,filter .7s ease;
}
.catalog-card:hover{
  transform:translateY(-6px);
  box-shadow:0 28px 56px rgba(2,39,67,.18);
}
.catalog-card:hover img{
  transform:scale(1.07);
  filter:saturate(1.08) contrast(1.03);
}
.catalog-overlay{
  position:absolute;
  inset:auto 0 0;
  min-height:118px;
  padding:42px 22px 20px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  background:linear-gradient(transparent,rgba(2,18,31,.94));
}
.catalog-overlay small{
  grid-column:1/3;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--cyan);
  margin-bottom:6px;
}
.catalog-overlay strong{
  font:700 18px "Space Grotesk";
}
.catalog-overlay i{
  font-style:normal;
  font-size:22px;
  transition:transform .25s;
}
.catalog-card:hover .catalog-overlay i{transform:translate(4px,-4px)}
.catalog-note{
  margin-top:32px;
  padding:24px 26px;
  border:1px solid #b9dcea;
  border-radius:22px;
  background:rgba(255,255,255,.76);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
}
.catalog-note div{display:grid;gap:5px}
.catalog-note strong{font:700 20px "Space Grotesk"}
.catalog-note span{font-size:13px;color:var(--muted)}
.catalog-lightbox{
  position:fixed;
  z-index:2000;
  inset:0;
  background:rgba(1,12,23,.94);
  backdrop-filter:blur(12px);
  display:grid;
  place-items:center;
  padding:7vh 5vw;
  opacity:0;
  pointer-events:none;
  transition:.3s;
}
.catalog-lightbox.open{
  opacity:1;
  pointer-events:auto;
}
.catalog-lightbox img{
  width:min(1120px,92vw);
  height:min(74vh,760px);
  object-fit:contain;
  border-radius:18px;
  box-shadow:0 35px 90px rgba(0,0,0,.45);
}
.lightbox-close{
  position:absolute;
  right:28px;
  top:20px;
  border:0;
  background:transparent;
  color:#fff;
  font-size:48px;
  font-weight:200;
  cursor:pointer;
}
.lightbox-caption{
  color:#fff;
  font:600 15px "Space Grotesk";
  margin-top:14px;
  letter-spacing:.04em;
}
@media(max-width:980px){
  .catalog-heading{grid-template-columns:1fr}
  .catalog-grid{grid-template-columns:repeat(2,1fr)}
  .brand img{width:68px;height:56px}
}
@media(max-width:640px){
  .brand span{display:none}
  .brand img{width:74px;height:56px}
  .catalog-grid{grid-template-columns:1fr;grid-auto-rows:300px}
  .catalog-card.catalog-wide{grid-column:span 1}
  .catalog-card.catalog-tall{grid-row:span 1}
  .catalog-note{align-items:stretch;flex-direction:column}
  .catalog-note .button{width:100%}
}

/* Catálogo por servicios y carrusel */
body.gallery-open{overflow:hidden}
.service-catalog-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:44px;
}
.service-gallery-card{
  min-height:560px;
  border-radius:28px;
  overflow:hidden;
  background:var(--navy);
  box-shadow:0 24px 55px rgba(2,32,57,.16);
  border:1px solid rgba(9,70,108,.1);
  transition:transform .35s ease,box-shadow .35s ease;
}
.service-gallery-card:hover{
  transform:translateY(-9px);
  box-shadow:0 34px 72px rgba(2,32,57,.24);
}
.service-gallery-open{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:560px;
  padding:0;
  border:0;
  background:var(--navy);
  color:#fff;
  cursor:pointer;
  text-align:left;
  overflow:hidden;
}
.service-gallery-open::after{
  content:"";
  position:absolute;
  inset:14px;
  z-index:3;
  border:1px solid rgba(255,255,255,.22);
  border-radius:20px;
  pointer-events:none;
  transition:border-color .3s ease,inset .3s ease;
}
.service-gallery-card:hover .service-gallery-open::after{
  inset:10px;
  border-color:rgba(121,216,255,.58);
}
.service-gallery-open>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s ease;
}
.service-gallery-card:hover img{
  transform:scale(1.055);
  filter:saturate(1.08) contrast(1.03);
}
.service-gallery-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(2,17,31,.06) 0%,rgba(3,22,39,.18) 40%,rgba(3,20,36,.94) 100%),
    linear-gradient(90deg,rgba(2,18,32,.3),transparent 58%);
}
.service-gallery-index,
.service-gallery-count{
  position:absolute;
  z-index:4;
  top:30px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.service-gallery-index{left:32px;color:var(--cyan)}
.service-gallery-count{
  right:32px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(4,27,47,.64);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px);
}
.service-gallery-content{
  position:absolute;
  z-index:4;
  left:34px;
  right:34px;
  bottom:34px;
  display:grid;
  gap:12px;
}
.service-gallery-content small{
  color:var(--cyan);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:10px;
  font-style:normal;
  font-weight:800;
}
.service-gallery-content strong{
  font:700 clamp(27px,2.4vw,40px)/1.02 "Space Grotesk";
  letter-spacing:-.035em;
  max-width:90%;
}
.service-gallery-content em{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:6px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.24);
  font-style:normal;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.service-gallery-content em b{
  font-size:24px;
  transition:transform .25s ease;
}
.service-gallery-card:hover em b{transform:translateX(5px)}

.gallery-modal{
  position:fixed;
  inset:0;
  z-index:2500;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(1,12,23,.92);
  backdrop-filter:blur(18px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s ease,visibility .3s ease;
}
.gallery-modal.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.gallery-modal-panel{
  width:min(1420px,96vw);
  height:min(930px,94vh);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  gap:16px;
  padding:22px;
  border-radius:30px;
  background:
    radial-gradient(circle at 80% 0%,rgba(30,145,204,.16),transparent 28%),
    linear-gradient(145deg,#071b2d,#031321);
  border:1px solid rgba(121,216,255,.2);
  box-shadow:0 35px 110px rgba(0,0,0,.55);
  transform:translateY(20px) scale(.985);
  transition:transform .35s ease;
  overflow:hidden;
}
.gallery-modal.open .gallery-modal-panel{transform:none}
.gallery-modal-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:2px 4px 0;
  color:#fff;
}
.gallery-modal-kicker{
  display:block;
  margin-bottom:5px;
  color:var(--cyan);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:9px;
  font-weight:800;
}
.gallery-modal-header h3{
  margin:0;
  font:700 clamp(22px,2.4vw,36px)/1 "Space Grotesk";
  letter-spacing:-.03em;
}
.gallery-modal-tools{
  display:flex;
  align-items:center;
  gap:14px;
}
.gallery-counter{
  min-width:74px;
  text-align:center;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#bdd6e7;
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
}
.gallery-close{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:31px;
  font-weight:200;
  line-height:1;
  cursor:pointer;
  transition:.25s;
}
.gallery-close:hover{background:#fff;color:var(--navy);transform:rotate(6deg)}
.gallery-stage{
  min-height:0;
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 64px;
  gap:16px;
  align-items:center;
}
.gallery-arrow{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  justify-self:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:rgba(255,255,255,.07);
  color:#fff;
  font-size:25px;
  cursor:pointer;
  transition:.25s;
}
.gallery-arrow:hover{
  background:linear-gradient(135deg,var(--blue),#19a8e4);
  border-color:transparent;
  transform:scale(1.07);
  box-shadow:0 12px 30px rgba(12,130,198,.34);
}
.gallery-figure{
  min-width:0;
  min-height:0;
  height:100%;
  margin:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:12px;
}
.gallery-frame{
  position:relative;
  min-height:0;
  height:100%;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:22px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.015)),
    #020d17;
  border:1px solid rgba(255,255,255,.13);
  box-shadow:inset 0 0 0 10px rgba(255,255,255,.018);
}
.gallery-frame::after{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:15px;
  pointer-events:none;
}
.gallery-frame img{
  width:100%;
  height:100%;
  max-height:680px;
  object-fit:contain;
  transition:opacity .22s ease,transform .22s ease;
  user-select:none;
  -webkit-user-drag:none;
}
.gallery-frame img.changing{opacity:.28;transform:scale(.985)}
.gallery-figure figcaption{
  min-height:22px;
  color:#dceaf3;
  text-align:center;
  font:600 13px "Space Grotesk";
  letter-spacing:.02em;
}
.gallery-thumbnails{
  display:flex;
  gap:10px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  padding:4px 2px 8px;
  scrollbar-width:thin;
  scrollbar-color:#2b7ba7 transparent;
}
.gallery-thumb{
  flex:0 0 86px;
  width:86px;
  height:62px;
  padding:3px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:12px;
  background:rgba(255,255,255,.05);
  cursor:pointer;
  opacity:.55;
  transition:.25s;
}
.gallery-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:8px;
}
.gallery-thumb:hover{opacity:.85;transform:translateY(-2px)}
.gallery-thumb.active{
  opacity:1;
  border-color:var(--cyan);
  box-shadow:0 0 0 2px rgba(121,216,255,.18);
}
.gallery-help{
  margin:0;
  text-align:center;
  color:#8199aa;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media(max-width:1050px){
  .service-catalog-grid{grid-template-columns:1fr 1fr}
  .service-gallery-card:last-child{grid-column:1/3}
  .service-gallery-card:last-child .service-gallery-open{min-height:480px}
}
@media(max-width:760px){
  .service-catalog-grid{grid-template-columns:1fr}
  .service-gallery-card,.service-gallery-open{min-height:480px}
  .service-gallery-card:last-child{grid-column:auto}
  .service-gallery-card:last-child .service-gallery-open{min-height:480px}
  .gallery-modal{padding:0}
  .gallery-modal-panel{
    width:100vw;
    height:100dvh;
    border-radius:0;
    padding:16px 12px;
    border:0;
  }
  .gallery-stage{
    grid-template-columns:44px minmax(0,1fr) 44px;
    gap:6px;
  }
  .gallery-arrow{width:40px;height:40px;font-size:19px}
  .gallery-frame{border-radius:16px}
  .gallery-frame::after{inset:7px;border-radius:11px}
  .gallery-thumb{flex-basis:72px;width:72px;height:54px}
  .gallery-help{display:none}
}
@media(max-width:520px){
  .service-gallery-card,.service-gallery-open{min-height:430px}
  .service-gallery-card:last-child .service-gallery-open{min-height:430px}
  .service-gallery-content{left:26px;right:26px;bottom:27px}
  .service-gallery-index{left:26px}.service-gallery-count{right:26px}
  .gallery-modal-header h3{font-size:19px}
  .gallery-counter{min-width:58px;padding:8px;font-size:10px}
  .gallery-close{width:38px;height:38px;font-size:27px}
  .gallery-stage{grid-template-columns:38px minmax(0,1fr) 38px}
  .gallery-arrow{width:36px;height:36px}
}

.hero-media video{display:block;background:#061b33}
@media(prefers-reduced-motion:reduce){
  .hero-media video{display:none}
  .hero-media{background:url("assets/video/portada-poster.jpg") center/cover no-repeat}
}
