
:root{
  --blue:#11375F;
  --sky:#2490CD;
  --aqua:#34818E;
  --lime:#2490CD;
  --charcoal:#11375F;
  --paper:#eef6fb;
  --soft:#f9fdff;
  --white:#ffffff;
  --text:#ffffff;
  --body:#dde7ee;
  --line:rgba(255,255,255,.12);
  --line-dark:rgba(66,66,66,.12);
  --gradient:linear-gradient(90deg, rgba(52,129,142,1) 0%, rgba(36,144,205,1) 50%, rgba(17,55,95,1) 100%);
  --shadow:0 24px 70px rgba(14, 34, 57, .28);
  --radius:24px;
  --max:1280px;
  --header-h:92px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',Arial,Helvetica,sans-serif;background:linear-gradient(180deg,#5f94d20d,#49d3f214 40%,#fff);color:var(--charcoal);line-height:1.6;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;width:100%}
button,input,textarea,select{font:inherit}
button{cursor:pointer;background:none;border:0}
::selection{background:var(--blue);color:#fff}
.container{width:min(calc(100% - 72px),var(--max));margin-inline:auto}
.full-width{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}
.section{padding:108px 0}
.compact-top{padding-top:32px}
.accent{color:var(--aqua)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--sky);font-size:.75rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px}
.eyebrow::before{content:'';width:38px;height:2px;background:var(--gradient);border-radius:3px}
.section-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:48px;align-items:end;margin-bottom:44px}
.section-title{font-size:clamp(2.9rem,6vw,5.7rem);line-height:.92;font-weight:900;letter-spacing:-.05em;color:var(--charcoal)}
.section-title.small{font-size:clamp(2.3rem,5vw,4.4rem)}
.section-copy{font-size:1rem;color:#59636f;max-width:580px}
.topbar{position:absolute;inset:0 0 auto 0;height:36px;z-index:100;background:rgba(66,66,66,.62);backdrop-filter:blur(14px);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;height:100%;gap:16px;font-size:.73rem;font-weight:700}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.topbar i{color:var(--aqua)}
.site-header{position:absolute;top:36px;left:0;width:100%;z-index:100;color:#fff;transition:.3s ease}
.site-header.scrolled{position:fixed;top:0;background:rgba(66,66,66,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
.site-header.scrolled .header-inner{height:84px}
.header-inner{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:22px;height:var(--header-h)}
.brand{display:inline-flex;align-items:center}
.brand img{width:200px;max-width:100%;height:auto}
.nav{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
.nav a{padding:12px 16px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.86);position:relative;transition:.25s}
.nav a:hover,.nav a.active{color:#fff;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.nav a.active{background:var(--gradient);color:var(--charcoal);box-shadow:0 14px 28px rgba(36,144,205,.3)}
.menu-toggle{display:none;position:relative;width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.12);backdrop-filter:blur(10px)}
.menu-toggle span,.menu-toggle::before,.menu-toggle::after{content:'';position:absolute;left:15px;width:22px;height:2px;background:#fff;transition:.25s}
.menu-toggle::before{top:18px}.menu-toggle span{top:25px}.menu-toggle::after{top:32px}
.menu-toggle.open span{opacity:0}.menu-toggle.open::before{transform:translateY(7px) rotate(45deg)}.menu-toggle.open::after{transform:translateY(-7px) rotate(-45deg)}
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#111}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,24,37,.84) 0%, rgba(28,46,67,.68) 46%, rgba(34,44,54,.38) 100%),linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.45))}
.hero-content{position:relative;z-index:2;width:100%;padding:214px 0 96px}
.hero-copy{max-width:820px;padding-inline:10px}
.hero h1{font-size:clamp(3.8rem,8.7vw,7.8rem);line-height:.86;letter-spacing:-.06em;font-weight:900;max-width:900px}
.hero p{font-size:1.1rem;color:#e9f5ff;max-width:680px;margin-top:18px}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 24px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;transition:transform .2s ease, box-shadow .25s ease, background .3s ease, color .3s ease, border-color .25s ease;position:relative;overflow:hidden}
.btn span{position:relative;z-index:2}
.btn i{position:relative;z-index:2}
.btn::before{content:'';position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0));opacity:.7}
.btn:hover{transform:translateY(-3px)}
.btn-primary{background:var(--gradient);color:var(--charcoal);box-shadow:0 18px 34px rgba(36,144,205,.28)}
.btn-primary:hover{box-shadow:0 24px 38px rgba(36,144,205,.34)}
.btn-outline{border:1px solid rgba(255,255,255,.4);color:#fff;background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}
.btn-outline:hover{background:rgba(255,255,255,.16)}
.btn-secondary{background:var(--charcoal);color:#fff;box-shadow:var(--shadow)}
.btn-secondary:hover{background:#333}
.header-cta{min-width:188px}
.page-hero{position:relative;min-height:530px;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#111}
.page-hero-bg{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.03)}
.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,24,37,.32),rgba(34,44,54,.7)), linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.25));z-index:1}
.page-hero-content{position:relative;z-index:2;padding:196px 10px 70px;max-width:920px}
.page-hero h1{font-size:clamp(3.2rem,7vw,5.8rem);line-height:.9;font-weight:900;letter-spacing:-.05em;margin-bottom:14px}
.page-hero p{font-size:1.05rem;color:#dce8f2;max-width:720px}
.service-carousel-band{padding:38px 0 24px;position:relative;background:linear-gradient(180deg,rgba(66,66,66,.98),rgba(66,66,66,.92));color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.about-service-carousel{background:linear-gradient(180deg,rgba(17,55,95,.12),rgba(36,144,205,.12));color:var(--charcoal)}
.about-service-carousel .section-title,.about-service-carousel .section-copy{color:var(--charcoal)}
.carousel-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}
.carousel-controls{display:flex;gap:12px}
.slider-btn{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:inherit;border:1px solid rgba(255,255,255,.12);transition:.25s}
.about-service-carousel .slider-btn{background:rgba(66,66,66,.08);border-color:rgba(66,66,66,.1)}
.slider-btn:hover{background:var(--gradient);color:var(--charcoal)}
.carousel-shell{padding-left:calc((100vw - min(calc(100% - 72px), 1280px))/2);padding-right:calc((100vw - min(calc(100% - 72px), 1280px))/2)}
.carousel-track,.portfolio-scroll,.cities-carousel{display:grid;grid-auto-flow:column;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 0 8px 0}
.carousel-track::-webkit-scrollbar,.portfolio-scroll::-webkit-scrollbar,.cities-carousel::-webkit-scrollbar{display:none}
.service-track{grid-auto-columns:minmax(360px, 430px);padding-inline:36px}
.carousel-card,.portfolio-slide,.city-chip{scroll-snap-align:start}
.service-card{min-height:430px;border-radius:var(--radius);overflow:hidden;position:relative;background:#fff;color:var(--charcoal);box-shadow:var(--shadow)}
.service-card-media{position:absolute;inset:0;background-size:cover;background-position:center}
.service-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.68) 76%)}
.service-card-copy{position:absolute;left:26px;right:26px;bottom:26px;z-index:2;color:#fff}
.service-card-copy span{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--aqua)}
.service-card-copy h3{font-size:2rem;line-height:1;font-weight:800;margin:8px 0 12px}
.service-card-copy p{font-size:.95rem;color:#edf8ff;max-width:320px}
.inline-link{display:inline-flex;align-items:center;gap:10px;margin-top:16px;font-weight:800;color:var(--aqua)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat-card,.info-card,.mini-stat{background:#fff;border:1px solid rgba(17,55,95,.14);border-radius:24px;padding:28px;box-shadow:0 18px 42px rgba(37,61,81,.08);transition:transform .25s ease, box-shadow .25s ease}
.stat-card:hover,.info-card:hover,.mini-stat:hover,.gallery-item:hover{transform:translateY(-7px);box-shadow:0 28px 52px rgba(37,61,81,.14)}
.stat-card i,.info-icon,.mini-stat i{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(17,55,95,.16),rgba(52,129,142,.22));color:var(--blue);font-size:1.25rem;margin-bottom:20px}
.stat-card strong{display:block;font-size:2.5rem;line-height:1;font-weight:900;color:var(--charcoal)}
.stat-card span{display:block;margin-top:10px;font-size:.84rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#5d6873}
.parallax-section{position:relative;color:#fff;background:#111;overflow:hidden}
.parallax-section::before{content:'';position:absolute;inset:0;background-image:var(--bg-image);background-size:cover;background-position:center;background-attachment:fixed;filter:saturate(.84);transform:scale(1.03)}
.parallax-section::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,16,26,.82),rgba(20,31,45,.62))}
.parallax-section.darker::after{background:linear-gradient(90deg,rgba(10,16,26,.76),rgba(66,66,66,.8))}
.parallax-section>.container{position:relative;z-index:1}
.split-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:center}
.split-card{border-radius:28px;overflow:hidden}
.image-card img{height:100%;min-height:520px;object-fit:cover}
.text-card{padding:38px;background:rgba(255,255,255,.94);box-shadow:var(--shadow);color:var(--charcoal)}
.check-list{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:14px 18px;margin:24px 0 28px}
.check-list span{display:flex;align-items:flex-start;gap:10px;font-weight:700;color:#4f5965}
.check-list i{color:var(--blue);margin-top:4px}
.section-gradient{background:linear-gradient(180deg,rgba(36,144,205,.08),rgba(255,255,255,.82))}
.info-grid{display:grid;gap:22px}
.info-grid.two-col{grid-template-columns:repeat(2,1fr)}
.info-card h3{font-size:1.5rem;margin-bottom:12px}
.info-card p{color:#59636f}
.flip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.flip-card{perspective:1200px;min-height:330px}
.flip-card-inner{position:relative;width:100%;height:100%;transition:transform .7s;transform-style:preserve-3d}
.flip-card:hover .flip-card-inner,.flip-card.flipped .flip-card-inner{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:24px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(17,55,95,.14);box-shadow:0 18px 42px rgba(37,61,81,.08)}
.flip-front{background:#fff;color:var(--charcoal)}
.flip-back{background:linear-gradient(160deg,var(--charcoal),#2b2b2b);color:#fff;transform:rotateY(180deg)}
.step-tag{display:inline-flex;align-self:flex-start;padding:8px 12px;border-radius:999px;background:linear-gradient(135deg,rgba(17,55,95,.12),rgba(52,129,142,.22));font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.flip-face h3{font-size:1.55rem;line-height:1.06;margin:18px 0 12px;font-weight:800}
.flip-face p{color:#5d6873}
.flip-back p{color:#dbe8ef}
.flip-hint{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;color:#70818f;margin-top:auto}
.portfolio-band{background:#fff}
.portfolio-scroll{grid-auto-columns:minmax(340px,32vw);padding-inline:36px}
.portfolio-slide{position:relative;min-height:520px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.portfolio-slide img{height:100%;object-fit:cover}
.portfolio-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.72))}
.portfolio-overlay{position:absolute;left:28px;right:28px;bottom:26px;z-index:1;color:#fff}
.portfolio-overlay span{display:block;color:var(--aqua);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;margin-bottom:7px}
.portfolio-overlay h3{font-size:1.8rem;line-height:1.05}
.faq-section{background:#fff}
.faq-list{display:grid;gap:16px}
.faq-item{background:#fff;border:1px solid rgba(17,55,95,.14);border-radius:22px;box-shadow:0 12px 28px rgba(37,61,81,.06);overflow:hidden}
.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 26px;text-align:left;font-weight:800;color:var(--charcoal)}
.faq-question i{transition:.25s;color:var(--blue)}
.faq-item.open .faq-question i{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease;padding:0 26px}
.faq-answer p{color:#5d6873;padding-bottom:0}
.faq-item.open .faq-answer{max-height:220px;padding:0 26px 24px}
.cta-section{padding:0 0 108px}
.cta-box{border-radius:34px;padding:40px 42px;background:linear-gradient(120deg,#424242,#11375F 120%);color:#fff;display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;box-shadow:var(--shadow)}
.cta-box h2{font-size:clamp(2.1rem,4vw,3.8rem);line-height:.96;letter-spacing:-.04em}
.cta-box p{color:#dce8f2}
.narrow-center{text-align:center;max-width:860px;padding:116px 0;margin:0 auto}
.narrow-center .section-title,.narrow-center p{color:#fff}
.service-layout{display:grid;grid-template-columns:minmax(260px,.34fr) minmax(0,.66fr);gap:28px;align-items:start}
.service-index-panel{position:sticky;top:120px;background:#fff;border:1px solid rgba(17,55,95,.14);border-radius:24px;padding:26px;box-shadow:var(--shadow)}
.service-index-panel h3{font-size:1.5rem;line-height:1.08;margin-bottom:18px}
.service-index-links{display:grid;gap:12px}
.service-index-links a{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:rgba(36,144,205,.08);font-weight:800;transition:.25s}
.service-index-links a i{color:var(--blue)}
.service-index-links a:hover{background:var(--gradient);color:var(--charcoal)}
.service-detail-list{display:grid;gap:28px}
.service-detail{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:0;border-radius:30px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.service-detail:nth-child(even){grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.service-detail:nth-child(even) .service-detail-media{order:2}
.service-detail-media img{height:100%;min-height:380px;object-fit:cover}
.service-detail-copy{padding:34px 36px;position:relative}
.service-number{position:absolute;top:28px;right:28px;font-size:4.8rem;line-height:1;font-weight:900;color:rgba(17,55,95,.12)}
.service-icon{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(17,55,95,.14),rgba(52,129,142,.25));color:var(--blue);font-size:1.3rem;margin-bottom:18px}
.service-detail-copy h2{font-size:2.4rem;line-height:.98;margin-bottom:14px;font-weight:800}
.service-detail-copy p{color:#59636f;margin-bottom:18px}
.service-detail-copy ul{display:grid;gap:10px;margin-bottom:24px;list-style:none}
.service-detail-copy li{display:flex;align-items:flex-start;gap:10px;color:#4f5965;font-weight:600}
.service-detail-copy li i{color:var(--blue);margin-top:5px}
.location-feature-grid,.map-split,.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.location-image-card{position:relative;border-radius:28px;overflow:hidden;min-height:420px;box-shadow:var(--shadow)}
.location-image-card img{height:100%;object-fit:cover;min-height:420px}
.location-image-overlay{position:absolute;inset:auto 24px 24px 24px;background:rgba(16,26,36,.74);backdrop-filter:blur(12px);padding:24px;border-radius:24px;color:#fff}
.location-image-overlay h2{font-size:2rem;line-height:1.04;margin-bottom:10px}
.cities-carousel{grid-auto-columns:minmax(210px,1fr)}
.city-chip{display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;border:1px solid rgba(17,55,95,.14);padding:20px 22px;font-weight:800;box-shadow:0 10px 24px rgba(37,61,81,.06)}
.city-chip i{color:var(--blue)}
.map-frame{border-radius:28px;overflow:hidden;box-shadow:var(--shadow);background:#fff;min-height:520px}
.map-frame iframe{width:100%;height:100%;min-height:520px;border:0;display:block;filter:saturate(1.1) contrast(1.02)}
.gallery-masonry{columns:3 260px;column-gap:18px}
.gallery-item{width:100%;display:block;text-align:left;border-radius:24px;overflow:hidden;margin-bottom:18px;background:#fff;box-shadow:0 14px 28px rgba(37,61,81,.08);transition:transform .25s ease, box-shadow .25s ease;border:0}
.gallery-item img{height:auto}
.gallery-item span{display:block;padding:18px 18px 20px}
.gallery-item small{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:800;margin-bottom:7px}
.gallery-item b{display:block;font-size:1.12rem;line-height:1.08}
.lightbox{position:fixed;inset:0;background:rgba(7,13,18,.82);backdrop-filter:blur(10px);display:none;place-items:center;z-index:220;padding:30px}
.lightbox.open{display:grid}
.lightbox img{max-width:min(1120px,92vw);max-height:84vh;border-radius:24px;box-shadow:var(--shadow)}
.lightbox-close{position:absolute;top:26px;right:26px;width:52px;height:52px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-size:1.1rem}
.coming-soon-section{padding:56px 0 108px;background:radial-gradient(circle at top,rgba(36,144,205,.24),transparent 38%), linear-gradient(180deg,#f8fcff,#eaf5fb)}
.coming-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,rgba(66,66,66,.98),rgba(17,55,95,.95));border-radius:32px;padding:68px 42px;color:#fff;box-shadow:var(--shadow);margin-bottom:24px}
.coming-glow{position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(52,129,142,.55),transparent 64%);right:-90px;top:-100px;filter:blur(6px)}
.coming-hero h2{font-size:clamp(2.8rem,6vw,5rem);line-height:.92;max-width:760px;position:relative;z-index:1}
.coming-hero p{margin:16px 0 28px;max-width:660px;color:#dfeef7;position:relative;z-index:1}
.coming-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.coming-card{background:#fff;border-radius:24px;padding:28px;border:1px solid rgba(17,55,95,.14);box-shadow:0 14px 28px rgba(37,61,81,.06)}
.coming-card i{font-size:1.55rem;color:var(--blue);margin-bottom:14px}
.coming-card h3{font-size:1.34rem;margin-bottom:10px}
.coming-card p{color:#5f6974}
.contact-panel,.form-card{background:#fff;border-radius:30px;box-shadow:var(--shadow);padding:34px}
.contact-panel h2{font-size:2.4rem;line-height:1;margin-bottom:20px}
.contact-link{display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(17,55,95,.1)}
.contact-link:last-of-type{margin-bottom:8px}
.contact-link i{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(17,55,95,.14),rgba(52,129,142,.22));color:var(--blue)}
.contact-link small{display:block;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#6d7884}
.contact-link b{display:block;font-size:1rem;line-height:1.3}
.mini-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px}
.mini-stat strong{display:block;font-size:1rem;margin-bottom:6px}.mini-stat span{color:#5f6974;font-size:.88rem}
.form-card iframe{min-height:780px;background:#fff}
.floating-stack{position:fixed;right:18px;bottom:18px;z-index:170;display:flex;flex-direction:column;gap:12px}
.back-top,.whatsapp{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 16px 30px rgba(37,61,81,.24);transition:.25s}
.back-top{background:var(--charcoal);opacity:0;pointer-events:none}
.back-top.show{opacity:1;pointer-events:auto}
.back-top:hover{transform:translateY(-3px);background:#333}
.whatsapp{background:#25D366;font-size:1.45rem}
.whatsapp:hover{transform:translateY(-3px)}
.site-footer{background:#2f2f2f;color:#fff;padding:74px 0 28px}
.footer-grid{display:grid;grid-template-columns:1.1fr .7fr .95fr .95fr;gap:28px;align-items:start}
.footer-brand p{color:#d3d8dc;max-width:420px;margin:20px 0 18px}
.footer-brand-img img{width:200px}
.footer-badges{display:flex;flex-wrap:wrap;gap:12px}
.footer-badges span{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.08);font-size:.78rem;font-weight:700}
.footer-badges i{color:var(--aqua)}
.footer-col h4{font-size:.84rem;letter-spacing:.18em;text-transform:uppercase;color:var(--aqua);margin-bottom:16px}
.footer-col a,.footer-col span{display:block;margin:10px 0;color:#d3d8dc;font-size:.94rem}
.footer-col a:hover{color:#fff}
.footer-col i{width:18px;color:var(--sky);margin-right:8px}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#c0c7cc}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease, transform .7s ease}
.reveal.visible{opacity:1;transform:none}

@media (max-width:1200px){
  .container{width:min(calc(100% - 48px),var(--max))}
  .header-inner{grid-template-columns:auto 1fr auto auto}
  .nav{gap:4px}
  .nav a{font-size:.72rem;padding:11px 12px}
  .stats-grid,.flip-grid,.coming-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media (max-width:991px){
  :root{--header-h:80px}
  .topbar-right span{display:none}
  .site-header{top:36px}
  .site-header.scrolled{top:0}
  .header-inner{grid-template-columns:auto 1fr auto}
  .header-cta{display:none}
  .menu-toggle{display:block;justify-self:end}
  .nav{position:fixed;inset:0;background:rgba(66,66,66,.97);backdrop-filter:blur(14px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:120px 32px 40px;gap:12px;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.25s;z-index:90}
  .nav.open{opacity:1;pointer-events:auto;transform:none}
  .nav a{font-size:clamp(1.6rem,6vw,2.8rem);padding:0;background:none !important;color:#fff !important;box-shadow:none !important;letter-spacing:-.02em}
  .nav a.active{color:var(--aqua) !important}
  .service-layout,.split-grid,.location-feature-grid,.map-split,.contact-layout,.cta-box,.section-head{grid-template-columns:1fr}
  .service-index-panel{position:relative;top:auto}
  .service-detail,.service-detail:nth-child(even){grid-template-columns:1fr}
  .service-detail:nth-child(even) .service-detail-media{order:0}
  .mini-stats-grid{grid-template-columns:1fr 1fr}
  .page-hero-content{padding-top:172px}
  .hero-content{padding-top:174px}
  .hero{min-height:860px}
  .portfolio-scroll{grid-auto-columns:minmax(290px,74vw)}
  .service-track{grid-auto-columns:minmax(300px,76vw)}
  .cities-carousel{grid-auto-columns:minmax(210px,58vw)}
  .parallax-section::before{background-attachment:scroll}
}
@media (max-width:767px){
  .container{width:min(calc(100% - 28px),var(--max))}
  .topbar{height:auto;padding:8px 0}
  .topbar-inner{justify-content:center;text-align:center;line-height:1.45}
  .topbar-left{justify-content:center}
  .topbar-left span:nth-child(2),.topbar-right{display:none}
  .site-header{top:46px}
  .brand img,.footer-brand-img img{width:170px}
  .hero{min-height:760px}
  .hero-content{padding:166px 0 68px}
  .hero h1{font-size:clamp(3.1rem,14vw,4.8rem)}
  .hero p,.page-hero p{font-size:.98rem}
  .hero-actions{flex-direction:column;align-items:stretch}
  .btn{width:100%}
  .page-hero{min-height:470px}
  .page-hero-content{padding:150px 8px 52px}
  .page-hero h1{font-size:clamp(2.7rem,12vw,4.2rem)}
  .section{padding:78px 0}
  .section-title.small{font-size:clamp(2rem,10vw,3.2rem)}
  .stats-grid,.info-grid.two-col,.flip-grid,.coming-grid,.mini-stats-grid{grid-template-columns:1fr}
  .image-card img{min-height:360px}
  .text-card,.contact-panel,.form-card{padding:28px 22px}
  .check-list{grid-template-columns:1fr}
  .cta-box{padding:32px 24px}
  .coming-hero{padding:48px 24px}
  .gallery-masonry{columns:2 150px;column-gap:12px}
  .location-image-overlay h2{font-size:1.6rem}
  .map-frame,.map-frame iframe{min-height:380px}
  .form-card iframe{min-height:790px}
  .service-number{font-size:4rem;top:20px;right:20px}
  .footer-grid{grid-template-columns:1fr;text-align:center}
  .footer-brand p{margin-inline:auto}
  .footer-badges{justify-content:center}
  .footer-col a,.footer-col span{justify-content:center}
  .footer-bottom{flex-direction:column;text-align:center}
  .floating-stack{right:14px;bottom:14px}
  .back-top,.whatsapp{width:52px;height:52px}
}
@media (max-width:520px){
  .carousel-shell{padding-left:14px;padding-right:14px}
  .service-track,.portfolio-scroll,.cities-carousel{padding-inline:14px}
  .gallery-masonry{columns:1}
  .lightbox{padding:18px}
}

/* =========================================================
   Reference-site refinement — keeps the original industrial
   construction layout while using the approved new palette.
   ========================================================= */
:root{
  --industrial-dark:#242424;
  --industrial-mid:#424242;
  --industrial-line:rgba(66,66,66,.18);
}

/* Keep the header with the hero. It is intentionally not sticky. */
.site-header,
.site-header.scrolled{
  position:absolute !important;
  top:36px !important;
  background:transparent !important;
  backdrop-filter:none !important;
  border-bottom:1px solid rgba(255,255,255,.22);
}
.site-header.scrolled .header-inner{height:var(--header-h)}

/* Logos */
.brand img,
.footer-brand-img img{
  width:200px !important;
  height:auto !important;
  max-width:200px !important;
  object-fit:contain;
}

/* More industrial / less rounded, closer to the original reference direction */
.stat-card,.info-card,.mini-stat,.service-index-panel,.service-detail,.location-image-card,
.map-frame,.gallery-item,.coming-hero,.coming-card,.contact-panel,.form-card,.cta-box,
.flip-face,.service-card,.faq-item,.text-card,.image-card{
  border-radius:6px;
}
.stat-card,.info-card,.mini-stat,.service-detail,.contact-panel,.form-card,.faq-item{
  border-left:4px solid var(--blue);
}

/* Titles use title capitalization instead of all-caps styling. */
h1,h2,h3,.section-title,.page-hero h1,.hero h1{
  text-transform:capitalize !important;
}
.section-title,.hero h1,.page-hero h1{
  letter-spacing:-.045em;
}

/* Clear hero video — no tint/filter. Readability comes from a light text shadow. */
.hero-overlay{
  background:transparent !important;
}
.hero-video{
  filter:none !important;
  opacity:1 !important;
}
.hero-copy{
  text-shadow:0 2px 9px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.7);
}
.hero-copy .btn{
  text-shadow:none;
}

/* Header navigation icons and stronger active state. */
.nav a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border-radius:2px;
}
.nav a i{font-size:.8rem;transition:transform .25s ease,color .25s ease}
.nav a:hover i{transform:translateY(-2px)}
.nav a.active{
  background:var(--gradient);
  color:#222;
  box-shadow:0 0 0 1px rgba(255,255,255,.16),0 9px 22px rgba(36,144,205,.24);
}

/* Uiverse-inspired action hover: luminous sliding panel + lift */
.btn{
  border-radius:3px;
  isolation:isolate;
  box-shadow:none;
}
.btn::before{z-index:-2}
.btn::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(105deg,transparent 0 26%,rgba(255,255,255,.55) 44%,transparent 62%);
  transform:translateX(-145%);
  transition:transform .55s cubic-bezier(.2,.8,.2,1);
}
.btn:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(31,50,68,.24);
}
.btn:hover::after{transform:translateX(145%)}
.btn:hover i{transform:translateX(4px) rotate(-2deg)}
.btn i{transition:transform .25s ease}
.btn-primary:hover{color:#242424;filter:saturate(1.12) brightness(1.03)}
.btn-secondary:hover{background:#2b2b2b;color:var(--aqua)}
.btn-outline:hover{background:rgba(255,255,255,.93);color:#242424;border-color:#fff}

/* Text-only service banner directly under the home hero. */
.service-title-banner{
  width:100%;
  overflow:hidden;
  background:var(--industrial-dark);
  border-top:1px solid rgba(255,255,255,.15);
  border-bottom:4px solid var(--sky);
  color:#fff;
  padding:0;
}
.service-title-track{
  display:flex;
  width:max-content;
  animation:serviceMarquee 28s linear infinite;
  will-change:transform;
}
.service-title-banner:hover .service-title-track{animation-play-state:paused}
.service-title-set{
  display:flex;
  flex:none;
  align-items:stretch;
}
.service-title-set a{
  min-height:92px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 38px;
  border-right:1px solid rgba(255,255,255,.16);
  font-size:clamp(1.15rem,2.15vw,2rem);
  line-height:1;
  font-weight:800;
  white-space:nowrap;
  transition:background .25s ease,color .25s ease;
}
.service-title-set a i{color:var(--aqua);font-size:.85em}
.service-title-set a:hover{background:var(--gradient);color:#242424}
.service-title-set a:hover i{color:#242424}
@keyframes serviceMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Carousel interaction cues */
.carousel-track,.portfolio-scroll,.cities-carousel{
  cursor:grab;
  scroll-behavior:smooth;
}
.carousel-track:active,.portfolio-scroll:active,.cities-carousel:active{cursor:grabbing}
.slider-btn{
  border-radius:3px;
  border:1px solid currentColor;
}
.slider-btn:hover{transform:translateY(-2px)}

/* Portfolio tab: images only. No labels/captions. */
.gallery-item{padding:0;overflow:hidden}
.gallery-item span{display:none !important}
.gallery-item img{
  width:100%;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .35s ease;
}
.gallery-item:hover img{transform:scale(1.045);filter:saturate(1.08) contrast(1.02)}

/* Footer navigation icons */
.footer-col a{
  transition:color .2s ease,transform .2s ease;
}
.footer-col a:hover{transform:translateX(5px);color:#fff}
.footer-col a i{color:var(--aqua)}

/* Keep page banners visually strong without moving the content to the edge. */
.page-hero-content,.hero-copy{padding-left:18px;padding-right:18px}

@media(max-width:991px){
  .site-header,.site-header.scrolled{top:36px !important}
  .nav a{gap:11px}
  .nav a i{width:25px;text-align:center;color:var(--aqua)}
  .nav a.active i{color:var(--aqua)}
  .brand img{width:180px !important;max-width:180px !important}
  .service-title-set a{min-height:82px;padding:0 28px}
}
@media(max-width:767px){
  .site-header,.site-header.scrolled{top:46px !important}
  .brand img,.footer-brand-img img{width:155px !important;max-width:155px !important}
  .hero-copy,.page-hero-content{padding-left:8px;padding-right:8px}
  .service-title-set a{min-height:72px;padding:0 22px;font-size:1.15rem}
  .service-title-track{animation-duration:22s}
  .footer-col a:hover{transform:none}
}

/* =========================================================
   Final refinement pass requested by client
   ========================================================= */

/* Wider, roomier header with top breathing space */
.topbar{
  top:14px;
  left:16px;
  right:16px;
  width:auto;
  height:40px;
  border-radius:999px;
  background:rgba(36,36,36,.72);
  border:1px solid rgba(255,255,255,.12);
}
.topbar-inner{padding:0 18px}
.site-header,
.site-header.scrolled{
  top:64px !important;
  border-bottom:0 !important;
}
.site-header .container{
  width:min(calc(100% - 32px),1460px);
}
.header-inner{
  height:104px;
  padding:0 24px;
  border-radius:22px;
  background:rgba(36,36,36,.55);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.12);
}
.brand img,
.footer-brand-img img{
  width:240px !important;
  max-width:240px !important;
}

/* Keep more left room in hero, tighter banner margins on inner pages */
.hero-copy{
  max-width:900px;
  padding-left:44px !important;
  padding-right:18px !important;
}
.page-hero-content{
  padding-left:30px !important;
  padding-right:18px !important;
}
.hero h1,.page-hero h1{max-width:1020px}

/* Rounded buttons + louder hover */
.btn,
.nav a,
.footer-badges span,
.service-index-links a,
.slider-btn{
  border-radius:999px;
}
.btn{
  min-height:58px;
  padding:0 28px;
}
.btn::before{display:none}
.btn:hover{
  transform:translateY(-5px) scale(1.02);
  box-shadow:0 18px 38px rgba(20,38,52,.32),0 0 0 1px rgba(255,255,255,.18) inset;
}
.btn-primary:hover{
  box-shadow:0 22px 42px rgba(52,129,142,.32),0 0 22px rgba(36,144,205,.34);
}
.btn-secondary:hover{
  box-shadow:0 22px 42px rgba(36,36,36,.32),0 0 22px rgba(52,129,142,.18);
}
.btn-outline:hover{
  box-shadow:0 20px 34px rgba(255,255,255,.16),0 0 0 1px rgba(255,255,255,.3) inset;
}
.nav a.active{
  background:var(--gradient);
  color:#1f1f1f !important;
  box-shadow:0 14px 28px rgba(36,144,205,.28), 0 0 0 1px rgba(255,255,255,.22) inset;
}
.nav a.active i{color:#1f1f1f}

/* Welcome + why choose us */
.info-grid.four-col{grid-template-columns:repeat(4,1fr)}
.why-choose-grid .info-card,
.why-choose-grid .info-card p{height:100%}
.why-choose-grid .info-card{
  position:relative;
  overflow:hidden;
}
.why-choose-grid .info-card::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:4px;
  background:var(--gradient);
}
.home-services-cta{display:flex;justify-content:center;margin-top:26px}
.home-service-list .service-detail{min-height:420px}

/* Home portfolio grid-scroll */
.home-portfolio-section .section-copy{max-width:420px}
.home-portfolio-wrap{
  padding-left:calc((100vw - min(calc(100% - 72px), 1280px))/2);
  padding-right:calc((100vw - min(calc(100% - 72px), 1280px))/2);
}
.home-portfolio-grid{
  display:grid;
  grid-auto-flow:column dense;
  grid-template-rows:repeat(2, 255px);
  grid-auto-columns:minmax(250px, 19vw);
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  padding:10px 0 4px;
}
.home-portfolio-grid::-webkit-scrollbar{display:none}
.home-portfolio-grid .gallery-item{
  border-radius:30px;
  min-width:0;
  cursor:pointer;
  scroll-snap-align:start;
  background:#fff;
  box-shadow:var(--shadow);
}
.home-portfolio-grid .gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.home-portfolio-grid .gallery-item.tall{grid-row:span 2}
.home-portfolio-grid .gallery-item.wide{grid-column:span 2}
.home-portfolio-grid .gallery-item:hover img{transform:scale(1.055)}

/* FAQ redesign */
.faq-section{background:linear-gradient(180deg,rgba(36,144,205,.06),#fff 60%)}
.faq-list{gap:18px}
.faq-item{
  border:1px solid rgba(17,55,95,.12);
  border-left:5px solid var(--sky);
  border-radius:26px;
  box-shadow:0 18px 38px rgba(37,61,81,.08);
}
.faq-question{
  padding:26px 28px;
  font-size:1.02rem;
}
.faq-question i{
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(36,144,205,.12);
}
.faq-answer{padding:0 28px}
.faq-item.open .faq-answer{padding:0 28px 28px}
.faq-answer p{font-size:.98rem;line-height:1.7}

/* Cursor follow */
.cursor-follower,
.cursor-follower-dot{
  position:fixed;
  top:0;
  left:0;
  pointer-events:none;
  z-index:3000;
  opacity:0;
  transition:opacity .25s ease, transform .15s ease;
}
.cursor-follower{
  width:38px;
  height:38px;
  margin-left:-19px;
  margin-top:-19px;
  border-radius:50%;
  border:1px solid rgba(52,129,142,.75);
  background:rgba(36,144,205,.08);
  box-shadow:0 0 22px rgba(36,144,205,.2);
}
.cursor-follower-dot{
  width:8px;
  height:8px;
  margin-left:-4px;
  margin-top:-4px;
  border-radius:50%;
  background:var(--aqua);
  box-shadow:0 0 16px rgba(52,129,142,.6);
}
body.cursor-ready .cursor-follower,
body.cursor-ready .cursor-follower-dot{opacity:1}
body.cursor-link-hover .cursor-follower{
  transform:scale(1.45);
  background:rgba(52,129,142,.16);
  border-color:rgba(52,129,142,.95);
}

/* Slightly stronger card animation feel */
.stat-card,.info-card,.mini-stat,.service-detail,.faq-item,.split-card,.gallery-item{
  transition:transform .35s ease, box-shadow .35s ease;
}
.stat-card:hover,.info-card:hover,.mini-stat:hover,.service-detail:hover,.split-card:hover,.faq-item:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 48px rgba(37,61,81,.13);
}

/* Better mobile behavior */
@media(max-width:1200px){
  .info-grid.four-col{grid-template-columns:repeat(2,1fr)}
  .brand img,.footer-brand-img img{width:214px !important;max-width:214px !important}
}
@media(max-width:991px){
  .topbar{top:10px;left:12px;right:12px;height:auto;padding:7px 0}
  .site-header,.site-header.scrolled{top:60px !important}
  .site-header .container{width:min(calc(100% - 24px),1460px)}
  .header-inner{height:92px;padding:0 18px}
  .hero-copy{padding-left:24px !important}
  .brand img{width:195px !important;max-width:195px !important}
}
@media(max-width:767px){
  .topbar{top:8px;left:8px;right:8px;border-radius:18px}
  .site-header,.site-header.scrolled{top:60px !important}
  .site-header .container{width:min(calc(100% - 16px),1460px)}
  .header-inner{height:84px;padding:0 14px;border-radius:18px}
  .brand img,.footer-brand-img img{width:182px !important;max-width:182px !important}
  .hero-copy{padding-left:12px !important;padding-right:8px !important}
  .page-hero-content{padding-left:8px !important;padding-right:8px !important}
  .home-portfolio-wrap{padding-left:14px;padding-right:14px}
  .home-portfolio-grid{
    grid-auto-flow:row;
    grid-template-rows:none;
    grid-auto-columns:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    overflow:visible;
  }
  .home-portfolio-grid .gallery-item,
  .home-portfolio-grid .gallery-item.tall,
  .home-portfolio-grid .gallery-item.wide{grid-column:auto;grid-row:auto;aspect-ratio:1/1}
  .home-portfolio-grid .gallery-item img{height:100%}
  .home-portfolio-grid .gallery-item:hover img{transform:none}
  .cursor-follower,.cursor-follower-dot{display:none}
  .service-title-track{animation-duration:20s}
}

/* =========================================================
   Visibility, scroll motion, header width & title-case fix
   ========================================================= */

/* Do not force browser capitalization; headings are authored in title case. */
h1,h2,h3,.section-title,.page-hero h1,.hero h1{
  text-transform:none !important;
}

/* Larger headings throughout the site. */
.hero h1{font-size:clamp(4.4rem,9.2vw,8.6rem)}
.page-hero h1{font-size:clamp(3.8rem,7.5vw,6.5rem)}
.section-title{font-size:clamp(3.25rem,6.4vw,6.2rem)}
.section-title.small{font-size:clamp(2.85rem,5.3vw,5.15rem)}
.service-detail-copy h2{font-size:clamp(2.35rem,3.2vw,3rem)}

/* Main header: transparent, extra wide, and spaced so desktop links do not collapse. */
.site-header,
.site-header.scrolled{
  background:transparent !important;
  backdrop-filter:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.site-header .container{
  width:min(calc(100% - 28px),1660px) !important;
  max-width:1660px !important;
}
.header-inner{
  width:100%;
  height:104px;
  padding:0 10px !important;
  background:transparent !important;
  backdrop-filter:none !important;
  border:0 !important;
  box-shadow:none !important;
  grid-template-columns:250px minmax(0,1fr) auto auto;
  gap:12px;
}
.brand img{width:245px !important;max-width:245px !important}
.nav{gap:3px;flex-wrap:nowrap;min-width:0}
.nav a{padding:10px 10px;font-size:.69rem;letter-spacing:.09em;white-space:nowrap}
.header-cta{min-width:168px;padding-inline:18px}

/* Ensure content stays readable over image/parallax backgrounds. */
.parallax-section .section-head .section-title,
.parallax-section .section-head .section-copy,
.parallax-section > .container > .section-head .section-title,
.parallax-section > .container > .section-head .section-copy{
  color:#fff !important;
  text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.parallax-section .text-card .section-title,
.parallax-section .text-card p{
  color:var(--charcoal) !important;
  text-shadow:none !important;
}
.parallax-section .text-card .accent{color:var(--aqua)}

/* Mission / Vision now has a real image background. */
.mission-vision-bg{
  position:relative;
  isolation:isolate;
  background:transparent !important;
  color:#fff;
  overflow:hidden;
}
.mission-vision-bg::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:var(--mission-bg);
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  transform:scale(1.02);
}
.mission-vision-bg::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(20,29,39,.84),rgba(28,48,64,.7));
}
.mission-vision-bg .section-title,
.mission-vision-bg .section-copy{color:#fff !important;text-shadow:0 2px 16px rgba(0,0,0,.5)}
.mission-vision-bg .info-card{background:rgba(255,255,255,.94);backdrop-filter:blur(8px)}
.mission-vision-bg .info-card h3{color:var(--charcoal)}
.mission-vision-bg .info-card p{color:#59636f}

/* Stronger scroll-driven service motion. JS updates --service-shift/scale/opacity. */
.home-services-section{overflow:hidden}
.home-service-list .service-detail{
  will-change:transform,opacity;
  transition:box-shadow .3s ease;
}
.home-service-list .service-detail:nth-child(odd){transform-origin:left center}
.home-service-list .service-detail:nth-child(even){transform-origin:right center}
.home-service-list .service-detail img{
  will-change:transform;
  transition:transform .15s linear;
}

/* Home portfolio: vertical scrolling drives the horizontal gallery on desktop. */
.home-portfolio-section{
  padding:0 !important;
  position:relative;
  background:#fff;
}
.scroll-gallery-sticky{
  position:sticky;
  top:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:72px 0 46px;
  overflow:hidden;
}
.home-portfolio-section .section-head{margin-bottom:28px}
.home-portfolio-wrap{overflow:hidden}
.home-portfolio-grid{
  overflow-x:hidden !important;
  scroll-behavior:auto !important;
  will-change:transform;
}
.home-portfolio-grid .gallery-item{
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease;
}
.home-portfolio-grid .gallery-item:hover{transform:translateY(-7px)}

/* Extra visibility safeguards for reveal content. */
.reveal.visible{opacity:1 !important;visibility:visible !important}
.section-head,.section-copy,.section-title{position:relative;z-index:1}

@media(max-width:1280px){
  .header-inner{grid-template-columns:220px minmax(0,1fr) auto auto}
  .brand img{width:215px !important;max-width:215px !important}
  .nav a{padding:9px 7px;font-size:.64rem;letter-spacing:.07em}
  .header-cta{min-width:150px;padding-inline:14px;font-size:.68rem}
}
@media(max-width:1080px){
  .menu-toggle{display:block}
  .header-cta{display:none}
  .header-inner{grid-template-columns:auto 1fr auto}
  .nav{
    position:fixed;
    inset:0;
    z-index:90;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:10px;
    padding:110px 34px 50px;
    background:rgba(36,36,36,.98);
    opacity:0;
    pointer-events:none;
    transform:translateY(-8px);
    transition:.25s;
  }
  .nav.open{opacity:1;pointer-events:auto;transform:none}
  .nav a{font-size:clamp(1.55rem,5vw,2.6rem);padding:4px 0;letter-spacing:-.02em}
}
@media(max-width:767px){
  .hero h1{font-size:clamp(3.4rem,15vw,5.4rem)}
  .page-hero h1{font-size:clamp(3rem,12vw,4.6rem)}
  .section-title{font-size:clamp(2.8rem,12vw,4.4rem)}
  .section-title.small{font-size:clamp(2.45rem,10.8vw,3.85rem)}
  .mission-vision-bg::before{background-attachment:scroll}
  .home-portfolio-section{height:auto !important;padding:76px 0 !important}
  .scroll-gallery-sticky{position:relative;top:auto;min-height:0;padding:0;overflow:visible}
  .home-portfolio-wrap{overflow:visible}
  .home-portfolio-grid{overflow:visible !important;transform:none !important}
  .home-service-list .service-detail{transform:none !important;opacity:1 !important}
  .home-service-list .service-detail img{transform:none !important}
}

/* =========================================================
   Animation + portfolio refinement pass
   ========================================================= */

/* Welcome image and white information card stay exactly the same height. */
.welcome-split{
  align-items:stretch !important;
}
.welcome-split > .split-card{
  height:100%;
  min-height:560px;
}
.welcome-split .image-card{
  display:flex;
}
.welcome-split .image-card img{
  width:100%;
  height:100% !important;
  min-height:560px !important;
  object-fit:cover;
}
.welcome-split .text-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* Mobile menu: pop-out reveal inspired by the supplied Webflow menu component. */
@media(max-width:1080px){
  .menu-toggle{
    z-index:120;
    overflow:visible;
    isolation:isolate;
    transition:transform .45s cubic-bezier(.2,.9,.2,1), background .3s ease, box-shadow .3s ease;
  }
  .menu-toggle::before,
  .menu-toggle::after,
  .menu-toggle span{
    z-index:3;
  }
  .menu-toggle.open{
    transform:scale(1.12) rotate(90deg);
    background:var(--gradient);
    box-shadow:0 0 0 10px rgba(36,144,205,.12),0 18px 40px rgba(0,0,0,.24);
  }
  .menu-toggle.open::before,
  .menu-toggle.open::after{
    background:#222;
  }
  .nav{
    display:flex !important;
    opacity:1 !important;
    pointer-events:none;
    transform:none !important;
    clip-path:circle(0 at calc(100% - 54px) 84px);
    transition:clip-path .72s cubic-bezier(.22,.9,.24,1);
    background:rgba(27,33,40,.985);
  }
  .nav.open{
    pointer-events:auto;
    clip-path:circle(155% at calc(100% - 54px) 84px);
  }
  .nav a{
    opacity:0;
    transform:translateX(38px) rotate(2deg);
    transition:opacity .34s ease, transform .52s cubic-bezier(.2,.9,.25,1), color .25s ease;
  }
  .nav.open a{
    opacity:1;
    transform:translateX(0) rotate(0);
  }
  .nav.open a:nth-child(1){transition-delay:.16s}
  .nav.open a:nth-child(2){transition-delay:.21s}
  .nav.open a:nth-child(3){transition-delay:.26s}
  .nav.open a:nth-child(4){transition-delay:.31s}
  .nav.open a:nth-child(5){transition-delay:.36s}
  .nav.open a:nth-child(6){transition-delay:.41s}
  .nav.open a:nth-child(7){transition-delay:.46s}
}

/* Portfolio home: wide seamless sticky horizontal scene with no card shadows/backgrounds. */
.home-portfolio-section{
  background:#fff !important;
  overflow:visible !important;
}
.scroll-gallery-sticky{
  height:100vh;
  min-height:100vh;
  padding:54px 0 38px !important;
  overflow:hidden !important;
}
.home-portfolio-section .section-head{
  width:min(calc(100% - 64px),1500px);
  max-width:1500px;
  margin-inline:auto;
  margin-bottom:24px;
}
.home-portfolio-wrap{
  width:100vw !important;
  max-width:none !important;
  padding:0 !important;
  margin:0 !important;
  left:0 !important;
  right:auto !important;
  overflow:hidden !important;
}
.home-portfolio-grid{
  width:100vw;
  grid-template-rows:repeat(2, minmax(260px, 30vh)) !important;
  grid-auto-columns:minmax(330px,26vw) !important;
  gap:18px;
  padding:8px 4vw 12px !important;
  overflow-x:hidden !important;
  scroll-snap-type:none !important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 3.5%,#000 96.5%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 3.5%,#000 96.5%,transparent 100%);
}
.home-portfolio-grid .gallery-item,
.home-portfolio-grid .gallery-item:hover{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  transform:none !important;
  margin:0 !important;
}
.home-portfolio-grid .gallery-item img{
  border-radius:24px;
  box-shadow:none !important;
  filter:none !important;
  transform:scale(1) !important;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .35s ease;
}
.home-portfolio-grid .gallery-item:hover img{
  transform:scale(1.035) !important;
  filter:saturate(1.04) !important;
}

/* Entrance animation uses translate property so it does not fight scroll transforms. */
.motion-enter{
  opacity:0;
  translate:0 30px;
  transition:opacity .72s ease, translate .78s cubic-bezier(.2,.75,.25,1);
  transition-delay:var(--motion-delay,0ms);
}
.motion-enter.motion-in{
  opacity:1;
  translate:0 0;
}
.motion-enter.motion-left{translate:-34px 0}
.motion-enter.motion-left.motion-in{translate:0 0}
.motion-enter.motion-right{translate:34px 0}
.motion-enter.motion-right.motion-in{translate:0 0}
.hero-copy > *{
  opacity:0;
  translate:0 22px;
  animation:heroEntrance .7s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero-copy > *:nth-child(1){animation-delay:.12s}
.hero-copy > *:nth-child(2){animation-delay:.22s}
.hero-copy > *:nth-child(3){animation-delay:.34s}
.hero-copy > *:nth-child(4){animation-delay:.46s}
@keyframes heroEntrance{
  to{opacity:1;translate:0 0}
}

@media(max-width:767px){
  .welcome-split > .split-card{min-height:0;height:auto}
  .welcome-split .image-card img{height:390px !important;min-height:390px !important}
  .home-portfolio-section{overflow:hidden !important}
  .scroll-gallery-sticky{height:auto;min-height:0;padding:0 !important;overflow:visible !important}
  .home-portfolio-section .section-head{width:min(calc(100% - 28px),var(--max))}
  .home-portfolio-wrap{width:100% !important;padding:0 14px !important;overflow:visible !important}
  .home-portfolio-grid{
    width:100%;
    grid-template-rows:none !important;
    grid-auto-columns:auto !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    padding:0 !important;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .home-portfolio-grid .gallery-item img{border-radius:16px}
  .motion-enter{translate:0 20px}
}

@media(prefers-reduced-motion:reduce){
  .nav,.nav a,.menu-toggle,.motion-enter,.hero-copy > *{transition:none !important;animation:none !important}
  .motion-enter,.hero-copy > *{opacity:1 !important;translate:none !important}
}

/* =========================================================
   Interaction + layout refinements
   ========================================================= */

/* Why Choose Us: click-to-reveal progressive disclosure */
.why-reveal-section{
  overflow:hidden;
  background:linear-gradient(180deg,#f7fcff 0%,#eef8fd 100%);
}
.why-reveal-stage{
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
  gap:24px;
  align-items:stretch;
  perspective:1400px;
}
.why-reveal-tabs{
  display:grid;
  gap:12px;
}
.why-reveal-tab{
  position:relative;
  display:grid;
  grid-template-columns:50px 44px 1fr;
  align-items:center;
  gap:14px;
  width:100%;
  min-height:92px;
  padding:16px 20px;
  text-align:left;
  color:var(--charcoal);
  background:#fff;
  border:1px solid rgba(17,55,95,.12);
  border-radius:18px;
  box-shadow:0 12px 28px rgba(37,61,81,.07);
  transition:transform .42s cubic-bezier(.2,.85,.2,1),box-shadow .35s ease,background .35s ease,color .35s ease;
  overflow:hidden;
}
.why-reveal-tab::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gradient);
  opacity:0;
  transition:opacity .35s ease;
}
.why-reveal-tab > *{position:relative;z-index:1}
.why-reveal-tab .why-num{
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--blue);
}
.why-reveal-tab i{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(36,144,205,.12);
  color:var(--blue);
  transition:transform .35s ease,background .35s ease,color .35s ease;
}
.why-reveal-tab strong{font-size:1rem;line-height:1.15}
.why-reveal-tab:hover{
  transform:translateX(8px) rotateY(-3deg);
  box-shadow:0 20px 34px rgba(37,61,81,.12);
}
.why-reveal-tab.active{
  transform:translateX(14px) rotateY(-5deg);
  color:#1f2529;
  border-color:transparent;
  box-shadow:0 24px 42px rgba(36,144,205,.2);
}
.why-reveal-tab.active::after{opacity:1}
.why-reveal-tab.active .why-num{color:#26343c}
.why-reveal-tab.active i{background:rgba(255,255,255,.56);color:#26343c;transform:scale(1.08) rotate(-6deg)}
.why-reveal-panels{
  position:relative;
  min-height:404px;
}
.why-reveal-panel{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:44px 48px;
  border-radius:28px;
  background:linear-gradient(145deg,#2f353b 0%,#424242 100%);
  color:#fff;
  overflow:hidden;
  box-shadow:0 28px 70px rgba(17,31,43,.24);
  opacity:0;
  transform:translateX(34px) rotateY(7deg) scale(.985);
  pointer-events:none;
  transition:opacity .42s ease,transform .55s cubic-bezier(.2,.8,.2,1);
}
.why-reveal-panel::before{
  content:"";
  position:absolute;
  width:310px;
  height:310px;
  border-radius:50%;
  right:-95px;
  top:-95px;
  background:radial-gradient(circle,rgba(52,129,142,.36),transparent 66%);
}
.why-reveal-panel.active{
  opacity:1;
  transform:translateX(0) rotateY(0) scale(1);
  pointer-events:auto;
}
.why-reveal-panel[hidden]{display:flex !important;visibility:hidden}
.why-reveal-panel.active[hidden]{visibility:visible}
.why-panel-kicker{
  position:relative;
  z-index:1;
  color:var(--aqua);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:18px;
}
.why-reveal-panel h3{
  position:relative;
  z-index:1;
  max-width:720px;
  font-size:clamp(2.15rem,4.4vw,4.2rem);
  line-height:.98;
  letter-spacing:-.04em;
  margin-bottom:18px;
}
.why-reveal-panel p{
  position:relative;
  z-index:1;
  max-width:650px;
  color:#e4edf3;
  font-size:1rem;
}
.why-panel-icon{
  position:absolute;
  right:34px;
  bottom:26px;
  font-size:6.4rem;
  color:rgba(255,255,255,.075);
  transform:rotate(-8deg);
}

/* FAQ reference style: 3 cards, then 2 centered cards */
.faq-reference-style{
  background:#f5f2ed !important;
  color:#3d3530;
}
.faq-reference-head{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  gap:56px;
  align-items:end;
  margin-bottom:46px;
}
.faq-reference-head .eyebrow{
  color:#b9913e;
}
.faq-reference-head .eyebrow::before{background:#b9913e}
.faq-reference-head .eyebrow i{font-size:.95rem}
.faq-reference-head .section-title{color:#641022 !important}
.faq-reference-head > p{
  color:#6b625d;
  max-width:430px;
  font-size:1.02rem;
  padding-bottom:8px;
}
.faq-card-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:22px;
}
.faq-card-grid .faq-item{
  grid-column:span 2;
  border:0 !important;
  border-left:0 !important;
  border-radius:22px !important;
  background:#fff;
  box-shadow:0 13px 30px rgba(87,63,49,.07);
  overflow:hidden;
}
.faq-card-grid .faq-item:nth-child(4){grid-column:2 / span 2}
.faq-card-grid .faq-item:nth-child(5){grid-column:4 / span 2}
.faq-card-grid .faq-question{
  display:grid;
  grid-template-columns:54px 1fr 26px;
  align-items:center;
  gap:16px;
  min-height:112px;
  padding:20px 24px;
  font-size:.96rem;
  font-weight:800;
  color:#342b28;
}
.faq-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#711327;
  color:#d6ad4d;
  font-size:1rem;
}
.faq-label{line-height:1.28}
.faq-chevron{
  width:auto !important;
  height:auto !important;
  background:transparent !important;
  color:#c39a43 !important;
  transition:transform .3s ease !important;
}
.faq-item.open .faq-chevron{transform:rotate(180deg) !important}
.faq-card-grid .faq-answer{
  padding:0 24px 0 94px !important;
  max-height:0;
}
.faq-card-grid .faq-item.open .faq-answer{
  max-height:230px;
  padding:0 24px 22px 94px !important;
}
.faq-card-grid .faq-answer p{color:#6b625d}

/* Full-width CTA banners immediately above footer */
.footer-promo{
  width:100%;
  margin:0;
  padding:0;
  position:relative;
  overflow:hidden;
  background:linear-gradient(110deg,#424242 0%,#11375F 28%,#2490CD 52%,#34818E 76%,#424242 100%);
  background-size:260% 100%;
  animation:footerColorSweep 9s ease-in-out infinite alternate;
  color:#fff;
}
.footer-promo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.24),rgba(0,0,0,.05),rgba(0,0,0,.22));
  pointer-events:none;
}
.footer-promo-inner{
  position:relative;
  z-index:1;
  width:min(calc(100% - 64px),1460px);
  margin-inline:auto;
  min-height:240px;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.75fr) auto;
  align-items:center;
  gap:36px;
  padding:42px 0;
}
.footer-promo .eyebrow{color:#fff}
.footer-promo .eyebrow::before{background:#fff}
.footer-promo h2{
  font-size:clamp(2.55rem,5vw,5.2rem);
  line-height:.92;
  letter-spacing:-.05em;
  max-width:760px;
}
.footer-promo p{max-width:440px;color:rgba(255,255,255,.9)}
.btn-dark-on-gradient{
  background:#242424;
  color:#fff;
  white-space:nowrap;
}
.btn-dark-on-gradient:hover{
  background:#fff;
  color:#242424;
  box-shadow:0 22px 42px rgba(0,0,0,.2);
}
@keyframes footerColorSweep{
  0%{background-position:0% 50%}
  100%{background-position:100% 50%}
}
.site-footer{margin-top:0 !important}

/* About: diagonal title-only service marquee */
.about-diagonal-services{
  position:relative;
  min-height:230px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#eef8fd;
}
.diagonal-service-rail{
  width:112vw;
  margin-left:-6vw;
  transform:rotate(-3deg);
  background:#242424;
  border-top:4px solid var(--aqua);
  border-bottom:4px solid var(--blue);
  box-shadow:0 24px 44px rgba(17,31,43,.18);
  overflow:hidden;
}
.diagonal-service-track{
  display:flex;
  width:max-content;
  animation:aboutDiagonalLoop 24s linear infinite;
  will-change:transform;
}
.diagonal-service-rail:hover .diagonal-service-track{animation-play-state:paused}
.diagonal-service-set{
  flex:none;
  display:flex;
  align-items:center;
}
.diagonal-service-set a,
.diagonal-service-set span{
  display:flex;
  align-items:center;
  min-height:112px;
  white-space:nowrap;
  color:#fff;
  font-size:clamp(1.7rem,3.5vw,3.6rem);
  line-height:1;
  font-weight:900;
  letter-spacing:-.035em;
}
.diagonal-service-set a{padding:0 34px;transition:color .25s ease,transform .25s ease}
.diagonal-service-set a:hover{color:var(--aqua);transform:translateY(-3px)}
.diagonal-service-set span{color:var(--aqua);opacity:.8}
@keyframes aboutDiagonalLoop{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Locations: full-width cities section */
.cities-full-section{
  position:relative;
  overflow:hidden;
  background:linear-gradient(115deg,#243645 0%,#315a72 50%,#2a7478 100%) !important;
  color:#fff;
}
.cities-full-section .section-title,
.cities-full-section .section-copy{color:#fff !important}
.cities-full-section .eyebrow{color:var(--aqua)}
.cities-full-carousel{
  width:100vw;
  margin-left:calc(50% - 50vw);
  padding:10px max(28px,calc((100vw - var(--max))/2)) 20px !important;
  grid-auto-columns:minmax(230px,320px) !important;
}
.cities-full-carousel .city-chip{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  backdrop-filter:blur(10px);
  box-shadow:none;
  min-height:86px;
}
.cities-full-carousel .city-chip i{color:var(--aqua)}

/* Contact: proof points in their own section */
.contact-proof-section{
  background:linear-gradient(180deg,#eef8fd 0%,#fff 100%);
}
.contact-proof-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.proof-card{
  position:relative;
  min-height:230px;
  padding:28px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(17,55,95,.12);
  box-shadow:0 16px 34px rgba(37,61,81,.08);
  overflow:hidden;
}
.proof-card::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  background:var(--gradient);
}
.proof-card i{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(17,55,95,.14),rgba(52,129,142,.22));
  color:var(--blue);
  font-size:1.3rem;
  margin-bottom:24px;
}
.proof-card strong{display:block;font-size:1.15rem;margin-bottom:10px}
.proof-card span{display:block;color:#5f6974;font-size:.92rem}

@media(max-width:1080px){
  .why-reveal-stage{grid-template-columns:1fr}
  .why-reveal-tabs{grid-template-columns:repeat(2,1fr)}
  .why-reveal-tab.active,.why-reveal-tab:hover{transform:translateY(-4px)}
  .why-reveal-panels{min-height:430px}
  .faq-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-card-grid .faq-item,
  .faq-card-grid .faq-item:nth-child(4),
  .faq-card-grid .faq-item:nth-child(5){grid-column:auto}
  .footer-promo-inner{grid-template-columns:1fr auto}
  .footer-promo-inner > p{grid-column:1 / 2}
  .footer-promo-inner > .btn{grid-column:2;grid-row:1 / span 2}
  .contact-proof-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:767px){
  .why-reveal-tabs{grid-template-columns:1fr}
  .why-reveal-tab{min-height:78px;grid-template-columns:42px 40px 1fr;padding:13px 16px}
  .why-reveal-tab i{width:40px;height:40px}
  .why-reveal-panels{min-height:450px}
  .why-reveal-panel{padding:32px 24px;border-radius:22px}
  .why-reveal-panel h3{font-size:clamp(2rem,10vw,3.1rem)}
  .faq-reference-head{grid-template-columns:1fr;gap:18px;margin-bottom:30px}
  .faq-card-grid{grid-template-columns:1fr}
  .faq-card-grid .faq-item,
  .faq-card-grid .faq-item:nth-child(4),
  .faq-card-grid .faq-item:nth-child(5){grid-column:1}
  .faq-card-grid .faq-question{grid-template-columns:46px 1fr 22px;min-height:96px;padding:17px 18px;gap:12px}
  .faq-icon{width:42px;height:42px}
  .faq-card-grid .faq-answer{padding:0 18px 0 76px !important}
  .faq-card-grid .faq-item.open .faq-answer{padding:0 18px 18px 76px !important}
  .footer-promo-inner{width:min(calc(100% - 28px),var(--max));grid-template-columns:1fr;gap:18px;min-height:0;padding:42px 0}
  .footer-promo-inner > p,.footer-promo-inner > .btn{grid-column:auto;grid-row:auto}
  .footer-promo h2{font-size:clamp(2.5rem,12vw,4rem)}
  .diagonal-service-rail{width:118vw;margin-left:-9vw;transform:rotate(-4deg)}
  .diagonal-service-set a,.diagonal-service-set span{min-height:90px;font-size:clamp(1.45rem,8vw,2.4rem)}
  .diagonal-service-set a{padding:0 24px}
  .cities-full-carousel{grid-auto-columns:minmax(210px,70vw) !important;padding-left:14px !important;padding-right:14px !important}
  .contact-proof-grid{grid-template-columns:1fr}
}

/* =========================================================
   Final visual adjustments — contact, locations, about, FAQ
   ========================================================= */
:root{
  --lime:#2490CD;
  --pink:#E883B6;
}

/* Internal title banners centered */
.page-hero-content{
  width:min(calc(100% - 60px),1080px) !important;
  max-width:1080px !important;
  margin-inline:auto !important;
  padding-left:30px !important;
  padding-right:30px !important;
  text-align:center;
}
.page-hero-content .eyebrow{
  justify-content:center;
}
.page-hero-content p{
  margin-inline:auto;
}
.page-hero-content .accent{color:var(--aqua)}

/* New detail colors used as accents, not dominant fills */
.eyebrow i,
.service-icon i,
.info-icon i{color:inherit}
.step-tag{box-shadow:inset 0 -3px 0 rgba(178,217,37,.38)}
.proof-card:nth-child(2)::after,
.info-card:nth-child(even)::after{background:linear-gradient(90deg,var(--pink),var(--sky))}
.proof-card:nth-child(3)::after,
.info-card:nth-child(3)::after{background:linear-gradient(90deg,var(--lime),var(--aqua))}
.footer-badges span:first-child i{color:var(--lime)}
.footer-badges span:last-child i{color:var(--pink)}

/* Footer link hover colors */
.footer-col a{
  transition:color .25s ease,transform .25s ease;
}
.footer-col a:hover{
  color:var(--lime) !important;
  transform:translateX(5px);
}
.footer-col a:hover i{
  color:var(--pink) !important;
}

/* Contact conversation: equal-size columns and cleaner information panel */
.contact-conversation-section{
  background:linear-gradient(180deg,#f4fbff 0%,#fff 100%);
}
.contact-conversation-section .contact-layout{
  align-items:stretch;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
}
.contact-conversation-section .contact-panel,
.contact-conversation-section .form-card{
  min-height:820px;
  height:100%;
  border-radius:26px;
}
.contact-conversation-section .contact-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:48px 44px;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg,var(--lime),var(--sky),var(--pink)) border-box;
  border:2px solid transparent;
}
.contact-conversation-section .contact-panel h2{
  font-size:clamp(2.6rem,4vw,4.2rem);
  line-height:.98;
  max-width:520px;
  margin-bottom:30px;
}
.contact-conversation-section .contact-link{
  min-height:92px;
  padding:18px 0;
}
.contact-conversation-section .form-card{
  padding:30px;
  display:flex;
  align-items:stretch;
}
.contact-conversation-section .form-card iframe{
  min-height:760px;
  height:100% !important;
}

/* Full-width map bands — no exterior gaps */
.map-band-full{
  width:100vw;
  margin-left:calc(50% - 50vw);
  padding:0 !important;
  overflow:hidden;
  background:#eef8fd;
}
.map-split-full{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0 !important;
  width:100%;
  align-items:stretch;
}
.map-band-full .map-copy{
  border-radius:0 !important;
  box-shadow:none !important;
  padding:clamp(52px,6vw,92px) max(34px,calc((100vw - 1460px)/2 + 36px));
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:590px;
  background:linear-gradient(135deg,#27343d 0%,#3b5e70 100%);
  color:#fff;
}
.map-band-full .map-copy .section-title,
.map-band-full .map-copy p{color:#fff !important}
.map-band-full .map-copy .eyebrow{color:var(--lime)}
.map-band-full .map-copy .eyebrow::before{background:linear-gradient(90deg,var(--lime),var(--pink))}
.map-band-full .map-frame{
  border-radius:0 !important;
  box-shadow:none !important;
  min-height:590px;
}
.map-band-full .map-frame iframe{min-height:590px}
.contact-map-band .map-copy{background:linear-gradient(135deg,#2f3c46 0%,#456e7d 100%)}
.locations-map-band .map-copy{background:linear-gradient(135deg,#26343d 0%,#356877 100%)}

/* Locations service-area redesign */
.service-area-redesign{
  position:relative;
  overflow:hidden;
  background:#24313a;
  color:#fff;
  padding:94px 0;
}
.service-area-redesign::before{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-120px;
  top:-120px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(232,131,182,.22),transparent 68%);
}
.service-area-redesign::after{
  content:"";
  position:absolute;
  width:380px;
  height:380px;
  left:-110px;
  bottom:-150px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(178,217,37,.16),transparent 68%);
}
.service-area-redesign .service-area-grid{
  position:relative;
  z-index:1;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:0;
  align-items:stretch;
  border-radius:30px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 28px 70px rgba(0,0,0,.2);
}
.service-area-redesign .service-area-image{
  min-height:590px;
  border-radius:0 !important;
  box-shadow:none !important;
}
.service-area-redesign .service-area-image img{min-height:590px;height:100%;object-fit:cover}
.service-area-redesign .location-image-overlay{
  left:28px;right:28px;bottom:28px;
  background:rgba(31,44,52,.82);
  border:1px solid rgba(255,255,255,.12);
}
.service-area-redesign .service-area-copy{
  border-radius:0 !important;
  box-shadow:none !important;
  padding:54px 48px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.service-area-redesign .service-area-copy .section-title{
  font-size:clamp(2.45rem,4.2vw,4.2rem);
}
.service-area-redesign .service-area-copy .check-list{
  grid-template-columns:1fr;
  gap:10px;
  margin-top:26px;
}
.service-area-redesign .service-area-copy .check-list span{
  padding:14px 16px;
  border-radius:16px;
  background:#f4f9fb;
  border-left:4px solid var(--aqua);
}
.service-area-redesign .service-area-copy .check-list span:nth-child(2){border-left-color:var(--lime)}
.service-area-redesign .service-area-copy .check-list span:nth-child(3){border-left-color:var(--pink)}
.service-area-redesign .service-area-copy .check-list span:nth-child(4){border-left-color:var(--blue)}

/* About story: smaller title + exact equal-height media/content */
.about-story-section .about-story-grid{
  align-items:stretch !important;
}
.about-story-section .text-card,
.about-story-section .image-card{
  height:100%;
  min-height:560px;
}
.about-story-section .image-card img{
  width:100%;
  height:100%;
  min-height:560px;
  object-fit:cover;
}
.about-story-title{
  font-size:clamp(2.35rem,4.2vw,3.85rem) !important;
  line-height:.96 !important;
}

/* Portfolio page gallery title */
.portfolio-gallery-title{
  font-size:clamp(2.1rem,3.9vw,3.5rem) !important;
  line-height:.98 !important;
}

/* Flip hint icon only */
.flip-hint{
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid !important;
  place-items:center;
  background:linear-gradient(135deg,rgba(178,217,37,.18),rgba(232,131,182,.18));
  color:var(--blue) !important;
  margin-top:auto;
}
.flip-hint i{margin:0 !important}

/* FAQ — wider and aligned with the site's blue/aqua palette + new detail colors */
.faq-reference-style{
  background:linear-gradient(180deg,#edf8fc 0%,#f9fdff 100%) !important;
  color:var(--charcoal) !important;
}
.faq-reference-style .container{
  width:min(calc(100% - 48px),1480px) !important;
}
.faq-reference-head{
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
}
.faq-reference-head .eyebrow{color:var(--blue) !important}
.faq-reference-head .eyebrow::before{background:linear-gradient(90deg,var(--aqua),var(--lime)) !important}
.faq-reference-head .section-title{color:var(--charcoal) !important}
.faq-reference-head > p{color:#5e6873 !important}
.faq-card-grid{gap:24px}
.faq-card-grid .faq-item{
  background:#fff;
  border:1px solid rgba(17,55,95,.12) !important;
  box-shadow:0 18px 38px rgba(37,61,81,.08) !important;
}
.faq-card-grid .faq-item:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 48px rgba(37,61,81,.13) !important;
}
.faq-card-grid .faq-question{color:var(--charcoal) !important}
.faq-icon{
  background:linear-gradient(135deg,var(--blue),var(--sky)) !important;
  color:#fff !important;
}
.faq-card-grid .faq-item:nth-child(2) .faq-icon,
.faq-card-grid .faq-item:nth-child(5) .faq-icon{
  background:linear-gradient(135deg,var(--pink),var(--sky)) !important;
}
.faq-card-grid .faq-item:nth-child(3) .faq-icon,
.faq-card-grid .faq-item:nth-child(4) .faq-icon{
  background:linear-gradient(135deg,var(--lime),var(--aqua)) !important;
  color:#2b353a !important;
}
.faq-chevron{color:var(--blue) !important}
.faq-card-grid .faq-answer p{color:#606a74 !important}

/* Additional subtle pink/lime details */
.footer-promo{
  background:linear-gradient(110deg,#424242 0%,#11375F 22%,#2490CD 42%,#34818E 58%,#2490CD 75%,#E883B6 88%,#424242 100%) !important;
  background-size:300% 100% !important;
}
.cities-full-carousel .city-chip:nth-child(3n+2) i{color:var(--lime)}
.cities-full-carousel .city-chip:nth-child(3n) i{color:var(--pink)}

@media(max-width:991px){
  .contact-conversation-section .contact-layout,
  .map-split-full,
  .service-area-redesign .service-area-grid{grid-template-columns:1fr}
  .contact-conversation-section .contact-panel,
  .contact-conversation-section .form-card{min-height:auto}
  .contact-conversation-section .form-card iframe{min-height:790px}
  .map-band-full .map-copy,
  .map-band-full .map-frame,
  .map-band-full .map-frame iframe{min-height:480px}
  .service-area-redesign .service-area-image,
  .service-area-redesign .service-area-image img{min-height:430px}
  .about-story-section .text-card,
  .about-story-section .image-card,
  .about-story-section .image-card img{min-height:460px}
}

@media(max-width:767px){
  .page-hero-content{
    width:min(calc(100% - 28px),1080px) !important;
    padding-left:14px !important;
    padding-right:14px !important;
  }
  .contact-conversation-section .contact-panel{padding:34px 24px}
  .contact-conversation-section .contact-panel h2{font-size:clamp(2.35rem,10vw,3.3rem)}
  .contact-conversation-section .form-card{padding:18px}
  .map-band-full .map-copy{padding:52px 24px;min-height:auto}
  .map-band-full .map-frame,.map-band-full .map-frame iframe{min-height:390px}
  .service-area-redesign{padding:66px 0}
  .service-area-redesign .service-area-copy{padding:38px 24px}
  .about-story-section .text-card,
  .about-story-section .image-card,
  .about-story-section .image-card img{min-height:auto}
  .about-story-section .image-card img{height:420px}
  .faq-reference-style .container{width:min(calc(100% - 24px),1480px) !important}
  .footer-col a:hover{transform:none}
}

/* =========================================================
   Final polish pass: mobile FAQ, parallax, logo, title chars
   ========================================================= */

/* Bigger header logo */
.brand img{
  width:280px !important;
  max-width:280px !important;
}
@media(max-width:1200px){
  .brand img{width:240px !important;max-width:240px !important}
}
@media(max-width:991px){
  .brand img{width:220px !important;max-width:220px !important}
}
@media(max-width:767px){
  .brand img{width:196px !important;max-width:196px !important}
}

/* Internal hero/banner filters: darker at bottom, clearer at top */
.page-hero::before{
  background:
    linear-gradient(to top,
      rgba(66,66,66,.88) 0%,
      rgba(66,66,66,.62) 30%,
      rgba(66,66,66,.26) 64%,
      rgba(66,66,66,.08) 82%,
      rgba(66,66,66,0) 100%) !important;
}

/* FAQ mobile heading structure */
@media(max-width:767px){
  .faq-reference-head{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:14px !important;
  }
  .faq-reference-head > p{
    max-width:none !important;
    padding-bottom:0 !important;
    margin-top:0 !important;
  }
}

/* Cities section faster carousel + parallax backdrop */
.cities-full-section{
  background:none !important;
}
.cities-full-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg,rgba(20,34,48,.84) 0%,rgba(36,80,92,.72) 100%),
    url('https://images.unsplash.com/photo-1448630360428-65456885c650?auto=format&fit=crop&w=1800&q=80') center/cover no-repeat;
  background-attachment:fixed,fixed;
  transform:scale(1.04);
  z-index:0;
}
.cities-full-section > *{position:relative;z-index:1}
@media(max-width:991px){
  .cities-full-section::before{background-attachment:scroll,scroll}
}

/* Contact conversation background with parallax below cards */
.contact-parallax-section{
  position:relative;
  overflow:hidden;
  background:none !important;
}
.contact-parallax-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(241,249,253,.9),rgba(255,255,255,.92)),
    url('https://images.unsplash.com/photo-1600607687644-c7171b42498f?auto=format&fit=crop&w=1800&q=80') center/cover no-repeat;
  background-attachment:fixed,fixed;
  transform:scale(1.05);
  z-index:0;
}
.contact-parallax-section .contact-layout{position:relative;z-index:1}
@media(max-width:991px){
  .contact-parallax-section::before{background-attachment:scroll,scroll}
}

/* Contact cards animation */
.contact-conversation-section .contact-link,
.contact-proof-grid .proof-card{
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease, background .35s ease;
}
.contact-conversation-section .contact-link:hover,
.contact-proof-grid .proof-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 38px rgba(37,61,81,.14);
}
.contact-conversation-section .contact-link:hover i{
  transform:scale(1.08) rotate(-6deg);
  box-shadow:0 14px 26px rgba(36,144,205,.18);
}

/* Home portfolio fill and trim */
.home-portfolio-grid{
  grid-auto-columns:minmax(260px,17vw) !important;
}
.home-portfolio-grid .gallery-item img{background:transparent !important}

/* Make portfolio page intro wider */
.portfolio-wide-copy{
  max-width:1120px !important;
}
.portfolio-wide-copy .section-title,
.portfolio-wide-copy p{
  max-width:1000px;
  margin-left:auto;
  margin-right:auto;
}

/* Letter-by-letter title animation */
.title-chars .char{
  display:inline-block;
  opacity:0;
  transform:translateY(.9em) rotate(4deg);
  filter:blur(6px);
  transition:
    transform .66s cubic-bezier(.2,.8,.2,1),
    opacity .5s ease,
    filter .55s ease;
  transition-delay:calc(var(--char-index) * 0.018s);
  will-change:transform,opacity,filter;
}
.title-chars.chars-in .char{
  opacity:1;
  transform:translateY(0) rotate(0deg);
  filter:blur(0);
}
.title-chars .char.space{width:.3em}
.title-chars .word{display:inline-block;white-space:nowrap}

/* Keep accent spans aligned in animated titles */
.title-chars .accent{display:inline}

/* Slightly wider contact title copy and balanced map/title panels remain */
.contact-conversation-section .contact-panel h2{max-width:620px}


/* =========================================================
   Final adjustment pass - 2026-09-16
   ========================================================= */

/* Wider hero content area */
.hero .container.hero-content{
  width:min(calc(100% - 42px),1440px) !important;
}
.hero-copy{
  max-width:980px !important;
}
.hero h1{
  max-width:1080px !important;
}

/* Keep title words intact across line breaks */
h1,h2,h3,.section-title,.page-hero h1,.hero h1,.contact-panel h2,.footer-promo h2{
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  hyphens:none !important;
}
.title-chars{
  white-space:normal;
}
.title-chars .word{
  display:inline-block;
  white-space:nowrap;
}
.title-chars .char.space{
  width:.34em;
}

/* Mobile menu appearance + brand */
.mobile-menu-brand{
  display:none;
}
@media(max-width:1080px){
  .nav{
    background:rgba(241,245,248,.985) !important;
    color:var(--charcoal);
    justify-content:flex-start !important;
    padding:130px 34px 52px !important;
  }
  .mobile-menu-brand{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    position:absolute;
    top:28px;
    left:34px;
    right:96px;
    padding:0 !important;
    background:none !important;
    box-shadow:none !important;
    opacity:1 !important;
    transform:none !important;
  }
  .mobile-menu-brand img{
    width:220px;
    max-width:min(62vw,220px);
    height:auto;
    filter:none;
  }
  .nav a{
    color:#24313a !important;
  }
  .nav a i{
    color:#7bdcc9;
  }
  .nav a.active,
  .nav a:hover{
    background:transparent !important;
    color:#2490CD !important;
    box-shadow:none !important;
  }
  .nav a.active i,
  .nav a:hover i{
    color:#2490CD !important;
  }
  .menu-toggle{
    background:#eef2f5 !important;
    box-shadow:0 10px 24px rgba(31,49,64,.12);
  }
  .menu-toggle::before,
  .menu-toggle::after,
  .menu-toggle span{
    background:#22313c !important;
  }
  .menu-toggle.open{
    background:linear-gradient(135deg,#c7f4e7,#8fddff) !important;
  }
}

/* Mobile hero split: video top, content block below */
@media(max-width:767px){
  .hero{
    min-height:0 !important;
    display:block !important;
    padding-top:0 !important;
    background:linear-gradient(180deg,#eef5f8 0%,#dff4f6 35%,#eef5f8 100%) !important;
  }
  .hero-video{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    height:42vh !important;
    min-height:300px;
    display:block;
  }
  .hero-overlay{
    top:0;
    bottom:auto;
    height:42vh;
    min-height:300px;
    background:linear-gradient(180deg,rgba(15,24,37,.18) 0%,rgba(15,24,37,.34) 100%) !important;
  }
  .hero-content{
    padding:30px 0 44px !important;
  }
  .hero .container.hero-content{
    width:min(calc(100% - 26px),1440px) !important;
  }
  .hero-copy{
    max-width:none !important;
    color:var(--charcoal);
    background:linear-gradient(140deg,rgba(255,255,255,.98) 0%,rgba(240,248,251,.97) 52%,rgba(228,245,250,.98) 100%);
    border-radius:28px;
    padding:28px 20px 24px !important;
    box-shadow:0 18px 38px rgba(37,61,81,.10);
    margin-top:-30px;
    position:relative;
  }
  .hero-copy::before{
    content:"";
    position:absolute;
    width:140px;
    height:140px;
    top:-28px;
    right:-14px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(36,144,205,.16),transparent 70%);
    pointer-events:none;
  }
  .hero .eyebrow{color:var(--blue) !important}
  .hero h1,
  .hero p{
    color:var(--charcoal) !important;
  }
  .hero p{max-width:none !important}
  .hero .btn-outline{
    color:var(--charcoal);
    border-color:rgba(66,66,66,.18);
    background:#fff;
  }
}

/* Welcome section updated background image card */
.welcome-split .image-card img{
  object-position:center center;
}

/* More colorful details in homeowner experience section */
.why-reveal-section{
  position:relative;
  isolation:isolate;
}
.why-reveal-section::before{
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  left:-110px;
  top:90px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(17,55,95,.16),transparent 70%);
  z-index:0;
}
.why-reveal-section::after{
  content:"";
  position:absolute;
  width:300px;
  height:300px;
  right:-80px;
  bottom:40px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(52,129,142,.15),transparent 70%);
  z-index:0;
}
.why-reveal-section .container{position:relative;z-index:1}
.why-reveal-panel{
  background:linear-gradient(145deg,#ffffff 0%,#f5fbff 100%);
  border:1px solid rgba(17,55,95,.10);
}

/* Home service title a bit cleaner */
.home-services-section .section-copy,
.home-services-section .section-head{
  max-width:none;
}

/* Make home portfolio full and smoother */
.home-portfolio-wrap{overflow:visible !important}

/* About story image section full width */
.about-story-section{
  padding-left:0 !important;
  padding-right:0 !important;
}
.about-story-fullwidth{
  width:100% !important;
  max-width:none !important;
}
.about-story-fullwidth .text-card{
  padding:56px clamp(24px,5vw,72px);
}
.about-story-fullwidth .image-card,
.about-story-fullwidth .image-card img{
  border-radius:0 !important;
}
@media(max-width:767px){
  .about-story-fullwidth .text-card{padding:32px 20px}
}

/* Services tab: wider content area */
.service-layout-wide{
  width:min(calc(100% - 40px),1420px) !important;
}
.service-layout-wide .service-detail-list{
  gap:34px;
}

/* Growing through image should feel edge-to-edge */
.about-story-section .split-grid{
  gap:0 !important;
}

/* Locations map spacing below intro paragraph */
.map-intro-spaced{
  margin-bottom:26px !important;
}

/* Locations image and copy polish */
.service-area-redesign .service-area-image img{
  object-position:center center;
}
.service-area-redesign .service-area-copy .section-title{
  max-width:620px;
}

/* Contact conversation background replacement + light gray filter */
.contact-parallax-section::before{
  background:
    linear-gradient(180deg,rgba(246,248,250,.92),rgba(241,244,247,.95)),
    url('https://assets.cdn.filesafe.space/pRZENx79P63DIc5CU3SY/media/6aaaea12aabc65fd5d0e9be6.jpg') center/cover no-repeat !important;
  background-attachment:fixed,fixed;
}
@media(max-width:991px){
  .contact-parallax-section::before{background-attachment:scroll,scroll}
}

/* Make about story / recommendation image section feel full width */
.about-story-section .split-card.image-card img{
  width:100%;
  height:100%;
}

/* Slightly wider services intro cards */
.service-detail{
  padding:30px;
}

.cities-full-carousel{
  scroll-snap-type:none !important;
}
.cities-full-carousel .city-chip{
  scroll-snap-align:none !important;
}

/* =========================================================
   Final polish pass - header / locations / about adjustments
   ========================================================= */

/* Show only one logo in desktop header; keep the injected menu logo hidden until mobile menu view */
.nav .mobile-menu-brand{
  display:none !important;
}

/* Larger, single visible brand in header */
.site-header .brand img{
  width:300px !important;
  max-width:300px !important;
}

/* Darker desktop nav text per latest request */
.site-header .nav > a{
  color:#1D1D1D !important;
}
.site-header .nav > a i{
  color:#1D1D1D !important;
}
.site-header .nav > a.active,
.site-header .nav > a:hover{
  color:#1D1D1D !important;
}
.site-header .nav > a.active i,
.site-header .nav > a:hover i{
  color:#1D1D1D !important;
}

/* Mobile header: logo at left, menu button at right, text dark */
@media(max-width:1080px){
  .header-inner{
    grid-template-columns:minmax(0,1fr) auto !important;
    align-items:center;
    gap:12px;
  }
  .site-header .brand{
    display:inline-flex !important;
    justify-self:start;
    align-self:center;
  }
  .site-header .brand img{
    width:228px !important;
    max-width:min(62vw,228px) !important;
  }
  .nav .mobile-menu-brand{
    display:flex !important;
  }
  .nav a,
  .nav a span,
  .nav a i{
    color:#1D1D1D !important;
  }
  .nav a.active,
  .nav a.active span,
  .nav a.active i{
    color:#2490CD !important;
  }
}
@media(max-width:767px){
  .site-header .brand img{
    width:208px !important;
    max-width:min(64vw,208px) !important;
  }
}

/* Why choose us cards: dark card backgrounds + colorful section details */
.why-reveal-section{
  background:
    radial-gradient(circle at 12% 18%, rgba(232,131,182,.14), transparent 28%),
    radial-gradient(circle at 88% 26%, rgba(178,217,37,.14), transparent 26%),
    radial-gradient(circle at 80% 84%, rgba(75,156,242,.16), transparent 28%),
    linear-gradient(180deg,#eff4f6 0%,#edf2f5 100%) !important;
}
.why-reveal-tab,
.why-reveal-panel{
  background:#424242 !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.08) !important;
  box-shadow:0 16px 36px rgba(25,25,25,.14) !important;
}
.why-reveal-tab strong,
.why-reveal-panel h3,
.why-reveal-panel p,
.why-panel-kicker,
.why-reveal-tab .why-num{
  color:#fff !important;
}
.why-reveal-tab i,
.why-panel-icon{
  color:#8ff1e0 !important;
  background:rgba(255,255,255,.10) !important;
}
.why-reveal-tab.active,
.why-reveal-tab:hover{
  background:linear-gradient(135deg,#424242 0%,#353535 100%) !important;
}
.why-reveal-tab.active::after{
  opacity:.28 !important;
}
.why-reveal-panel::before{
  background:linear-gradient(135deg, rgba(75,156,242,.24), rgba(52,129,142,.06)) !important;
}

/* Built on Trust section should touch surrounding sections more closely */
.about-story-section{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.about-story-section .about-story-grid{
  gap:0 !important;
}
.about-story-section .text-card,
.about-story-section .image-card{
  border-radius:0 !important;
}

/* Keep locations inner image and page hero aligned with the rest of title banners */
.location-copy .section-title{
  max-width:560px;
}

/* =========================================================
   Mobile and internal-banner fixes - latest pass
   ========================================================= */

/* Internal title-banner overlay uses the requested blue. */
.page-hero::before{
  background:linear-gradient(
    to top,
    #424242e0 0%,
    #424242ad 30%,
    #4242426b 60%,
    rgba(75,156,242,.16) 84%,
    rgba(75,156,242,.05) 100%
  ) !important;
}

/* Only while the header sits over internal title banners, keep desktop nav text white. */
@media(min-width:1081px){
  .internal-page .site-header .nav > a,
  .internal-page .site-header .nav > a span,
  .internal-page .site-header .nav > a i{
    color:#fff !important;
  }
  .internal-page .site-header .nav > a.active,
  .internal-page .site-header .nav > a.active span,
  .internal-page .site-header .nav > a.active i,
  .internal-page .site-header .nav > a:hover,
  .internal-page .site-header .nav > a:hover span,
  .internal-page .site-header .nav > a:hover i{
    color:#fff !important;
  }
}

@media(max-width:1080px){
  /* Mobile menu: logo becomes the first menu item with real spacing below. */
  .nav{
    padding:38px 34px 58px !important;
    justify-content:flex-start !important;
  }
  .nav .mobile-menu-brand{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    width:100% !important;
    min-height:auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    margin:0 0 42px 0 !important;
    padding:0 !important;
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .nav .mobile-menu-brand img{
    width:245px !important;
    max-width:min(70vw,245px) !important;
    height:auto !important;
  }
}

@media(max-width:767px){
  /* Home mobile hero: two sections, but content is full-bleed rather than a floating card. */
  .hero{
    width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    background:linear-gradient(145deg,#f4f8fa 0%,#e9f5f8 58%,#eef7fa 100%) !important;
  }
  .hero .container.hero-content{
    width:100% !important;
    max-width:none !important;
    padding:34px 0 46px !important;
    margin:0 !important;
  }
  .hero-copy{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:32px 24px 30px !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .hero-copy::before{
    display:none !important;
  }
  .hero-copy,
  .hero-copy h1,
  .hero-copy p,
  .hero-copy .eyebrow{
    text-shadow:none !important;
    filter:none !important;
  }

  /* More air above internal banner copy so it clears the mobile header. */
  .page-hero{
    min-height:520px !important;
  }
  .page-hero-content{
    padding-top:205px !important;
    padding-bottom:58px !important;
  }

  /* Home portfolio: if the final item is alone, center it on its own row. */
  .home-portfolio-grid .gallery-item:last-child:nth-child(odd){
    grid-column:1 / -1 !important;
    width:calc(50% - 6px) !important;
    justify-self:center !important;
  }

  /* Portfolio tab: always show images two-by-two on mobile. */
  .gallery-masonry{
    columns:unset !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
  }
  .gallery-masonry .gallery-item{
    width:100% !important;
    margin:0 !important;
    aspect-ratio:1 / 1 !important;
    border-radius:16px !important;
  }
  .gallery-masonry .gallery-item img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
}

.project-video-frame{grid-column:1/-1;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#000;aspect-ratio:16/9}.project-video-frame iframe{width:100%;height:100%;border:0;display:block}


/* === FINAL BLUE OVERRIDES: 2026-10-07 === */
:root{--pink:#62aef5;--lime:#9ad2ff;--aqua:#56b7ef;--sky:#88d7ff;--gradient:linear-gradient(90deg,#142056 0%,#294e95 48%,#2490CD 100%);}

/* Keep white text/icons on blue gradient areas */
.btn-primary,.btn-primary span,.btn-primary i,.nav a.active,.nav a.active span,.nav a.active i,.service-index-links a:hover,.service-index-links a:hover span,.service-index-links a:hover i,.slider-btn:hover,.slider-btn:hover i,.service-title-set a:hover,.service-title-set a:hover span,.service-title-set a:hover i,.footer-promo .btn-dark-on-gradient,.footer-promo .btn-dark-on-gradient span,.footer-promo .btn-dark-on-gradient i{color:#fff !important;}
.btn-primary:hover,.btn-primary:hover span,.btn-primary:hover i,.btn-dark-on-gradient:hover,.btn-dark-on-gradient:hover span,.btn-dark-on-gradient:hover i{color:#fff !important;}
.btn-primary,.nav a.active,.service-index-links a:hover,.service-title-set a:hover,.slider-btn:hover{box-shadow:0 18px 34px rgba(20,32,86,.26) !important;}

/* Logo animation */
.brand img,.footer-brand-img img{animation:siteLogoFloat 5.4s ease-in-out infinite;transform-origin:center center;}
.brand:hover img,.footer-brand-img:hover img{animation-play-state:paused;transform:translateY(-2px) scale(1.03);}
@keyframes siteLogoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* Title banners */
.page-hero{min-height:390px !important;}
.page-hero-content{padding-top:250px !important;padding-bottom:88px !important;}
.page-hero::before{background:linear-gradient(180deg,rgba(10,21,58,.38),rgba(10,21,58,.76)),linear-gradient(90deg,rgba(0,0,0,.68),rgba(0,0,0,.24)) !important;}

/* Welcome / intro parallax */
.welcome-intro-section .section-head .section-title{max-width:720px;}
.welcome-intro-section .section-copy{max-width:760px;}

/* The Ebenezer Difference section in blue */
.why-reveal-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#142056 0%,#1e3975 100%) !important;}
.why-reveal-section::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 14% 16%,rgba(136,215,255,.18),transparent 28%),radial-gradient(circle at 86% 20%,rgba(36,144,205,.18),transparent 24%),radial-gradient(circle at 78% 84%,rgba(86,183,239,.14),transparent 26%);z-index:0;}
.why-reveal-section::after{display:none !important;}
.why-reveal-section .section-title,.why-reveal-section .section-copy,.why-reveal-section .eyebrow,.why-reveal-section .eyebrow i{color:#fff !important;}
.why-reveal-section .why-reveal-tab{background:rgba(255,255,255,.12) !important;border-color:rgba(255,255,255,.18) !important;color:#fff !important;}
.why-reveal-section .why-reveal-tab i,.why-reveal-section .why-num{color:#88d7ff !important;}
.why-reveal-section .why-reveal-tab.active{background:linear-gradient(135deg,#2490CD,#3b7fd0) !important;color:#fff !important;box-shadow:0 20px 34px rgba(0,0,0,.22);}

/* Home services background image with light filter */
.home-services-bg-section{position:relative;overflow:hidden;background:transparent !important;}
.home-services-bg-section::before{content:'';position:absolute;inset:0;background-image:url('https://assets.cdn.filesafe.space/VykuU6GDgyDvsaYl7m8s/media/6ac664877d735ea2a18297ed.jpg');background-position:center;background-size:cover;background-attachment:fixed;z-index:0;transform:scale(1.02);}
.home-services-bg-section::after{content:'';position:absolute;inset:0;background:rgba(244,251,254,.85);z-index:0;}
.home-services-bg-section > .container{position:relative;z-index:1;}

/* Mission / vision parallax overlay in blue */
.mission-vision-bg::after{background:linear-gradient(90deg,rgba(20,32,86,.84),rgba(41,78,149,.66)) !important;}

/* Straightforward path sections blue */
.process-section-blue{background:linear-gradient(180deg,#eff6ff 0%,#dfeeff 100%) !important;position:relative;overflow:hidden;}
.process-section-blue::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 10% 14%,rgba(36,144,205,.12),transparent 25%),radial-gradient(circle at 88% 78%,rgba(41,78,149,.12),transparent 26%);pointer-events:none;}
.process-section-blue > .container{position:relative;z-index:1;}

/* Footer + social */
.site-footer .footer-grid{grid-template-columns:1.3fr repeat(4,minmax(0,1fr)) !important;}
.footer-social-col a{display:flex;align-items:center;gap:10px;}
.footer-social-col h4,.footer-contact-col h4{margin-bottom:16px;}

/* Contact page dedicated social section */
.contact-social-section{margin-top:26px;padding-top:18px;border-top:1px solid rgba(20,32,86,.14);}
.contact-social-section .eyebrow{margin-bottom:16px;}
.contact-social-grid{display:grid;gap:14px;}

/* Videos page: crop out black edges and remove extra spacing */
.project-video-frame-crop{overflow:hidden;border-radius:30px;}
.project-video-frame-crop iframe{width:122% !important;height:100% !important;min-height:640px;transform:translateX(-9%) scale(1.03);transform-origin:center center;border:0;background:#000;}
.videos-tight .coming-grid{display:none !important;}
.coming-soon-section .project-video-frame{margin-bottom:0 !important;}

/* Portfolio masonry 4 columns */
.gallery-masonry-four{columns:4 220px !important;column-gap:18px !important;}
.gallery-masonry-four .gallery-item{display:block;width:100%;margin:0 0 18px !important;break-inside:avoid;}
.gallery-masonry-four .gallery-item img{width:100%;height:auto;display:block;}

/* Replace leftover warm/green details with blue */
.info-card:nth-child(even)::after,.info-card:nth-child(3)::after,.faq-reference-head .eyebrow::before,.map-band-full .map-copy .eyebrow::before{background:linear-gradient(90deg,#56b7ef,#88d7ff) !important;}
.flip-hint,.step-tag{background:linear-gradient(135deg,rgba(36,144,205,.14),rgba(88,165,232,.22)) !important;color:#142056 !important;}
.contact-link i,.service-icon,.stat-card i,.info-icon,.mini-stat i{background:linear-gradient(135deg,rgba(20,32,86,.14),rgba(36,144,205,.22)) !important;color:#1b4ea2 !important;}

@media (max-width: 1199px){.site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}
@media (max-width: 767px){.page-hero-content{padding-top:220px !important;padding-bottom:72px !important;}.gallery-masonry-four{columns:2 150px !important;}.project-video-frame-crop iframe{width:144% !important;min-height:320px;transform:translateX(-15%) scale(1.05);}.site-footer .footer-grid{grid-template-columns:1fr !important;}}


/* === FINAL POLISH PASS 2: 2026-10-07 === */
:root{--pink:#5d8ce8;--lime:#a8d8ff;--aqua:#42b5f5;--sky:#9cddff;--gradient:linear-gradient(90deg,#15346f 0%,#1f4f92 45%,#2490CD 100%);}

/* Topbar and nav */
.topbar{background:transparent !important;backdrop-filter:none !important;border-bottom:none !important;}
.topbar i,.topbar a,.topbar span{color:#fff !important;}
.nav a,.nav a i,.nav a span,.site-header .header-cta,.site-header .header-cta i,.site-header .header-cta span{color:#fff !important;}
.site-header.scrolled{background:rgba(17,55,95,.76) !important;border-bottom:1px solid rgba(255,255,255,.12) !important;}

/* Lighter internal banner overlay */
.page-hero::before{background:linear-gradient(180deg,rgba(232,241,248,.24),rgba(195,214,230,.52)),linear-gradient(90deg,rgba(13,34,63,.45),rgba(13,34,63,.18)) !important;}
.page-hero .eyebrow,.page-hero h1,.page-hero p{text-shadow:0 2px 16px rgba(14,34,60,.22);}

/* Title entrance */
.title-entrance{animation:titleRise .95s cubic-bezier(.2,.8,.2,1) both;}
.section-head.reveal.visible .title-entrance,.page-hero-content.reveal.visible .title-entrance,.footer-promo.reveal.visible .title-entrance{animation-play-state:running;}
@keyframes titleRise{0%{opacity:0;transform:translateY(28px);letter-spacing:.03em;}100%{opacity:1;transform:translateY(0);letter-spacing:0;}}

/* Uiverse-inspired button hover */
.btn{isolation:isolate;border:1px solid transparent;}
.btn::after{content:'';position:absolute;top:-130%;left:-40%;width:42%;height:360%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:rotate(20deg) translateX(-260%);transition:transform .65s ease;z-index:1;}
.btn:hover{transform:translateY(-5px) scale(1.015);box-shadow:0 20px 40px rgba(18,45,94,.26) !important;}
.btn:hover::after{transform:rotate(20deg) translateX(420%);}
.btn-primary,.btn-secondary,.btn-dark-on-gradient,.btn-outline,.home-portfolio-btn{border-color:rgba(255,255,255,.24);}
.btn-primary:hover,.btn-dark-on-gradient:hover,.btn-outline:hover,.home-portfolio-btn:hover{background:#fff !important;color:#11375F !important;border-color:#fff !important;}
.btn-primary:hover i,.btn-primary:hover span,.btn-dark-on-gradient:hover i,.btn-dark-on-gradient:hover span,.btn-outline:hover i,.btn-outline:hover span,.home-portfolio-btn:hover i,.home-portfolio-btn:hover span{color:#11375F !important;}
.btn-secondary:hover{background:#fff !important;color:#11375F !important;border-color:#fff !important;}
.btn-secondary:hover i,.btn-secondary:hover span{color:#11375F !important;}
.home-portfolio-btn{background:var(--gradient) !important;color:#fff !important;border-color:transparent !important;box-shadow:0 18px 34px rgba(20,32,86,.26) !important;}

/* Hover animation for icons */
.contact-link i,.service-icon,.stat-card i,.info-icon,.mini-stat i,.faq-icon,.proof-card i,.footer-col a i,.footer-meta-item i,.topbar i{transition:transform .28s ease, box-shadow .28s ease, background .28s ease, color .28s ease;}
.contact-link:hover i,.service-detail:hover .service-icon,.stat-card:hover i,.info-card:hover .info-icon,.mini-stat:hover i,.faq-item:hover .faq-icon,.proof-card:hover i,.footer-col a:hover i,.footer-meta-item:hover i,.topbar a:hover i{transform:translateY(-3px) scale(1.08) rotate(-4deg);box-shadow:0 14px 26px rgba(36,144,205,.22);}

/* Featured eyebrows */
.eyebrow-blue{color:#1f63b5 !important;}
.eyebrow-blue i{color:#1f63b5 !important;}
.home-services-section .section-head{display:grid;gap:14px;}
.home-services-section .head-cta{margin-top:0;}
.home-services-section .head-cta .btn{margin-top:4px;}

/* Home hero new video */
.hero::after{background:radial-gradient(circle at 80% 24%,rgba(156,221,255,.12),transparent 20%);}

/* Why choose us with more blue details */
.why-reveal-section::before{background:radial-gradient(circle at 10% 12%,rgba(156,221,255,.2),transparent 22%),radial-gradient(circle at 92% 16%,rgba(36,144,205,.22),transparent 22%),radial-gradient(circle at 82% 84%,rgba(66,181,245,.14),transparent 26%),radial-gradient(circle at 20% 80%,rgba(17,55,95,.18),transparent 28%),linear-gradient(135deg,rgba(255,255,255,.04) 25%,transparent 25%) 0 0/24px 24px;}

/* Mission parallax stronger */
.mission-vision-bg::before{background-attachment:fixed !important;filter:saturate(.92) contrast(1.02);}

/* Services process image parallax */
.process-service-parallax{position:relative;overflow:hidden;background:transparent !important;}
.process-service-parallax::before{content:'';position:absolute;inset:0;background-image:url('https://assets.cdn.filesafe.space/VykuU6GDgyDvsaYl7m8s/media/6ac664877d735ea2a18297ed.jpg');background-position:center;background-size:cover;background-attachment:fixed;filter:saturate(.9);transform:scale(1.03);z-index:0;}
.process-service-parallax::after{content:'';position:absolute;inset:0;background:rgba(244,251,254,.82);z-index:0;}
.process-service-parallax > .container{position:relative;z-index:1;}

/* Home process detailed blue background */
.process-home-detailed{background:linear-gradient(180deg,#eef8ff 0%,#dcebfb 100%) !important;}
.process-home-detailed::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 8% 16%,rgba(36,144,205,.12),transparent 22%),radial-gradient(circle at 84% 26%,rgba(17,55,95,.08),transparent 24%),radial-gradient(circle at 72% 84%,rgba(66,181,245,.11),transparent 20%),linear-gradient(135deg,rgba(255,255,255,.38) 25%,transparent 25%) 0 0/28px 28px;pointer-events:none;}

/* FAQ background art */
.faq-bg-art{position:relative;overflow:hidden;background:transparent !important;}
.faq-bg-art::before{content:'';position:absolute;inset:0;background-image:url('https://assets.cdn.filesafe.space/VykuU6GDgyDvsaYl7m8s/media/6ac66c14045e774991a0a853.png');background-position:center;background-size:cover;background-attachment:fixed;z-index:0;}
.faq-bg-art::after{content:'';position:absolute;inset:0;background:rgba(244,251,254,.80);z-index:0;}
.faq-bg-art > .container{position:relative;z-index:1;}

/* Reviews background details */
.reviews-detailed-bg{position:relative;overflow:hidden;}
.reviews-detailed-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 18%,rgba(66,181,245,.12),transparent 22%),radial-gradient(circle at 86% 24%,rgba(17,55,95,.08),transparent 24%),radial-gradient(circle at 76% 86%,rgba(36,144,205,.12),transparent 22%),linear-gradient(135deg,rgba(255,255,255,.42) 25%,transparent 25%) 0 0/30px 30px;pointer-events:none;}
.reviews-detailed-bg > .container{position:relative;z-index:1;}

/* Video tab redesign */
.coming-soon-section{position:relative;overflow:hidden;padding:86px 0;}
.coming-soon-section::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 18% 18%,rgba(36,144,205,.1),transparent 24%),radial-gradient(circle at 84% 22%,rgba(17,55,95,.08),transparent 26%),radial-gradient(circle at 72% 82%,rgba(66,181,245,.12),transparent 24%);}
.video-showcase{position:relative;z-index:1;display:grid;gap:34px;justify-items:center;text-align:center;}
.video-showcase-copy{max-width:760px;}
.video-phone-stage{position:relative;padding:22px 18px 10px;}
.video-float-tag{position:absolute;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#fff;box-shadow:0 14px 30px rgba(17,55,95,.14);font-weight:800;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#11375F;z-index:2;}
.video-float-tag.tag-left{left:-48px;top:46px;}
.video-float-tag.tag-right{right:-42px;bottom:62px;}
.video-vertical-clean{max-width:390px;margin:0 auto;border-radius:34px;padding:12px;background:linear-gradient(180deg,#17396d,#12315f);box-shadow:0 24px 48px rgba(17,55,95,.22);}
.video-vertical-clean iframe{width:100% !important;height:100% !important;min-height:auto !important;aspect-ratio:9/16;transform:none !important;border-radius:26px;background:transparent !important;display:block;}
.project-video-frame-crop{overflow:visible !important;}

/* Portfolio masonry larger */
.gallery-masonry-large{columns:3 320px !important;column-gap:22px !important;}
.gallery-masonry-large .gallery-item{margin:0 0 22px !important;border-radius:26px;overflow:hidden;box-shadow:0 16px 28px rgba(17,55,95,.08);}
.gallery-masonry-large .gallery-item img{width:100%;display:block;}
.portfolio-video-band{position:relative;overflow:hidden;background:transparent !important;}
.portfolio-video-band .portfolio-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.portfolio-video-band::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,35,61,.72),rgba(14,35,61,.34));z-index:0;}
.portfolio-video-band > .container{position:relative;z-index:1;}

/* Footer redesign */
.site-footer{position:relative;overflow:hidden;background:linear-gradient(180deg,#0f2747 0%,#12365d 100%) !important;}
.site-footer::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 20%,rgba(156,221,255,.12),transparent 22%),radial-gradient(circle at 86% 24%,rgba(36,144,205,.16),transparent 24%),radial-gradient(circle at 78% 82%,rgba(255,255,255,.06),transparent 18%),linear-gradient(135deg,rgba(255,255,255,.04) 25%,transparent 25%) 0 0/34px 34px;pointer-events:none;}
.site-footer .footer-grid{position:relative;z-index:1;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:28px 30px !important;}
.footer-brand-row{grid-column:1/-1;text-align:center;max-width:820px;margin:0 auto 10px;display:grid;justify-items:center;}
.footer-brand-row p{max-width:760px;margin-inline:auto;}
.footer-brand-row .footer-badges{justify-content:center;}
.footer-contact-col a,.footer-contact-col .footer-meta-item{display:flex;align-items:center;gap:10px;}
.footer-meta-item{color:#dcecff;font-weight:700;}
.footer-meta-item i,.footer-contact-col a i,.footer-social-col a i,.footer-col a i{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:rgba(255,255,255,.12);color:#9cddff !important;}
.footer-col a:hover i,.footer-meta-item:hover i{background:#fff;color:#11375F !important;}
.footer-bottom{position:relative;z-index:1;}

/* Follow & connect block */
.follow-connect-band{padding-top:26px;}
.follow-connect-grid{grid-template-columns:repeat(3,minmax(0,1fr));}

/* Portfolio / service misc */
.portfolio-gallery-title{max-width:760px;}

/* Buttons and nav active must stay white on blue */
.nav a.active{color:#fff !important;}
.nav a.active i,.nav a.active span{color:#fff !important;}

@media (max-width: 1024px){.gallery-masonry-large{columns:2 240px !important;}.follow-connect-grid{grid-template-columns:1fr;}.video-float-tag.tag-left{left:-10px;top:18px;}.video-float-tag.tag-right{right:-6px;bottom:18px;}}
@media (max-width: 767px){.gallery-masonry-large{columns:1 100% !important;}.video-vertical-clean{max-width:100%;}.video-float-tag{position:static;margin:0 0 12px;}.video-phone-stage{padding:0;}.site-footer .footer-grid{grid-template-columns:1fr !important;}.footer-brand-row{margin-bottom:4px;}}

/* small corrections after review */
.process-home-detailed{position:relative;overflow:hidden;}
.process-home-detailed > .container{position:relative;z-index:1;}
.process-home-detailed .eyebrow,.process-service-parallax .eyebrow{color:#1f63b5 !important;}
.process-home-detailed .eyebrow i,.process-service-parallax .eyebrow i{color:#1f63b5 !important;}
.video-vertical-clean.project-video-frame{background:transparent !important;padding:0 !important;aspect-ratio:auto !important;box-shadow:0 24px 48px rgba(17,55,95,.18) !important;border-radius:28px !important;overflow:hidden !important;}
.video-vertical-clean.project-video-frame iframe{display:block;background:transparent !important;}


/* === USER POLISH PASS V4 === */

/* Footer: subtler background, centered brand row, cleaner columns */
.site-footer{
  background:linear-gradient(180deg,#0f2d4e 0%,#12395f 100%) !important;
}
.site-footer::before{
  background:
    radial-gradient(circle at 14% 18%,rgba(117,199,246,.09),transparent 24%),
    radial-gradient(circle at 86% 22%,rgba(36,144,205,.09),transparent 25%),
    radial-gradient(circle at 76% 84%,rgba(255,255,255,.035),transparent 18%) !important;
  opacity:.72;
}
.footer-brand-row{padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-col a,.footer-meta-item{transition:color .25s ease,transform .25s ease,background .25s ease;}
.footer-col a:hover,.footer-meta-item:hover{color:#78cffb !important;transform:translateX(5px);}
.footer-col a:hover i,.footer-meta-item:hover i{background:#78cffb !important;color:#0f2d4e !important;}
.footer-contact-col .footer-meta-item{margin:10px 0;}

/* Contact links hover */
.contact-link{transition:transform .25s ease,color .25s ease,background .25s ease,border-color .25s ease;}
.contact-link:hover{color:#1c70ba !important;transform:translateY(-3px);background:rgba(36,144,205,.055);border-color:rgba(36,144,205,.16);}
.contact-link:hover b,.contact-link:hover small{color:#1c70ba !important;}

/* Center form inside its panel */
.contact-conversation-section .form-card{display:flex !important;align-items:center !important;justify-content:center !important;}
.contact-conversation-section .form-card iframe{display:block !important;width:100% !important;max-width:780px !important;margin-inline:auto !important;}

/* Stay Connected background details */
.follow-connect-band{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#f6fbff 0%,#edf7fd 100%);
}
.follow-connect-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 10% 22%,rgba(36,144,205,.13),transparent 23%),
    radial-gradient(circle at 88% 18%,rgba(90,179,231,.12),transparent 22%),
    radial-gradient(circle at 76% 86%,rgba(17,55,95,.07),transparent 20%),
    linear-gradient(125deg,transparent 0 46%,rgba(36,144,205,.035) 46% 49%,transparent 49% 100%);
}
.follow-connect-band>.container{position:relative;z-index:1;}
.follow-connect-grid .contact-link{background:#fff;border-radius:22px;padding:20px 22px;box-shadow:0 16px 34px rgba(17,55,95,.08);border:1px solid rgba(17,55,95,.08);}

/* Title banners: left lighter, right deeper blue */
.page-hero::before{
  background:linear-gradient(90deg,
    rgba(222,238,248,.48) 0%,
    rgba(131,188,222,.44) 32%,
    rgba(46,105,163,.56) 68%,
    rgba(17,55,95,.78) 100%) !important;
}
.page-hero .page-hero-content{position:relative;z-index:2;}

/* Reviews section details + blue eyebrow */
.reviews-detailed-bg{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#f8fcff 0%,#eef7fc 100%) !important;
}
.reviews-detailed-bg::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 9% 18%,rgba(36,144,205,.15),transparent 24%),
    radial-gradient(circle at 91% 26%,rgba(99,186,234,.13),transparent 23%),
    radial-gradient(circle at 75% 86%,rgba(17,55,95,.08),transparent 19%),
    linear-gradient(135deg,rgba(36,144,205,.025) 25%,transparent 25%) 0 0/36px 36px !important;
}
.reviews-detailed-bg .eyebrow{color:#1f69b4 !important;}
.reviews-detailed-bg .eyebrow::before{background:linear-gradient(90deg,#2490CD,#78cffb) !important;}

/* Videos: title scale + animated floating labels */
.video-showcase-copy .section-title.small{font-size:clamp(2.3rem,5vw,4.4rem) !important;line-height:.94;}
.video-float-tag{animation:videoTagFloat 3.8s ease-in-out infinite;}
.video-float-tag.tag-right{animation-delay:-1.9s;}
@keyframes videoTagFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-1deg)}}
.video-float-tag i{animation:tagIconPulse 2.4s ease-in-out infinite;}
@keyframes tagIconPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18) rotate(7deg)}}

/* Portfolio: dense grid masonry-like layout, larger cards, no dead right side */
.gallery-masonry-large{
  columns:unset !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  grid-auto-rows:150px !important;
  grid-auto-flow:dense !important;
  gap:20px !important;
}
.gallery-masonry-large .gallery-item{
  position:relative;margin:0 !important;width:100% !important;height:100% !important;
  border-radius:26px !important;overflow:hidden !important;
  box-shadow:0 16px 34px rgba(17,55,95,.10) !important;
}
.gallery-masonry-large .gallery-item:nth-child(4n+1){grid-row:span 3;}
.gallery-masonry-large .gallery-item:nth-child(4n+2){grid-row:span 2;}
.gallery-masonry-large .gallery-item:nth-child(4n+3){grid-row:span 3;}
.gallery-masonry-large .gallery-item:nth-child(4n){grid-row:span 2;}
.gallery-masonry-large .gallery-item:nth-child(5),
.gallery-masonry-large .gallery-item:nth-child(12){grid-column:span 2;}
.gallery-masonry-large .gallery-item img{width:100% !important;height:100% !important;object-fit:cover !important;transition:transform .45s ease,filter .35s ease;}
.gallery-masonry-large .gallery-item::after{
  content:"\f00e";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;right:18px;bottom:18px;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;background:rgba(17,55,95,.82);color:#fff;
  box-shadow:0 12px 24px rgba(0,0,0,.2);opacity:0;transform:translateY(8px) scale(.88);
  transition:opacity .3s ease,transform .3s ease,background .3s ease;pointer-events:none;
}
.gallery-masonry-large .gallery-item:hover img{transform:scale(1.045);filter:saturate(1.06) contrast(1.02);}
.gallery-masonry-large .gallery-item:hover::after{opacity:1;transform:translateY(0) scale(1);background:#2490CD;}

/* Nav icons */
@media(min-width:1081px){
  .site-header .nav>a i{color:#bfeaff !important;}
  .site-header .nav>a:hover i,.site-header .nav>a.active i{color:#fff !important;}
}

/* Why choose us: clearly blue, richer details */
.why-reveal-section{
  background:linear-gradient(155deg,#0e3a67 0%,#145384 45%,#17699b 100%) !important;
}
.why-reveal-section::before{
  content:"" !important;display:block !important;position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at 8% 14%,rgba(135,217,255,.22),transparent 22%),
    radial-gradient(circle at 92% 18%,rgba(85,187,241,.18),transparent 22%),
    radial-gradient(circle at 80% 84%,rgba(182,231,255,.11),transparent 20%),
    radial-gradient(circle at 22% 82%,rgba(36,144,205,.15),transparent 24%),
    linear-gradient(135deg,rgba(255,255,255,.035) 25%,transparent 25%) 0 0/30px 30px !important;
}
.why-reveal-section .why-reveal-tab.active{background:linear-gradient(135deg,#2490CD,#1f70b8) !important;}

/* Explore all services back under services */
.home-services-cta{display:flex !important;justify-content:center !important;margin-top:30px !important;}

/* Mission and vision parallax enforced */
.mission-vision-bg::before{background-attachment:fixed !important;will-change:transform;}

/* Mobile */
@media(max-width:1080px){
  .nav a,.nav a span,.nav a i{color:#1a5f9f !important;}
  .nav a.active{background:linear-gradient(90deg,rgba(36,144,205,.14),rgba(120,207,251,.2)) !important;color:#0f4f8b !important;box-shadow:inset 4px 0 0 #2490CD,0 10px 24px rgba(36,144,205,.10) !important;}
  .nav a.active span,.nav a.active i{color:#0f4f8b !important;}
  .nav a:hover{background:rgba(36,144,205,.08) !important;color:#1a5f9f !important;}
}
@media(max-width:767px){
  /* Home hero stays unified: content over video */
  .hero{position:relative !important;min-height:760px !important;display:flex !important;align-items:flex-end !important;background:#111 !important;}
  .hero-video{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;min-height:100% !important;object-fit:cover !important;}
  .hero-overlay{position:absolute !important;inset:0 !important;height:100% !important;min-height:100% !important;background:linear-gradient(180deg,rgba(10,27,48,.25) 0%,rgba(9,30,56,.58) 52%,rgba(8,26,48,.84) 100%) !important;}
  .hero .container.hero-content{position:relative !important;z-index:2 !important;width:100% !important;max-width:none !important;padding:220px 20px 58px !important;margin:0 !important;}
  .hero-copy{max-width:none !important;margin:0 !important;padding:28px 8px 0 !important;background:transparent !important;border-radius:0 !important;box-shadow:none !important;color:#fff !important;}
  .hero-copy::before{display:none !important;}
  .hero .eyebrow,.hero h1,.hero p{color:#fff !important;text-shadow:0 2px 14px rgba(0,0,0,.34) !important;}
  .hero .btn-outline{color:#fff !important;border-color:rgba(255,255,255,.54) !important;background:rgba(255,255,255,.08) !important;}
  .hero .btn-outline i,.hero .btn-outline span{color:#fff !important;}

  /* Internal banners more top room */
  .page-hero{min-height:560px !important;}
  .page-hero-content{padding-top:245px !important;padding-bottom:68px !important;}

  /* Service cards: image always above content */
  .home-service-list .service-detail,
  .service-detail-list .service-detail,
  .service-detail-list .service-detail:nth-child(even){display:grid !important;grid-template-columns:1fr !important;}
  .home-service-list .service-detail .service-detail-media,
  .service-detail-list .service-detail .service-detail-media,
  .service-detail-list .service-detail:nth-child(even) .service-detail-media{order:0 !important;}
  .home-service-list .service-detail .service-detail-copy,
  .service-detail-list .service-detail .service-detail-copy{order:1 !important;}
  .service-detail-media img{min-height:260px !important;height:260px !important;object-fit:cover !important;}

  /* Portfolio */
  .gallery-masonry-large{grid-template-columns:repeat(2,minmax(0,1fr)) !important;grid-auto-rows:120px !important;gap:12px !important;}
  .gallery-masonry-large .gallery-item:nth-child(n){grid-column:span 1 !important;grid-row:span 2 !important;}
  .gallery-masonry-large .gallery-item:nth-child(3n+1){grid-row:span 3 !important;}

  /* Footer 24/7 centered */
  .footer-contact-col .footer-meta-item:last-child{justify-content:center !important;text-align:center !important;}

  /* Mission parallax degrades safely on mobile */
  .mission-vision-bg::before{background-attachment:scroll !important;}
}


/* === CONTACT PROPERTY TYPES + SOCIAL ALIGNMENT === */
.property-types-section{position:relative;overflow:hidden;background:linear-gradient(180deg,#ffffff 0%,#f3f9fd 100%);}
.property-types-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 24%,rgba(36,144,205,.10),transparent 24%),radial-gradient(circle at 86% 70%,rgba(17,55,95,.07),transparent 24%);}
.property-types-section>.container{position:relative;z-index:1;}
.property-types-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.property-type-card{position:relative;min-height:330px;padding:34px;border-radius:28px;background:#fff;border:1px solid rgba(17,55,95,.10);box-shadow:0 18px 42px rgba(17,55,95,.08);overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.property-type-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,#11375F,#2490CD,#78cffb);}
.property-type-card:hover{transform:translateY(-7px);box-shadow:0 28px 58px rgba(17,55,95,.14);border-color:rgba(36,144,205,.24);}
.property-type-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(17,55,95,.12),rgba(36,144,205,.18));color:#1f69b4;font-size:1.45rem;margin-bottom:24px;transition:transform .28s ease,background .28s ease,color .28s ease;}
.property-type-card:hover .property-type-icon{transform:translateY(-3px) scale(1.08) rotate(-4deg);background:linear-gradient(135deg,#11375F,#2490CD);color:#fff;}
.property-type-kicker{display:block;color:#1f69b4;font-size:.76rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;}
.property-type-card h3{font-size:clamp(1.9rem,3vw,2.7rem);line-height:1;margin-bottom:14px;}
.property-type-card p{color:#5f6974;margin-bottom:18px;max-width:560px;}
.follow-connect-grid{align-items:stretch !important;}
.follow-connect-grid .contact-link{height:100%;min-height:112px;display:grid !important;grid-template-columns:48px minmax(0,1fr);align-items:center !important;margin:0 !important;}
.follow-connect-grid .contact-link>div{align-self:center;}
@media(max-width:767px){.property-types-grid{grid-template-columns:1fr;}.property-type-card{min-height:auto;}.follow-connect-grid .contact-link{min-height:104px;}}


/* === V6 TARGETED ADJUSTMENTS === */
/* Internal banners: new image + darker 70% right-to-left blue overlay, keeping left clearer for logo */
.page-hero::before{
  background:linear-gradient(270deg,rgba(10,38,78,.70) 0%,rgba(18,70,122,.64) 46%,rgba(105,176,221,.25) 100%) !important;
}
.page-hero-bg{background-position:center !important;}

/* Hero portfolio button at 80% opacity */
.hero .home-portfolio-btn{background:rgba(36,144,205,.80) !important;color:#fff !important;border-color:rgba(255,255,255,.30) !important;backdrop-filter:blur(5px);}
.hero .home-portfolio-btn i,.hero .home-portfolio-btn span{color:#fff !important;}
.hero .home-portfolio-btn:hover{background:#fff !important;color:#11375F !important;}
.hero .home-portfolio-btn:hover i,.hero .home-portfolio-btn:hover span{color:#11375F !important;}

/* Portfolio: true dense masonry with tight vertical rhythm and no oversized dead spaces */
.gallery-masonry-large{
  display:block !important;
  columns:4 260px !important;
  column-gap:14px !important;
}
.gallery-masonry-large .gallery-item,
.gallery-masonry-large .gallery-item:nth-child(n){
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:0 0 14px !important;
  break-inside:avoid !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
.gallery-masonry-large .gallery-item img{width:100% !important;height:auto !important;object-fit:cover !important;}
.portfolio-detail-copy{max-width:760px;margin:18px auto 0;color:rgba(255,255,255,.92);font-size:1.02rem;line-height:1.7;}

/* Contact form card: add balanced copy above iframe without modifying the embedded form */
.contact-conversation-section .form-card{display:flex !important;flex-direction:column !important;align-items:stretch !important;justify-content:flex-start !important;}
.form-card-intro{padding:12px 14px 22px;text-align:left;}
.form-card-intro h3{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1;margin:4px 0 12px;color:#11375F;}
.form-card-intro p{color:#5f6974;max-width:680px;}
.contact-conversation-section .form-card iframe{flex:1 1 auto;min-height:680px !important;}

/* Residential / commercial image background */
.property-types-section{position:relative;background:transparent !important;isolation:isolate;}
.property-types-section::before{
  content:'';position:absolute;inset:0;z-index:-2;pointer-events:none;
  background-image:var(--property-bg);background-size:cover;background-position:center;background-attachment:fixed;
}
.property-types-section::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(244,251,254,.87);
}
.property-types-section>.container{position:relative;z-index:1;}

@media(max-width:1100px){
  .gallery-masonry-large{columns:3 220px !important;}
}
@media(max-width:767px){
  .gallery-masonry-large{columns:2 145px !important;column-gap:10px !important;}
  .gallery-masonry-large .gallery-item,.gallery-masonry-large .gallery-item:nth-child(n){margin-bottom:10px !important;}
  .property-types-section::before{background-attachment:scroll;}
  .form-card-intro{padding:8px 4px 18px;}
}


/* === V7 RESPONSIVE PASS FROM AJUSTE MOBILE(8) === */
/* Internal title banners: keep the upper part of the requested image visible. */
.page-hero-bg{
  background-position:center top !important;
  background-size:cover !important;
}

/* Fluid guardrails: preserve current desktop composition without indefinite growth. */
.container{
  width:min(calc(100% - clamp(28px,4.5vw,72px)),var(--max));
}
.section{
  padding-block:clamp(68px,7vw,108px);
}
.section-title{
  font-size:clamp(2.45rem,5.2vw,5.7rem);
  overflow-wrap:normal;
  word-break:normal;
}
.section-title.small{
  font-size:clamp(2.15rem,4.2vw,4.4rem);
}
.hero h1{
  font-size:clamp(3.25rem,7.4vw,7.4rem);
}
.page-hero h1{
  font-size:clamp(3rem,6.6vw,5.8rem);
}
.section-copy,.hero p,.page-hero p{
  max-width:min(100%,720px);
}
img,video,iframe,svg{
  max-width:100%;
}
iframe{width:100%;}

/* Switch desktop nav before it starts colliding at zoomed / compact laptop widths. */
@media(max-width:1180px){
  .header-inner{grid-template-columns:minmax(0,1fr) auto !important;}
  .site-header .brand{justify-self:start;}
  .header-cta{display:none !important;}
  .menu-toggle{display:block !important;justify-self:end;}
  .nav{
    position:fixed !important;
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:min(420px,92vw) !important;
    max-width:92vw !important;
    max-height:100dvh !important;
    overflow-y:auto !important;
    overflow-x:clip !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
}

/* Tablet: preserve two-column layouts while space allows, then stack naturally. */
@media(max-width:1024px){
  .section-head{grid-template-columns:1fr !important;gap:22px !important;align-items:start !important;}
  .contact-layout,.map-split,.location-feature-grid{grid-template-columns:1fr !important;}
  .stats-grid,.flip-grid,.coming-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .service-layout{grid-template-columns:1fr !important;}
  .service-index-panel{position:relative !important;top:auto !important;}
  .contact-conversation-section .contact-panel,
  .contact-conversation-section .form-card{min-height:auto !important;}
  .map-band-full .map-copy,.map-band-full .map-frame,.map-band-full .map-frame iframe{min-height:clamp(420px,58vw,590px) !important;}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .footer-brand-row{grid-column:1/-1 !important;}
}

/* MOBILE HERO: content stays on top of video; upper video is clear, filter only grows toward bottom. */
@media(max-width:767px){
  .hero{
    min-height:max(680px,100svh) !important;
    height:auto !important;
    align-items:flex-end !important;
    background:#111 !important;
  }
  .hero-video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
  .hero-overlay{
    position:absolute !important;
    inset:0 !important;
    background:linear-gradient(
      180deg,
      rgba(7,24,42,0) 0%,
      rgba(7,24,42,0) 34%,
      rgba(8,27,49,.10) 48%,
      rgba(8,27,49,.42) 67%,
      rgba(7,24,45,.80) 88%,
      rgba(7,24,45,.92) 100%
    ) !important;
  }
  .hero .container.hero-content{
    width:100% !important;
    padding:clamp(190px,28svh,280px) clamp(18px,5vw,26px) clamp(48px,8svh,72px) !important;
  }
  .hero-copy{
    width:100% !important;
    max-width:760px !important;
    padding:0 !important;
  }
  .hero h1{font-size:clamp(2.7rem,12vw,4.7rem) !important;line-height:.9 !important;}
  .hero p{font-size:clamp(.96rem,4vw,1.06rem) !important;}
  .hero-actions{gap:12px !important;}
  .hero-actions .btn{width:100% !important;min-height:52px !important;padding-inline:18px !important;}

  /* Internal banners: more room above text beneath mobile header. */
  .page-hero{
    min-height:clamp(520px,76svh,640px) !important;
  }
  .page-hero-bg{
    background-position:center top !important;
  }
  .page-hero-content{
    width:min(calc(100% - 28px),720px) !important;
    padding:clamp(215px,32svh,285px) 0 clamp(54px,8svh,76px) !important;
  }
  .page-hero h1{font-size:clamp(2.55rem,11vw,4.25rem) !important;}
  .page-hero p{font-size:clamp(.94rem,3.8vw,1.03rem) !important;}

  /* Service cards: image first on every service without altering card design or interactions. */
  .home-service-list .service-detail,
  .service-detail-list .service-detail,
  .service-detail-list .service-detail:nth-child(even){
    grid-template-columns:1fr !important;
  }
  .home-service-list .service-detail .service-detail-media,
  .service-detail-list .service-detail .service-detail-media,
  .service-detail-list .service-detail:nth-child(even) .service-detail-media{
    order:0 !important;
  }
  .home-service-list .service-detail .service-detail-copy,
  .service-detail-list .service-detail .service-detail-copy{
    order:1 !important;
  }
  .service-detail-media img{
    width:100% !important;
    height:clamp(230px,68vw,320px) !important;
    min-height:0 !important;
    object-fit:cover !important;
  }
  .service-detail-copy{padding:clamp(24px,7vw,34px) !important;}
  .service-detail-copy h2{font-size:clamp(2rem,9vw,2.65rem) !important;}

  /* Two-up portfolio can remain where cards have enough width; no large dead spaces. */
  .gallery-masonry-large{
    columns:2 135px !important;
    column-gap:10px !important;
  }
  .gallery-masonry-large .gallery-item,
  .gallery-masonry-large .gallery-item:nth-child(n){margin-bottom:10px !important;break-inside:avoid !important;}

  /* Forms/maps/widgets use the real available width. */
  .form-card,.contact-panel{width:100% !important;min-width:0 !important;padding:clamp(20px,5vw,30px) !important;}
  .form-card iframe,.map-frame iframe,.lc_reviews_widget{width:100% !important;max-width:100% !important;}
  .contact-conversation-section .form-card iframe{min-height:clamp(680px,175vw,860px) !important;}

  /* Footer remains readable and centered where requested. */
  .site-footer .footer-grid{grid-template-columns:1fr !important;gap:24px !important;}
  .footer-col,.footer-brand-row{min-width:0 !important;}
  .footer-contact-col .footer-meta-item:last-child{justify-content:center !important;text-align:center !important;}

  /* Parallax keeps the same artwork; attachment scroll prevents mobile browser repaint glitches. */
  .mission-vision-bg::before,.process-service-parallax::before,.faq-bg-art::before,.property-types-section::before{background-attachment:scroll !important;}

  /* Floating controls stay reachable and avoid overlapping content edges. */
  .floating-stack{right:clamp(10px,3vw,18px) !important;bottom:clamp(10px,3vw,18px) !important;}
}

/* Very small effective viewports, including high browser zoom. */
@media(max-width:479px){
  .container{width:min(calc(100% - 28px),var(--max)) !important;}
  .site-header .brand img{max-width:min(62vw,190px) !important;width:auto !important;}
  .menu-toggle{width:48px !important;height:48px !important;}
  .nav{width:min(360px,94vw) !important;max-width:94vw !important;padding:28px 22px 44px !important;}
  .nav .mobile-menu-brand{margin-bottom:26px !important;}
  .nav .mobile-menu-brand img{max-width:min(68vw,215px) !important;}
  .nav a{width:100% !important;min-width:0 !important;white-space:normal !important;}
  .section{padding-block:clamp(58px,15vw,78px) !important;}
  .section-title.small{font-size:clamp(2rem,10vw,2.8rem) !important;}
  .gallery-masonry-large{columns:2 115px !important;}
  .property-types-grid,.contact-proof-grid,.info-grid.two-col,.flip-grid,.stats-grid,.mini-stats-grid{grid-template-columns:1fr !important;}
}

@media(max-width:359px){
  .container{width:min(calc(100% - 20px),var(--max)) !important;}
  .hero .container.hero-content{padding-left:14px !important;padding-right:14px !important;}
  .hero h1{font-size:clamp(2.35rem,13vw,3.35rem) !important;}
  .page-hero h1{font-size:clamp(2.3rem,12vw,3.25rem) !important;}
  .btn{font-size:.7rem !important;letter-spacing:.09em !important;padding-inline:15px !important;}
  .gallery-masonry-large{columns:1 100% !important;}
  .back-top,.whatsapp{width:50px !important;height:50px !important;}
}

/* Short-height landscape/mobile/tablet and zoomed laptop. */
@media(max-height:600px) and (min-width:568px){
  .hero{min-height:max(540px,100dvh) !important;}
  .hero .container.hero-content{padding-top:140px !important;padding-bottom:38px !important;}
  .hero h1{font-size:clamp(2.6rem,7.2vw,4.4rem) !important;}
  .page-hero{min-height:max(450px,92dvh) !important;}
  .page-hero-content{padding-top:170px !important;padding-bottom:46px !important;}
  .nav{max-height:100dvh !important;overflow-y:auto !important;}
}

/* Very wide / zoomed-out screens: prevent uncontrolled stretching. */
@media(min-width:1921px){
  :root{--max:1380px;}
  .hero-copy{max-width:900px;}
  .page-hero-content{max-width:1040px !important;}
  .section-head{gap:56px;}
  .gallery-masonry-large{columns:4 300px !important;}
}

@media(min-width:2800px){
  :root{--max:1480px;}
  .section-title{font-size:min(5.7rem,4.8vw);}
  .section-title.small{font-size:min(4.4rem,3.8vw);}
  .hero h1{font-size:min(7.4rem,6.5vw);}
}
/* Preserve the existing mission/vision parallax on mobile as required. */
@media(max-width:767px){
  .mission-vision-bg::before{background-attachment:fixed !important;}
}


/* === TOPBAR SOCIALS V8 === */
.topbar-socials{display:flex;align-items:center;gap:10px;margin-left:2px;}
.topbar-socials a{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:transform .25s ease,background .25s ease,color .25s ease;}
.topbar-socials a:hover{background:rgba(255,255,255,.16);transform:translateY(-2px) scale(1.06);}
.topbar-socials a i{color:#fff !important;font-size:.78rem;}
@media(max-width:767px){
  .topbar{padding:7px 0 !important;}
  .topbar-inner{display:flex !important;justify-content:center !important;align-items:center !important;gap:14px !important;flex-wrap:nowrap !important;}
  .topbar-left{display:flex !important;align-items:center !important;justify-content:center !important;gap:0 !important;flex-wrap:nowrap !important;}
  .topbar-left span:first-child{display:inline-flex !important;align-items:center !important;gap:6px !important;white-space:nowrap !important;}
  .topbar-left span:nth-child(2){display:none !important;}
  .topbar-right{display:flex !important;align-items:center !important;gap:0 !important;}
  .topbar-right > span,.topbar-right > a[href^="tel:"]{display:none !important;}
  .topbar-socials{display:flex !important;gap:8px !important;margin-left:0 !important;}
  .topbar-socials a{width:28px;height:28px;}
  .topbar-socials a i{font-size:.8rem;}
}
@media(max-width:360px){
  .topbar-inner{gap:9px !important;padding-inline:6px !important;}
  .topbar-left span:first-child{font-size:.66rem !important;}
  .topbar-socials{gap:5px !important;}
  .topbar-socials a{width:25px;height:25px;}
}


/* Requested content/accessibility/mobile QA refinements */
.process-single-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  margin-top:34px;
  text-align:center;
}
.process-single-cta > span{
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--charcoal);
}

@media(max-width:767px){
  /* Prevent 100vw + container/padding combinations from widening the document. */
  html,body{width:100%;max-width:100%;overflow-x:hidden !important;}
  .hero{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .full-width,
  .home-portfolio-wrap,
  .map-band-full{
    width:100% !important;
    max-width:100% !important;
    left:auto !important;
    right:auto !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .home-portfolio-grid,
  .carousel-shell,
  .service-track,
  .map-split-full,
  .map-frame,
  .map-frame iframe{
    max-width:100% !important;
  }
  .carousel-shell{width:100% !important;overflow:hidden !important;}
  .service-track{width:100% !important;box-sizing:border-box !important;}
  .map-split-full{width:100% !important;min-width:0 !important;}
  .map-split-full > *{min-width:0 !important;}

  /* Keep floating controls clear of common bottom-edge actions/fields on small phones. */
  .floating-stack{
    right:12px !important;
    bottom:max(18px,env(safe-area-inset-bottom)) !important;
    gap:10px !important;
  }
  .back-top,.whatsapp{
    width:48px !important;
    height:48px !important;
  }
  .process-single-cta{margin-top:28px;gap:14px;}
  .process-single-cta > span{width:100%;}
}
