
:root{--bg:#f6fbff;--card:#fff;--ink:#0b1727;--muted:#344a62;--brand:#00c4dd;--brand-2:#00eaff;--shadow:0 8px 30px rgba(3,12,26,.08)}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:50;background:#ffffffcc;backdrop-filter:blur(8px);border-bottom:1px solid rgba(3,12,26,.06)}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:12px}
nav a{color:var(--muted);text-decoration:none;font-weight:600;margin:0 10px}
nav a.active,nav a:hover{color:var(--ink)}
.call-btn{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#03101f;font-weight:800;text-decoration:none;padding:10px 14px;border-radius:14px;border:0;box-shadow:0 6px 20px rgba(0,196,221,.35)}
.logo img{height:40px}
.hero{position:relative;overflow:hidden;background:url('assets/hero.jpg') center/cover no-repeat;color:#fff;padding:110px 0}
.hero::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.38)}
.hero .container{position:relative;z-index:1;text-align:center}
.hero .brandmark{display:block;margin:0 auto 14px auto;width:min(59.2vw,540px)}
.hero h1{font-size:clamp(34px,5vw,56px);line-height:1.05;margin:6px 0 10px}
.hero p{font-size:clamp(16px,2vw,20px)}
.section{padding:54px 0}
/* Gallery fixes */
.gallery{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){.gallery{grid-template-columns:repeat(4,1fr)}}
.gallery figure{margin:0;background:#fff;border:1px solid rgba(3,12,26,.08);border-radius:14px;overflow:hidden;box-shadow:0 6px 20px rgba(3,12,26,.08)}
.gallery a{display:block;position:relative}
.gallery .thumb{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .2s ease}
.gallery a:hover .thumb{transform:scale(1.02)}
.gallery figcaption{padding:10px 12px;color:#344a62;font-size:14px;text-align:center}
/* Lightbox */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:999}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:82vh;border-radius:10px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.lb .cap{color:#fff;margin-top:10px;text-align:center}
.lb .close{position:absolute;top:14px;right:18px;background:#fff;border-radius:999px;padding:6px 10px;font-weight:800;cursor:pointer;border:0}
footer{padding:28px 0;color:var(--muted);border-top:1px solid rgba(3,12,26,.06);background:#f8fdff}
footer .split{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer a{color:var(--muted);text-decoration:none}


/* --- Contact Form Enhancements --- */
.card{background:var(--card);border:1px solid rgba(3,12,26,.08);border-radius:18px;padding:22px;box-shadow:0 8px 30px rgba(3,12,26,.08)}
.input, textarea{width:100%;padding:14px 16px;border-radius:12px;border:1px solid rgba(3,12,26,.16);background:#fff;transition:border .15s ease, box-shadow .15s ease}
textarea{min-height:140px;resize:vertical}
.input:focus, textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px rgba(0,196,221,.18)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:800px){.form-grid{grid-template-columns:1fr}}
.form-row{margin:8px 0}
label{font-weight:600;color:var(--muted)}
.help{color:var(--muted);font-size:.95rem;margin:6px 0 14px}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
button.call-btn{cursor:pointer}


/* --- Header Mobile Improvements (2025-10) --- */
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #ffffffee;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(3,12,26,.06);
}
.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 10px 0;
  gap: 10px;
}
.logo img {
  height: 36px;
}
/* Stack nav on small screens and center it */
nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
  margin-top: 6px;
  gap: 6px 10px;
}
nav a {
  padding: 8px 10px;
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
}
nav a.active, nav a:hover { color: var(--ink); }
/* Call button stacks under nav on small screens */
.call-btn {
  flex-shrink: 0;
  margin-left: auto;
  margin-top: 6px;
}
@media (min-width: 820px) {
  .navbar { flex-wrap: nowrap; }
  nav {
    width: auto;
    margin-top: 0;
  }
  .call-btn {
    margin-top: 0;
    margin-left: 0;
  }
}
/* Reduce hero top padding on very small screens so header + hero fit nicely */
@media (max-width: 420px) {
  .hero { padding: 86px 0; }
}
