:root {
    --footer-navy: #0d2855;
    --footer-navy-dark: #071f48;
    --footer-ink: #10264d;
    --footer-muted: #60708a;
    --footer-teal: #008f9d;
    --footer-gold: #efb52f;
    --footer-rule: #d6e0eb;
    --footer-wash: #eef4fa;
    --footer-directory-bg: #0b3154;
    --footer-directory-ink: #f4f8fc;
    --footer-directory-muted: #afc0d2;
    --footer-directory-rule: rgba(210, 229, 241, .18);
    --footer-directory-teal: #63d0d5;
}

.ncd-footer { color: var(--footer-ink); font-family: "Manrope", "Noto Sans", Arial, sans-serif; scroll-margin-top: 88px; }
.ncd-footer a { text-decoration: none; }
.ncd-footer-subscribe { background: var(--footer-wash); border-top: 1px solid #e0e8f1; padding: 2.15rem 0; }
.ncd-footer-subscribe-grid { align-items: center; display: grid; gap: 2rem; grid-template-columns: minmax(290px, 1.45fr) minmax(180px, .72fr) minmax(300px, 1.2fr) minmax(220px, .75fr); }
.ncd-footer-subscribe-title { align-items: center; display: flex; gap: 1.35rem; }
.ncd-footer-round-icon { align-items: center; border: 1px solid #71819b; border-radius: 50%; display: inline-flex; flex: 0 0 54px; height: 54px; justify-content: center; }
.ncd-footer-round-icon i { font-size: 1.65rem; }
.ncd-footer-subscribe h2 { color: var(--footer-ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 2.15vw, 2.45rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.08; margin: 0; }
.ncd-footer-subscribe-grid > p { border-left: 2px solid var(--footer-teal); color: #586982; font-size: .92rem; line-height: 1.65; margin: 0; padding-left: 1.6rem; }
.ncd-footer-subscribe-form { min-width: 0; }
.ncd-footer-subscribe-fields { display: grid; gap: .55rem; }
.ncd-footer-subscribe-row { display: flex; min-width: 0; }
.ncd-footer-subscribe-row input { background: #fff; border: 1px solid #bbc8d8; border-radius: 0; color: var(--footer-ink); min-width: 0; padding: .95rem 1rem; width: 100%; }
.ncd-footer-subscribe-row input:focus { border-color: var(--footer-teal); box-shadow: 0 0 0 3px rgba(0, 143, 157, .13); outline: 0; }
.ncd-footer-subscribe-form button { align-items: center; background: var(--footer-gold); border: 1px solid var(--footer-gold); color: #0b2146; display: inline-flex; font-weight: 700; gap: .45rem; padding: .95rem 1.2rem; white-space: nowrap; }
.ncd-footer-subscribe-form button:hover { background: #f4c451; border-color: #f4c451; }
.ncd-footer-subscribe-form button:disabled { cursor: wait; opacity: .68; }
.ncd-footer-consent { align-items: flex-start; color: #60708a; display: flex; font-size: .68rem; gap: .5rem; line-height: 1.45; margin: 0; }
.ncd-footer-consent input { accent-color: var(--footer-teal); flex: 0 0 auto; height: 15px; margin-top: .08rem; width: 15px; }
.ncd-footer-consent a { color: var(--footer-teal); font-weight: 700; }
.ncd-footer-subscribe-feedback { color: #53657d; font-size: .72rem; line-height: 1.45; margin: 0; min-height: 1em; }
.ncd-footer-subscribe-feedback.is-success { color: #087565; }
.ncd-footer-subscribe-feedback.is-error { color: #a72d39; }
.ncd-footer-quick-contact { border-left: 2px solid var(--footer-teal); display: flex; flex-direction: column; font-style: normal; gap: .5rem; margin: 0; padding-left: 1.6rem; }
.ncd-footer-quick-contact > span, .ncd-footer-quick-contact small { color: #5c6b81; font-size: .84rem; line-height: 1.5; }
.ncd-footer-quick-contact a { align-items: center; color: var(--footer-ink); display: inline-flex; font-size: .92rem; font-weight: 750; gap: .55rem; }
.ncd-footer-quick-contact a i { color: var(--footer-teal); font-size: 1.35rem; }

.ncd-footer-directory { background: radial-gradient(circle at 12% 8%, rgba(21, 102, 126, .42), transparent 30%), linear-gradient(135deg, #0c385b 0%, var(--footer-directory-bg) 48%, #092847 100%); border-top: 4px solid var(--footer-gold); color: var(--footer-directory-ink); padding: 2.5rem 0 0; }
.ncd-footer-directory-grid { display: grid; gap: 2.8rem; grid-template-columns: minmax(270px, 1.7fr) repeat(5, minmax(145px, 1fr)); }
.ncd-footer-brand-lockup { align-items: center; color: var(--footer-directory-ink); display: flex; gap: .75rem; max-width: 320px; }
.ncd-footer-brand-lockup img { height: 64px; object-fit: contain; width: 64px; }
.ncd-footer-brand-lockup span { display: flex; flex-direction: column; line-height: 1.02; }
.ncd-footer-brand-lockup strong { font-size: 1.12rem; letter-spacing: -.025em; }
.ncd-footer-brand-lockup small { font-size: .84rem; }
.ncd-footer-brand > p { color: var(--footer-directory-muted); font-size: .83rem; line-height: 1.65; margin: 1.35rem 0 1.65rem; max-width: 330px; }
.ncd-footer-brand > h3 { align-items: center; color: var(--footer-directory-teal); display: flex; font-size: .7rem; font-weight: 800; letter-spacing: .06em; margin: 0 0 .7rem; text-transform: uppercase; }
.ncd-footer-brand > h3::after { background: var(--footer-directory-teal); content: ""; height: 1px; margin-left: .8rem; width: 70px; }
.ncd-footer-partners { display: grid; gap: 0; }
.ncd-footer-partners a { align-items: center; border-bottom: 1px solid var(--footer-directory-rule); color: var(--footer-directory-ink); display: grid; gap: .8rem; grid-template-columns: 42px 1fr; min-height: 58px; padding: .45rem 0; }
.ncd-footer-partners a:last-child { border-bottom: 0; }
.ncd-footer-partners img { height: 38px; object-fit: contain; width: 42px; }
.ncd-footer-partners span { display: flex; flex-direction: column; }
.ncd-footer-partners strong { font-size: .78rem; line-height: 1.25; }
.ncd-footer-partners small { color: var(--footer-directory-muted); font-size: .68rem; margin-top: .12rem; }
.ncd-footer-link-group h3 { border-bottom: 2px solid var(--footer-directory-teal); color: var(--footer-directory-teal); font-size: .72rem; font-weight: 800; letter-spacing: .04em; margin: .55rem 0 .55rem; padding-bottom: .75rem; text-transform: uppercase; }
.ncd-footer-link-group ol { list-style: none; margin: 0; padding: 0; }
.ncd-footer-link-group li { border-bottom: 1px solid var(--footer-directory-rule); }
.ncd-footer-link-group a { align-items: center; color: var(--footer-directory-ink); display: grid; font-size: .79rem; gap: .45rem; grid-template-columns: 1.35rem minmax(0, 1fr) auto; min-height: 48px; padding: .55rem .1rem; transition: color .18s ease, padding .18s ease; }
.ncd-footer-link-group a > span { color: #80a8bd; font-size: .7rem; }
.ncd-footer-link-group a > small { color: var(--footer-directory-muted); display: block; font-size: .63rem; grid-column: 2; margin-top: -.35rem; }
.ncd-footer-link-group a > i { font-size: 1rem; }
.ncd-footer-link-group a:hover, .ncd-footer-link-group a:focus-visible { color: var(--footer-gold); padding-left: .25rem; }

.ncd-footer-contact-row { align-items: center; border-top: 1px solid var(--footer-directory-rule); display: grid; gap: 1.4rem; grid-template-columns: 105px repeat(4, minmax(0, 1fr)); margin-top: 1.8rem; padding: 1.1rem 0 1.3rem; }
.ncd-footer-contact-row h3 { color: var(--footer-directory-teal); font-size: .73rem; font-weight: 800; line-height: 1.35; margin: 0; text-transform: uppercase; }
.ncd-footer-contact-row a { align-items: center; border-left: 1px solid var(--footer-directory-rule); color: var(--footer-directory-ink); display: flex; gap: .85rem; min-height: 48px; padding-left: 1.2rem; }
.ncd-footer-contact-row a > i { align-items: center; border: 1px solid rgba(215, 234, 244, .45); border-radius: 50%; color: var(--footer-directory-teal); display: inline-flex; flex: 0 0 42px; font-size: 1.35rem; height: 42px; justify-content: center; }
.ncd-footer-contact-row a > span { display: flex; flex-direction: column; font-size: .69rem; line-height: 1.35; min-width: 0; }
.ncd-footer-contact-row a small { color: var(--footer-directory-muted); font-size: .67rem; margin-bottom: .2rem; }
.ncd-footer-contact-row a:hover { color: var(--footer-gold); }
.ncd-footer-contact-row a:hover > i { border-color: var(--footer-gold); color: var(--footer-gold); }

.ncd-footer-bottom { background: var(--footer-navy-dark); border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.78); }
.ncd-footer-bottom .container { align-items: center; display: flex; justify-content: space-between; min-height: 84px; }
.ncd-footer-bottom p { font-size: .72rem; margin: 0; }
.ncd-footer-bottom nav { display: flex; gap: 1.2rem; }
.ncd-footer-bottom a { color: rgba(255,255,255,.78); font-size: .7rem; }
.ncd-footer-bottom a:hover { color: var(--footer-gold); }

@media (max-width: 1399.98px) {
    .ncd-footer-subscribe-grid { grid-template-columns: 1.25fr .75fr 1.15fr; }
    .ncd-footer-quick-contact { display: none; }
    .ncd-footer-directory-grid { gap: 2rem; grid-template-columns: minmax(250px, 1.5fr) repeat(5, minmax(125px, 1fr)); }
}

@media (max-width: 1199.98px) {
    .ncd-footer-directory-grid { grid-template-columns: repeat(3, 1fr); }
    .ncd-footer-brand { grid-column: 1 / -1; }
    .ncd-footer-brand > p { max-width: 620px; }
    .ncd-footer-partners { grid-template-columns: repeat(3, 1fr); }
    .ncd-footer-partners a { border-bottom: 0; padding-right: 1rem; }
    .ncd-footer-contact-row { grid-template-columns: repeat(2, 1fr); }
    .ncd-footer-contact-row h3 { grid-column: 1 / -1; }
}

@media (max-width: 991.98px) {
    .ncd-footer-subscribe-grid { grid-template-columns: 1fr 1fr; }
    .ncd-footer-subscribe-title { grid-column: 1 / -1; }
    .ncd-footer-subscribe-grid > p { padding-left: 1.2rem; }
}

@media (max-width: 767.98px) {
    .ncd-footer-subscribe { padding: 2.2rem 0; }
    .ncd-footer-subscribe-grid { gap: 1.4rem; grid-template-columns: 1fr; }
    .ncd-footer-subscribe-title { align-items: flex-start; grid-column: auto; }
    .ncd-footer-subscribe-title br { display: none !important; }
    .ncd-footer-subscribe-grid > p { border-left: 0; padding-left: 0; }
    .ncd-footer-directory { padding-top: 2.4rem; }
    .ncd-footer-directory-grid { gap: 1.5rem; grid-template-columns: 1fr 1fr; }
    .ncd-footer-brand { grid-column: 1 / -1; }
    .ncd-footer-partners { grid-template-columns: 1fr; }
    .ncd-footer-partners a { border-bottom: 1px solid var(--footer-directory-rule); }
    .ncd-footer-contact-row { grid-template-columns: 1fr; }
    .ncd-footer-contact-row a { border-left: 0; border-top: 1px solid var(--footer-directory-rule); padding: .8rem 0 0; }
    .ncd-footer-bottom .container { align-items: flex-start; flex-direction: column; gap: .8rem; justify-content: center; padding-bottom: 1.2rem; padding-top: 1.2rem; }
}

@media (max-width: 479.98px) {
    .ncd-footer-subscribe-title { gap: .85rem; }
    .ncd-footer-round-icon { flex-basis: 44px; height: 44px; }
    .ncd-footer-subscribe-row { flex-direction: column; gap: .65rem; }
    .ncd-footer-subscribe-form button { justify-content: center; }
    .ncd-footer-directory-grid { grid-template-columns: 1fr; }
    .ncd-footer-link-group { border-top: 1px solid var(--footer-directory-rule); }
    .ncd-footer-bottom nav { flex-wrap: wrap; gap: .65rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .ncd-footer-link-group a { transition: none; }
}

.home-connect__form .home-button:disabled { cursor: wait; opacity: .68; }
.home-connect__consent { align-items: flex-start; color: var(--home-muted, #60708a); display: flex; font-size: .72rem; gap: 8px; grid-column: 1 / -1; line-height: 1.45; margin: 9px 0 0; }
.home-connect__consent input { accent-color: var(--home-teal, #008f9d); flex: 0 0 auto; margin-top: 2px; }
.home-connect__consent a { color: var(--home-teal, #008f9d); font-weight: 700; }
.home-connect__feedback { color: var(--home-muted, #60708a); font-size: .76rem; grid-column: 1 / -1; margin: 3px 0 0; min-height: 1em; }
.home-connect__feedback.is-success { color: #087565; }
.home-connect__feedback.is-error { color: #a72d39; }

.site-directory-page { background: #f8fafc; color: var(--footer-ink); padding: 3rem 0 5.5rem; }
.site-directory-breadcrumb { align-items: center; color: #708097; display: flex; font-size: .78rem; gap: .45rem; margin-bottom: 4.5rem; }
.site-directory-breadcrumb a { color: var(--footer-ink); }
.site-directory-header { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .7fr); margin-bottom: 4.5rem; }
.site-directory-header > span { color: var(--footer-teal); font-size: .74rem; font-weight: 800; grid-column: 1 / -1; letter-spacing: .12em; margin-bottom: 1rem; text-transform: uppercase; }
.site-directory-header h1 { color: var(--footer-ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 6vw, 6.4rem); letter-spacing: -.055em; line-height: .95; margin: 0; }
.site-directory-header p { align-self: end; border-left: 2px solid var(--footer-gold); color: #5b6c84; line-height: 1.75; margin: 0 0 .3rem; padding-left: 1.5rem; }
.site-directory-grid { background: #fff; border: 1px solid var(--footer-rule); display: grid; grid-template-columns: repeat(4, 1fr); }
.site-directory-grid section { border-right: 1px solid var(--footer-rule); padding: 2rem; }
.site-directory-grid section:last-child { border-right: 0; }
.site-directory-grid h2 { color: var(--footer-teal); font-size: .75rem; font-weight: 800; letter-spacing: .08em; margin: 0 0 1rem; text-transform: uppercase; }
.site-directory-grid a { align-items: center; border-top: 1px solid var(--footer-rule); color: var(--footer-ink); display: flex; font-size: .9rem; justify-content: space-between; min-height: 49px; }
.site-directory-grid a:hover, .site-directory-grid a:focus-visible { color: var(--footer-teal); }
.site-directory-search { align-items: center; background: var(--footer-navy-dark); color: #fff; display: grid; gap: 3rem; grid-template-columns: 1fr minmax(320px, .72fr); margin-top: 2rem; padding: 2.3rem; }
.site-directory-search span { color: #65d1d7; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.site-directory-search h2 { color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 2.5vw, 2.4rem); margin: .5rem 0 0; }
.site-directory-search form { display: flex; }
.site-directory-search input { border: 0; border-radius: 0; min-width: 0; padding: .9rem 1rem; width: 100%; }
.site-directory-search button { background: var(--footer-gold); border: 0; color: var(--footer-ink); font-size: 1.25rem; padding: .75rem 1.1rem; }
.site-info-page { min-height: 65vh; }
.site-info-steps { display: grid; grid-template-columns: repeat(4, 1fr); }
.site-info-steps article { border-left: 1px solid var(--footer-rule); padding: 1.6rem; }
.site-info-steps article > span { color: var(--footer-gold); font-family: Georgia, serif; font-size: 2.5rem; }
.site-info-steps h2 { color: var(--footer-ink); font-size: 1.05rem; margin: 1.6rem 0 .65rem; }
.site-info-steps p, .site-info-copy p { color: #5b6c84; font-size: .9rem; line-height: 1.75; }
.site-info-copy { border-left: 2px solid var(--footer-gold); max-width: 850px; padding-left: 2rem; }
.site-info-copy h2 { color: var(--footer-ink); font-size: 1.2rem; margin: 1.8rem 0 .4rem; }
.site-info-copy h2:first-child { margin-top: 0; }

.newsletter-page, .newsletter-status-page { background: #f5f8fb; color: var(--footer-ink); }
.newsletter-hero { background: linear-gradient(115deg, var(--footer-navy-dark) 0 56%, #0e3565 56% 100%); color: #fff; padding: clamp(4rem, 8vw, 7.5rem) 0; }
.newsletter-hero-grid { align-items: center; display: grid; gap: clamp(3rem, 7vw, 7rem); grid-template-columns: minmax(0, 1.2fr) minmax(340px, .65fr); }
.newsletter-eyebrow { color: var(--footer-gold); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .14em; margin-bottom: 1rem; text-transform: uppercase; }
.newsletter-hero h1, .newsletter-status-card h1 { font-family: Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.newsletter-hero h1 { color: #fff; font-size: clamp(2.7rem, 5.5vw, 5.4rem); line-height: .98; margin: 0 0 1.6rem; }
.newsletter-hero > .container > div > p { color: rgba(255,255,255,.75); font-size: 1rem; line-height: 1.75; margin: 0; max-width: 650px; }
.newsletter-card { background: #fff; border-top: 5px solid var(--footer-gold); color: var(--footer-ink); display: grid; gap: .8rem; padding: 2rem; }
.newsletter-card > label:first-of-type { font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.newsletter-card > input[type="email"] { border: 1px solid #bac8d8; border-radius: 0; min-height: 54px; padding: 0 1rem; width: 100%; }
.newsletter-card > input[type="email"]:focus { border-color: var(--footer-teal); box-shadow: 0 0 0 3px rgba(0,143,157,.14); outline: 0; }
.newsletter-consent { align-items: flex-start; color: #60708a; display: flex; font-size: .75rem; gap: .6rem; line-height: 1.55; }
.newsletter-consent input { accent-color: var(--footer-teal); margin-top: .15rem; }
.newsletter-consent a { color: var(--footer-teal); font-weight: 700; }
.newsletter-card > button { align-items: center; background: var(--footer-gold); border: 0; color: var(--footer-ink); display: flex; font-weight: 800; justify-content: space-between; min-height: 52px; padding: 0 1.1rem; }
.newsletter-card > button:disabled { cursor: wait; opacity: .68; }
.newsletter-feedback { color: #60708a; font-size: .78rem; line-height: 1.5; margin: 0; min-height: 1.2em; }
.newsletter-feedback.is-success { color: #087565; }
.newsletter-feedback.is-error { color: #a72d39; }
.newsletter-benefits { display: grid; grid-template-columns: repeat(3, 1fr); padding-bottom: 5rem; padding-top: 4rem; }
.newsletter-benefits article { border-left: 1px solid var(--footer-rule); padding: 0 2rem; }
.newsletter-benefits article > span { color: var(--footer-teal); font-size: .72rem; font-weight: 800; }
.newsletter-benefits h2 { color: var(--footer-ink); font-size: 1.05rem; margin: 1.1rem 0 .55rem; }
.newsletter-benefits p { color: #60708a; font-size: .86rem; line-height: 1.65; margin: 0; }
.newsletter-status-page { display: grid; min-height: 72vh; padding: 5rem 1rem; place-items: center; }
.newsletter-status-card { background: #fff; border-top: 5px solid var(--footer-gold); box-shadow: 0 22px 70px rgba(8,31,70,.1); max-width: 650px; padding: clamp(2rem, 5vw, 4rem); text-align: center; width: 100%; }
.newsletter-status-mark { align-items: center; border: 1px solid currentColor; border-radius: 50%; color: var(--footer-teal); display: inline-flex; height: 64px; justify-content: center; margin-bottom: 1.4rem; width: 64px; }
.newsletter-status-mark i { font-size: 2rem; }
.newsletter-status-mark.warning { color: #a97400; }
.newsletter-status-mark.error { color: #a72d39; }
.newsletter-status-card h1 { color: var(--footer-ink); font-size: clamp(2rem, 5vw, 3.5rem); margin: 0 0 1rem; }
.newsletter-status-card > p { color: #60708a; line-height: 1.7; margin: 0 auto 1.7rem; max-width: 500px; }
.newsletter-email-summary { background: #f1f6f8; display: flex; flex-direction: column; gap: .25rem; margin: 0 auto 1.8rem; padding: 1rem; }
.newsletter-email-summary span { color: #728197; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.newsletter-status-card form, .newsletter-status-actions { display: flex; gap: .75rem; justify-content: center; }
.newsletter-status-card form a, .newsletter-status-actions a, .newsletter-danger-button { border: 1px solid var(--footer-ink); color: var(--footer-ink); font-size: .82rem; font-weight: 800; padding: .85rem 1.1rem; }
.newsletter-danger-button { background: #9e2735; border-color: #9e2735; color: #fff; }
.newsletter-status-actions a:first-child { background: var(--footer-gold); border-color: var(--footer-gold); }

@media (max-width: 991.98px) {
    .site-directory-header { gap: 2rem; grid-template-columns: 1fr; }
    .site-directory-header p { align-self: auto; }
    .site-directory-grid { grid-template-columns: 1fr 1fr; }
    .site-directory-grid section:nth-child(2) { border-right: 0; }
    .site-directory-grid section:nth-child(-n+2) { border-bottom: 1px solid var(--footer-rule); }
    .site-directory-search { grid-template-columns: 1fr; }
    .site-info-steps { grid-template-columns: 1fr 1fr; }
    .newsletter-hero { background: var(--footer-navy-dark); }
    .newsletter-hero-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .site-directory-page { padding: 2rem 0 4rem; }
    .site-directory-breadcrumb { margin-bottom: 3rem; }
    .site-directory-header { margin-bottom: 3rem; }
    .site-directory-grid { grid-template-columns: 1fr; }
    .site-directory-grid section { border-bottom: 1px solid var(--footer-rule); border-right: 0; }
    .site-directory-search { padding: 1.5rem; }
    .site-directory-search form { flex-direction: column; gap: .5rem; }
    .site-info-steps { grid-template-columns: 1fr; }
    .newsletter-benefits { grid-template-columns: 1fr; }
    .newsletter-benefits article { border-bottom: 1px solid var(--footer-rule); padding: 1.5rem; }
    .newsletter-status-card form, .newsletter-status-actions { flex-direction: column; }
}
