
/* Minimal CSS, no external JS or CSS required */
:root{
  --bg-grad-start:#ffffff;
  --bg-grad-end:#fee2e2;
  --brand:#b91c1c;
  --brand-dark:#991b1b;
  --ink:#111827;
  --muted:#6b7280;
  --ring:#e5e7eb;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans',sans-serif;color:var(--ink);background:linear-gradient(to bottom,var(--bg-grad-start),var(--bg-grad-end));min-height:100%}
.wrapper{max-width:1100px;margin:0 auto;padding:0 20px}
.header{position:sticky;top:0;background:rgba(255,255,255,0.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--ring);z-index:20}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:12px}
.logo img{height:40px;width:auto;background:#fff;border-radius:6px;padding:0}
.nav a{display:inline-block;padding:8px 12px;border-radius:10px;font-size:14px;color:#374151;text-decoration:none}
.nav a:hover{background:#fee2e2}
.hero{position:relative;overflow:hidden}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(220,38,38,0.12),rgba(153,27,27,0.12))}
.hero-inner{position:relative;padding:64px 0}
.grid{display:grid;gap:16px}
.grid-2{grid-template-columns:1fr}
@media(min-width:900px){.grid-2{grid-template-columns:1fr 1fr}}
.stat{background:#fff;border:1px solid var(--ring);border-radius:16px;padding:20px;text-align:center}
.stat .value{font-size:28px;font-weight:800}
.stat .label{font-size:12px;color:var(--muted)}
.btn{display:inline-block;padding:12px 18px;border-radius:16px;border:none;cursor:pointer;font-weight:600;text-decoration:none}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-dark)}
.btn-ghost{background:#fff;border:1px solid rgba(0,0,0,0.05);color:#1f2937}
.btn-ghost:hover{background:#fee2e2}
.section{margin:40px 0}
.card{background:#fff;border:1px solid var(--ring);border-radius:16px;padding:20px}
.list{margin:10px 0 0 0;padding-left:18px}
.list li{margin:6px 0}
.placeholder{aspect-ratio:4/3;background:#e5e7eb;border-radius:16px;display:grid;place-items:center;color:#6b7280;font-size:14px}
.footer{margin-top:40px;border-top:1px solid var(--ring)}
.footer-inner{padding:24px 0;color:#6b7280;font-size:14px;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}
.table{width:100%;border-collapse:separate;border-spacing:0 10px}
.table td{vertical-align:top}
.input,.select,.textarea{width:100%;padding:10px;border-radius:12px;border:1px solid #d1d5db}
.label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.req{color:#dc2626}
.form-row{display:grid;gap:16px}
@media(min-width:900px){.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:1fr 1fr 1fr}}
.notice{background:#fff3cd;border:1px solid #ffe69c;padding:12px 14px;border-radius:12px;color:#664d03}

/* Temporary site-wide construction notice */
.construction-notice{
  background:#991b1b;
  color:#fff;
  text-align:center;
  padding:10px 16px;
  font-size:14px;
  line-height:1.45;
  border-bottom:1px solid rgba(0,0,0,0.08);
}
.construction-notice strong{
  display:block;
  font-size:14px;
  letter-spacing:.04em;
}
.construction-notice span{
  display:block;
}

.front-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

.service-image img {
  width: 100%;
  height: 270px;
  object-fit: cover;
  display: block;
  border-radius: 10px;
}

/* Mobile navigation */
.menu-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--ink);
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
.menu-toggle:hover{background:#fee2e2}

@media(max-width:768px){
  .header-inner{
    position:relative;
    height:64px;
  }
  .logo img{height:36px}
  .menu-toggle{display:flex}
  .nav{
    display:none;
    position:absolute;
    top:64px;
    left:20px;
    right:20px;
    padding:8px;
    background:#fff;
    border:1px solid var(--ring);
    border-radius:0 0 14px 14px;
    box-shadow:0 10px 24px rgba(17,24,39,.12);
  }
  .nav.nav-open{display:block}
  .nav a{
    display:block;
    width:100%;
    padding:12px 14px;
    font-size:16px;
  }
  .hero-inner{padding:40px 20px}
}

/* Mobile width correction - prevents horizontal page movement on narrow phones */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

img {
  max-width: 100%;
}

@media(max-width:768px){
  .wrapper{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
  }

  .header-inner{
    width:100%;
    max-width:100%;
    min-width:0;
    padding-left:16px;
    padding-right:16px;
  }

  .logo{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
  }

  .logo img{
    display:block;
    height:34px;
    width:auto;
    max-width:calc(100vw - 92px);
    object-fit:contain;
  }

  .menu-toggle{
    flex:0 0 44px;
    width:44px;
    min-width:44px;
    max-width:44px;
    margin:0;
  }

  .nav{
    left:16px;
    right:16px;
    width:auto;
    max-width:calc(100vw - 32px);
    overflow:hidden;
  }

  .nav a{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}


/* Services photography */
.service-card{overflow:hidden}
.service-photo{margin:-20px -20px 18px -20px;background:#f3f4f6}
.service-photo img{width:100%;height:260px;object-fit:cover;display:block}
.service-photo figcaption{padding:10px 14px;font-size:13px;line-height:1.45;color:var(--muted);background:#fafafa;border-bottom:1px solid var(--ring)}
.service-card h3{margin-top:0}

/* Gallery */
.gallery-intro{max-width:850px}
.gallery-intro h1{font-size:34px;margin:0 0 12px}
.gallery-intro p{line-height:1.65;color:#4b5563}
.gallery-demo-note{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:12px 14px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.gallery-card{margin:0;background:#fff;border:1px solid var(--ring);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(17,24,39,.05)}
.gallery-open{display:block;width:100%;border:0;padding:0;background:#e5e7eb;cursor:zoom-in}
.gallery-open img{display:block;width:100%;height:300px;object-fit:cover;transition:transform .2s ease}
.gallery-open:hover img{transform:scale(1.015)}
.gallery-card figcaption{padding:16px 18px 18px;line-height:1.5}
.gallery-card figcaption strong{display:block;font-size:17px;color:var(--ink);margin-bottom:5px}
.gallery-card figcaption span{display:block;color:var(--muted);font-size:14px}
.lightbox{display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.88);padding:60px 20px 24px;align-items:center;justify-content:center}
.lightbox.is-open{display:flex}
.lightbox img{max-width:min(1100px,96vw);max-height:84vh;object-fit:contain;border-radius:8px}
.lightbox-close{position:absolute;right:18px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#111;font-size:30px;line-height:1;cursor:pointer}

@media(max-width:768px){
  .gallery-grid{grid-template-columns:1fr;gap:18px}
  .gallery-open img{height:auto;aspect-ratio:4/3}
  .service-photo img{height:auto;aspect-ratio:4/3}
}
