/* Simple responsive styles inspired by a clean corporate layout */
:root{
  /* Color scheme matched to gsvl-global.css */
  --accent: #66ccff; /* brand light blue */
  --accent-dark: #4db8f0;
  --dark: #000000;
  --muted: #666666;
  --max-width:1100px;
}
*{box-sizing:border-box}
body{font-family:Inter,Segoe UI,Arial,sans-serif;margin:0;color:var(--dark);line-height:1.5}
.wrap{max-width:var(--max-width);margin:0 auto;padding:0 20px}
.site-header{background:#fff;border-bottom:1px solid #eee}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:108px;width:auto}
.logo-text{font-size:1.55rem;font-weight:800;color:var(--dark);letter-spacing:0.06em}
.nav a{margin-left:18px;color:var(--dark);text-decoration:none;font-weight:700!important}
.region{display:flex;align-items:center;gap:8px}
.region a{display:inline-block}
.region img.flag{width:28px;height:18px;display:block;border-radius:3px;border:1px solid rgba(0,0,0,0.08)}
.container{padding:40px 20px}
.container.narrow{max-width:900px;margin:0 auto}
.hero{background:linear-gradient(90deg,rgba(184,75,26,0.08),transparent);padding:60px 0}
.hero-inner{max-width:900px;margin:0 auto;color:var(--dark)}
.hero h1{font-size:2rem;margin:0 0 10px}
.hero p{color:var(--dark);margin:0 0 18px;font-weight:600}

/* Use Vista1.jpg (preferred) with SVG fallback for the hero background */
.hero{
  position:relative;
  background-image: url('../images/Vista1.jpg'), url('../images/Vista1.svg');
  background-size: cover;
  background-position: center 65%;
  color: var(--dark);
}
/* USA regional page hero with Portland_Vista background */
.hero.usa-hero{
  background-image: url('../images/Portland_Vista.jpg');
  background-size: cover;
  background-position: center 65%;
}
/* Canada regional page hero with Calgary_Vista background */
.hero.canada-hero{
  background-image: url('../images/Calgary_Vista.jpg');
  background-size: cover;
  background-position: center 45%;
}
.hero:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:linear-gradient(rgba(255,255,255,0.06),rgba(255,255,255,0.06));pointer-events:none}
.hero .hero-inner{position:relative;z-index:1}
.hero .hero-inner :is(h1,h2,h3,h4,h5,h6,p,li,span,a):not(.btn),
.hero-banner,
.hero-banner :is(h1,h2,h3,h4,h5,h6,p,li,span,a):not(.btn),
.cta-block :is(h1,h2,h3,h4,h5,h6,p,li,span,a):not(.btn){
  color:#fff;
  text-shadow:
    -2px -2px 0 #000,
    2px -2px 0 #000,
    -2px 2px 0 #000,
    2px 2px 0 #000,
    0 -2px 0 #000,
    2px 0 0 #000,
    0 2px 0 #000,
    -2px 0 0 #000;
}
.btn{display:inline-block;background:var(--accent);color:var(--dark);padding:10px 18px;border-radius:4px;text-decoration:none;border:2px solid rgba(0,0,0,0.18);transition:background .15s ease,border-color .15s ease,transform .06s ease}
.btn.ghost{background:transparent;border:2px solid var(--accent-dark);color:var(--accent)}
/* Accent interactions */
.btn:hover, .btn:focus{background:var(--accent-dark);cursor:pointer}
.btn:active{transform:translateY(1px)}
.btn + .btn{margin-left:8px}
.services-preview .btn{padding:6px 12px;font-size:0.95rem}
.btn.small{padding:6px 12px;font-size:0.9rem;color:#222;background:#f5f5f5;border-color:rgba(0,0,0,0.2)}
.btn.small + .btn.small{margin-left:8px}
.nav a.contact-btn{display:inline-block;margin-left:12px;padding:6px 10px;border-radius:4px;background:var(--accent);color:#fff;text-decoration:none}
.nav a.contact-btn:hover{background:var(--accent-dark)}
.services-preview{padding:40px 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.card{background:rgba(102,204,255,0.10);border:2px solid rgba(0,0,0,0.06);padding:18px;border-radius:6px}
.card h3{color:var(--dark);margin-top:0}
.about-cta{padding:36px 0;background:#fafafa}
.contact-cta{padding:36px 0}
.site-footer{background:#222;color:#ddd;padding:28px 0;margin-top:40px}
.site-footer a{color:var(--accent)}
.site-footer a:hover{color:var(--accent-dark)}
.site-footer .wrap{padding:0 5px}
.footer-content{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:20px}
.footer-text{flex:1;min-width:250px}
.social-links{display:flex;gap:12px;align-items:center}
.social-links a[title="LinkedIn"]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:4px;background:var(--accent)}
.social-links a[title="LinkedIn"]:hover{background:var(--accent-dark)}
.footer-address{min-width:260px;text-align:right;font-size:0.9rem;color:#ddd;padding-left:20px}
.footer-address p{margin:0}
.social-icon{width:24px;height:24px;opacity:0.8;transition:opacity .2s ease}
.social-links a:hover .social-icon{opacity:1}
.social-links a[title="LinkedIn"] .social-icon{width:18px;height:18px;opacity:1;filter:brightness(0) invert(1)}
.social-links a[title="Email Mike"] .social-icon{width:72px;height:72px}
.site-footer p{margin:0}
.small{font-size:0.85rem;color:#bbb}
.narrow h1{margin-top:6px}
/* Safety page hero with logos overlay */
.hero.safety-hero-overlay:after{content:"";position:absolute;right:0;top:0;bottom:0;width:26%;background:url('../images/safety-logos.png') right center/contain no-repeat;pointer-events:none;z-index:0}
/* Services page hero with custom background */
.hero.services-hero{background-image:url('../images/UAV 3D Render.png')!important;background-size:cover;background-position:center 45%}
/* About page hero with custom background */
.hero.about-hero-inset{background-image:url('../images/DJI-Matrice-400-with-a-Zenmuse-L3-LiDAR.png')!important;background-size:cover;background-position:100% 45%}
/* Philosophy page hero with custom background */
.hero.philosophy-hero-inset{background-image:url('../images/Mavic3Ent.jpg')!important;background-size:90%;background-position:100% 45%}
/* Services page hero with inset image on left */
.hero.services-hero-inset:after{content:"";position:absolute;left:20px;top:20px;bottom:20px;width:21%;background:url('../images/UAV 3D Render.png') center/cover no-repeat;pointer-events:none;z-index:0}
/* About page hero with inset image on left */
.hero.about-hero-inset:after{content:"";position:absolute;left:20px;top:20px;bottom:20px;width:21%;background:url('../images/About.jpeg') center/cover no-repeat;pointer-events:none;z-index:0}
/* Philosophy page hero with inset image on left */
.hero.philosophy-hero-inset:after{content:"";position:absolute;left:20px;top:20px;bottom:20px;width:21%;background:url('../images/Philosophy.jpeg') center/cover no-repeat;pointer-events:none;z-index:0}
/* Safety page hero with inset image on left */
.hero.safety-hero-inset:before{content:"";position:absolute;left:20px;top:20px;bottom:20px;width:21%;background:url('../images/Safety.jpeg') center/cover no-repeat;pointer-events:none;z-index:0}
/* Employment page hero with inset video on left */
.hero.employment-hero-inset{position:relative}
.hero.employment-hero-inset .hero-inset-video{position:absolute;left:210px;top:20px;bottom:20px;width:10.9%;object-fit:cover;pointer-events:none;z-index:0;border-radius:4px}
/* Index page hero with logos at lower right, half size */
/* Now handled by .hero-logos img element instead of pseudo-element */
.notice{padding:12px;border-radius:6px;margin-bottom:16px}
.notice.success{background:#e6f8ef;border:1px solid #c3efd8;color:#085a3a}
.notice.error{background:#fff1f0;border:1px solid #f3c2c0;color:#7a1b1b}
.contact-form label{display:block;margin-bottom:12px}
.contact-form input,.contact-form textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px}
.direct-contact-grid{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.direct-contact-details{flex:1}
.direct-contact-grid h2{margin-top:0}
.direct-contact-qr{text-align:center}
.direct-contact-qr .vcard-btn-3d{display:inline-block;padding:8px;border-radius:10px;background:var(--accent);border:2px solid rgba(0,0,0,0.18);box-shadow:0 8px 0 rgba(0,0,0,0.22),0 12px 18px rgba(0,0,0,0.18);transform:translateY(0);transition:transform .12s ease,box-shadow .12s ease,background .15s ease}
.direct-contact-qr .vcard-btn-3d{margin-top:-18px}
.direct-contact-qr .vcard-btn-3d:hover,.direct-contact-qr .vcard-btn-3d:focus{background:var(--accent-dark);transform:translateY(-2px);box-shadow:0 10px 0 rgba(0,0,0,0.22),0 16px 20px rgba(0,0,0,0.2)}
.direct-contact-qr .vcard-btn-3d:active{transform:translateY(4px);box-shadow:0 4px 0 rgba(0,0,0,0.22),0 6px 10px rgba(0,0,0,0.16)}
.direct-contact-qr .vcard-btn-3d img{display:block}
.direct-contact-qr img{width:180px;height:auto;border-radius:6px}

/* Contact page video background layout */
.contact-video-layout{position:relative;min-height:82vh;overflow:hidden;padding:30px 24px}
.contact-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.contact-video-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.38);z-index:1}
.contact-video-content{position:relative;z-index:2;width:min(50vw,760px);margin-left:auto;margin-right:0vw;padding:24px;border-radius:10px;background:rgba(0,0,0,0.44);border:1px solid rgba(255,255,255,0.22);backdrop-filter:blur(1.5px)}
.contact-video-content :is(h1,h2,p,label,a,button){color:#fff;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000}
.contact-video-content .btn{color:#fff;border-color:#000}
.contact-video-content .contact-form input,.contact-video-content .contact-form textarea{background:rgba(255,255,255,0.96);color:#000;text-shadow:none}
.contact-video-content .notice{color:#fff;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000}
/* Full-page video hero */
.video-hero{padding:0;margin:0;width:100%;height:75vh;position:relative;overflow:hidden}
.hero-video{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}
#index-hero .hero-video{transform:scale(1);transform-origin:center center}
.hero-logos{position:absolute;right:14px;bottom:14px;width:13%;height:auto;object-fit:contain;pointer-events:none;z-index:3}
.hero-cta-btn{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:inline-block;background:var(--accent);color:var(--dark);padding:10px 18px;border-radius:4px;text-decoration:none;border:2px solid rgba(0,0,0,0.18);pointer-events:all;z-index:3;transition:background .15s ease,border-color .15s ease,transform .06s ease}
.hero-cta-btn:hover,.hero-cta-btn:focus{background:var(--accent-dark);cursor:pointer}
.hero-cta-btn:active{transform:translateX(-50%) translateY(1px)}
.hero-banner{position:absolute;left:24px;top:24px;display:inline-flex;flex-direction:column;align-items:flex-start;max-width:90vw;background:rgba(0,0,0,0.5);color:var(--dark);padding:14px 16px;border-radius:6px;border-left:4px solid var(--accent);box-shadow:0 4px 10px rgba(0,0,0,0.15);font-weight:600;line-height:1.4;z-index:2}
.hero-banner .line{white-space:normal}
.hero-banner .bullet{opacity:0;transform:translateY(-4px);margin-top:6px;padding-left:18px;position:relative;white-space:nowrap;font-weight:300}
.hero-banner .bullet:before{content:"•";position:absolute;left:4px}
@keyframes bulletIn{to{opacity:1;transform:translateY(0)}}
.hero-banner .bullet{animation:bulletIn .35s ease forwards;animation-delay:0s}
.hero-banner .bullet.second{animation-delay:0s;white-space:normal}
.hero-banner .bullet.third{animation-delay:0s}
.hero-banner .bullet.fourth{animation-delay:0s;white-space:normal}
.hero-banner .bullet.fifth{animation-delay:0s;white-space:normal}
.hero-banner .bullet.clients{animation-delay:0s;white-space:normal}
.hero-banner .bullet.subbullet{animation-delay:0s;white-space:normal;padding-left:38px}
.hero-banner .bullet.subbullet:before{left:24px}
.video-hero .hero-banner{color:#fff}
#map{border-radius:6px;box-shadow:0 2px 4px rgba(0,0,0,0.1)}
.leaflet-popup-content{font-size:14px;color:var(--dark)}
@media (min-width:900px){
  .hero h1{font-size:2.6rem}
}

/* Home compact spacing */
.compact-home{padding:18px 14px}
.compact-home .hero{padding:28px 0}
.index-main .hero{padding:126px 0}
.compact-home .hero h1{margin:0 0 6px}
.compact-home .hero p{margin:0 0 10px}
.compact-home .services-preview{padding:18px 0}
.compact-home .cards{gap:10px}
.compact-home .card{padding:12px}
.compact-home .about-cta,.compact-home .contact-cta{padding:18px 0}
.compact-home .contact-cta{padding-bottom:8px}
.compact-home .contact-cta p{margin:0 0 6px}

/* CTA block with background image */
.cta-block{margin:14px 0 0 0;padding:32px 18px;border-radius:8px;color:var(--dark);background:linear-gradient(rgba(0,0,0,0.55),rgba(0,0,0,0.55)),url('../images/bg-image-04.jpg') center top/cover no-repeat;box-shadow:0 6px 14px rgba(0,0,0,0.18)}
.cta-block .cta-content{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.cta-block h2{margin:0 0 8px}
.cta-block p{margin:0 0 10px;color:var(--dark)}
.cta-block .btn{background:var(--accent);border-color:rgba(0,0,0,0.25)}
.cta-block .btn:hover{background:var(--accent-dark)}
.compact-home .cta-block{padding:26px 14px;margin:10px 0 0}
.compact-home + .site-footer{margin-top:0}
.compact-home h2{margin:0 0 10px}
.compact-home p{margin:0 0 10px}
.services-hero{min-height:360px;display:flex;align-items:center;padding:36px 0}
.services-preview.two-col .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:800px){
  .services-preview.two-col .cards{grid-template-columns:1fr}
  .direct-contact-grid{flex-direction:column}
  .contact-video-layout{padding:20px 14px}
  .contact-video-content{width:100%;margin-right:0}
}
