/* =========================================================
   NYNPS — Global Normalize (Loaded LAST)
   Scope: .nynps-rebuild + .nynps-apostille
   Purpose: consistent typography, calm authority,
            no impact on legacy pages
   ========================================================= */

:root{
  --nynps-accent: #1f5f9f;
  --nynps-text: #1f2328;
  --nynps-callout-bg: #eef4fa;
}

/* ---------- Shared base ---------- */
.nynps-rebuild,
.nynps-apostille{
  color: var(--nynps-text);
  line-height: 1.60;
}

/* Paragraphs */
.nynps-rebuild p,
.nynps-apostille p{
  margin: 0 0 12px 0;
}

/* Standard body copy */
.nynps-rebuild p.np,
.nynps-apostille p.np{
  font-size: 16.5px;
  line-height: 1.65;
  font-weight: 400;
}

/* Keep legacy helper classes calm */
.nynps-rebuild .vir,
.nynps-rebuild .np,
.nynps-apostille .vir,
.nynps-apostille .np{
  color: var(--nynps-text);
}

/* ---------- Headings ---------- */
.nynps-rebuild h1,
.nynps-apostille h1{
  font-weight: 700;
  line-height: 1.18;
  margin: 18px 0 10px 0;
}

.nynps-rebuild h2,
.nynps-apostille h2{
  font-weight: 600;
  line-height: 1.25;
  margin: 18px 0 10px 0;
}

.nynps-rebuild h2::after,
.nynps-apostille h2::after{
  content: none;
  display: none;
}


/* H3 is neutral (NOT blue) */
.nynps-rebuild h3,
.nynps-apostille h3{
  font-weight: 600;
  line-height: 1.25;
  margin: 16px 0 8px 0;
  color: var(--nynps-text);
}

/* Lighter “med” headings */
.nynps-rebuild h3.med,
.nynps-apostille h3.med{
  font-weight: 500;
}

.nynps-rebuild h4,
.nynps-apostille h4,
.nynps-rebuild h5,
.nynps-apostille h5,
.nynps-rebuild h6,
.nynps-apostille h6{
  font-weight: 500;
  line-height: 1.25;
  margin: 12px 0 6px 0;
}

/* Prevent double-bold headings */
.nynps-rebuild h1 strong,
.nynps-rebuild h2 strong,
.nynps-rebuild h3 strong,
.nynps-apostille h1 strong,
.nynps-apostille h2 strong,
.nynps-apostille h3 strong{
  font-weight: inherit;
}

/* ---------- Lists ---------- */
.nynps-rebuild ul,
.nynps-rebuild ol,
.nynps-apostille ul,
.nynps-apostille ol{
  margin: 8px 0 12px 0;
  padding-left: 22px;
}

.nynps-rebuild li,
.nynps-apostille li{
  margin: 7px 0;
  line-height: 1.60;
  font-weight: 400;
}

/* Preserve existing .vir list rhythm */
.nynps-rebuild ul.vir{
  padding-left: 22px;
}
.nynps-rebuild ul.vir > li.vir{
  margin: 7px 0;
}

/* Title-only list items */
.nynps-rebuild li[style*="list-style-type: none"],
.nynps-apostille li[style*="list-style-type: none"]{
  margin: 0;
  padding: 0;
}

/* ---------- Bold discipline ---------- */
.nynps-rebuild strong,
.nynps-apostille strong{
  font-weight: 600;
}

/* ---------- Links ---------- */
.nynps-rebuild a,
.nynps-apostille a{
  color: var(--nynps-accent);
  text-decoration: none;
}

.nynps-rebuild a:hover,
.nynps-rebuild a:focus,
.nynps-apostille a:hover,
.nynps-apostille a:focus{
  text-decoration: underline;
}

/* ---------- Dividers ---------- */
.nynps-rebuild hr,
.nynps-apostille hr{
  margin: 18px 0;
  opacity: 0.9;
}

/* ---------- Callout box ---------- */
.nynps-rebuild .nynps-callout,
.nynps-apostille .nynps-callout{
  background: var(--nynps-callout-bg);
  padding: 16px 18px 22px;
  border-radius: 10px;
  margin: 18px 0;
  box-sizing: border-box;
  line-height: 1.45;
}

.nynps-rebuild .nynps-callout strong:first-child,
.nynps-apostille .nynps-callout strong:first-child{
  font-size: 1.05em;
}

/* ---------- Mobile ---------- */
@media (max-width: 768px){
  .nynps-rebuild ul,
  .nynps-rebuild ol,
  .nynps-apostille ul,
  .nynps-apostille ol{
    padding-left: 18px;
  }

  .nynps-rebuild h2,
  .nynps-apostille h2{
    margin: 16px 0 8px 0;
  }
}

.nynps-rebuild li,
.nynps-apostille li{
  margin: 5px 0;
}


/* Inquiries & Bookings: stronger H3 section headers (neutral) */
.nynps-rebuild h3{
  font-weight: 600;
  font-size: 17px;
  line-height: 1.35;
  margin: 18px 0 8px 0;
  color: #1f2328; /* keep neutral */
}

/* Add a subtle divider only under H3 on rebuild pages */
.nynps-rebuild h3{
  padding-bottom: 8px;
  border-bottom: 0px solid rgba(0,0,0,0.12);
}
/* FORCE ROBOTO ON ALL TEXT ELEMENTS */
body,
p,
li,
span,
div,
a,
strong,
em,
h1,
h2,
h3,
h4,
h5,
h6,
input,
textarea,
button {
  font-family: 'Roboto', inherit!important;
}

/* =========================================================
   Paragraph size guardrail — prevents text from shrinking
   ========================================================= */

/* Primary paragraph class */
.nynps-rebuild p.np,
.nynps-apostille p.np {
  font-size: 16.5px;
  line-height: 1.65;
}

/* Fallback for any plain paragraphs inside rebuild/apostille wrappers */
.nynps-rebuild p:not(.np),
.nynps-apostille p:not(.np) {
  font-size: 16.5px;
  line-height: 1.65;
}

/* Mobile safeguard */
@media (max-width: 768px) {
  .nynps-rebuild p,
  .nynps-apostille p {
    font-size: 16px;
    line-height: 1.6;
  }
}

/* =====================================================
   FAQ PAGE – SPACING & READABILITY
   Scoped to .faq wrapper only
   ===================================================== */

.nynps-rebuild.faq h3,
.nynps-rebuild.faq h4 {
  margin: 26px 0 10px;
  line-height: 1.35;
  font-weight: 600;
}

.nynps-rebuild.faq p {
  margin: 0 0 18px;
  line-height: 1.65;
}

.nynps-rebuild.faq ul,
.nynps-rebuild.faq ol {
  margin: 10px 0 18px 22px;
}

.nynps-rebuild.faq hr {
  margin: 30px 0;
}

/* =========================================================
   NYNPS — FAQ (SCOPED)
   Wrap the FAQ page with: <div class="nynps-rebuild nynps-faq">
   ========================================================= */

.nynps-rebuild.nynps-faq .faq-item{
  padding: 16px 0;
  border-top: 1px solid rgba(0,136,204,0.35);
  margin: 10px 0;
}

.nynps-rebuild.nynps-faq .faq-item:first-child{
  border-top: 0;
  padding-top: 0;
}

.nynps-rebuild.nynps-faq .faq-q{
  margin: 0 0 15px 0;
  font-weight: 700;
  line-height: 1.25;
  font-size: 1.05em;
  color: #1f2328;
}

.nynps-rebuild.nynps-faq .faq-a{
  margin: 0;
}

.nynps-rebuild.nynps-faq .faq-a p.np{
  margin: 0 0 10px 0;
}

.nynps-rebuild.nynps-faq .faq-list{
  margin: 8px 0 12px 18px;
  padding: 0;
}

.nynps-rebuild.nynps-faq .faq-list li{
  margin: 6px 0;
  line-height: 1.55;
}
/* HERO HEADER */
.hero-header {
  text-align: center;
  margin-top: 0;
  color: #ffffff;
}

/* Primary SEO heading */
.hero-title {
  margin: 0;
  font-weight: 600;
  line-height: 1.4;
  font-size: 1.15em;
  color: #ffffff;
}

/* Phone CTA */
.hero-phone {
  margin-top: 4px;
  font-size: 1.05em;
  font-weight: 600;
}

.hero-phone a {
  color: #ffffff;
  text-decoration: none;
}

.hero-phone a:hover {
  text-decoration: underline;
}
/* FAQ page only */
.nynps-rebuild.faq .faq-item{
  border-top: 1px solid #08c;
  padding: 18px 0;
}

.nynps-rebuild.faq .faq-q{
  font-weight: 700;
  margin: 0 0 10px 0;
}

.nynps-rebuild.faq .faq-a{
  margin: 0;
  line-height: 1.6;
}

.nynps-rebuild.faq .faq-a a{
  font-weight: 700;
}

.nynps-rebuild.faq .faq-cta{
  padding-bottom: 0;
}

.nynps-rebuild.faq .faq-cta .faq-q{
  font-size: 1.05em;
}
