:root { --nrl-green: #004d40; --nrl-dark: #00342b; --nrl-accent: #2a6b2c; --nrl-ink: #1a2b27; --nrl-muted: #5d6965; --nrl-surface: #f3f6f4; --nrl-border: #dbe5e0; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { color: var(--nrl-ink); font-family: Inter, Arial, sans-serif; line-height: 1.6; }
h1, h2, h3 { font-family: "Source Sans 3", Arial, sans-serif; font-weight: 700; }
a { color: var(--nrl-green); }
.utility-bar { background: var(--nrl-green); color: white; font-size: .78rem; }
.utility-bar .container { min-height: 45px; }
.main-nav { border-bottom: 1px solid var(--nrl-border); padding: .9rem 0; }
.main-nav .container { align-items: center; }
.brand { color: var(--nrl-dark); gap: .7rem; margin-right: 1rem; min-width: 0; max-width: min(100%, 360px); white-space: normal; }
.brand img { width: 48px; height: 48px; object-fit: contain; }
.brand span { min-width: 0; }
.brand strong, .brand small { display: block; line-height: 1.15; }
.brand strong { font-family: "Source Sans 3", sans-serif; font-size: 1.3rem; }
.brand small { color: var(--nrl-muted); font-size: .72rem; margin-top: .18rem; }
.nav-link { color: #31423d; font-size: .83rem; font-weight: 600; padding: .6rem .62rem !important; }
.nav-link:hover { color: var(--nrl-green); }
.navbar-toggler { color: var(--nrl-green); font-size: 1.75rem; line-height: 1; margin-left: auto; padding: .25rem .15rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 .15rem rgba(0, 77, 64, .2); }
.btn-brand.nav-contact { font-size: .83rem; padding: .62rem .9rem; white-space: nowrap; }
.btn-brand { background: var(--nrl-green); border-color: var(--nrl-green); color: #fff; font-weight: 700; padding: .7rem 1.1rem; }
.btn-brand:hover { background: var(--nrl-dark); border-color: var(--nrl-dark); color: #fff; }
.btn-outline-brand { border-color: var(--nrl-green); color: var(--nrl-green); font-weight: 700; padding: .7rem 1.1rem; }
.btn-outline-brand:hover { background: var(--nrl-green); color: white; }
.hero-section { background: #fff; }
.py-lg-6 { padding-top: 5.5rem !important; padding-bottom: 5.5rem !important; }
.eyebrow { color: var(--nrl-accent); font-size: .75rem; font-weight: 700; letter-spacing: .12em; margin-bottom: .55rem; }
.hero-section h1 { color: var(--nrl-dark); font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: .95; margin-bottom: 1rem; }
.hero-section h2 { color: var(--nrl-accent); font-size: 1.3rem; line-height: 1.35; }
.hero-section .lead { color: var(--nrl-muted); font-size: 1.05rem; margin: 1.5rem 0 2rem; max-width: 38rem; }
.hero-image { border: 1px solid var(--nrl-border); border-radius: .8rem; box-shadow: 0 14px 34px rgba(0, 52, 43, .12); height: 390px; object-fit: cover; width: 100%; }
.trust-bar { background: var(--nrl-surface); border-bottom: 1px solid var(--nrl-border); color: #43534e; font-size: .85rem; font-weight: 700; }
.trust-bar i { color: var(--nrl-green); font-size: 1.25rem; margin-right: .45rem; }
.section { padding: 5rem 0; scroll-margin-top: 5rem; }
.section-muted { background: var(--nrl-surface); }
.section-heading { margin-bottom: 2.2rem; }
.section-heading h2 { color: var(--nrl-dark); font-size: clamp(2rem, 3vw, 2.6rem); margin-bottom: .3rem; }
.section-heading > p:last-child { color: var(--nrl-muted); margin-bottom: 0; }
.update-card, .news-card, .info-card, .service-card, .data-card, .contact-card { background: #fff; border: 1px solid var(--nrl-border); border-radius: .65rem; overflow: hidden; }
.update-card { transition: transform .2s ease, box-shadow .2s ease; }
.update-card:hover { box-shadow: 0 12px 25px rgba(0, 52, 43, .1); transform: translateY(-3px); }
.update-card img { background: var(--nrl-surface); display: block; height: 185px; object-fit: cover; padding: .5rem; width: 100%; }
time { color: var(--nrl-accent); display: block; font-size: .73rem; font-weight: 700; letter-spacing: .04em; margin-bottom: .55rem; text-transform: uppercase; }
.update-card h3, .news-card h3, .info-card h3, .service-card h3, .data-card h3, .contact-card h3 { color: var(--nrl-dark); font-size: 1.35rem; margin-bottom: .65rem; }
.update-card p, .news-card p, .info-card p, .service-card p, .data-card p { color: var(--nrl-muted); font-size: .9rem; margin-bottom: 0; }
.empty-state { background: var(--nrl-surface); border: 1px dashed #b8c9c1; border-radius: .65rem; color: var(--nrl-muted); padding: 2.5rem; text-align: center; }
.empty-state i { color: var(--nrl-green); display: block; font-size: 2rem; margin-bottom: .5rem; }
.news-card { display: flex; }
.news-card-mark { align-items: center; background: #e5f5e0; color: var(--nrl-accent); display: flex; font-size: 1.8rem; justify-content: center; min-width: 66px; }
.news-card a { font-size: .88rem; font-weight: 700; text-decoration: none; }
.info-card, .service-card, .data-card, .contact-card { height: 100%; padding: 1.7rem; }
.info-card > i, .service-card > i { align-items: center; background: #e5f5e0; border-radius: .45rem; color: var(--nrl-accent); display: inline-flex; font-size: 1.45rem; height: 48px; justify-content: center; margin-bottom: 1rem; width: 48px; }
.service-card { border-top: 4px solid var(--nrl-green); }
.eqas { background: var(--nrl-green); border-radius: 1rem; color: white; overflow: hidden; padding: 3rem; position: relative; }
.eqas:before { background-image: radial-gradient(rgba(255,255,255,.3) 1px, transparent 1px); background-size: 16px 16px; content: ""; inset: 0; opacity: .18; position: absolute; }
.eqas > * { position: relative; }
.eqas h2 { font-size: 2.25rem; }
.eqas p { color: rgba(255,255,255,.86); }
.eqas-item { background: rgba(0,0,0,.14); border: 1px solid rgba(255,255,255,.2); border-radius: .55rem; margin: .7rem 0; padding: 1rem; }
.eqas-item strong, .eqas-item span { display: block; }
.eqas-item span { color: rgba(255,255,255,.82); font-size: .86rem; margin-top: .25rem; }
.faq-list { margin: 0 auto; max-width: 850px; }
.faq-list details { border-bottom: 1px solid var(--nrl-border); padding: .9rem 0; }
.faq-list summary { color: var(--nrl-dark); cursor: pointer; font-weight: 700; list-style: none; padding-right: 2rem; position: relative; }
.faq-list summary:after { color: var(--nrl-accent); content: "+"; font-size: 1.5rem; position: absolute; right: .2rem; top: -.35rem; }
.faq-list details[open] summary:after { content: "-"; }
.faq-list p { color: var(--nrl-muted); margin: .8rem 0 .25rem; }
.contact-card p { color: var(--nrl-muted); margin-bottom: 1.25rem; }
.contact-card p i { color: var(--nrl-accent); display: inline-block; margin-right: .5rem; vertical-align: top; }
.contact-card a { font-size: .88rem; word-break: break-word; }
.contact-card thead { border-bottom: 1px solid var(--nrl-border); color: var(--nrl-dark); font-size: .82rem; }
.contact-card tbody tr + tr { border-top: 1px solid var(--nrl-border); }
.contact-card td, .contact-card th { padding: .85rem .5rem; }
.site-footer { background: var(--nrl-dark); border-top: 4px solid #91d78a; color: white; }
.site-footer h2 { font-size: 1.55rem; }.site-footer h3 { color: #acf4a4; font-size: .86rem; letter-spacing: .06em; text-transform: uppercase; }
.site-footer p, .site-footer small { color: rgba(255,255,255,.75); }.site-footer a { color: rgba(255,255,255,.78); display: block; font-size: .88rem; margin-bottom: .5rem; text-decoration: none; }.site-footer a:hover { color: white; text-decoration: underline; }
@media (max-width: 1199.98px) { .main-nav { padding: .75rem 0; }.navbar-collapse { border-top: 1px solid var(--nrl-border); flex-basis: 100%; margin-top: .9rem; padding-top: .55rem; }.navbar-nav { align-items: stretch !important; gap: .05rem; }.nav-link { border-radius: .35rem; padding: .58rem 0 !important; }.nav-link:hover { background: var(--nrl-surface); padding-left: .55rem !important; }.btn-brand.nav-contact { display: block; margin-top: .55rem; padding: .75rem 1rem; text-align: center; width: 100%; }.hero-image { height: 290px; }.py-lg-6 { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; } }
@media (max-width: 575.98px) { .utility-bar { font-size: .76rem; }.utility-bar .container { justify-content: flex-start !important; min-height: 48px; }.brand { gap: .6rem; max-width: calc(100% - 56px); }.brand strong { font-size: 1rem; line-height: 1.05; }.brand small { font-size: .63rem; }.brand img { flex: 0 0 40px; height: 40px; width: 40px; }.hero-section h1 { font-size: 2.7rem; }.section { padding: 3.8rem 0; }.eqas { padding: 2rem 1.4rem; }.eqas h2 { font-size: 1.9rem; }.news-card-mark { min-width: 54px; }.contact-card td, .contact-card th { min-width: 155px; } }
