/*
Theme Name: North Reef Engineering
Theme URI: https://northreef.co.za
Author: Spout Technologies
Author URI: https://spout.co.za
Description: Bespoke Gutenberg (FSE) block theme for North Reef Engineering — a faithful rebuild of the React marketing site. 100% block theme, no page builders, self-hosted Inter, plugin-free contact form.
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.0
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: northreef
*/

/* ============================================================
   BASE
   ============================================================ */
:root {
	--nr-dark: var(--wp--preset--color--nr-dark);
	--nr-blue: var(--wp--preset--color--nr-blue);
	--nr-light: var(--wp--preset--color--nr-light);
	--nr-cyan: var(--wp--preset--color--nr-cyan);
	--nr-shadow-sm: 0 1px 2px 0 rgba(0,0,0,.05);
	--nr-shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
	--nr-shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1);
	--nr-header-h: 92px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: #fff;
	color: #111827;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 1rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body ::selection { background: var(--nr-cyan); color: #fff; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; }

.nr-inner {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 1.5rem;
}

/* Anchor offset so the fixed header doesn't cover section tops */
#home, #about, #operations, #offerings, #contact { scroll-margin-top: 80px; }

/* Generic buttons (used across hero / nav / cta) */
.nr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	font-weight: 700;
	line-height: 1;
	border: 0;
	cursor: pointer;
	transition: all .2s ease;
	border-radius: .25rem;
	font-size: .95rem;
}
.nr-btn--white { background:#fff; color: var(--nr-blue); padding: 1rem 2rem; box-shadow: var(--nr-shadow-lg); }
.nr-btn--white:hover { background:#f3f4f6; }
.nr-btn--outline { background: transparent; color:#fff; border:2px solid #fff; padding: calc(1rem - 2px) calc(2rem - 2px); }
.nr-btn--outline:hover { background: rgba(255,255,255,.1); }
.nr-btn--grad { background: linear-gradient(90deg, var(--nr-blue) 0%, var(--nr-light) 100%); color:#fff; padding: .55rem 1.25rem; border-radius:.25rem; box-shadow: var(--nr-shadow-lg); font-size:.875rem; }
.nr-btn--grad:hover { box-shadow: var(--nr-shadow-xl); transform: scale(1.05); }
.nr-arrow { transition: transform .2s ease; }
.nr-btn--outline:hover .nr-arrow { transform: translateX(4px); }

/* ============================================================
   HEADER
   ============================================================ */
.nr-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 50;
	padding-block: 1rem;
	transition: background .3s ease, padding .3s ease, box-shadow .3s ease;
}
.nr-header.is-scrolled { background:#fff; box-shadow: var(--nr-shadow-lg); padding-block: .5rem; }

.nr-topbar {
	display: none;
	justify-content: flex-end;
	gap: 1.5rem;
	font-size: .875rem;
	margin-bottom: .5rem;
	color: #e5e7eb;
}
.nr-header.is-scrolled .nr-topbar { color:#4b5563; }
.nr-topbar a { color: inherit; display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap; }
.nr-topbar a svg { width:15px; height:15px; flex:0 0 auto; }
.nr-topbar a:hover { color: var(--nr-cyan); }
@media (min-width: 1024px) { .nr-topbar { display:flex; } }

.nr-header__bar { display:flex; align-items:center; justify-content:space-between; }
.nr-brand { display:inline-flex; align-items:center; flex-shrink:0; }
.nr-logo { height: 56px; width:auto; }
.nr-logo--dark { display:none; }
.nr-header.is-scrolled .nr-logo--white { display:none; }
.nr-header.is-scrolled .nr-logo--dark { display:block; }

.nr-menu { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap: 2rem; }
.nr-menu a:not(.nr-btn) {
	font-size: .875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #fff;
	transition: color .2s ease;
}
.nr-header.is-scrolled .nr-menu a:not(.nr-btn) { color:#1f2937; }
.nr-menu a:not(.nr-btn):hover { color: var(--nr-cyan); }

.nr-nav__toggle { display:none; background:none; border:0; padding:.5rem; color:#fff; cursor:pointer; }
.nr-header.is-scrolled .nr-nav__toggle { color: var(--nr-dark); }

@media (max-width: 1023px) {
	.nr-nav__toggle { display:inline-flex; }
	.nr-menu {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		background:#fff;
		box-shadow: var(--nr-shadow-xl);
		border-top:1px solid #f3f4f6;
		padding: 1rem 1.5rem;
		display: none;
	}
	.nr-header.is-open .nr-menu { display:flex; }
	.nr-menu a:not(.nr-btn) { color:#1f2937 !important; padding:.85rem 0; border-bottom:1px solid #f9fafb; letter-spacing:0; text-transform:none; font-weight:500; }
	.nr-menu__cta { margin-top:1rem; }
	.nr-menu__cta .nr-btn--grad { width:100%; }
}

/* ============================================================
   HERO
   ============================================================ */
.nr-hero {
	position: relative;
	height: 100vh;
	min-height: 600px;
	display: flex;
	align-items: center;
	overflow: hidden;
}
.nr-hero__bg { position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; }
.nr-hero__overlay { position:absolute; inset:0; z-index:1; background: var(--wp--preset--gradient--nr-hero); }
.nr-hero__inner { position:relative; z-index:2; text-align:center; }
.nr-hero__content { max-width: 56rem; }
.nr-hero__title {
	color:#fff;
	font-weight:800;
	font-size: clamp(2.25rem, 1.2rem + 5.2vw, 4.5rem);
	line-height: 1.1;
	margin: 0 0 1.5rem;
}
.nr-hero__subtitle {
	color:#e5e7eb;
	font-weight:300;
	font-size: clamp(1.25rem, 1.05rem + 1vw, 1.5rem);
	max-width: 42rem;
	margin: 0 0 2.5rem;
}
.nr-hero__actions { display:flex; flex-direction:column; gap:1rem; justify-content:center; }
.nr-hero__scroll { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:2; display:none; }
.nr-hero__scroll span { display:block; width:2rem; height:3rem; border:2px solid rgba(255,255,255,.3); border-radius:9999px; position:relative; animation: nr-bounce 1.5s infinite; }
.nr-hero__scroll span::after { content:""; position:absolute; top:.5rem; left:50%; transform:translateX(-50%); width:.25rem; height:.75rem; background:rgba(255,255,255,.6); border-radius:9999px; }
@media (min-width:768px) {
	.nr-hero__inner { text-align:left; }
	.nr-hero__actions { flex-direction:row; justify-content:flex-start; }
	.nr-hero__scroll { display:block; }
}
@keyframes nr-bounce { 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,-25%);} }

/* ============================================================
   CLIENTS MARQUEE
   ============================================================ */
.nr-clients { padding-block: 3rem; background:#f9fafb; border-bottom:1px solid #e5e7eb; overflow:hidden; }
.nr-clients__title { text-align:center; font-size:.875rem; font-weight:700; color:#6b7280; text-transform:uppercase; letter-spacing:.1em; margin-bottom:2rem; }
.nr-marquee { position:relative; width:100%; }
.nr-marquee::before, .nr-marquee::after { content:""; position:absolute; top:0; bottom:0; width:5rem; z-index:10; pointer-events:none; }
.nr-marquee::before { left:0; background:linear-gradient(90deg,#f9fafb,transparent); }
.nr-marquee::after { right:0; background:linear-gradient(270deg,#f9fafb,transparent); }
.nr-marquee__track { display:flex; gap:3rem; width:max-content; animation: nr-scroll 40s linear infinite; }
.nr-marquee:hover .nr-marquee__track { animation-play-state: paused; }
.nr-marquee__item { flex:0 0 auto; height:6rem; width:12rem; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid #f3f4f6; border-radius:.25rem; box-shadow: var(--nr-shadow-sm); padding:1rem; transition: transform .3s ease; }
.nr-marquee__item:hover { transform: scale(1.05); }
.nr-marquee__item img { max-height:4rem; width:100%; object-fit:contain; }
@keyframes nr-scroll { from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce) { .nr-marquee__track { animation:none; flex-wrap:wrap; justify-content:center; } }

/* ============================================================
   ABOUT
   ============================================================ */
.nr-about { padding-block: 5rem; background:#fff; }
.nr-section-head { text-align:center; margin-bottom:4rem; }
.nr-section-head h2 { font-size: clamp(1.875rem,1.4rem+2.4vw,2.25rem); font-weight:700; color:var(--nr-dark); margin:0 0 1rem; }
.nr-section-head__rule { width:6rem; height:.25rem; background:var(--nr-cyan); margin:0 auto; }
.nr-about__grid { display:grid; gap:3rem; align-items:center; margin-bottom:5rem; }
.nr-about__history { color:#374151; font-size:1.125rem; line-height:1.75; }
.nr-about__history p { margin:0 0 1.5rem; }
.nr-about__media { position:relative; }
.nr-about__media-deco { position:absolute; inset:-1rem; background:rgba(46,139,192,.1); border-radius:.75rem; transform:rotate(3deg); }
.nr-about__media-frame { position:relative; height:20rem; border-radius:.75rem; overflow:hidden; box-shadow:var(--nr-shadow-xl); background:#f3f4f6; }
.nr-about__media-frame img { width:100%; height:100%; object-fit:cover; }
.nr-cards { display:grid; gap:2rem; }
.nr-card { background:#f9fafb; padding:2rem; border-radius:.75rem; border:1px solid #f3f4f6; transition: box-shadow .3s ease; }
.nr-card:hover { box-shadow: var(--nr-shadow-lg); }
.nr-card__icon { width:3rem; height:3rem; border-radius:9999px; display:flex; align-items:center; justify-content:center; color:#fff; margin-bottom:1.5rem; }
.nr-card__icon svg { width:24px; height:24px; }
.nr-card__icon--blue { background:var(--nr-blue); }
.nr-card__icon--light { background:var(--nr-light); }
.nr-card__icon--cyan { background:var(--nr-cyan); }
.nr-card__icon--dark { background:var(--nr-dark); }
.nr-card h3 { font-size:1.25rem; font-weight:700; color:var(--nr-dark); margin:0 0 .75rem; }
.nr-card p { color:#4b5563; font-size:.875rem; margin:0; line-height:1.6; }
@media (min-width:768px) {
	.nr-about__grid { grid-template-columns: 1fr 1fr; }
	.nr-cards { grid-template-columns: 1fr 1fr; }
}
@media (min-width:1024px) { .nr-cards { grid-template-columns: repeat(4,1fr); } }

/* ============================================================
   OPERATIONS (tabs)
   ============================================================ */
.nr-ops { padding-block: 3rem; background:#f8fafc; }
.nr-ops__head { text-align:center; margin-bottom:2.5rem; }
.nr-ops__head h2 { font-size: clamp(1.5rem,1.1rem+2vw,2.25rem); font-weight:700; color:var(--nr-dark); margin:0 0 1rem; }
.nr-ops__head p { color:#4b5563; max-width:42rem; margin:0 auto; font-size:1rem; }
.nr-ops__tabs { display:flex; border-bottom:1px solid #e5e7eb; margin-bottom:2rem; flex-wrap:wrap; }
.nr-ops__tab { flex:1 1 auto; min-width:140px; padding:1rem 1.5rem; text-align:center; background:none; border:0; border-bottom:4px solid transparent; cursor:pointer; transition:all .3s ease; display:flex; align-items:center; justify-content:center; gap:.75rem; color:#4b5563; font-weight:700; font-size:1.125rem; }
.nr-ops__tab svg { width:24px; height:24px; }
.nr-ops__tab:hover { background:#f9fafb; }
.nr-ops__tab[aria-selected="true"] { background:#fff; }
.nr-ops__tab[data-nr-tab="machining"][aria-selected="true"]{ color:var(--nr-blue); border-bottom-color:var(--nr-blue); }
.nr-ops__tab[data-nr-tab="assembly"][aria-selected="true"]{ color:var(--nr-light); border-bottom-color:var(--nr-light); }
.nr-ops__tab[data-nr-tab="inspection"][aria-selected="true"]{ color:var(--nr-cyan); border-bottom-color:var(--nr-cyan); }
.nr-ops__panel { display:none; background:#fff; border-radius:.75rem; box-shadow:var(--nr-shadow-lg); padding:2rem; }
.nr-ops__panel.is-active { display:block; }
.nr-ops__panel-row { display:flex; align-items:flex-start; gap:1.5rem; }
.nr-ops__panel-icon { padding:1rem; border-radius:.75rem; flex-shrink:0; }
.nr-ops__panel-icon svg { width:48px; height:48px; }
.nr-ops__panel[data-nr-panel="machining"] .nr-ops__panel-icon{ background:rgba(22,78,135,.1); color:var(--nr-blue);}
.nr-ops__panel[data-nr-panel="assembly"] .nr-ops__panel-icon{ background:rgba(46,139,192,.1); color:var(--nr-light);}
.nr-ops__panel[data-nr-panel="inspection"] .nr-ops__panel-icon{ background:rgba(74,187,214,.1); color:var(--nr-cyan);}
.nr-ops__panel h3 { font-size:1.5rem; font-weight:700; color:#1f2937; margin:0 0 .75rem; }
.nr-ops__panel .nr-ops__desc { color:#4b5563; margin:0 0 1.5rem; font-weight:500; }
.nr-ops__panel .nr-ops__details { color:#4b5563; margin:0; line-height:1.7; }
@media (max-width:767px) {
	.nr-ops__panel-row { flex-direction:column; }
	.nr-ops__tab { min-width:0; flex-basis:100%; justify-content:flex-start; }
}

/* ============================================================
   OFFERINGS (dark, products/services toggle + gallery)
   ============================================================ */
.nr-offerings { padding-block:5rem; background:var(--nr-dark); color:#fff; position:relative; overflow:hidden; }
.nr-offerings__dots { position:absolute; inset:0; opacity:.1; background-image: radial-gradient(circle at 2px 2px, #fff 1px, transparent 0); background-size:40px 40px; }
.nr-offerings__inner { position:relative; z-index:1; }
.nr-offerings__head { display:flex; flex-direction:column; gap:1.5rem; justify-content:space-between; align-items:flex-start; margin-bottom:3rem; border-bottom:1px solid #374151; padding-bottom:1rem; }
.nr-offerings__head h2 { font-size:clamp(1.875rem,1.4rem+2.4vw,2.25rem); font-weight:700; margin:0 0 .5rem; color:#fff; }
.nr-offerings__head p { color:#9ca3af; margin:0; }
.nr-seg { display:flex; gap:1rem; }
.nr-seg__btn { padding:.5rem 1.5rem; border-radius:9999px; font-weight:500; background:transparent; color:#9ca3af; border:1px solid #4b5563; cursor:pointer; transition:all .2s ease; }
.nr-seg__btn:hover { color:#fff; }
.nr-seg__btn[aria-selected="true"] { background:var(--nr-cyan); color:var(--nr-dark); border-color:var(--nr-cyan); }
.nr-seg-panel { display:none; }
.nr-seg-panel.is-active { display:block; }
.nr-offerings__grid { display:grid; gap:2rem; }
.nr-prod-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
.nr-prod-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); padding:1.25rem; border-radius:.75rem; transition:border-color .2s ease; }
.nr-prod-card:hover { border-color:rgba(74,187,214,.5); }
.nr-prod-card h4 { font-size:1.125rem; font-weight:700; margin:0 0 .75rem; display:flex; align-items:center; gap:.5rem; color:#fff; }
.nr-prod-card h4 svg { width:20px; height:20px; color:var(--nr-cyan); }
.nr-prod-card ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.nr-prod-card li { display:flex; align-items:center; gap:.5rem; color:#9ca3af; font-size:.875rem; }
.nr-prod-card li::before { content:""; width:.375rem; height:.375rem; border-radius:9999px; background:var(--nr-cyan); flex-shrink:0; }
.nr-svc-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); padding:1.5rem; border-radius:.75rem; display:flex; align-items:flex-start; gap:1rem; transition:background .2s ease; }
.nr-svc-card:hover { background:rgba(255,255,255,.1); }
.nr-svc-card__icon { background:var(--nr-blue); padding:.75rem; border-radius:.5rem; flex-shrink:0; color:#fff; display:flex; }
.nr-svc-card__icon svg { width:24px; height:24px; }
.nr-svc-card h4 { font-size:1.25rem; font-weight:700; margin:0 0 .5rem; color:#fff; }
.nr-svc-card p { color:#9ca3af; margin:0; }
.nr-gallery { position:relative; width:100%; aspect-ratio:3/2; max-height:400px; border-radius:.75rem; overflow:hidden; background:rgba(0,0,0,.2); }
.nr-gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .7s ease; }
.nr-gallery img.is-active { opacity:1; }
.nr-gallery__dots { position:absolute; bottom:.75rem; left:50%; transform:translateX(-50%); display:flex; gap:.375rem; z-index:2; }
.nr-gallery__dot { width:.5rem; height:.5rem; border-radius:9999px; background:rgba(255,255,255,.5); border:0; padding:0; cursor:pointer; transition:all .2s ease; }
.nr-gallery__dot:hover { background:rgba(255,255,255,.8); }
.nr-gallery__dot.is-active { background:var(--nr-cyan); width:1rem; }
@media (min-width:768px) {
	.nr-offerings__head { flex-direction:row; align-items:flex-end; }
	.nr-offerings__grid { grid-template-columns:1fr 1fr; }
	.nr-prod-grid { grid-template-columns:1fr 1fr; }
	.nr-gallery-wrap { display:flex; align-items:center; justify-content:center; }
}

/* ============================================================
   CONTACT
   ============================================================ */
.nr-contact { position:relative; padding-block:5rem; background:#fff; overflow:hidden; }
.nr-contact__deco { position:absolute; top:0; right:0; width:33%; height:100%; background:#f8fafc; transform:skewX(12deg) translateX(5rem); display:none; }
@media (min-width:1024px){ .nr-contact__deco { display:block; } }
.nr-contact__inner { position:relative; z-index:1; }
.nr-contact__grid { display:grid; gap:3rem; align-items:start; }
.nr-info { display:flex; flex-direction:column; gap:1.5rem; }
.nr-info__row { display:grid; grid-template-columns:1fr; gap:1rem; }
.nr-info-card { background:#f8fafc; padding:1.25rem; border-radius:.75rem; border:1px solid #f3f4f6; }
.nr-info-card__head { display:flex; align-items:center; gap:.75rem; margin-bottom:.75rem; }
.nr-info-card__icon { background:rgba(22,78,135,.1); color:var(--nr-blue); padding:.625rem; border-radius:9999px; display:flex; }
.nr-info-card__icon svg { width:20px; height:20px; }
.nr-info-card h4 { font-weight:700; color:#111827; margin:0; font-size:1rem; }
.nr-info-card a, .nr-info-card .nr-info-card__text { color:#4b5563; font-size:.875rem; }
.nr-info-card a:hover { color:var(--nr-cyan); }
.nr-info-card__text { white-space:pre-line; }
.nr-info-card__emails p { margin:0 0 .25rem; }
.nr-info-card__emails .lbl { font-weight:500; color:#374151; }
.nr-info-card__emails a { text-decoration:underline; }
.nr-map { border-radius:.5rem; overflow:hidden; height:14rem; box-shadow:var(--nr-shadow-lg); border:1px solid #e5e7eb; }
.nr-map iframe { width:100%; height:100%; border:0; display:block; }
@media (min-width:640px){ .nr-info__row { grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .nr-contact__grid { grid-template-columns:1fr 1fr; } .nr-info { padding-right:3rem; } }

/* Contact form (theme-handled, no plugin) */
.nr-form-card { background:#fff; padding:2rem; border-radius:1rem; box-shadow:var(--nr-shadow-xl); border:1px solid #f3f4f6; }
.nr-form-card h3 { font-size:1.5rem; font-weight:700; color:#1f2937; margin:0 0 1.5rem; }
.nr-form { display:flex; flex-direction:column; gap:1.5rem; }
.nr-form__row { display:grid; grid-template-columns:1fr; gap:1.5rem; }
.nr-field label { display:block; font-size:.875rem; font-weight:500; color:#374151; margin-bottom:.5rem; }
.nr-field input, .nr-field textarea {
	width:100%; padding:.75rem 1rem; border-radius:.5rem; border:1px solid #d1d5db;
	font-family:inherit; font-size:1rem; outline:none; transition:all .2s ease; background:#fff; color:#111827;
}
.nr-field input:focus, .nr-field textarea:focus { border-color:transparent; box-shadow:0 0 0 2px var(--nr-cyan); }
.nr-field textarea { resize:vertical; min-height:7rem; }
.nr-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.nr-form__submit {
	width:100%; background:var(--nr-blue); color:#fff; font-weight:700; padding:1rem; border:0; border-radius:.5rem;
	cursor:pointer; box-shadow:var(--nr-shadow-lg); transition:all .2s ease; font-size:1rem;
	display:flex; align-items:center; justify-content:center; gap:.5rem;
}
.nr-form__submit:hover { background:#1e40af; box-shadow:var(--nr-shadow-xl); transform:translateY(-2px); }
.nr-alert { display:flex; align-items:center; gap:.5rem; padding:1rem; border-radius:.5rem; font-size:.95rem; }
.nr-alert--ok { background:#f0fdf4; border:1px solid #bbf7d0; color:#15803d; }
.nr-alert--err { background:#fef2f2; border:1px solid #fecaca; color:#b91c1c; }
@media (min-width:768px){ .nr-form__row { grid-template-columns:1fr 1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
.nr-footer { background:var(--nr-dark); color:#fff; border-top:1px solid #1f2937; }
.nr-footer__grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; padding-block:2rem; }
.nr-footer__brand { grid-column:1 / -1; }
.nr-footer__brand img { height:56px; width:auto; margin-bottom:1rem; }
.nr-footer__desc { color:#9ca3af; max-width:24rem; margin:0 0 1.5rem; font-size:1rem; }
.nr-social { display:flex; flex-wrap:wrap; gap:.5rem; }
.nr-social a { width:2.5rem; height:2.5rem; border-radius:9999px; display:flex; align-items:center; justify-content:center; background:#1f2937; color:#fff; transition:all .2s ease; }
.nr-social a:hover { background:var(--nr-cyan); color:var(--nr-dark); }
.nr-social svg { width:18px; height:18px; }
.nr-footer__col h4 { font-size:1.125rem; font-weight:700; color:var(--nr-cyan); margin:0 0 1rem; }
.nr-footer__col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.nr-footer__col li, .nr-footer__col a { color:#9ca3af; font-size:1rem; }
.nr-footer__col a:hover { color:#fff; }
.nr-footer__bottom { border-top:1px solid #1f2937; margin-top:2rem; padding-block:2rem; display:flex; flex-direction:column; gap:1rem; justify-content:space-between; align-items:center; font-size:.875rem; color:#6b7280; text-align:center; }
.nr-footer__bottom a { color:#6b7280; }
.nr-footer__bottom a:hover { color:#fff; }
.nr-footer__links { display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; justify-content:center; }
@media (min-width:768px) {
	.nr-footer__grid { grid-template-columns:2fr 1fr 1fr; gap:2rem; padding-block:3rem; }
	.nr-footer__brand { grid-column:auto; }
	.nr-footer__bottom { flex-direction:row; text-align:left; }
}

/* ============================================================
   OFFERINGS product grid (4-up now the gallery is its own section)
   ============================================================ */
@media (min-width:1024px) { .nr-prod-grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* ============================================================
   CERTIFICATIONS strip
   ============================================================ */
.nr-certs { padding-block:4rem; background:#f8fafc; }
.nr-certs__head { text-align:center; margin-bottom:2.5rem; }
.nr-certs__head h2 { font-size:clamp(1.5rem,1.2rem+1.5vw,1.875rem); font-weight:700; color:var(--nr-dark); margin:0 0 .75rem; }
.nr-certs__head p { color:#4b5563; max-width:46rem; margin:0 auto; font-size:.95rem; }
.nr-certs__grid { display:grid; gap:1.5rem; grid-template-columns:1fr; }
.nr-cert-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:.4rem; background:#fff; border:1px solid #e5e7eb; border-radius:.75rem; padding:1.75rem 1.5rem; box-shadow:var(--nr-shadow-sm); transition:all .2s ease; color:inherit; }
.nr-cert-card:hover { box-shadow:var(--nr-shadow-lg); transform:translateY(-2px); border-color:var(--nr-cyan); }
.nr-cert-card__icon { width:3.25rem; height:3.25rem; border-radius:9999px; background:rgba(22,78,135,.1); color:var(--nr-blue); display:flex; align-items:center; justify-content:center; margin-bottom:.25rem; }
.nr-cert-card__icon svg { width:28px; height:28px; }
.nr-cert-card__title { font-size:1.25rem; font-weight:800; color:var(--nr-dark); }
.nr-cert-card__sub { font-size:.875rem; color:#4b5563; }
.nr-cert-card__link { margin-top:.5rem; font-size:.78rem; font-weight:700; color:var(--nr-blue); text-transform:uppercase; letter-spacing:.05em; display:inline-flex; align-items:center; gap:.35rem; }
.nr-cert-card__link svg { width:14px; height:14px; }
@media (min-width:768px) { .nr-certs__grid { grid-template-columns:repeat(3,1fr); } }

/* ============================================================
   GALLERY — Our Work (captioned grids)
   ============================================================ */
.nr-gallery-sec { padding-block:5rem; background:#f9fafb; }
.nr-seg--center { justify-content:center; margin-bottom:2.5rem; }
.nr-gallery-sec .nr-seg__btn { background:#fff; color:var(--nr-blue); border:1px solid #d1d5db; }
.nr-gallery-sec .nr-seg__btn:hover { color:var(--nr-dark); border-color:var(--nr-blue); }
.nr-gallery-sec .nr-seg__btn[aria-selected="true"] { background:var(--nr-blue); color:#fff; border-color:var(--nr-blue); }
.nr-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,1fr); }
.nr-grid__item { margin:0; }
.nr-grid__item img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:.5rem; background:#e5e7eb; box-shadow:var(--nr-shadow-sm); display:block; transition:transform .3s ease, box-shadow .3s ease; }
.nr-grid__item:hover img { transform:translateY(-3px); box-shadow:var(--nr-shadow-lg); }
.nr-grid__item figcaption { margin-top:.6rem; font-size:.8rem; font-weight:600; color:#374151; text-align:center; line-height:1.3; }
@media (min-width:640px) { .nr-grid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:1024px) { .nr-grid { grid-template-columns:repeat(4,1fr); gap:1.5rem; } }
