
/* Hero image size normalization for non-home pages */
@media (min-width: 900px) {
  body:not(.home) .hero img,
  body:not(.home) .hero-card img,
  body:not(.home) .page-hero img,
  body:not(.home) .card.hero img,
  body:not(.home) img.hero-art {
    max-width: 320px !important;
    width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important; /* centered; change to 0 if you want left-aligned */
  }
  /* Ensure the hero card doesn't force huge padding */
  body:not(.home) .hero,
  body:not(.home) .hero-card,
  body:not(.home) .page-hero,
  body:not(.home) .card.hero {
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
  }
}


/* === Precise: center heading + intro ONLY in the first section; reset everything after hero === */
@media (min-width: 900px){
  /* Center H1 + subline/intro inside the very first section */
  body:not(.home) main section:first-of-type .wrap > h1,
  body:not(.home) main section:first-of-type .wrap > h1 + p,
  body:not(.home) main section:first-of-type .wrap > .subline,
  body:not(.home) main section:first-of-type > h1,
  body:not(.home) main section:first-of-type > h1 + p,
  body:not(.home) main section:first-of-type > .subline {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 900px !important;
  }

  /* Reset alignment for all subsequent sections (content below hero) */
  body:not(.home) main section:first-of-type ~ section,
  body:not(.home) main section:first-of-type ~ section * {
    text-align: initial !important;
  }
}



/* === Global subpages footer gap fix === */
body:not(.home) main {
  padding-bottom: 16px !important;
}
body:not(.home) footer {
  margin-top: 16px !important;
}
/* Ensure the very last content block doesn't push extra space */
body:not(.home) main > section:last-of-type,
body:not(.home) main > div:last-of-type,
body:not(.home) main > article:last-of-type,
body:not(.home) main > form:last-of-type {
  margin-bottom: 8px !important;
  padding-bottom: 0 !important;
}
/* Common CTA wrappers: keep them tight when last on page */
body:not(.home) .page-cta:last-child,
body:not(.home) .actions:last-child,
body:not(.home) .contact-actions:last-child,
body:not(.home) .svc-ctas:last-child,
body:not(.home) .identity-cta:last-child {
  margin-bottom: 8px !important;
}



/* === Services page: widen intro paragraph and two‑column details === */
.svc-intro-wide{
  max-width: none !important;
}
.svc-intro-wide p{ 
  max-width: 1100px; 
  margin-left: auto; 
  margin-right: auto; 
}
.svc-two-col{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 28px;
  max-width: 1100px;
  margin: 10px auto 0 auto;
}
.svc-two-col ul{ margin: 0; padding-left: 18px; }
.svc-two-col li{ margin: 6px 0; }
@media (max-width: 860px){
  .svc-two-col{ grid-template-columns: 1fr; }
}


/* === Mobile NOZARO logo visibility fix === */
.header .brand img {
  max-width: 100%;
  height: auto;
  width: auto;
  object-fit: contain;
}

@media (max-width: 480px) {
  .header .brand img {
    width: 110px; /* ensures full NOZARO visible on mobile */
  }
}

/* === Final Mobile NOZARO Logo Fix === */
.header .brand {
  flex-shrink: 0;
  min-width: auto;
}

.header .brand img {
  display: block;
  height: auto;
  width: 120px; /* ensures full NOZARO visible */
  max-width: none;
}

@media (max-width: 480px) {
  .header .brand img {
    width: 104px; /* tuned for iPhone viewport */
  }
  .header .container.header-inner {
    justify-content: space-between;
  }
}

/* === Final Mobile NOZARO Logo Fix === */
.header .brand {
  flex-shrink: 0;
  min-width: auto;
}

.header .brand img {
  display: block;
  height: auto;
  width: 120px; /* ensures full NOZARO visible */
  max-width: none;
}

@media (max-width: 480px) {
  .header .brand img {
    width: 104px; /* tuned for iPhone viewport */
  }
  .header .container.header-inner {
    justify-content: space-between;
  }
}

/* === Header brand: combined N + NOZARO, mobile-safe === */
.header .header-inner { align-items: center; }
.header .brand { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.header .brand img, .header .brand svg {
  display:block;
  width:118px;
  height:auto;
  max-width:none;
}
@media (max-width: 480px) {
  .header .brand img, .header .brand svg { width:96px; }
}

/* === FINAL header logo fixes (desktop + mobile) === */
.header .header-inner { align-items: center; overflow: visible; }
.header .brand { display:flex; align-items:center; gap:10px; flex:0 0 auto; min-width: 0; }
.header .brand img { display:block; width:120px; height:auto; max-width:none; }

@media (max-width: 480px) {
  .header .brand img { width:100px; } /* full word visible on small iPhones */
}

/* Contact form validation */
.error { color: #C62828; font-size: 0.9rem; margin-top: 6px; }
input.invalid { border-color: #C62828; outline-color: #C62828; }
.help { color: #6b7280; font-size: 0.85rem; }

/* Security check validation styles */
.error { color:#C62828; font-size:0.9rem; margin-top:6px; }
input.invalid { border-color:#C62828; outline-color:#C62828; }
.help { color:#6b7280; font-size:0.85rem; display:block; margin-top:4px; }

/* Security check validation styles */
.error { color:#C62828; font-size:0.9rem; margin-top:6px; }
input.invalid { border-color:#C62828; outline-color:#C62828; }
.help { color:#6b7280; font-size:0.85rem; display:block; margin-top:4px; }
