/* ============================================================
   RESENDIZ RESTYLING — Cibolo, TX
   Built by Nando Media LLC · v3 standard · premium/cinematic pass
   ============================================================ */

:root{
  --ink:#0a0d10;
  --coal:#0f1418;
  --steel:#161c22;
  --steel-2:#1c242c;
  --line:#222b34;
  --line-2:#2c3641;
  --paper:#f4f6f8;
  --mute:#9aa8b4;
  --dim:#5c6a76;
  --accent:#529fd9;
  --accent-hi:#7cc0ee;
  --accent-deep:#2c6b9b;
  --accent-ghost:rgba(82,159,217,.12);
  --glow:rgba(82,159,217,.22);
  --shadow:0 24px 60px rgba(0,0,0,.55);
  --rad:16px;
  --hexes:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='97' viewBox='0 0 56 97'%3E%3Cg fill='none' stroke='%23529fd9' stroke-opacity='.055' stroke-width='1.5'%3E%3Cpath d='M28 2 54 17v30L28 62 2 47V17z'/%3E%3Cpath d='M28 66 54 81v30L28 126 2 111V81z'/%3E%3C/g%3E%3C/svg%3E");
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--ink);color:var(--paper);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.65;overflow-x:hidden;position:relative;
}
/* film grain */
body::after{
  content:"";position:fixed;inset:0;z-index:9000;pointer-events:none;
  background-image:var(--grain);opacity:.05;mix-blend-mode:overlay;
}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--accent);color:#06121c}

h1,h2,h3,.oswald{
  font-family:'Oswald',Impact,sans-serif;
  text-transform:uppercase;letter-spacing:.005em;line-height:1;
  font-weight:600;
}
.h-xl{font-size:clamp(2.6rem,6vw,4.8rem)}
.h-lg{font-size:clamp(2.2rem,4.8vw,3.9rem)}
.h-md{font-size:clamp(1.5rem,2.8vw,2.1rem)}
.accent{color:var(--accent)}

.container{width:min(1200px,92%);margin:0 auto}
section{padding:clamp(72px,10vw,128px) 0;position:relative}
.section-alt{background:var(--coal)}
.section-hex{background-image:var(--hexes)}

/* hairline glow at section tops */
.section-alt::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(82,159,217,.45),transparent);
}
/* ambient blue glow */
.glow::after{
  content:"";position:absolute;width:min(900px,90vw);height:520px;left:50%;top:-120px;
  transform:translateX(-50%);pointer-events:none;z-index:0;
  background:radial-gradient(closest-side,var(--glow),transparent 70%);
  filter:blur(40px);opacity:.7;
}
.glow>.container{position:relative;z-index:1}
/* giant ghost numerals */
section[data-num]{overflow:hidden}
section[data-num]::before{
  content:attr(data-num);position:absolute;right:-.06em;top:-.12em;z-index:0;
  font-family:'Oswald',sans-serif;font-weight:700;line-height:1;
  font-size:clamp(11rem,26vw,24rem);color:rgba(244,246,248,.028);
  letter-spacing:-.04em;pointer-events:none;user-select:none;
}
section[data-num]>.container{position:relative;z-index:1}

.kicker{
  display:flex;align-items:center;gap:14px;
  font-family:'Oswald',sans-serif;font-weight:500;
  color:var(--accent);letter-spacing:.34em;text-transform:uppercase;
  font-size:.78rem;margin-bottom:20px;
}
.kicker::before{content:"";width:46px;height:2px;background:linear-gradient(90deg,var(--accent),transparent);flex:none}
.lead{color:var(--mute);max-width:640px;font-size:1.08rem;line-height:1.7}

/* ---------- buttons ---------- */
.btn{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;
  font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;
  letter-spacing:.16em;font-size:.9rem;cursor:pointer;border:0;
  padding:17px 34px;border-radius:6px;transition:transform .3s,box-shadow .3s,background .3s,color .3s;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
.btn-solid{background:var(--accent);color:#06121c;box-shadow:0 12px 34px rgba(82,159,217,.28)}
.btn-solid:hover{background:var(--accent-hi);transform:translateY(-3px);box-shadow:0 18px 44px rgba(82,159,217,.4)}
.btn-ghost{background:rgba(255,255,255,.02);color:var(--paper);box-shadow:inset 0 0 0 2px var(--accent)}
.btn-ghost:hover{background:var(--accent-ghost);transform:translateY(-3px);box-shadow:inset 0 0 0 2px var(--accent-hi),0 14px 34px rgba(82,159,217,.18)}
.btn .ripple{
  position:absolute;border-radius:50%;background:rgba(255,255,255,.45);
  transform:scale(0);animation:ripple .55s ease-out forwards;pointer-events:none;
}
@keyframes ripple{to{transform:scale(3.4);opacity:0}}

/* ---------- header ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:120;
  padding:22px 0;transition:padding .35s,background .35s,box-shadow .35s;
}
.site-header.scrolled{
  padding:10px 0;background:rgba(8,11,14,.86);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(82,159,217,.18),0 10px 40px rgba(0,0,0,.5);
}
.nav-row{display:flex;align-items:center;gap:28px}
.brand img{height:42px;width:auto;transition:height .35s}
.site-header.scrolled .brand img{height:32px}
.nav-links{display:flex;gap:28px;margin-left:auto}
.nav-links a{
  font-family:'Oswald',sans-serif;font-size:.84rem;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--paper);
  padding:6px 2px;position:relative;opacity:.9;transition:opacity .25s;
}
.nav-links a:hover{opacity:1}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--accent);transition:width .3s;
}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-call{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.95rem;color:var(--paper);white-space:nowrap}
.nav-call svg{width:17px;height:17px;fill:var(--accent)}
.nav-cta{padding:12px 22px;font-size:.78rem;box-shadow:0 8px 24px rgba(82,159,217,.25)}
.nav-burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px}
.nav-burger span{display:block;width:26px;height:2.5px;background:var(--paper);margin:6px 0;transition:transform .3s,opacity .3s}
.nav-open .nav-burger span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.nav-open .nav-burger span:nth-child(2){opacity:0}
.nav-open .nav-burger span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}

@media(max-width:980px){
  .nav-links{
    position:fixed;top:0;right:0;height:100vh;width:min(320px,84vw);
    background:rgba(12,16,20,.97);backdrop-filter:blur(16px);flex-direction:column;gap:8px;
    padding:96px 34px;transform:translateX(105%);transition:transform .38s cubic-bezier(.2,.8,.2,1);
    box-shadow:-20px 0 60px rgba(0,0,0,.5);margin:0;border-left:1px solid var(--line);
  }
  .nav-open .nav-links{transform:none}
  .nav-links a{font-size:1.05rem;padding:12px 0}
  .nav-burger{display:block;z-index:130}
  .nav-call span{display:none}
  .nav-cta{display:none}
  .nav-call{margin-left:auto}
}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  padding:0;overflow:hidden;background:#000;
}
.hero-media,.hero-media video,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media video,.hero-media img{animation:kenburns 26s ease-in-out infinite alternate;transform-origin:55% 50%}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.07)}}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 50% 45%,rgba(0,0,0,0) 0%,rgba(6,9,12,.55) 75%,rgba(6,9,12,.85) 100%),
    linear-gradient(180deg,rgba(6,9,12,.62) 0%,rgba(6,9,12,.28) 40%,rgba(10,13,16,.55) 75%,var(--ink) 100%);
}
.hero-inner{position:relative;z-index:2;text-align:center;padding:120px 16px 110px;width:100%}
.hero-logo{
  width:min(560px,76%);margin:0 auto 28px;
  filter:drop-shadow(0 12px 40px rgba(0,0,0,.7));
}
.hero-tag{
  font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.34em;
  text-transform:uppercase;font-size:clamp(.78rem,1.6vw,1rem);color:var(--paper);
  margin-bottom:36px;text-shadow:0 2px 18px rgba(0,0,0,.8);
}
.hero-tag .dot{color:var(--accent)}
.hero-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:38px}
.hero-chips span{
  display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:100px;
  background:rgba(10,13,16,.45);border:1px solid rgba(244,246,248,.14);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-family:'Oswald',sans-serif;font-size:.74rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
}
.hero-chips b{color:#f5b942;font-weight:600}
.hero-chips i{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block}
.scroll-cue{
  position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:2;
  width:26px;height:44px;border:2px solid rgba(243,245,247,.45);border-radius:14px;
}
.scroll-cue::after{
  content:"";position:absolute;left:50%;top:8px;width:4px;height:9px;margin-left:-2px;
  border-radius:3px;background:var(--accent);animation:cue 1.8s infinite;
}
@keyframes cue{0%{opacity:0;transform:translateY(0)}35%{opacity:1}100%{opacity:0;transform:translateY(15px)}}

/* ---------- marquee (kept for optional use) ---------- */
.trustbar{background:var(--accent);padding:14px 0;overflow:hidden}
.marquee{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee span{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.22em;font-size:.95rem;color:#07131d;white-space:nowrap;display:inline-flex;align-items:center}
.marquee span::after{content:"✦";margin:0 22px;font-size:.8em}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- quote form ---------- */
.quote-wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:center}
.quote-copy .checks{margin-top:28px;display:grid;gap:14px}
.quote-copy .checks li{display:flex;gap:12px;align-items:flex-start;color:var(--paper)}
.quote-copy .checks svg{width:20px;height:20px;fill:var(--accent);flex:none;margin-top:3px}
.form-card{
  background:linear-gradient(160deg,var(--steel-2),var(--steel));
  border:1px solid var(--line-2);border-radius:var(--rad);
  padding:clamp(28px,4vw,44px);box-shadow:var(--shadow),0 0 0 1px rgba(82,159,217,.06);position:relative;
}
.form-card::before{
  content:"";position:absolute;inset:-1px;border-radius:var(--rad);pointer-events:none;
  background:linear-gradient(140deg,rgba(82,159,217,.35),transparent 40%,transparent 60%,rgba(82,159,217,.15));
  -webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);
  -webkit-mask-composite:xor;mask-composite:exclude;padding:1px;
}
.form-badge{
  position:absolute;top:-16px;left:30px;background:var(--accent);color:#06121c;
  font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;font-size:.74rem;padding:8px 16px;border-radius:4px;
  box-shadow:0 8px 24px rgba(82,159,217,.35);
}
.form-note{color:var(--mute);font-size:.92rem;margin:6px 0 24px}
.field{margin-bottom:16px}
.field label{
  display:block;font-family:'Oswald',sans-serif;font-size:.76rem;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:8px;
}
.field input,.field select,.field textarea{
  width:100%;background:rgba(8,11,14,.8);border:1px solid var(--line-2);border-radius:9px;
  color:var(--paper);padding:14px 16px;font:inherit;font-size:.98rem;
  transition:border-color .25s,box-shadow .25s,background .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ghost);background:rgba(8,11,14,1);
}
.field textarea{min-height:108px;resize:vertical}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23529fd9' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hp{position:absolute;left:-6000px;opacity:0;height:0;overflow:hidden}
.form-status{display:none;margin-top:14px;padding:14px 16px;border-radius:9px;font-size:.95rem}
.form-status.ok{display:block;background:rgba(64,180,120,.13);border:1px solid rgba(64,180,120,.4);color:#8fe3b8}
.form-status.err{display:block;background:rgba(220,90,90,.12);border:1px solid rgba(220,90,90,.4);color:#f2a9a9}
.form-card .btn{width:100%;justify-content:center;margin-top:6px}
@media(max-width:900px){.quote-wrap{grid-template-columns:1fr;gap:44px}}

/* ---------- editorial photo frame ---------- */
.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
.about-photo{border-radius:var(--rad);overflow:hidden;box-shadow:var(--shadow);position:relative;isolation:isolate}
.about-photo::before{
  content:"";position:absolute;inset:0;border:1px solid rgba(82,159,217,.22);border-radius:var(--rad);z-index:2;pointer-events:none;
}
.about-photo::after{
  content:"";position:absolute;inset:auto 0 0 0;height:40%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(6,9,12,.55));
}
.about-photo img{aspect-ratio:4/5;object-fit:cover;width:100%;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.about-photo:hover img{transform:scale(1.05)}
.frame{position:relative}
.frame::before{
  content:"";position:absolute;inset:0;transform:translate(16px,16px);border-radius:var(--rad);
  border:1px solid rgba(82,159,217,.35);z-index:-1;pointer-events:none;
}
.about-grid .checks{margin-top:26px;display:grid;gap:13px}
.about-grid .checks li{display:flex;gap:12px;align-items:flex-start}
.about-grid .checks svg{width:20px;height:20px;fill:var(--accent);flex:none;margin-top:3px}
.about-grid .checks b{color:var(--paper)}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:40px}.frame::before{transform:translate(10px,10px)}}

/* ---------- stats band ---------- */
.stats-band{
  background:linear-gradient(180deg,var(--steel),var(--coal));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:clamp(56px,7vw,84px) 0;position:relative;overflow:hidden;
}
.stats-band::before{
  content:"";position:absolute;left:50%;top:50%;width:min(1100px,100%);height:100%;
  transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,var(--glow),transparent 65%);
  filter:blur(30px);opacity:.55;pointer-events:none;
}
.stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;position:relative}
.stat{padding:8px 16px;border-left:1px solid var(--line-2)}
.stat:first-child{border-left:0}
.stat b{
  font-family:'Oswald',sans-serif;font-size:clamp(2.8rem,5.6vw,4.6rem);
  font-weight:700;color:var(--paper);display:block;line-height:1;letter-spacing:-.01em;
  text-shadow:0 0 40px rgba(82,159,217,.35);
}
.stat b span{color:var(--paper)}
.stat span.lbl{
  display:block;margin-top:12px;color:var(--accent);font-size:.8rem;
  letter-spacing:.24em;text-transform:uppercase;font-family:'Oswald',sans-serif;font-weight:500;
}
.stat-notes{margin-top:38px;color:var(--dim);font-size:.75rem;line-height:1.8;text-align:center;position:relative}
.stat-notes a{color:#7d97ab;text-decoration:underline}
@media(max-width:760px){
  .stats{grid-template-columns:repeat(2,1fr);gap:28px 0}
  .stat:nth-child(3){border-left:0}
}

/* ---------- services grid ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:52px}
.svc-card{
  background:var(--steel);border:1px solid var(--line);border-radius:var(--rad);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .45s;
  clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,24px 100%,0 calc(100% - 24px));
}
.svc-card:hover{transform:translateY(-8px);border-color:rgba(82,159,217,.55);box-shadow:0 30px 60px rgba(0,0,0,.5),0 0 40px rgba(82,159,217,.12)}
.svc-card .ph{overflow:hidden;aspect-ratio:16/11;position:relative}
.svc-card .ph::after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(22,28,34,1));
}
.svc-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.8,.2,1),filter .6s;filter:saturate(.92)}
.svc-card:hover .ph img{transform:scale(1.08);filter:saturate(1.05)}
.svc-card .num{
  position:absolute;top:18px;left:20px;z-index:2;font-family:'Oswald',sans-serif;font-weight:600;
  font-size:.78rem;letter-spacing:.24em;color:var(--paper);
  background:rgba(10,13,16,.6);backdrop-filter:blur(6px);padding:6px 10px;border-radius:4px;
  border:1px solid rgba(244,246,248,.12);
}
.svc-card .body{padding:22px 26px 30px;display:flex;flex-direction:column;flex:1;position:relative;margin-top:-10px}
.svc-card h3{font-size:1.35rem;margin-bottom:10px}
.svc-card p{color:var(--mute);font-size:.95rem;flex:1;line-height:1.6}
.svc-card .more{
  margin-top:20px;font-family:'Oswald',sans-serif;font-size:.8rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:8px;
}
.svc-card .more::after{content:"→";transition:transform .3s}
.svc-card:hover .more::after{transform:translateX(6px)}
@media(max-width:980px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.svc-grid{grid-template-columns:1fr}}

/* ---------- projects ---------- */
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;gap:16px;margin-top:52px}
.proj-item{
  position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/5;cursor:pointer;
  border:1px solid var(--line);background:var(--steel);isolation:isolate;
}
.proj-item.feat{grid-column:span 2;grid-row:span 2;aspect-ratio:4/5}
.proj-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),filter .6s;filter:saturate(.95)}
.proj-item:hover img{transform:scale(1.07);filter:saturate(1.08)}
.proj-item::after{
  content:"";position:absolute;inset:0;border-radius:12px;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(82,159,217,0);transition:box-shadow .35s;
}
.proj-item:hover::after{box-shadow:inset 0 0 0 1px rgba(82,159,217,.55)}
.proj-item figcaption{
  position:absolute;inset:auto 0 0 0;padding:40px 16px 14px;font-size:.84rem;color:var(--paper);
  font-family:'Oswald',sans-serif;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  background:linear-gradient(180deg,transparent,rgba(6,9,12,.92));
  opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s;
}
.proj-item.feat figcaption{opacity:1;transform:none;font-size:1rem;padding:60px 22px 20px}
.proj-item:hover figcaption{opacity:1;transform:none}
@media(max-width:980px){.proj-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){
  .proj-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .proj-item.feat{grid-column:span 2;grid-row:span 1;aspect-ratio:16/10}
}

.filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.filter-btn{
  background:rgba(22,28,34,.8);border:1px solid var(--line-2);color:var(--mute);cursor:pointer;
  font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  font-size:.76rem;padding:10px 20px;border-radius:100px;transition:all .25s;
}
.filter-btn:hover{color:var(--paper);border-color:var(--accent)}
.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#06121c;box-shadow:0 8px 24px rgba(82,159,217,.3)}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:9500;background:rgba(4,6,9,.95);backdrop-filter:blur(8px);
  display:none;align-items:center;justify-content:center;padding:4vh 4vw;
}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:82vh;border-radius:10px;box-shadow:var(--shadow)}
.lb-cap{position:absolute;bottom:5vh;left:50%;transform:translateX(-50%);color:var(--mute);font-size:.92rem;text-align:center;max-width:80vw}
.lb-btn{
  position:absolute;top:50%;transform:translateY(-50%);background:rgba(22,28,34,.85);
  border:1px solid var(--line-2);color:var(--paper);width:52px;height:52px;border-radius:50%;
  font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s;z-index:2;
}
.lb-btn:hover{background:var(--accent);color:#06121c}
.lb-prev{left:3vw}.lb-next{right:3vw}
.lb-close{top:4vh;right:4vw;transform:none;font-size:1.2rem}

/* ---------- reels ---------- */
.reel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.reel-card{
  position:relative;border-radius:var(--rad);overflow:hidden;aspect-ratio:9/16;
  border:1px solid var(--line);background:var(--steel);display:block;isolation:isolate;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .35s;
}
.reel-card:hover{transform:translateY(-6px);border-color:rgba(82,159,217,.5);box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 40px rgba(82,159,217,.14)}
.reel-card video{width:100%;height:100%;object-fit:cover}
.reel-card .ig-badge{
  position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:10px;
  background:rgba(6,9,12,.6);backdrop-filter:blur(8px);border:1px solid rgba(244,246,248,.12);
  display:flex;align-items:center;justify-content:center;z-index:2;
}
.reel-card .ig-badge svg{width:18px;height:18px;fill:#fff}
.reel-card .reel-label{
  position:absolute;inset:auto 0 0 0;padding:48px 18px 16px;z-index:2;
  background:linear-gradient(180deg,transparent,rgba(6,9,12,.9));
  font-family:'Oswald',sans-serif;font-size:.86rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
}
.reels-cta{display:flex;justify-content:center;margin-top:44px}
@media(max-width:980px){.reel-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.reel-grid{grid-template-columns:1fr;max-width:340px;margin-inline:auto}}

/* ---------- service area ---------- */
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.map-embed{border-radius:var(--rad);overflow:hidden;border:1px solid var(--line-2);box-shadow:var(--shadow);aspect-ratio:4/3;position:relative}
.map-embed iframe{width:100%;height:100%;border:0;filter:grayscale(.6) contrast(1.08) brightness(.9)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chip{
  background:rgba(22,28,34,.8);border:1px solid var(--line-2);padding:10px 18px;border-radius:100px;
  font-family:'Oswald',sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);
}
.chip.hq{background:var(--accent);color:#06121c;border-color:var(--accent);box-shadow:0 8px 24px rgba(82,159,217,.3)}
.addr-line{margin-top:24px;color:var(--mute);font-size:.95rem}
.addr-line b{color:var(--paper)}
@media(max-width:900px){.area-grid{grid-template-columns:1fr;gap:36px}}

/* ---------- reviews ---------- */
.rating-badge{
  display:inline-flex;align-items:center;gap:18px;background:linear-gradient(160deg,var(--steel-2),var(--steel));
  border:1px solid var(--line-2);border-radius:var(--rad);padding:18px 28px;margin-top:10px;
  box-shadow:0 0 0 1px rgba(82,159,217,.08),0 16px 40px rgba(0,0,0,.4);
}
.rating-badge b{font-family:'Oswald',sans-serif;font-size:2.6rem;font-weight:700;color:var(--paper);line-height:1}
.rating-badge .strs{color:#f5b942;font-size:1.1rem;letter-spacing:2px}
.rating-badge span{color:var(--mute);font-size:.85rem}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.review-card{
  background:var(--steel);border:1px solid var(--line);border-radius:var(--rad);
  padding:30px 28px 26px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;
  transition:transform .4s,border-color .3s,box-shadow .4s;
}
.review-card:hover{transform:translateY(-5px);border-color:rgba(82,159,217,.45);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.review-card::before{
  content:"“";position:absolute;right:18px;top:-18px;font-family:'Oswald',sans-serif;font-weight:700;
  font-size:8rem;line-height:1;color:rgba(82,159,217,.12);pointer-events:none;
}
.review-card .strs{color:#f5b942;letter-spacing:2px;font-size:.95rem}
.review-card p{color:var(--paper);font-size:.96rem;flex:1;line-height:1.65}
.review-card footer{display:flex;align-items:center;gap:12px;margin-top:4px}
.review-card .avi{
  width:40px;height:40px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,var(--accent),var(--accent-deep));color:#06121c;
  font-family:'Oswald',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:.05em;
}
.review-card cite{font-style:normal;font-weight:600;font-size:.93rem;display:block}
.review-card small{color:var(--mute);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;display:block;margin-top:2px}
.reviews-cta{display:flex;justify-content:center;margin-top:44px}
@media(max-width:980px){.review-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.review-grid{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq{max-width:840px;margin:48px auto 0}
.faq details{background:var(--steel);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden;transition:border-color .3s}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;
  padding:22px 26px;font-family:'Oswald',sans-serif;font-weight:500;font-size:1.04rem;text-transform:uppercase;letter-spacing:.06em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.6rem;font-weight:400;transition:transform .3s;flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 26px 24px;color:var(--mute);font-size:.98rem;line-height:1.7}
.faq details[open]{border-color:rgba(82,159,217,.5);box-shadow:0 0 30px rgba(82,159,217,.08)}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--coal);text-align:center;color:var(--paper);position:relative;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.cta-band::before{
  content:"";position:absolute;left:50%;top:50%;width:min(1200px,120vw);height:140%;
  transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(82,159,217,.32),transparent 60%);
  filter:blur(50px);animation:pulse 7s ease-in-out infinite alternate;
}
@keyframes pulse{from{opacity:.55;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}
.cta-band .container{position:relative;z-index:1}
.cta-band h2{color:var(--paper);font-size:clamp(2.4rem,5.6vw,4.4rem)}
.cta-band .phone{
  display:block;font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(2rem,5vw,3.4rem);margin:20px 0 30px;color:var(--accent-hi);
  text-shadow:0 0 40px rgba(82,159,217,.45);letter-spacing:.02em;
}
.cta-band .btn-solid{background:var(--accent);color:#06121c}

/* ---------- footer ---------- */
.site-footer{
  background:#07090c;border-top:1px solid var(--line);padding:72px 0 110px;position:relative;overflow:hidden;
}
.site-footer::before{
  content:"";position:absolute;right:-60px;bottom:-80px;width:520px;height:520px;pointer-events:none;
  background:url("../images/rr-icon-white.webp") center/contain no-repeat;opacity:.035;
}
.site-footer .container{position:relative;z-index:1}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot-brand img{height:44px;margin-bottom:18px}
.foot-brand p{color:var(--mute);font-size:.93rem;max-width:300px;line-height:1.7}
.foot-brand .socials{display:flex;gap:12px;margin-top:22px}
.foot-brand .socials a{
  width:40px;height:40px;border-radius:10px;background:var(--steel);border:1px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;transition:all .25s;
}
.foot-brand .socials a:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(82,159,217,.3)}
.foot-brand .socials svg{width:17px;height:17px;fill:var(--paper)}
.foot-brand .socials a:hover svg{fill:#06121c}
.foot-col h4{font-family:'Oswald',sans-serif;font-size:.84rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--paper);margin-bottom:18px}
.foot-col a{display:block;color:var(--mute);font-size:.93rem;padding:5px 0;transition:color .25s,transform .25s}
.foot-col a:hover{color:var(--accent);transform:translateX(4px)}
.foot-col p{color:var(--mute);font-size:.93rem;padding:5px 0;line-height:1.7}
.foot-bottom{
  margin-top:56px;padding-top:26px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;color:var(--dim);font-size:.84rem;
}
.foot-bottom a{color:#7d97ab}
.foot-bottom a:hover{color:var(--accent)}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* ---------- sticky mobile bar ---------- */
.mobile-bar{
  position:fixed;inset:auto 0 0 0;z-index:110;display:none;grid-template-columns:1fr 1fr;
  background:rgba(8,11,14,.94);border-top:1px solid var(--line-2);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px;
}
.mobile-bar a{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Oswald',sans-serif;font-weight:600;font-size:.88rem;letter-spacing:.12em;text-transform:uppercase;
  padding:14px 8px;border-radius:9px;
}
.mobile-bar .mb-call{background:var(--steel);border:1px solid var(--line-2);color:var(--paper)}
.mobile-bar .mb-quote{background:var(--accent);color:#06121c;box-shadow:0 8px 24px rgba(82,159,217,.35)}
.mobile-bar svg{width:16px;height:16px;fill:currentColor}
@media(max-width:760px){.mobile-bar{display:grid}.site-footer{padding-bottom:150px}}

/* ---------- page hero (subpages) — cinematic photo backdrop ---------- */
.page-hero{
  padding:190px 0 84px;background-color:var(--coal);position:relative;overflow:hidden;
  background-size:cover;background-position:center 40%;
}
.page-hero::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(8,11,14,.94) 0%,rgba(8,11,14,.78) 55%,rgba(8,11,14,.55) 100%),
    linear-gradient(180deg,rgba(8,11,14,.65),rgba(10,13,16,1));
}
.page-hero::after{content:"";position:absolute;inset:0;background-image:var(--hexes);opacity:.9;pointer-events:none}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{font-size:clamp(2.6rem,6.2vw,4.8rem)}
.page-hero .lead{margin-top:18px}

/* ---------- contact-us ads landing ---------- */
.landing-hero{padding:160px 0 80px;background:var(--coal);background-image:var(--hexes);position:relative;overflow:hidden}
.landing-hero::after{
  content:"";position:absolute;right:-200px;top:-200px;width:800px;height:800px;pointer-events:none;
  background:radial-gradient(closest-side,var(--glow),transparent 70%);filter:blur(40px);
}
.landing-hero .container{position:relative;z-index:1}
.landing-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.landing-copy h1{font-size:clamp(2.4rem,5vw,4rem)}
.landing-copy .lead{margin-top:14px}
.info-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.info-card{background:var(--steel);border:1px solid var(--line);border-radius:var(--rad);padding:30px;text-align:center;transition:transform .35s,border-color .3s}
.info-card:hover{transform:translateY(-5px);border-color:rgba(82,159,217,.45)}
.info-card svg{width:26px;height:26px;fill:var(--accent);margin:0 auto 14px}
.info-card h3{font-size:1.1rem;margin-bottom:8px}
.info-card p,.info-card a{color:var(--mute);font-size:.93rem}
.info-card a:hover{color:var(--accent)}
@media(max-width:900px){
  .landing-hero{padding:118px 0 56px}
  .landing-grid{grid-template-columns:1fr;gap:26px}
  .landing-copy .lead{font-size:.98rem}
  .info-cards{grid-template-columns:1fr}
}

/* ---------- services page ---------- */
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:84px}
.svc-row:nth-of-type(even) .svc-row-photo{order:2}
.svc-row-photo{border-radius:var(--rad);overflow:hidden;box-shadow:var(--shadow);position:relative}
.svc-row-photo::before{content:"";position:absolute;inset:0;border:1px solid rgba(82,159,217,.2);border-radius:var(--rad);z-index:2;pointer-events:none}
.svc-row-photo img{aspect-ratio:4/3;width:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.svc-row-photo:hover img{transform:scale(1.05)}
.svc-row ul{margin-top:20px;display:grid;gap:11px}
.svc-row ul li{display:flex;gap:11px;color:var(--mute);font-size:.97rem}
.svc-row ul svg{width:18px;height:18px;fill:var(--accent);flex:none;margin-top:4px}
.svc-row .btn{margin-top:28px}
@media(max-width:880px){
  .svc-row{grid-template-columns:1fr;gap:30px;margin-top:64px}
  .svc-row:nth-of-type(even) .svc-row-photo{order:0}
}

/* ---------- legal ---------- */
.legal{max-width:820px}
.legal h2{font-size:1.4rem;margin:40px 0 14px}
.legal p,.legal li{color:var(--mute);font-size:.97rem;margin-bottom:12px;line-height:1.7}
.legal ul{list-style:disc;padding-left:22px}
.legal .updated{color:var(--dim);font-size:.85rem}

/* ---------- 404 ---------- */
.nf{min-height:100svh;display:flex;align-items:center;text-align:center;background-image:var(--hexes)}
.nf b{font-family:'Oswald',sans-serif;font-size:clamp(6rem,18vw,12rem);font-weight:700;color:var(--accent);display:block;line-height:1;text-shadow:0 0 60px rgba(82,159,217,.4)}
.nf .btn{margin-top:30px}

/* ---------- reveal animations ---------- */
.rv{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
.rv-d4{transition-delay:.32s}.rv-d5{transition-delay:.4s}

/* ---------- utilities ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#quote{scroll-margin-top:96px}
.section-head{max-width:760px}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .kicker{justify-content:center}
.section-head.center .lead{margin-inline:auto}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .marquee{animation:none}
  .hero-media video,.hero-media img{animation:none}
}

/* ============================================================
   PASS 2 — motion, featured build, process, polish
   ============================================================ */

/* scroll progress line */
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-hi));z-index:200;box-shadow:0 0 12px rgba(82,159,217,.8);transition:width .12s linear}

/* hero intro choreography */
.hero-logo,.hero-tag,.hero-inner .btn{opacity:0;transform:translateY(22px);animation:heroIn 1s cubic-bezier(.2,.8,.2,1) forwards}
.hero-logo{animation-delay:.25s}
.hero-tag{animation-delay:.55s}
.hero-inner .btn{animation-delay:.8s}
.hero-media::after{animation:heroDim 1.6s ease-out forwards}
@keyframes heroIn{to{opacity:1;transform:none}}
@keyframes heroDim{from{opacity:.0}to{opacity:1}}
.hero-line{position:absolute;left:50%;bottom:0;width:1px;height:90px;background:linear-gradient(180deg,transparent,var(--accent));transform:translateX(-50%);z-index:2;opacity:.8}

/* arrow in primary CTAs */
.btn-arrow::after{content:"→";font-weight:500;transition:transform .3s}
.btn-arrow:hover::after{transform:translateX(5px)}

/* image reveal */
.rv-img{opacity:0;transform:scale(1.06);transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1.4s cubic-bezier(.2,.8,.2,1)}
.rv-img.in{opacity:1;transform:none}

/* ---------- featured build ---------- */
.feature-build{padding:0;position:relative;min-height:640px;display:flex;align-items:flex-end;overflow:hidden;background:#000}
.feature-build .fb-media{position:absolute;inset:0}
.feature-build .fb-media img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(.95)}
.feature-build .fb-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,13,16,.15) 0%,rgba(10,13,16,.35) 40%,rgba(10,13,16,.92) 100%),
             linear-gradient(90deg,rgba(10,13,16,.7) 0%,rgba(10,13,16,0) 60%);
}
.feature-build .container{position:relative;z-index:2;padding:clamp(72px,10vw,120px) 0 clamp(56px,7vw,84px)}
.fb-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end}
.fb-tag{display:inline-flex;align-items:center;gap:10px;font-family:'Oswald',sans-serif;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:#06121c;background:var(--accent);padding:8px 14px;border-radius:4px;margin-bottom:22px;box-shadow:0 8px 24px rgba(82,159,217,.35)}
.fb-grid h2{font-size:clamp(2.4rem,5.6vw,4.6rem)}
.fb-grid .lead{margin-top:16px;max-width:560px}
.fb-facts{display:grid;gap:12px}
.fb-facts li{
  display:flex;justify-content:space-between;gap:16px;padding:14px 18px;border-radius:10px;
  background:rgba(22,28,34,.55);border:1px solid rgba(244,246,248,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-size:.92rem;color:var(--mute);
}
.fb-facts li b{color:var(--paper);font-family:'Oswald',sans-serif;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;font-weight:600}
.fb-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
@media(max-width:900px){.fb-grid{grid-template-columns:1fr;gap:30px}.feature-build{min-height:560px}}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px;counter-reset:step}
.step{
  position:relative;padding:34px 30px 32px;border-radius:var(--rad);
  background:linear-gradient(160deg,var(--steel-2),var(--steel));border:1px solid var(--line-2);
  overflow:hidden;transition:transform .4s,border-color .3s,box-shadow .4s;
}
.step:hover{transform:translateY(-6px);border-color:rgba(82,159,217,.5);box-shadow:0 26px 60px rgba(0,0,0,.5),0 0 40px rgba(82,159,217,.1)}
.step::before{
  counter-increment:step;content:"0" counter(step);position:absolute;right:16px;top:-10px;
  font-family:'Oswald',sans-serif;font-weight:700;font-size:6.5rem;line-height:1;color:rgba(82,159,217,.09);pointer-events:none;
}
.step .ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--accent-ghost);border:1px solid rgba(82,159,217,.3);margin-bottom:22px}
.step .ico svg{width:22px;height:22px;fill:var(--accent)}
.step h3{font-size:1.3rem;margin-bottom:10px}
.step p{color:var(--mute);font-size:.95rem;line-height:1.65}
.step .t{display:inline-block;margin-top:16px;font-family:'Oswald',sans-serif;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
@media(max-width:900px){.steps{grid-template-columns:1fr}}

/* FAQ two columns on desktop */
@media(min-width:960px){
  .faq{max-width:1100px;column-count:2;column-gap:20px}
  .faq details{break-inside:avoid;display:block}
}

/* reviews: snap carousel on phones */
@media(max-width:640px){
  .review-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:4px 4px 18px;margin-inline:-4%;padding-inline:4%;scrollbar-width:none}
  .review-grid::-webkit-scrollbar{display:none}
  .review-card{flex:0 0 84%;scroll-snap-align:center}
}

/* stats underline flourish */
.stat b::after{content:"";display:block;width:0;height:2px;margin:14px auto 0;background:var(--accent);transition:width .9s cubic-bezier(.2,.8,.2,1) .3s}
.stat.in b::after{width:36px}

@media(prefers-reduced-motion:reduce){
  .hero-logo,.hero-tag,.hero-inner .btn{animation:none;opacity:1;transform:none}
  .rv-img{opacity:1;transform:none}
}
