/* ---------------------- */
/* Global Base            */
/* ---------------------- */
html, body {
  margin: 0;
  padding: 0;
  background: #111;   /* site-wide black background */
  color: #fff;        /* default text white */
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

.container { max-width: 960px; margin: 0 auto; padding: 1rem; }

/* ---------------------- */
/* Home Hero (Index page) */
/* ---------------------- */
.home-hero {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  min-height: 100vh;
  text-align: center;
  background-color: #111;  /* hero stays black */
  color: #fff;
  padding: 1rem 1rem 3rem;
  overflow-x: hidden;
}

.home-hero img { max-width: 200px; height: auto; margin-bottom: 20px; }
.home-hero h1 { font-size: 2rem; margin: 10px 0; }
.home-hero p  { font-size: 1.2rem; margin: 10px 0 20px; }

.home-hero .hero__ctas {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 560px;
  margin: 1rem auto 0;
  padding: 0;
}
.home-hero .hero__ctas .btn { width: auto; min-width: 140px; }

.home-hero .serve-form {
  background: #0f0f0f;
  border: 1px solid #2a2a2a;
  border-radius: .75rem;
  padding: 1rem;
  width: 100%;
  margin: 0 auto;
}
.home-hero .serve-form input[type="tel"],
.home-hero .serve-form input[type="text"] {
  width: 100%;
  max-width: 100%;
  padding: .75rem;
  border: 1px solid #333;
  border-radius: .5rem;
  background: #111;
  color: #eee;
  margin-bottom: .75rem;
}
.home-hero .checkline     { margin: .25rem 0 .75rem; display:flex; align-items:center; gap:.5rem; }
.home-hero .alert-error   { background:#3b0d0d; color:#ffd6d6; padding:.75rem; border-radius:.5rem; margin-bottom:.75rem; }

@media (min-width: 900px) {
  .home-hero .hero__ctas { grid-template-columns: auto 1fr; align-items: start; }
}

/* ---------------------- */
/* Footer (white band)    */
/* ---------------------- */
.site-footer {
  text-align: center;
  padding: 1.5rem 0;
  background: #fff;
  color: #111;
}
.site-footer .footer-content { display:flex; flex-direction:column; align-items:center; gap:.75rem; }
.site-footer .footer-links   { list-style:none; display:flex; gap:1.5rem; padding:0; margin:0; }
.site-footer .footer-links a { color:#00f; text-decoration:none; }
.site-footer .footer-links a:hover { text-decoration: underline; }

/* Narrow inputs on small screens */
@media (max-width: 480px) {
  input[type="tel"],
  input[name="phone"],
  input[name="zip"],
  input[type="text"].zip,
  .form-row input[type="text"] {
    max-width: 280px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}

/* Constrain hero/serve-check form width and center it */
.hero, .hero .container, #serve-check, #serve-check form {
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

/* Narrow inputs on small screens */
@media (max-width: 480px) {
  input[type="tel"],
  input[name="phone"],
  input[name="zip"],
  input[type="text"].zip,
  .form-row input[type="text"] {
    max-width: 280px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}
.container{
  max-width:1100px;
  margin:0 auto;
  padding:0 16px;
  box-sizing:border-box;
}
.hero{
  display:grid;
  grid-template-columns:1fr 400px;
  gap:2rem;
  align-items:start;
}
.hero>*{ min-width:0; }

.hero form,
.hero .form-card{
  max-width:400px;
  width:100%;
  box-sizing:border-box;
}

.hero input[type="text"],
.hero input[type="tel"],
.hero input[type="email"],
.hero input[type="number"]{
  width:100%;
  max-width:340px;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}

.hero .form-row,
.hero .input-wrap{
  width:100%;
  display:block;
}

@media (max-width: 900px){
  .hero{ grid-template-columns:1fr; }
  .hero form,
  .hero .form-card{ max-width:520px; margin:0 auto; }
  .hero input[type="text"],
  .hero input[type="tel"],
  .hero input[type="email"],
  .hero input[type="number"]{ max-width:320px; }
}
*,*::before,*::after{box-sizing:border-box}
body{overflow-x:hidden}

.container{max-width:1100px;margin:0 auto;padding:0 16px}

.hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,420px);
  gap:2rem;
  align-items:start;
}
.hero > *{min-width:0}

.hero form,
.hero .form-card{max-width:420px;width:100%}

.hero input[type="text"],
.hero input[type="tel"],
.hero input[type="email"],
.hero input[type="number"],
.hero select{
  width:100%;
  max-width:320px;
  margin-left:auto;
  margin-right:auto;
  display:block;
}

@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero form,.hero .form-card{max-width:520px}
  .hero input[type="text"],
  .hero input[type="tel"],
  .hero input[type="email"],
  .hero input[type="number"],
  .hero select{max-width:320px}
}
