
:root {
  --blue:#243c8f;
  --orange:#f47c20;
  --ink:#111827;
  --muted:#6b7280;
  --bg:#f6f7fb;
  --card:#ffffff;
  --ring:rgba(244,124,32,.35);
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:white;line-height:1.5}
a{color:inherit;text-decoration:none}
.container{max-width:1000px;margin:0 auto;padding:0 60px}
.topbar{background:var(--blue);color:white}
.topbar .row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.2px}
.brand img{width:40px;height:40px;border-radius:999px;background:white;object-fit:cover}
.nav{display:flex;flex-wrap:wrap;gap:14px;font-weight:650}
.nav a{color:white;opacity:.92}
.nav a:hover{opacity:1;text-decoration:underline}
.hero{background:linear-gradient(180deg,var(--bg),white);padding:56px 0 26px}
.hero h1{font-size:clamp(28px,4vw,44px);margin:0 0 10px}
.hero p{margin:0 0 18px;color:var(--muted);max-width:75%}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pill{border:1px solid #e5e7eb;border-radius:999px;padding:6px 10px;font-size:13px;color:var(--muted);background:white}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border-radius:14px;font-weight:850;border:1px solid transparent}
.btn.primary{background:var(--orange);color:white;box-shadow:0 8px 18px var(--ring)}
.btn.secondary{background:white;border-color:#e5e7eb}
.section{padding:34px 0}
.h2{font-size:22px;margin:0 0 14px}
.grid{display:grid;gap:16px}
.grid.cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--card);border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(17,24,39,.05)}
.card .pad{padding:14px}
.card img{width:100%;height:190px;object-fit:cover;display:block;background:#f3f4f6}
.kicker{color:var(--muted);font-size:13px}
.tagrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tag{font-size:12px;border:1px solid #e5e7eb;border-radius:999px;padding:5px 9px;color:var(--muted);background:white}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.footer{background:var(--blue);color:white;margin-top:28px}
.footer .row{padding:22px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px}
.footer a{color:white;text-decoration:underline}
.form{display:grid;gap:12px;max-width:720px}
/* Form fields (scoped so it doesn't affect hero text) */
.form .input, .form textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid #e5e7eb;font:inherit}
.form .input:focus, .form textarea:focus{outline:3px solid var(--ring);border-color:var(--orange)}
.notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:12px 14px;color:#9a3412}
.small{font-size:13px;color:var(--muted)}
.filterbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0 8px}
select{padding:10px 12px;border-radius:14px;border:1px solid #e5e7eb;font:inherit}

/* === Homepage Variant Enhancements === */
.heroBg{background:
  linear-gradient(180deg, rgba(17,24,39,.62), rgba(17,24,39,.18)),
  var(--hero-bg);
  background-size:cover;
  background-position:center;
  padding:74px 0 54px;
}
.heroOverlay{display:flex;justify-content:flex-start}
.heroBox{max-width:420px;background:rgba(255,255,255,.92);border:1px solid rgba(229,231,235,.9);
  border-radius:22px;padding:22px;box-shadow:0 14px 40px rgba(17,24,39,.22)}
.heroBg h1{margin-top:0}
.heroBg p{color:var(--muted)}
.heroCtas{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}

/* === Homepage tile images === */
.tilesImgGrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.tileCard{display:block;border-radius:18px;overflow:hidden;transition:transform .15s ease, box-shadow .15s ease}
.tileCard:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(17,24,39,.10)}
.tileImg{width:100%;height:160px;object-fit:cover;display:block;background:#f3f4f6}
.tileTitle{font-weight:900;margin-bottom:4px}

/* === Auto gallery scrolling === */
.galleryRow{display:flex;gap:12px;overflow:auto;padding:6px 2px;scroll-snap-type:x mandatory}
.galleryRow::-webkit-scrollbar{height:10px}
.galleryItem{flex:0 0 auto;scroll-snap-align:start;border-radius:16px;overflow:hidden;border:1px solid #e5e7eb;box-shadow:0 6px 18px rgba(17,24,39,.06)}
.galleryItem img{width:520px;max-width:78vw;height:340px;object-fit:cover;display:block;background:#f3f4f6}
@media (max-width:700px){.galleryItem img{height:260px}}
.galleryHint{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}

/* === Service page gallery helpers === */
.serviceIntro{display:flex;flex-direction:column;gap:10px}
.serviceActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:2px}

/* === Lightbox === */
#lbModal{position:fixed;inset:0;display:none;z-index:9999}
#lbModal.open{display:block}
.lbBackdrop{position:absolute;inset:0;background:rgba(17,24,39,.72)}
.lbPanel{position:absolute;inset:24px;display:flex;align-items:center;justify-content:center}
.lbImg{max-width:calc(100vw - 80px);max-height:calc(100vh - 80px);border-radius:18px;box-shadow:0 18px 60px rgba(0,0,0,.35);background:white}
.lbClose{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.35);
background:rgba(17,24,39,.55);color:white;font-size:28px;line-height:1;cursor:pointer}
.lbClose:hover{background:rgba(17,24,39,.75)}
.galleryItem a{display:block}

/* === Lightbox navigation === */
.lbNav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:999px;
border:1px solid rgba(255,255,255,.35);background:rgba(17,24,39,.45);color:white;font-size:40px;line-height:1;
display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none}
.lbNav:hover{background:rgba(17,24,39,.70)}
.lbPrev{left:18px}
.lbNext{right:18px}
@media (max-width:520px){
  .lbNav{width:46px;height:46px;font-size:34px}
}

/* === Header + Typography Tweaks === */
.topbar .row{padding:18px 0} /* taller header */
.brand img{width:56px;height:56px} /* larger logo */

/* Reduce overall text spacing */
.hero p{margin-bottom:12px}
.section{padding:26px 0}
.card .pad{padding:12px}
.split{gap:18px}

/* Smaller H1 */
.hero h1{
  font-size:clamp(26px,3.2vw,40px);
  line-height:1.15;
  margin-bottom:8px;
}

/* === Mobile Nav === */
.navToggle{
  display:none;
  background:none;
  border:0;
  color:white;
  font-size:28px;
  cursor:pointer;
}
@media (max-width:900px){
  .nav{display:none;flex-direction:column;gap:14px;background:var(--blue);
       position:absolute;left:0;right:0;top:100%;padding:18px}
  .nav.open{display:flex}
  .navToggle{display:block}
}

/* === Per-page hero background images (clean) === */
.hero.heroBg{
  background:
    linear-gradient(180deg, rgba(17,24,39,.62), rgba(17,24,39,.18)),
    var(--hero-bg);
  background-size:cover;
  background-position:center;
  padding:56px 0 34px;
}
.heroBg .heroBox{
  max-width:420px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(229,231,235,.9);
  border-radius:22px;
  padding:18px 18px 14px;
  box-shadow:0 14px 40px rgba(17,24,39,.22);
}
.heroBg .heroBox .notice{display:none} /* ensure no notice appears in hero */

.card, .heroBox, .container{
  background:transparent;
}
.section .container{
  background:transparent;
}

/* === Mobile nav positioning fix === */
.topbar{position:relative; z-index:50}
.topbar .row{position:relative}
@media (max-width:900px){
  .nav{top:calc(100% + 8px); z-index:60; border-radius:18px; margin:0 12px; box-shadow:0 14px 40px rgba(17,24,39,.22)}
}

@media (max-width:700px){
  .section .container{padding:14px}
}

html, body{ background:#e5e7eb; } /* solid site background */

/* Keep containers transparent by default */
.container{ background:transparent; }

/* Use .panel to create white content blocks only where needed */
.panel{
  background:#ffffff;
  border-radius:22px;
  padding:18px;
  border:1px solid rgba(229,231,235,.9);
}
@media (max-width:700px){
  .panel{padding:14px}
}

/* === Page background === */
html, body {
  background: #e5e7eb;
}

/* === Gallery / content cards only === */
.card,
.tileCard,
.galleryCard {
  background: #ffffff;
  border: 1px solid rgba(209,213,219,.9);
  border-radius: 18px;
}


