@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

/* ============ TOKENS ============ */
:root{
  --navy-deep:   #0c2536;   /* fundo escuro profundo */
  --navy-brand:  #1d4d75;   /* azul da marca (oficial) */
  --navy-mid:    #164060;
  --blue-accent: #538dbf;   /* azul claro da marca (oficial) */
  --blue-pale:   #a9c6de;
  --lime:        #a3d621;   /* verde da malha de segurança — uso pontual */
  --lime-dim:    #8bb81c;
  --white:       #f7fafc;
  --ink:         #142433;
  --steel:       #55697c;
  --steel-line:  #d7e0e7;
  --hairline:    rgba(29,77,117,0.14);

  --font-display:'Rajdhani', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;

  --container:1180px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  width:100%;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
section{position:relative;}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 28px;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.01em;
  color:var(--navy-brand);
  margin:0;
}
.services-hero{position:relative;overflow:hidden;padding-bottom:0;}
.services-hero:after{content:"";position:absolute;right:-12%;bottom:-55%;width:620px;height:620px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018);pointer-events:none;}
.services-hero .container{position:relative;z-index:2;padding-bottom:70px;}
.services-hero h1{max-width:950px;}
.services-hero p{max-width:730px;}
.service-nav{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr;margin-top:45px;border:1px solid rgba(255,255,255,.16);background:rgba(7,20,38,.7);backdrop-filter:blur(10px);}
.service-nav a{display:flex;align-items:center;gap:18px;padding:22px 26px;color:var(--white);text-decoration:none;transition:.25s ease;}
.service-nav a+a{border-left:1px solid rgba(255,255,255,.16);}
.service-nav a:hover{background:rgba(255,255,255,.08);}
.service-nav strong{font-family:var(--font-mono);font-size:12px;color:var(--lime);letter-spacing:.14em;}
.service-nav span{font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.svc-block{position:relative;padding:100px 0;border-bottom:1px solid var(--steel-line);scroll-margin-top:80px;overflow:hidden;}
.svc-block:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 65%,rgba(14,107,181,.04));}
.svc-block .container{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:start;}
.svc-block.dark{background:var(--navy-deep);border-bottom:none;}
.svc-block.dark:before{background:linear-gradient(120deg,transparent 55%,rgba(64,169,255,.07));}
.svc-block.dark h2{color:var(--white);}
.svc-block.dark p{color:var(--blue-pale);}
.svc-block.dark .eyebrow{color:var(--lime);}
.svc-num{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:13px;color:var(--blue-accent);letter-spacing:.18em;}
.svc-num:before{content:"";width:36px;height:2px;background:currentColor;}
.svc-block h2{font-size:clamp(26px,3.4vw,38px);margin-top:14px;line-height:1.08;}
.svc-items{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--steel-line);margin-top:8px;}
.svc-item{position:relative;background:var(--white);padding:28px 25px;transition:transform .25s ease,background .25s ease;}
.svc-item:hover{transform:translateY(-3px);z-index:2;}
.svc-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin-bottom:16px;border:1px solid rgba(14,107,181,.22);color:var(--blue-accent);font-family:var(--font-mono);font-size:12px;font-weight:700;}
.svc-item h4{font-size:16px;text-transform:none;color:var(--ink);margin-bottom:8px;}
.svc-item p{font-size:14px;}
.dark .svc-items{background:rgba(247,250,252,0.12);}
.dark .svc-item{background:var(--navy-deep);}
.dark .svc-item:hover{background:#102b49;}
.dark .svc-icon{border-color:rgba(130,202,255,.26);color:var(--lime);}
.dark .svc-item h4{color:var(--white);}
.dark .svc-item p{color:var(--blue-pale);}
.segs{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px;}
.segs span{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;
  border:1px solid rgba(247,250,252,0.28);color:var(--blue-pale);
  padding:8px 14px;text-transform:uppercase;
}
.svc-lead{margin-top:18px;font-size:16px;line-height:1.75;}
.svc-cta{display:inline-flex;margin-top:30px;color:var(--blue-accent);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:5px;}
.dark .svc-cta{color:var(--lime);}
@media (max-width:900px){
  .svc-block .container{grid-template-columns:1fr;}
  .svc-items{grid-template-columns:1fr;}
}
@media (max-width:620px){
  .service-nav{grid-template-columns:1fr;}
  .service-nav a+a{border-left:0;border-top:1px solid rgba(255,255,255,.16);}
  .service-nav a{padding:18px;}
  .svc-block{padding:72px 0;}
}


.btn-industrial {
  position: fixed;
  bottom: 35px;
  right: 20px;
  background: linear-gradient(45deg, #28a745, #20c997);
  color: #fff;
  padding: 10px 14px;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.25);
  z-index: 9999;
  transition: 0.3s;
}
.btn-industrial:hover {
  transform: scale(1.05);
}
.avatar {
 width: 40px;
 height: 40px;
 border-radius: 50%; /* deixa redondo */
 object-fit: cover; /* encaixa a imagem */
 border: 2px solid #fff; /* borda bonita */
}
.avatar {
 position: relative;
}
.avatar::after {
 content: "";
 position: absolute;
 bottom: 50px;
 right: 0;
 width: 0px;
 height: 8px;
 background: #00ff00;
 border-radius: 50%;
 border: 2px solid #fff;
}
.gal-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2px;
  background:var(--steel-line);
  margin-top:48px;
}
.gal-card{
  background:var(--navy-deep);
  aspect-ratio:4/3;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:22px;
}
.gal-card .blueprint-grid{opacity:.4;}
.gal-card svg{
  position:absolute;
  top:50%;left:50%;
  width:44%;
  transform:translate(-50%,-58%);
  z-index:1;
}
.gal-card .label{
  position:relative;z-index:2;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue-pale);
}
.gal-card .label strong{
  display:block;
  font-family:var(--font-display);
  font-size:19px;
  letter-spacing:0.01em;
  color:var(--white);
  text-transform:none;
  margin-top:4px;
}
.gal-note{
  margin-top:44px;
  padding:22px 26px;
  border:1px dashed var(--steel-line);
  display:flex;
  gap:14px;
  align-items:flex-start;
  max-width:640px;
}
.gal-note .dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--lime);flex-shrink:0;margin-top:7px;
}
.gal-note p{font-size:14px;}
@media (max-width:900px){
  .gal-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .gal-grid{grid-template-columns:1fr;}
}

.quote-hero{position:relative;overflow:hidden;padding-bottom:64px;}
.quote-hero:after{content:"";position:absolute;right:-180px;bottom:-320px;width:680px;height:680px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.018);pointer-events:none;}
.quote-hero .container{position:relative;z-index:2;}
.quote-hero h1{max-width:900px;}
.quote-hero p{max-width:700px;}
.quote-process{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;}
.quote-process span{display:flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid rgba(255,255,255,.18);color:var(--blue-pale);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;}
.quote-process b{color:var(--lime);}
.quote-section{position:relative;padding:88px 0 105px;background:#f4f7fa;}
.quote-layout{display:grid;grid-template-columns:.68fr 1.32fr;gap:34px;align-items:start;}
.quote-aside{position:sticky;top:105px;background:var(--navy-deep);padding:38px 34px;color:var(--white);overflow:hidden;}
.quote-aside:after{content:"ATLAS";position:absolute;right:-18px;bottom:-14px;color:rgba(255,255,255,.035);font-size:82px;font-weight:800;letter-spacing:-.06em;}
.quote-aside h2{color:var(--white);font-size:26px;line-height:1.2;margin:14px 0 16px;}
.quote-aside>p{color:var(--blue-pale);font-size:14px;}
.contact-list{display:grid;gap:16px;margin-top:30px;padding-top:26px;border-top:1px solid rgba(255,255,255,.13);}
.contact-item{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;position:relative;z-index:2;}
.contact-item i{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.18);color:var(--lime);font-family:var(--font-mono);font-size:11px;font-style:normal;}
.contact-item small{display:block;color:var(--blue-pale);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;}
.contact-item a,.contact-item strong{color:var(--white);font-size:13px;text-decoration:none;}
.quote-form{background:var(--white);padding:42px;box-shadow:0 18px 55px rgba(7,25,44,.08);}
.form-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:34px;padding-bottom:25px;border-bottom:1px solid var(--steel-line);}
.form-head h2{color:var(--navy-brand);font-size:27px;margin:8px 0 0;}
.form-head p{max-width:270px;font-size:13px;text-align:right;}
.form-section{margin-top:30px;}
.form-section-title{display:flex;align-items:center;gap:12px;margin-bottom:18px;color:var(--navy-brand);font-size:14px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.form-section-title span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--navy-brand);color:var(--white);font-family:var(--font-mono);font-size:11px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-group{display:flex;flex-direction:column;gap:7px;}
.form-group.full{grid-column:1/-1;}
.form-group label{color:var(--ink);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}
.form-group label em{color:#c53b3b;font-style:normal;}
.form-group input,.form-group select,.form-group textarea{width:100%;min-height:50px;border:1px solid #cad4de;background:#fbfcfd;color:var(--ink);font:inherit;font-size:16px;padding:13px 14px;outline:none;transition:border-color .2s,box-shadow .2s;}
.form-group textarea{min-height:135px;resize:vertical;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--blue-accent);box-shadow:0 0 0 3px rgba(14,107,181,.09);background:var(--white);}
.service-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.service-choice{position:relative;}
.service-choice input{position:absolute;opacity:0;pointer-events:none;}
.service-choice label{display:flex;align-items:center;gap:13px;min-height:72px;border:1px solid #cad4de;padding:15px;cursor:pointer;transition:.2s;background:#fbfcfd;}
.service-choice label:before{content:"";width:18px;height:18px;flex:0 0 18px;border:2px solid #a9b7c4;box-shadow:inset 0 0 0 4px #fbfcfd;}
.service-choice input:checked+label{border-color:var(--blue-accent);background:#f0f7fc;color:var(--navy-brand);}
.service-choice input:checked+label:before{background:var(--blue-accent);border-color:var(--blue-accent);}
.service-choice strong{display:block;font-size:13px;line-height:1.25;text-transform:uppercase;}
.service-choice small{display:block;margin-top:3px;color:var(--steel);font-size:11px;}
.file-note{font-size:11px;color:var(--steel);margin-top:5px;}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:34px;padding-top:26px;border-top:1px solid var(--steel-line);}
.form-actions p{max-width:330px;font-size:11px;color:var(--steel);}
.submit-btn{border:0;cursor:pointer;white-space:nowrap;}
.feedback{display:none;margin-top:18px;padding:13px 15px;border-left:3px solid #c53b3b;background:#fff1f1;color:#8e2929;font-size:13px;}
@media(max-width:940px){.quote-layout{grid-template-columns:1fr}.quote-aside{position:relative;top:auto}.contact-list{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.quote-section{padding:60px 0}.quote-form{padding:27px 20px}.form-grid,.service-options{grid-template-columns:1fr}.form-head,.form-actions{flex-direction:column}.form-head p{text-align:left}.form-actions{align-items:stretch}.submit-btn{width:100%;text-align:center}.contact-list{grid-template-columns:1fr}}

.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--blue-accent);
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.eyebrow::before{
  content:'';
  width:22px;
  height:2px;
  background:var(--lime);
  display:inline-block;
}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.about-figure{
  background:var(--navy-deep);
  aspect-ratio:4/5;
  position:relative;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.about-figure svg{width:62%;}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--steel-line);margin-top:56px;}
.pillar{background:var(--white);padding:32px;}
.pillar .idx{font-family:var(--font-mono);font-size:12px;color:var(--blue-accent);letter-spacing:.14em;}
.pillar h3{font-size:19px;margin:12px 0 10px;text-transform:none;color:var(--ink);}
.pillar p{font-size:14.5px;}
.safety-band{
  background:var(--navy-brand);
  color:var(--white);
  padding:70px 0;
  margin-top:0;
}
.safety-band .container{display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;align-items:center;}
.safety-band h2{color:var(--white);font-size:clamp(24px,3vw,32px);}
.safety-band p{color:var(--blue-pale);margin-top:14px;}
.mesh{
  height:190px;
  background-image:repeating-linear-gradient(90deg, var(--lime) 0 3px, transparent 3px 26px);
  opacity:.85;
  position:relative;
}
.mesh::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(29,77,117,0) 0%, var(--navy-brand) 100%);
}
@media (max-width:900px){
  .about-grid{grid-template-columns:1fr;}
  .pillars{grid-template-columns:1fr;}
  .safety-band .container{grid-template-columns:1fr;}
  .about-figure{order:-1;}
}
p{line-height:1.7;color:var(--steel);margin:0;}

:focus-visible{
  outline:2px solid var(--lime);
  outline-offset:3px;
}

/* ============ HAZARD DIVIDER (assinatura) ============ */
.hazard{
  height:6px;
  width:100%;
  background:repeating-linear-gradient(
    135deg,
    var(--lime) 0 18px,
    var(--navy-deep) 18px 36px
  );
}

/* ============ BUTTONS ============ */
.btn{
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:15px 30px;
  border-radius:2px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform 0.18s ease, background 0.18s ease, color 0.18s ease, border-color .18s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{
  background:var(--lime);
  color:var(--navy-deep);
  font-weight:600;
}
.btn-primary:hover{background:var(--white);}
.btn-outline{
  border-color:rgba(247,250,252,0.35);
  color:var(--white);
}
.btn-outline:hover{border-color:var(--lime);color:var(--lime);}
.btn-outline-dark{
  border-color:rgba(20,36,51,0.25);
  color:var(--navy-brand);
}
.btn-outline-dark:hover{border-color:var(--navy-brand);}

/* ============ HEADER ============ */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:120;
  padding:18px 0;
  background:rgba(12,37,54,0.0);
  transition:background 0.25s ease, padding 0.25s ease, box-shadow .25s ease;
}
.site-header.solid{
  background:rgba(12,37,54,0.94);
  backdrop-filter:blur(8px);
  padding:12px 0;
  box-shadow:0 8px 24px rgba(12,37,54,0.18);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand img{height:34px;width:auto;filter:brightness(0) invert(1);}
.main-nav ul{display:flex;gap:6px;align-items:center;}
.main-nav a{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue-pale);
  padding:10px 16px;
  position:relative;
}
.main-nav a:hover{color:var(--white);}
.main-nav a.active{color:var(--white);}
.main-nav a.active::after{
  content:'';
  position:absolute;
  left:16px;right:16px;
  bottom:4px;
  height:2px;
  background:var(--lime);
}
.main-nav .btn{margin-left:8px;}

.nav-toggle{
  display:none;
  width:38px;height:32px;
  border:none;background:none;
  cursor:pointer;
  flex-direction:column;
  justify-content:space-between;
  padding:4px 2px;
}
.nav-toggle span{
  height:2px;width:100%;
  background:var(--white);
  display:block;
}

/* ============ HERO (páginas internas) ============ */
.page-hero{
  background:
  linear-gradient(180deg, rgba(12,37,54,0.88), rgba(12,37,54,0.94)),
  var(--navy-deep);
  padding:168px 0 84px;
  position:relative;
  overflow:hidden;
}
.page-hero .container{position:relative;z-index:2;}
.page-hero h1{color:var(--white);font-size:clamp(34px,5vw,54px);line-height:1.05;}
.page-hero p{color:var(--blue-pale);max-width:560px;margin-top:18px;font-size:16px;}
.blueprint-grid{
  position:absolute;inset:0;z-index:1;opacity:0.35;
  background-image:
  linear-gradient(var(--navy-mid) 1px, transparent 1px),
  linear-gradient(90deg, var(--navy-mid) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(ellipse 70% 90% at 70% 30%, black 40%, transparent 85%);
}

.gallery-section{padding-top:100px;}
.gallery-intro{
  max-width:760px;
  margin-bottom:34px;
}
.gallery-intro h2{
  color:var(--navy-deep);
  font-size:clamp(30px,4vw,46px);
  line-height:1.05;
  text-transform:uppercase;
  margin-bottom:14px;
}
.gallery-intro p{
  font-size:16px;
  max-width:620px;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px;
}
.gallery-item{
  position:relative;
  display:block;
  border:1px solid rgba(29,77,117,0.08);
  background:linear-gradient(180deg, rgba(12,37,54,0.06), rgba(12,37,54,0.02));
  padding:0;
  overflow:hidden;
  cursor:pointer;
  border-radius:22px;
  aspect-ratio:1.15;
  box-shadow:0 18px 38px rgba(12,37,54,0.12);
  transform:translateY(0);
  transition:transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.gallery-item:hover,
.gallery-item:focus-visible{
  transform:translateY(-7px);
  border-color:rgba(83,141,191,0.38);
  box-shadow:0 30px 58px rgba(12,37,54,0.18);
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(0.86) contrast(1.05) brightness(0.95);
  transition:transform 0.55s ease, filter 0.55s ease;
}
.gallery-item:hover img,
.gallery-item:focus-visible img{
  transform:scale(1.06);
  filter:saturate(1.04) contrast(1.11) brightness(1.02);
}
.gallery-item::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,0.20), transparent 35%, transparent 60%, rgba(163,214,33,0.08));
  z-index:1;
  pointer-events:none;
}
.gallery-item::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(12,37,54,0.12), rgba(12,37,54,0.84));
  z-index:1;
}
.gallery-overlay{
  position:absolute;
  left:20px;
  right:20px;
  bottom:18px;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:8px;
  text-align:left;
}
.gallery-overlay span{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(247,250,252,0.82);
}
.gallery-overlay strong{
  color:var(--white);
  font-family:var(--font-display);
  font-size:26px;
  letter-spacing:0.02em;
  line-height:1;
  text-shadow:0 10px 26px rgba(0,0,0,0.28);
}
.premium-carousel{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  z-index:120;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 0.25s ease, visibility 0.25s ease;
}
.premium-carousel.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.carousel-backdrop{
  position:absolute;
  inset:0;
  background:rgba(8,16,24,0.78);
  backdrop-filter:blur(10px);
}
.carousel-panel{
  position:relative;
  z-index:1;
  width:min(1120px, calc(100vw - 32px));
  background:linear-gradient(180deg, rgba(11,24,35,0.95), rgba(8,18,28,0.92));
  border:1px solid rgba(169,198,222,0.22);
  border-radius:28px;
  padding:18px 18px 24px;
  box-shadow:0 40px 80px rgba(4,10,18,0.55);
  animation:carouselIn 0.35s cubic-bezier(.16,1,.3,1);
}
@keyframes carouselIn {
  from { opacity:0; transform:translateY(20px) scale(0.98); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
.carousel-close{
  position:absolute;
  top:18px;
  right:18px;
  width:42px;
  height:42px;
  border:none;
  border-radius:50%;
  background:rgba(247,250,252,0.12);
  color:var(--white);
  font-size:30px;
  cursor:pointer;
  z-index:3;
  transition:background 0.2s ease, transform 0.2s ease;
}
.carousel-close:hover{background:rgba(163,214,33,0.18); transform:rotate(90deg);}
.carousel-stage-wrap{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:14px;
  margin-top:24px;
}
.carousel-stage{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  background:radial-gradient(circle at top, rgba(83,141,191,0.25), #071926 60%);
  aspect-ratio:16/10;
  border:1px solid rgba(169,198,222,0.14);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);
}
.carousel-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 0.3s ease;
}
.carousel-stage:hover .carousel-image{transform:scale(1.02);}
.carousel-nav{
  width:52px;
  height:52px;
  border-radius:50%;
  border:1px solid rgba(169,198,222,0.2);
  background:linear-gradient(180deg, rgba(247,250,252,0.08), rgba(247,250,252,0.02));
  color:var(--white);
  font-size:36px;
  line-height:1;
  cursor:pointer;
  transition:background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.carousel-nav:hover{
  background:rgba(163,214,33,0.12);
  border-color:rgba(163,214,33,0.4);
  transform:translateY(-2px);
}
.carousel-info{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  padding:18px 6px 0;
}
.carousel-kicker{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--lime);
  margin-bottom:8px;
}
.carousel-title{
  color:var(--white);
  font-size:clamp(26px,2.5vw,40px);
  line-height:1;
}
.carousel-caption{
  color:var(--blue-pale);
  font-size:14px;
  max-width:220px;
  text-align:right;
}
.thumbnail-strip{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:10px;
  margin-top:18px;
}
.contact-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:0;border:1px solid var(--steel-line);margin-top:48px;}
.contact-info{background:var(--navy-deep);color:var(--white);padding:48px 44px;}
.contact-info .eyebrow{color:var(--lime);}
.contact-info h2{color:var(--white);font-size:24px;margin-bottom:24px;}
.info-row{
  display:flex;gap:16px;
  padding:20px 0;
  border-top:1px solid rgba(247,250,252,0.12);
}
.info-row:first-of-type{border-top:none;}
.info-row .k{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue-pale);width:88px;flex-shrink:0;
  padding-top:2px;
}
.info-row a, .info-row span.v{font-size:15.5px;color:var(--white);line-height:1.55;}
.info-row a:hover{color:var(--lime);}
.map-wrap{position:relative;min-height:420px;background:#dfe7ec;}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(0.15);}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;}
  .map-wrap{min-height:320px;}
}
.thumbnail-strip button{
  border:2px solid rgba(169,198,222,0.18);
  background:transparent;
  padding:0;
  border-radius:12px;
  overflow:hidden;
  cursor:pointer;
  opacity:0.6;
  transition:opacity 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.thumbnail-strip button.active,
.thumbnail-strip button:hover,
.thumbnail-strip button:focus-visible{
  opacity:1;
  border-color:var(--lime);
  transform:translateY(-2px);
}
.thumbnail-strip img{
  width:100%;
  aspect-ratio:1.2;
  object-fit:cover;
  display:block;
}
body.carousel-open{overflow:hidden;}

@media (max-width:900px){
  .gallery-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
  .carousel-stage-wrap{grid-template-columns:1fr;}
  .carousel-nav{display:none;}
  .carousel-info{display:block;}
  .carousel-caption{text-align:left; margin-top:8px; max-width:none;}
}

@media (max-width:560px){
  .gallery-section{padding-top:88px;}
  .gallery-grid{grid-template-columns:1fr; gap:16px;}
  .gallery-item{border-radius:18px;}
  .gallery-overlay strong{font-size:22px;}
  .thumbnail-strip{grid-template-columns:repeat(3, minmax(0,1fr));}
}

/* ============ FOOTER ============ */
.site-footer{
  background:var(--navy-deep);
  color:var(--blue-pale);
  padding:64px 0 0;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:48px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(247,250,252,0.1);
}
.footer-grid img{height:30px;filter:brightness(0) invert(1);margin-bottom:16px;}
.footer-grid p{color:var(--blue-pale);font-size:14px;}
.footer-col h4{
  color:var(--white);
  font-size:14px;
  letter-spacing:0.1em;
  margin-bottom:18px;
}
.footer-col ul li{margin-bottom:11px;}
.footer-col a{
  color:var(--blue-pale);
  font-size:14.5px;
}
.footer-col a:hover{color:var(--lime);}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:22px 0;
  font-family:var(--font-mono);
  font-size:11.5px;
  color:rgba(169,198,222,0.55);
  letter-spacing:0.04em;
  flex-wrap:wrap;
  gap:10px;
}

/* ============ UTIL ============ */
.section{padding:96px 0;}
.section-tight{padding:64px 0;}
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.7s cubic-bezier(.16,1,.3,1), transform 0.7s cubic-bezier(.16,1,.3,1);
}
.reveal.in{opacity:1;transform:translateY(0);}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ============ RESPONSIVE ============ */
@media (max-width:960px){
  body.nav-open{overflow:hidden;}
  .main-nav{
    position:fixed;
    top:0;right:0;
    height:100vh;
    width:min(78vw,320px);
    background:var(--navy-deep);
    transform:translateX(100%);
    transition:transform 0.3s ease;
    padding:100px 32px 32px;
    box-shadow:-16px 0 40px rgba(0,0,0,0.3);
    z-index:110;
    overflow-y:auto;
  }
  .main-nav.open{transform:translateX(0);}
  .nav-backdrop{
    position:fixed;
    inset:0;
    background:rgba(8,16,24,0.55);
    z-index:105;
    opacity:0;
    visibility:hidden;
    transition:opacity 0.3s ease, visibility 0.3s ease;
  }
  .nav-backdrop.open{opacity:1;visibility:visible;}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:6px;width:100%;}
  .main-nav a{width:100%;padding:18px 6px;font-size:16px;line-height:1.4;letter-spacing:0.08em;border-bottom:1px solid rgba(247,250,252,0.08);}
  .main-nav li{width:100%;}
  .main-nav .btn{margin-left:0;margin-top:20px;width:100%;justify-content:center;border-bottom:none;}
  .nav-toggle{
    display:flex;
    width:44px;height:44px;
    align-items:center;
    justify-content:center;
    gap:0;
    padding:0;
    -webkit-tap-highlight-color:transparent;
  }
  .nav-toggle span{margin:2px 0;}
  .footer-grid{grid-template-columns:1fr;gap:36px;}
}
@media (max-width:640px){
  .section{padding:64px 0;}
  .page-hero{padding:140px 0 56px;}
}
