@font-face {
	font-family: "NFNE Carlito";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/carlito-regular-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0100-017F, U+2000-206F, U+20A0-20CF, U+2190-21FF, U+25A0-25FF, U+2600-26FF, U+2713-2714;
}
@font-face {
	font-family: "NFNE Carlito";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/carlito-bold-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0100-017F, U+2000-206F, U+20A0-20CF, U+2190-21FF, U+25A0-25FF, U+2600-26FF, U+2713-2714;
}

:root {
	--nfne-ink: #071827;
	--nfne-ink-soft: #132536;
	--nfne-gold: #cf8a12;
	--nfne-gold-text: #966000;
	--nfne-gold-soft: #e7ba63;
	--nfne-ivory: #f8f5ef;
	--nfne-mist: #eef1f3;
	--nfne-paper: #fff;
	--nfne-text: #1c2b39;
	--nfne-muted: #617080;
	--nfne-border: rgba(7, 24, 39, .12);
	--nfne-shadow: 0 18px 46px rgba(7, 24, 39, .09);
	--nfne-radius: 12px;
	--nfne-content: 1380px;
	--nfne-gutter: clamp(1rem, 3vw, 2rem);
}

html { scroll-behavior: smooth; }
html.has-modal-open { overflow: hidden; }
*,
*::before,
*::after { box-sizing: border-box; }
body {
	background: var(--nfne-ivory);
	font-family: "NFNE Carlito", "Carlito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-rendering: optimizeLegibility;
}
body.admin-bar .nfne-site-header { top: 32px; }
.wp-site-blocks { overflow: clip; }
.nfne-main { min-height: 50vh; }
.nfne-main:not(.nfne-main--home):not(.nfne-main--full):not(.nfne-main--page) { padding-top: clamp(2.25rem, 4vw, 4rem); padding-bottom: clamp(2.75rem, 5vw, 4.75rem); }
.nfne-section { padding-top: clamp(1.4rem, 2.2vw, 2.6rem); padding-bottom: clamp(1.4rem, 2.2vw, 2.6rem); }
.nfne-section--compact { padding-top: clamp(.85rem, 1.25vw, 1.25rem); padding-bottom: clamp(.85rem, 1.25vw, 1.25rem); }
.nfne-section__inner { width: 100%; max-width: var(--nfne-content) !important; }
.nfne-section__inner > .nfne-kicker:first-child { margin-top: 0; margin-bottom: .35rem; }
.nfne-section__inner > h2 { max-width: 36ch; margin-top: 0; margin-bottom: .65rem; }
.nfne-section__inner > .nfne-section-intro { margin-top: 0; margin-bottom: clamp(1.15rem, 2vw, 1.8rem); }
.nfne-section__inner > .nfne-card-grid { margin-top: clamp(.75rem, 1.4vw, 1.15rem); margin-bottom: 0; }
.nfne-section--tint { background: #f3f0e9; }
.nfne-section--dark { background: var(--nfne-ink); color: #dfe7ec; }
.nfne-section--dark h2,
.nfne-section--dark h3 { color: #fff; }
.nfne-section--dark .nfne-section-intro { color: #b9c6cf; }
.nfne-kicker { color: var(--nfne-gold-text); font-size: .76rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.nfne-section--dark .nfne-kicker { color: var(--nfne-gold-soft); }
.nfne-lead { max-width: 68ch; color: var(--nfne-muted); font-size: clamp(1.05rem, 1rem + .22vw, 1.2rem); }
.nfne-section-intro,
.nfne-page-hero__intro { max-width: 76ch; color: var(--nfne-muted); font-size: clamp(1.02rem, 1rem + .16vw, 1.16rem); }
.nfne-eyebrow-line { width: 56px; height: 2px; background: var(--nfne-gold); }
.nfne-gold-stop { color: var(--nfne-gold); }

/* Header: a slim number-plate utility line and the floating white navigation from the approved concept. */
.nfne-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	padding: 0 0 .75rem;
	background: rgba(248, 245, 239, .98);
	transition: transform .25s ease, box-shadow .25s ease;
}
.nfne-site-header.nfne-header--hidden { transform: translateY(calc(-100% - 1rem)); pointer-events: none; }
.nfne-site-header.nfne-header--menu-open { transform: none !important; pointer-events: auto; }
.nfne-header-top {
	max-width: none !important;
	width: 100%;
	min-height: 32px;
	padding: .3rem max(clamp(1rem, 3vw, 2rem), calc((100vw - var(--nfne-content)) / 2));
	color: #e8edf1;
	background: var(--nfne-ink);
	font-family: "NFNE Carlito", "Carlito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: .84rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .055em;
	text-transform: uppercase;
	-webkit-font-smoothing: antialiased;
	text-rendering: geometricPrecision;
}
.nfne-header-top .has-small-font-size,
.nfne-header-top .nfne-site-detail,
.nfne-header-top .nfne-site-detail a {
	font-size: inherit !important;
	font-weight: inherit;
	line-height: inherit;
}
.nfne-header-top a { color: #fff; text-decoration: none; }
.nfne-header-top p { margin: 0; }
.nfne-header-top > p { flex: 1 1 auto; min-width: 22rem; }
.nfne-header-contacts { align-items: center; justify-content: flex-end; gap: .4rem 1rem; }
.nfne-header-contact { align-items: center; gap: .35rem; white-space: nowrap; }
.nfne-header-top .nfne-site-detail,
.nfne-header-top .nfne-site-detail a { font-variant-numeric: lining-nums tabular-nums; }
.nfne-header-contact__label { color: #c5d0d8; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.nfne-header-main {
	width: min(var(--nfne-content), calc(100% - 2rem));
	min-height: 74px;
	margin-right: auto !important;
	margin-left: auto !important;
	margin-top: .75rem !important;
	padding: .45rem .8rem .45rem 1rem;
	gap: clamp(1rem, 2vw, 2rem);
	border: 1px solid rgba(7, 24, 39, .08);
	border-radius: 12px;
	background: rgba(255, 255, 255, .98);
	box-shadow: var(--nfne-shadow);
}
.nfne-header-identity { flex-shrink: 0; gap: .7rem; }
.nfne-header-main .wp-block-site-logo img { display: block; width: auto; max-height: 54px; }
.nfne-header-wordmark,
.nfne-brand-wordmark { margin: 0; white-space: nowrap; font-family: "UKNumberPlate", "NFNE Carlito", "Carlito", sans-serif; font-size: clamp(.86rem, .72rem + .25vw, 1.05rem); font-weight: 400; letter-spacing: .16em; text-transform: uppercase; }
.nfne-header-wordmark a,
.nfne-brand-wordmark a { color: var(--nfne-ink); text-decoration: none; }
.nfne-primary-nav { flex: 1 1 auto; }
.nfne-primary-nav a { text-decoration: none; }
.nfne-primary-nav .wp-block-navigation-item__content { position: relative; padding-block: .45rem; }
.nfne-primary-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: var(--nfne-gold); transform: scaleX(0); transition: transform .2s ease; }
.nfne-primary-nav .wp-block-navigation-item__content:hover::after,
.nfne-primary-nav .current-menu-item > .wp-block-navigation-item__content::after,
.nfne-primary-nav .current-menu-parent > .wp-block-navigation-item__content::after,
.nfne-primary-nav .current-menu-ancestor > .wp-block-navigation-item__content::after,
.nfne-primary-nav .wp-block-navigation-submenu:has(.current-menu-item) > .wp-block-navigation-item__content::after,
.nfne-primary-nav .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }
.nfne-primary-nav .current-menu-parent > .wp-block-navigation-item__content,
.nfne-primary-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.nfne-primary-nav .wp-block-navigation-submenu:has(.current-menu-item) > .wp-block-navigation-item__content { color: var(--nfne-ink); }
.nfne-primary-nav .wp-block-navigation__submenu-container { border: 1px solid var(--nfne-border); border-radius: 10px; box-shadow: var(--nfne-shadow); overflow: hidden; }
.nfne-mobile-nav-only { display: none !important; }
.nfne-header-phone { flex: 0 0 auto; margin: 0; }
.nfne-header-phone a { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--nfne-border); border-radius: 50%; color: var(--nfne-gold-text); font-size: 1.15rem; line-height: 1; text-decoration: none; }
.nfne-header-phone svg { display: block; }
.nfne-header-cta { flex-shrink: 0; }
.nfne-header-cta .wp-block-button__link,
.nfne-button-dark .wp-block-button__link { border-color: var(--nfne-ink); background: var(--nfne-ink); color: #fff; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 1px solid currentColor; color: var(--nfne-ink); }
.wp-element-button { transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.wp-element-button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(7, 24, 39, .13); }
.wp-element-button:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible { outline: 3px solid rgba(207, 138, 18, .52); outline-offset: 3px; }

/* Homepage hero. */
.nfne-home-hero { position: relative; z-index: 1; padding-top: .4rem; padding-bottom: clamp(.75rem, 1.2vw, 1rem); background: var(--nfne-ivory); }
.nfne-home-hero__grid { height: auto; min-height: clamp(500px, 38vw, 560px); gap: 0; align-items: stretch; }
.nfne-home-hero__grid > .wp-block-column { min-width: 0; align-self: stretch !important; }
.nfne-home-hero__visual { overflow: hidden; border-radius: 0 0 28px 0; background: var(--nfne-ink-soft); }
.nfne-home-hero__image { width: 100%; height: 100%; margin: 0; }
.nfne-home-hero__image img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.nfne-home-hero__content { display: flex; box-sizing: border-box; flex-direction: column; align-self: stretch !important; justify-content: center; padding: clamp(2rem, 3.25vw, 3.25rem); background: #fbfaf7; }
.nfne-home-hero__content > * { width: 100%; }
.nfne-home-hero__content h1 { max-width: none; margin-top: .45rem; margin-bottom: 1rem; color: var(--nfne-ink); font-size: clamp(2.65rem, 2.05rem + 1.6vw, 3.75rem); line-height: .99; overflow-wrap: normal; word-break: normal; }
.nfne-home-hero__content .nfne-lead { max-width: 47ch; margin-bottom: 1.55rem; color: var(--nfne-text); }
.nfne-home-hero__actions { gap: .9rem; }

/* Assurance strip. */
.nfne-home-trust-section { position: relative; z-index: 0; clear: both; margin: 0 !important; padding: clamp(1.2rem, 2.2vw, 1.9rem) 0 clamp(.5rem, 1vw, .9rem); background: var(--nfne-ivory); }
.nfne-home-trust-section > .nfne-trust-strip { position: static; z-index: auto; margin-top: 0 !important; margin-bottom: 0 !important; }
.nfne-trust-strip { position: relative; z-index: 1; width: min(var(--nfne-content), calc(100% - var(--nfne-gutter) - var(--nfne-gutter))) !important; max-width: var(--nfne-content) !important; margin-right: auto !important; margin-left: auto !important; padding: 0; }
.nfne-trust-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; max-width: none !important; gap: 0 !important; border: 1px solid var(--nfne-border); border-radius: 10px; background: rgba(255, 255, 255, .72); overflow: hidden; box-shadow: 0 10px 30px rgba(7, 24, 39, .035); }
.nfne-trust-item { min-width: 0; min-height: 82px; height: 100%; padding: 1rem 1.35rem; gap: 1rem; align-items: center; border-right: 1px solid var(--nfne-border); }
.nfne-trust-item:last-child { border-right: 0; }
.nfne-trust-item .wp-block-group { min-width: 0; gap: .12rem; }
.nfne-trust-title { margin: 0 !important; color: var(--nfne-ink) !important; font-family: "NFNE Carlito", "Carlito", sans-serif; font-size: .94rem !important; font-weight: 700; letter-spacing: 0; line-height: 1.25 !important; }
.nfne-trust-item p { margin: 0; color: var(--nfne-muted); font-size: .82rem; line-height: 1.4; }
.nfne-trust-check { display: grid; flex: 0 0 auto; place-items: center; width: 34px; height: 34px; margin: 0; border: 1px solid var(--nfne-gold); border-radius: 50%; color: var(--nfne-gold-text) !important; font-size: 1rem !important; }

/* Compact homepage service row. */
.nfne-home-services { padding-top: clamp(1.3rem, 2.8vw, 2.4rem); padding-bottom: 1.2rem; }
.nfne-home-services__heading { width: min(var(--nfne-content), calc(100% - var(--nfne-gutter) - var(--nfne-gutter))) !important; max-width: var(--nfne-content) !important; margin: 0 auto clamp(1rem, 1.7vw, 1.45rem) !important; }
.nfne-home-services__heading .nfne-kicker { margin: 0 0 .35rem; }
.nfne-home-services__heading h2 { max-width: 34ch; margin: 0; font-size: clamp(1.9rem, 1.5rem + 1vw, 2.75rem); }
.nfne-home-service-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.75rem, 1.4vw, 1.15rem); }
.nfne-home-service-card { min-width: 0; min-height: 180px; gap: 0; align-items: stretch; overflow: hidden; border: 1px solid rgba(7, 24, 39, .09); border-radius: 8px; background: #fff; box-shadow: 0 8px 24px rgba(7, 24, 39, .055); transition: transform .2s ease, box-shadow .2s ease; }
.nfne-home-service-card:hover { transform: translateY(-3px); box-shadow: var(--nfne-shadow); }
.nfne-home-service-card__image { flex: 0 0 43%; width: 43%; margin: 0; overflow: hidden; }
.nfne-home-service-card__image img { display: block; width: 100%; height: 100%; min-height: 180px; object-fit: cover; }
.nfne-home-service-card__graphic { display: grid; min-height: 180px; place-items: center; background: radial-gradient(circle at 50% 38%, #1d3850 0, var(--nfne-ink) 70%); color: var(--nfne-gold-soft); }
.nfne-home-service-card__graphic svg { display: block; width: 58px; height: 58px; }
.nfne-home-service-card__body { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; justify-content: flex-start; min-width: 0; padding: 1rem .9rem; gap: .55rem; }
.nfne-home-service-card h3 { margin: 0; font-size: clamp(1.08rem, .95rem + .25vw, 1.3rem); line-height: 1.12; }
.nfne-home-service-card p { margin: 0; color: var(--nfne-muted); font-size: .76rem; line-height: 1.48; }
.nfne-home-service-card .nfne-text-link { margin-top: auto; }
.nfne-home-service-card .nfne-text-link a { color: var(--nfne-gold-text); font-size: .78rem; font-weight: 700; text-decoration: none; }

/* Homepage process panel. */
.nfne-home-process { padding-top: .8rem; background: var(--nfne-ivory); }
.nfne-home-process__inner { width: 100%; max-width: var(--nfne-content) !important; padding: clamp(1.55rem, 2.6vw, 2.65rem); border: 1px solid rgba(7, 24, 39, .09); border-radius: 9px; background: rgba(255, 255, 255, .72); box-shadow: 0 8px 25px rgba(7, 24, 39, .035); }
.nfne-home-process__inner > h2 { margin-top: .35rem; margin-bottom: clamp(1.4rem, 2.2vw, 2.2rem); font-size: clamp(2rem, 1.5rem + 1.45vw, 3rem); }
.nfne-home-process__steps { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; max-width: none !important; gap: clamp(1.1rem, 2.6vw, 2.8rem); }
.nfne-home-process__step { position: relative; display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; align-content: start; }
.nfne-home-process__step:not(:last-child)::after { content: "→"; position: absolute; top: .08rem; right: clamp(-1.6rem, -1.5vw, -.8rem); color: var(--nfne-gold); font-family: Georgia, serif; font-size: 1.45rem; }
.nfne-home-process__number { grid-row: 1 / span 2; margin: 0; color: var(--nfne-gold-text); font-family: Georgia, serif; font-size: 1.55rem; line-height: 1; }
.nfne-home-process__step h3 { margin: 0; font-family: "NFNE Carlito", "Carlito", sans-serif; font-size: .96rem; font-weight: 700; line-height: 1.2; }
.nfne-home-process__step p:last-child { grid-column: 2; margin: .65rem 0 0; color: var(--nfne-muted); font-size: .8rem; line-height: 1.5; }

/* Shared inner-page hero and proof strip, derived from the approved concept set. */
.nfne-page-hero { position: relative; padding: .35rem 0 0; overflow: hidden; background: var(--nfne-ivory); color: var(--nfne-text); }
.nfne-page-hero__grid { height: clamp(500px, 36vw, 560px); min-height: 0; gap: 0; align-items: stretch; }
.nfne-page-hero__grid > .wp-block-column { min-width: 0; }
.nfne-page-hero__visual { overflow: hidden; border-radius: 0 0 26px 0; background: var(--nfne-ink-soft); }
.nfne-page-hero__image { width: 100%; height: 100%; margin: 0; }
.nfne-page-hero__image img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.nfne-page-hero__visual--brand { position: relative; display: grid; place-items: center; background: radial-gradient(circle at 50% 38%, #1d3850 0, var(--nfne-ink) 62%); }
.nfne-page-hero__visual--brand::after { content: "Property maintenance, handled properly."; position: absolute; bottom: clamp(2rem, 4vw, 3.5rem); max-width: 24ch; color: #dfe7ec; font-size: .85rem; font-weight: 700; letter-spacing: .14em; text-align: center; text-transform: uppercase; }
.nfne-page-hero__visual--brand:has(img[data-nfne-media-source="featured-image"])::after { display: none; }
.nfne-page-hero__image--optional { display: grid; place-items: center; }
.nfne-page-hero__image--optional img { width: clamp(112px, 12vw, 172px); max-width: 42%; height: auto; min-height: 0; object-fit: contain; filter: drop-shadow(0 16px 30px rgba(0, 0, 0, .18)); }
.nfne-page-hero__image--optional img[data-nfne-media-source="featured-image"] { width: 100%; max-width: none; height: 100%; object-fit: cover; filter: none; }
.nfne-page-hero__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 3.7vw, 4.1rem); background: #fbfaf7; }
.nfne-page-hero__content > * { width: 100%; }
.nfne-page-hero__content h1 { max-width: 16ch; margin-top: .55rem; margin-bottom: 1rem; color: var(--nfne-ink); font-size: clamp(2.5rem, 1.95rem + 2.1vw, 4.2rem); line-height: 1; }
.nfne-page-hero__intro { max-width: 49ch; margin-bottom: 1.35rem; color: var(--nfne-text); }
.nfne-page-hero .wp-block-buttons { gap: .85rem; }
.nfne-page-hero .wp-block-button.is-style-outline .wp-block-button__link { color: var(--nfne-ink); border-color: var(--nfne-ink); }
.nfne-page-hero--reverse .nfne-page-hero__visual { order: 2; border-radius: 0 0 0 26px; }
.nfne-page-hero--reverse .nfne-page-hero__content { order: 1; }

.nfne-page-proof { position: relative; z-index: 2; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); width: min(var(--nfne-content), calc(100% - var(--nfne-gutter) - var(--nfne-gutter))) !important; max-width: var(--nfne-content) !important; margin-top: clamp(.75rem, 1.4vw, 1.2rem) !important; margin-right: auto !important; margin-left: auto !important; gap: 0 !important; border: 1px solid var(--nfne-border); border-radius: 10px; background: rgba(255, 255, 255, .78); overflow: hidden; box-shadow: 0 8px 25px rgba(7, 24, 39, .035); }
.nfne-page-proof__item { min-width: 0; min-height: 78px; height: 100%; padding: .85rem 1.15rem; gap: .9rem; align-items: center; border-right: 1px solid var(--nfne-border); }
.nfne-page-proof__item:last-child { border-right: 0; }
.nfne-page-proof__item > .wp-block-group { min-width: 0; gap: .1rem; }
.nfne-page-proof__title { margin: 0 !important; color: var(--nfne-ink) !important; font-family: "NFNE Carlito", "Carlito", sans-serif; font-size: .9rem !important; font-weight: 700; line-height: 1.25 !important; }
.nfne-page-proof__item p { margin: 0; color: var(--nfne-muted); font-size: .76rem; line-height: 1.4; }
.nfne-page-proof__check { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; margin: 0; border: 1px solid var(--nfne-gold); border-radius: 50%; color: var(--nfne-gold-text) !important; font-size: .92rem !important; }

/* General content cards and grids. */
.nfne-card-grid,
.nfne-project-grid,
.nfne-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 1.3vw, 1.15rem); }
.nfne-card-grid > .wp-block-column { min-width: 0; }
.nfne-card,
.nfne-project-card,
.nfne-review-card,
.nfne-post-card { border: 1px solid var(--nfne-border); border-radius: var(--nfne-radius); background: #fff; box-shadow: 0 10px 30px rgba(7, 24, 39, .05); overflow: hidden; }
.nfne-card { display: flex; min-height: 100%; padding: clamp(1.1rem, 1.8vw, 1.55rem); flex-direction: column; align-items: flex-start; transition: transform .22s ease, box-shadow .22s ease; }
.nfne-card:hover { transform: translateY(-4px); box-shadow: var(--nfne-shadow); }
.nfne-card h3 { margin-top: .25rem; margin-bottom: .5rem; font-size: clamp(1.2rem, 1.05rem + .35vw, 1.45rem); }
.nfne-card p { margin-top: 0; color: var(--nfne-muted); }
.nfne-card a { font-weight: 700; text-underline-offset: .22em; }
.nfne-text-link { margin-top: auto; }
.nfne-card-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--nfne-ivory); color: var(--nfne-gold-text); font-weight: 700; }
.nfne-card-icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: .15rem; border: 1px solid rgba(207, 138, 18, .36); border-radius: 50%; background: var(--nfne-ivory); color: var(--nfne-gold); transition: color .2s ease, background .2s ease, border-color .2s ease; }
.nfne-card-icon svg { display: block; width: 23px; height: 23px; }
.nfne-card:hover .nfne-card-icon { border-color: var(--nfne-ink); background: var(--nfne-ink); color: #fff; }
.nfne-split { gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.nfne-dark-panel { border-radius: var(--nfne-radius); padding: clamp(2rem, 5vw, 4rem); background: var(--nfne-ink); color: #dfe7ec; }
.nfne-dark-panel h2,
.nfne-dark-panel h3 { color: #fff; }
.nfne-dark-panel a { color: #fff; }
.nfne-process-list { counter-reset: nfne-step; list-style: none; padding: 0; }
.nfne-process-list li { counter-increment: nfne-step; position: relative; padding: 0 0 2rem 4.5rem; }
.nfne-process-list li::before { content: counter(nfne-step, decimal-leading-zero); position: absolute; left: 0; top: -.25rem; color: var(--nfne-gold-text); font-family: Georgia, serif; font-size: 1.8rem; }
.nfne-process-list li:not(:last-child)::after { content: ""; position: absolute; left: 1.3rem; top: 2.25rem; bottom: .25rem; width: 1px; background: rgba(255, 255, 255, .2); }

.nfne-price-table-wrap { max-width: 100%; overflow-x: auto; }
.nfne-price-table { width: 100%; border-collapse: collapse; border: 1px solid var(--nfne-border); border-radius: 12px; overflow: hidden; background: #fff; }
.nfne-price-table th,
.nfne-price-table td { padding: 1rem 1.1rem; border-bottom: 1px solid var(--nfne-border); text-align: left; vertical-align: top; }
.nfne-price-table th { background: var(--nfne-ink); color: #fff; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.nfne-price-table td:last-child { width: 34%; color: var(--nfne-ink); font-weight: 700; }
.nfne-price-table tr:last-child td { border-bottom: 0; }
.nfne-price-note { margin-top: 1rem; color: var(--nfne-muted); font-size: .9rem; }

.nfne-project-card__image { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.nfne-project-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.nfne-project-card:hover img { transform: scale(1.03); }
.nfne-project-card__body { padding: 1.5rem; }
.nfne-project-card h3 { font-size: 1.5rem; }
.nfne-review-card { margin: 0; padding: clamp(1.5rem, 3vw, 2.2rem); }
.nfne-review-card blockquote { margin: 0 0 1.25rem; }
.nfne-review-card blockquote::before { content: "“"; display: block; color: var(--nfne-gold); font-family: Georgia, serif; font-size: 3.5rem; line-height: .7; }
.nfne-review-card figcaption { color: var(--nfne-ink); font-weight: 700; }
.nfne-review-card__name,
.nfne-review-card__heading,
.nfne-review-card__source { display: block; }
.nfne-review-card__heading { margin-top: .2rem; color: var(--nfne-muted); font-size: .92rem; font-weight: 600; }
.nfne-review-card__source { margin-top: .55rem; color: var(--nfne-muted); font-size: .78rem; font-weight: 400; }
.nfne-review-card__source a { color: var(--nfne-gold-text); text-underline-offset: .18em; }
.nfne-review-rating { margin: 0 0 .35rem !important; color: var(--nfne-gold-text); font-size: 1.05rem; letter-spacing: .08em; }
.nfne-review-service { margin: 0 0 .8rem !important; color: var(--nfne-muted); font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.nfne-empty-state { border: 1px dashed var(--nfne-border); border-radius: 12px; padding: 1.25rem; color: var(--nfne-muted); background: var(--nfne-ivory); }

.nfne-myjobquote-widget { margin-top: clamp(1rem, 1.8vw, 1.5rem); padding: clamp(1rem, 2vw, 1.5rem); overflow: hidden; border: 1px solid var(--nfne-border); border-radius: var(--nfne-radius); background: #fff; box-shadow: 0 10px 30px rgba(7, 24, 39, .05); }
.nfne-myjobquote-widget__target { display: grid; min-height: clamp(360px, 31vw, 430px); align-items: center; color: var(--nfne-muted); text-align: center; }
.nfne-myjobquote-widget__target > p { margin: 0; }
.nfne-myjobquote-widget__target--loaded { display: block; color: inherit; text-align: initial; }
.nfne-myjobquote-widget__target--unavailable { min-height: 150px; padding: 1.25rem; border: 1px dashed var(--nfne-border); border-radius: 8px; background: var(--nfne-ivory); }
.nfne-myjobquote-widget .mjq-review-widget-container { font-family: "NFNE Carlito", "Carlito", Arial, Helvetica, sans-serif !important; }
.nfne-myjobquote-widget .mjq-review-widget-container .mjq-review-widget-fullwidth { max-width: 100%; }
.nfne-myjobquote-widget__disclosure { margin: 1rem 0 0; padding-top: .85rem; border-top: 1px solid var(--nfne-border); color: var(--nfne-muted); font-size: .82rem; line-height: 1.5; }
.nfne-myjobquote-widget__disclosure a { color: var(--nfne-gold-text); font-weight: 700; text-underline-offset: .18em; }

.nfne-work-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 1.4vw, 1.15rem); margin-top: clamp(1rem, 1.8vw, 1.5rem); }
.nfne-work-gallery__item { margin: 0; overflow: hidden; border: 1px solid var(--nfne-border); border-radius: var(--nfne-radius); background: #fff; box-shadow: 0 10px 30px rgba(7, 24, 39, .05); }
.nfne-work-gallery__item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.nfne-work-gallery__item figcaption { min-height: 50px; padding: .75rem .9rem; color: var(--nfne-text); font-size: .86rem; font-weight: 700; }
.nfne-business-facts { margin-top: 1rem; gap: clamp(.75rem, 1.4vw, 1.15rem); }
.nfne-business-facts > .wp-block-column { padding: 1.1rem 1.2rem; border: 1px solid var(--nfne-border); border-radius: var(--nfne-radius); background: rgba(255, 255, 255, .76); }
.nfne-business-facts h3 { margin-top: 0; font-family: "NFNE Carlito", "Carlito", sans-serif; font-size: 1rem; }
.nfne-business-facts p { margin-bottom: 0; }

.nfne-cta-band { border-radius: calc(var(--nfne-radius) + 6px); padding: clamp(2rem, 5vw, 4.25rem); background: var(--nfne-ink); color: #dfe7ec; box-shadow: var(--nfne-shadow); }
.nfne-cta-band h2 { color: #fff; max-width: 17ch; }
.nfne-cta-section { background: var(--nfne-ivory); }
.nfne-cta-panel { width: 100%; max-width: none !important; gap: 1.25rem 2rem; align-items: center; border: 1px solid rgba(255, 255, 255, .14); border-radius: calc(var(--nfne-radius) + 2px); padding: clamp(1.35rem, 2.2vw, 2.1rem); background: var(--nfne-ink); color: #dfe7ec; box-shadow: var(--nfne-shadow); }
.nfne-cta-panel__copy { flex: 1 1 40rem; gap: .45rem; }
.nfne-cta-panel h2 { max-width: 28ch; margin: 0; color: #fff; }
.nfne-cta-panel p { max-width: 68ch; margin: 0; }
.nfne-cta-panel > .wp-block-buttons { flex: 0 0 auto; justify-content: flex-end; }
.nfne-cta-panel .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .65); }

.nfne-pricing-guide-section { background: #f3f0e9; }
.nfne-pricing-guide-link { width: 100%; max-width: none !important; gap: 1.25rem 2rem; padding: clamp(1.35rem, 2.5vw, 2.1rem); border: 1px solid var(--nfne-border); border-radius: var(--nfne-radius); background: rgba(255, 255, 255, .8); box-shadow: 0 8px 25px rgba(7, 24, 39, .035); }
.nfne-pricing-guide-link > .wp-block-group { flex: 1 1 34rem; }
.nfne-pricing-guide-link .nfne-kicker { margin: 0 0 .3rem; }
.nfne-pricing-guide-link h2 { margin: 0 0 .35rem; font-size: clamp(1.65rem, 1.35rem + .7vw, 2.3rem); }
.nfne-pricing-guide-link p:last-child { max-width: 70ch; margin: 0; color: var(--nfne-muted); }

.nfne-check-list { padding-left: 0; list-style: none; }
.nfne-check-list li { position: relative; margin: .7rem 0; padding-left: 2rem; }
.nfne-check-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--nfne-gold-text); font-weight: 700; }
.nfne-section__inner > .nfne-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: none; gap: .15rem 2.5rem; margin: 1rem 0 0; padding: 1.1rem 1.25rem; border: 1px solid var(--nfne-border); border-radius: var(--nfne-radius); background: rgba(255, 255, 255, .68); }
.nfne-notice,
.nfne-legal-note { border-left: 4px solid var(--nfne-gold); border-radius: 0 12px 12px 0; padding: 1rem 1.25rem; background: var(--nfne-ivory); color: var(--nfne-text); }

.nfne-legal-shell { width: min(980px, calc(100% - 2rem)); margin: 0 auto; padding-top: clamp(3rem, 7vw, 6rem); padding-bottom: clamp(4rem, 8vw, 7rem); }
.nfne-legal-shell h1 { font-size: clamp(2.3rem, 1.6rem + 2vw, 4rem); }
.nfne-legal-shell h2 { margin-top: 2.8rem; padding-top: .5rem; border-top: 1px solid var(--nfne-border); font-size: clamp(1.5rem, 1.2rem + .8vw, 2.15rem); }
.nfne-legal-shell h3 { margin-top: 2rem; font-size: 1.3rem; }
.nfne-legal-shell p,
.nfne-legal-shell li { max-width: 78ch; }
.nfne-legal-meta { border-radius: 12px; padding: 1rem 1.2rem; background: var(--nfne-ivory); color: var(--nfne-muted); }
.nfne-legal-content > h1 { max-width: 20ch; margin-right: auto; margin-left: auto; }
.nfne-legal-content .wp-block-details { margin-bottom: 1rem; border: 1px solid var(--nfne-border); border-radius: 10px; background: #fff; overflow: hidden; }
.nfne-legal-content .wp-block-details summary { position: relative; display: flex; min-height: 48px; padding: .75rem 3.2rem .75rem 1rem; align-items: center; cursor: pointer; color: var(--nfne-ink); font-weight: 700; list-style: none; }
.nfne-legal-content .wp-block-details summary::-webkit-details-marker { display: none; }
.nfne-legal-content .wp-block-details summary::after { content: "+"; position: absolute; right: 1rem; display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid rgba(207, 138, 18, .45); border-radius: 50%; color: var(--nfne-gold-text); font-size: 1.15rem; line-height: 1; }
.nfne-legal-content .wp-block-details[open] summary { border-bottom: 1px solid var(--nfne-border); background: var(--nfne-ivory); }
.nfne-legal-content .wp-block-details[open] summary::after { content: "−"; }
.nfne-legal-content .wp-block-details > :not(summary) { margin-right: 1rem; margin-left: 1rem; }
.nfne-legal-content .wp-block-details > :last-child { margin-bottom: 1rem; }
.nfne-post-card { padding: clamp(1.3rem, 3vw, 2rem); }
.nfne-404 { min-height: 65vh; padding-top: clamp(5rem, 10vw, 10rem); padding-bottom: clamp(5rem, 10vw, 10rem); }

.nfne-site-footer { padding-top: clamp(2.2rem, 3.5vw, 3.25rem); padding-bottom: 1.25rem; }
.nfne-site-footer h3 { margin: 0 0 .65rem; color: #fff; font-family: inherit; font-size: 1rem !important; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.nfne-site-footer p,
.nfne-site-footer .nfne-site-detail { color: #b9c6cf; }
.nfne-site-footer a { color: #fff; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: .2em; }
.nfne-footer-grid { display: grid !important; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.5rem, 2.5vw, 2.75rem); }
.nfne-footer-grid:has(> :nth-child(4)) { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.15fr) repeat(2, minmax(0, .8fr)); }
.nfne-footer-grid > * { min-width: 0; }
.nfne-footer-contact { gap: .35rem; align-items: flex-start; }
.nfne-footer-links { list-style: none; margin: 0; padding: 0; }
.nfne-footer-links li { margin-bottom: .55rem; }
.nfne-footer-bottom { margin-top: 2rem; padding-top: 1.1rem; border-top: 1px solid rgba(255, 255, 255, .14); }

@media (max-width: 1120px) {
	.nfne-header-wordmark { display: none; }
	.nfne-home-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nfne-home-process__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nfne-home-process__step:nth-child(2)::after { display: none; }
	.nfne-page-proof { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nfne-footer-grid,
	.nfne-footer-grid:has(> :nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.9rem, 1.8vw, 1.35rem); }
	.nfne-site-footer { padding-top: 1.5rem; padding-bottom: .85rem; }
	.nfne-site-footer .wp-block-site-logo img { width: 80px; height: auto; }
	.nfne-footer-grid > * { align-self: start; }
	.nfne-footer-links li { margin-bottom: .35rem; }
	.nfne-footer-bottom { margin-top: 1.25rem; padding-top: .85rem; gap: .35rem 1rem; }
	.nfne-footer-bottom > :last-child:not(:first-child) { display: none; }
	.nfne-footer-bottom p { margin: 0; line-height: 1.4; }
	.nfne-page-proof__item { border-bottom: 1px solid var(--nfne-border); }
	.nfne-page-proof__item:nth-child(2n) { border-right: 0; }
	.nfne-page-proof__item:nth-last-child(-n + 2) { border-bottom: 0; }
}

@media (max-width: 980px) {
	.nfne-header-cta { display: none; }
	.nfne-card-grid,
	.nfne-project-grid,
	.nfne-review-grid,
	.nfne-work-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nfne-home-hero__grid { height: auto; min-height: 480px; }
	.nfne-home-hero__content { padding: clamp(2rem, 4vw, 3.5rem); }
	.nfne-page-hero__grid { height: 480px; min-height: 0; }
	.nfne-page-hero__content { padding: clamp(2rem, 4vw, 3.5rem); }
}

@media (max-width: 782px) {
	.nfne-header-top { justify-content: center !important; padding-inline: 1rem; }
	.nfne-header-top > .has-small-font-size { display: none; }
	.nfne-header-contacts { width: 100%; justify-content: center; gap: .3rem .85rem; }
	.nfne-header-contact--email { display: none !important; }
	.nfne-header-contact__label { font-size: .68rem; }
	body.admin-bar .nfne-site-header { top: 46px; }
	.nfne-header-top > p { display: none; }
	.nfne-header-top { justify-content: center; }
	.nfne-header-top > .wp-block-group { width: 100%; justify-content: center; gap: 1rem; }
	.nfne-header-main { position: relative; min-height: 66px; gap: .6rem; }
	.nfne-primary-nav { flex: 0 0 auto; margin-left: auto; }
	.nfne-header-phone { display: none !important; }
	.nfne-header-cta { display: flex !important; }
	.nfne-header-cta .wp-block-button__link { min-height: 42px; padding: .65rem .85rem; font-size: .8rem; white-space: nowrap; }
	.nfne-primary-nav .wp-block-navigation__responsive-container-open,
	.nfne-primary-nav .wp-block-navigation__responsive-container-close { display: grid; place-items: center; min-width: 44px; min-height: 44px; border: 1px solid var(--nfne-border); border-radius: 50%; background: #fff; color: var(--nfne-ink); }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open { position: fixed !important; inset: 0 !important; z-index: 100000; display: flex !important; width: 100vw !important; height: 100vh !important; height: 100dvh !important; min-width: 100vw !important; min-height: 100vh !important; min-height: 100dvh !important; max-width: none !important; max-height: none !important; margin: 0 !important; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 0 max(1rem, env(safe-area-inset-left)) !important; overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: var(--nfne-ivory) !important; color: var(--nfne-ink); }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { position: relative; width: min(100%, 36rem); min-height: calc(100vh - max(1rem, env(safe-area-inset-top))); min-height: calc(100dvh - max(1rem, env(safe-area-inset-top))); margin: 0 auto; border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: fixed !important; top: max(1rem, env(safe-area-inset-top)); right: max(1rem, env(safe-area-inset-right)); z-index: 100001; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; min-height: calc(100vh - max(1rem, env(safe-area-inset-top))); min-height: calc(100dvh - max(1rem, env(safe-area-inset-top))); align-items: stretch; justify-content: flex-start; padding: 4rem 0 calc(6.5rem + env(safe-area-inset-bottom)); overflow: visible; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; align-items: stretch; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: stretch; gap: 0; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu { flex-direction: column; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { border-bottom: 1px solid var(--nfne-border); }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: flex; width: 100%; min-height: 48px; padding: .75rem .25rem; align-items: center; font-size: 1.08rem; font-weight: 700; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static !important; display: flex !important; flex-direction: column; width: 100% !important; height: auto !important; margin: 0 0 .45rem; padding: .15rem 0 .3rem .85rem; border: 0; border-left: 2px solid var(--nfne-gold-soft); border-radius: 0; opacity: 1 !important; visibility: visible !important; box-shadow: none; background: transparent; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height: 40px; padding: .5rem .25rem; color: var(--nfne-muted); font-size: .94rem; font-weight: 600; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .nfne-mobile-nav-only { display: flex !important; margin-top: 1rem; border: 0; }
	.nfne-primary-nav .wp-block-navigation__responsive-container.is-menu-open .nfne-mobile-nav-cta > .wp-block-navigation-item__content { justify-content: center; border-radius: 5px; background: var(--nfne-ink); color: #fff; }
	.nfne-home-hero__grid { display: grid; grid-template-columns: 1fr; height: auto; min-height: 0; }
	.nfne-home-hero__visual,
	.nfne-home-hero__content { width: 100%; }
	.nfne-home-hero__visual { min-height: clamp(300px, 72vw, 470px); border-radius: 0 0 20px 20px; }
	.nfne-home-hero__image img { min-height: clamp(300px, 72vw, 470px); }
	.nfne-home-hero__content { padding: clamp(2.4rem, 8vw, 4rem) clamp(1.25rem, 5vw, 2.4rem); }
	.nfne-home-hero__content h1 { max-width: 14ch; }
	.nfne-trust-grid { display: grid !important; grid-template-columns: 1fr; }
	.nfne-trust-item { border-right: 0; border-bottom: 1px solid var(--nfne-border); }
	.nfne-trust-item:last-child { border-bottom: 0; }
	.nfne-page-hero__grid { display: grid; grid-template-columns: 1fr; height: auto; min-height: 0; }
	.nfne-page-hero__visual,
	.nfne-page-hero__content,
	.nfne-page-hero--reverse .nfne-page-hero__visual,
	.nfne-page-hero--reverse .nfne-page-hero__content { order: initial; width: 100%; }
	.nfne-page-hero__visual,
	.nfne-page-hero--reverse .nfne-page-hero__visual { min-height: clamp(285px, 66vw, 440px); border-radius: 0 0 20px 20px; }
	.nfne-page-hero__image img { min-height: clamp(285px, 66vw, 440px); }
	.nfne-page-hero__content { padding: clamp(2rem, 6vw, 3.25rem) clamp(1.25rem, 5vw, 2.4rem); }
	.nfne-page-hero__content h1 { max-width: 15ch; }
}

@media (min-width: 681px) and (max-width: 782px) {
	.nfne-header-main { padding-right: .65rem; padding-left: .75rem; gap: .55rem; }
	.nfne-primary-nav { flex: 1 1 auto; min-width: 0; margin-left: 0; }
	.nfne-primary-nav .wp-block-navigation__responsive-container-open,
	.nfne-primary-nav .wp-block-navigation__responsive-container-close { display: none !important; }
	.nfne-primary-nav .wp-block-navigation__responsive-container { position: static !important; display: block !important; width: 100% !important; height: auto !important; min-height: 0 !important; padding: 0 !important; overflow: visible !important; background: transparent !important; }
	.nfne-primary-nav .wp-block-navigation__responsive-container-content { padding: 0 !important; }
	.nfne-primary-nav .wp-block-navigation__container { display: flex !important; flex-wrap: nowrap !important; justify-content: center; gap: clamp(.45rem, 1.25vw, .7rem); }
	.nfne-primary-nav .wp-block-navigation-item { flex: 0 0 auto; }
	.nfne-primary-nav .wp-block-navigation-item__content { padding-inline: 0; font-size: .82rem; line-height: 1.2; white-space: nowrap; }
	.nfne-header-cta .wp-block-button__link { padding-right: .7rem; padding-left: .7rem; font-size: .75rem; }
}

@media (max-width: 720px) {
	.nfne-site-footer { padding-top: 1.15rem; padding-bottom: .75rem; }
	.nfne-footer-grid,
	.nfne-footer-grid:has(> :nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; row-gap: 1.15rem; }
	.nfne-footer-grid > :nth-child(1),
	.nfne-footer-grid > :nth-child(2) { grid-column: 1 / -1; }
	.nfne-footer-grid > :nth-child(1) { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: .8rem; align-items: center; }
	.nfne-footer-grid > :nth-child(1) .wp-block-site-logo { margin: 0; }
	.nfne-footer-grid > :nth-child(1) .wp-block-site-logo img { width: 68px; height: auto; }
	.nfne-footer-grid > :nth-child(1) > p { margin: 0; font-size: .88rem; line-height: 1.45; }
	.nfne-footer-grid > :nth-child(2) { gap: .45rem; }
	.nfne-footer-grid > :nth-child(2) > p { margin: .25rem 0 0; }
	.nfne-footer-contact { flex-direction: row !important; flex-wrap: wrap !important; gap: .35rem 1rem; }
	.nfne-footer-link-section h3 { margin-bottom: .35rem; font-size: .88rem !important; }
	.nfne-footer-links li { margin: 0; }
	.nfne-footer-links a { display: inline-flex; min-height: 34px; align-items: center; font-size: .86rem; line-height: 1.25; }
	.nfne-footer-bottom { margin-top: 1.1rem; padding-top: .75rem; }
	.nfne-footer-bottom p { font-size: .76rem !important; }
}

@media (max-width: 680px) {
	.nfne-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.nfne-site-footer { padding-bottom: calc(5.75rem + env(safe-area-inset-bottom)); }
}

@media (max-width: 620px) {
	.nfne-site-header { padding-bottom: .45rem; }
	.nfne-header-top { display: none !important; }
	.nfne-header-main { margin-top: .45rem !important; padding-inline: .65rem; }
	.nfne-header-main .wp-block-site-logo img { max-height: 48px; }
	.nfne-header-main { width: calc(100% - 1rem); }
	.nfne-home-service-grid,
	.nfne-home-process__steps,
	.nfne-card-grid,
	.nfne-project-grid,
	.nfne-review-grid,
	.nfne-work-gallery { grid-template-columns: 1fr; }
	.nfne-section__inner > .nfne-check-list { grid-template-columns: 1fr; }
	.nfne-page-proof { grid-template-columns: 1fr; }
	.nfne-page-proof__item,
	.nfne-page-proof__item:nth-child(2n),
	.nfne-page-proof__item:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid var(--nfne-border); }
	.nfne-page-proof__item:last-child { border-bottom: 0; }
	.nfne-home-process__step::after { display: none; }
	.nfne-cta-panel > .wp-block-buttons { width: 100%; justify-content: flex-start; }
	.nfne-home-service-card { min-height: 155px; }
	.nfne-home-service-card__image img { min-height: 155px; }
	.nfne-price-table th,
	.nfne-price-table td { padding: .85rem; }
	.nfne-price-table td:last-child { width: 42%; }
	.nfne-myjobquote-widget { padding: .8rem; }
	.nfne-myjobquote-widget__target { min-height: 390px; }
	.nfne-myjobquote-widget .mjq-review-widget-container .mjq-review-widget-fullwidth { padding-right: 2.6rem !important; padding-left: 2.6rem !important; }
}

@media (max-width: 280px) {
	.nfne-header-cta { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* v1.12.0: scoped readability and contact refinements. */
.nfne-review-reading .nfne-review-card blockquote,
.nfne-review-reading .nfne-review-card blockquote p { color:#405268 !important; opacity:1 !important; }
.nfne-contact-routes a[href^="tel:"]{font-weight:700}.nfne-contact-routes .nfne-contact-label{display:inline-block;min-width:5.5rem;color:var(--nfne-muted);font-size:.9rem;font-weight:700}.nfne-pat-home-panel{border-left:4px solid var(--nfne-gold)}

/* v1.13.0: site-wide WordPress-block hero system. */
.nfne-hero {
	position: relative;
	isolation: isolate;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: var(--nfne-ink);
	color: #e7edf1;
}
.nfne-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 14% 20%, rgba(215, 154, 43, .08), transparent 33%),
		linear-gradient(120deg, rgba(255, 255, 255, .018), transparent 44%);
}
.nfne-hero__grid,
.nfne-home-hero__grid,
.nfne-page-hero__grid {
	position: relative;
	z-index: 1;
	display: grid !important;
	grid-template-columns: minmax(0, 58fr) minmax(300px, 42fr);
	width: min(var(--nfne-content), calc(100% - (var(--nfne-gutter) * 2))) !important;
	max-width: var(--nfne-content) !important;
	min-height: clamp(390px, 31vw, 470px);
	height: auto;
	margin: 0 auto !important;
	gap: 0;
	align-items: stretch;
}
.nfne-hero__grid > .wp-block-column,
.nfne-home-hero__grid > .wp-block-column,
.nfne-page-hero__grid > .wp-block-column {
	min-width: 0;
	width: auto !important;
	align-self: stretch !important;
}
.nfne-hero__content,
.nfne-home-hero__content,
.nfne-page-hero__content {
	order: 1 !important;
	display: flex;
	box-sizing: border-box;
	flex-direction: column;
	align-self: stretch !important;
	justify-content: center;
	padding: clamp(2.65rem, 4.7vw, 5rem) clamp(1.6rem, 4vw, 4.5rem) clamp(2.65rem, 4.7vw, 5rem) 0;
	background: transparent;
}
.nfne-hero__content > *,
.nfne-home-hero__content > *,
.nfne-page-hero__content > * { width: 100%; }
.nfne-hero .nfne-kicker {
	margin: 0 0 .7rem;
	color: #e0a33a;
	font-size: clamp(.71rem, .68rem + .08vw, .78rem);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.nfne-hero h1,
.nfne-home-hero__content h1,
.nfne-page-hero__content h1 {
	max-width: 16ch;
	margin: 0;
	color: #fbf7ef;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.55rem, 1.85rem + 2.45vw, 4.85rem);
	font-weight: 500;
	line-height: .99;
	letter-spacing: -.035em;
	overflow-wrap: normal;
	word-break: normal;
}
.nfne-hero__intro,
.nfne-home-hero__intro,
.nfne-page-hero__intro,
.nfne-hero .wp-block-post-excerpt__excerpt {
	max-width: 56ch;
	margin: 1.15rem 0 0;
	color: #c8d2d9;
	font-size: clamp(1rem, .96rem + .18vw, 1.14rem);
	line-height: 1.58;
}
.nfne-hero .wp-block-post-excerpt { margin: 0; }
.nfne-hero__actions,
.nfne-home-hero__actions,
.nfne-page-hero .wp-block-buttons {
	margin-top: clamp(1.35rem, 2.1vw, 1.8rem);
	gap: .75rem;
}
.nfne-hero .wp-block-button__link {
	min-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .78rem 1.25rem;
	border: 1px solid transparent;
	border-radius: 5px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}
.nfne-hero .nfne-hero__button--primary .wp-block-button__link,
.nfne-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	border-color: #d79a2b;
	background: #d79a2b;
	color: #071827;
}
.nfne-hero .nfne-hero__button--primary .wp-block-button__link:hover,
.nfne-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	border-color: #e7b655;
	background: #e7b655;
	color: #071827;
}
.nfne-hero .nfne-hero__button--secondary .wp-block-button__link,
.nfne-hero .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(251, 247, 239, .7);
	background: transparent;
	color: #fbf7ef;
}
.nfne-hero .nfne-hero__button--secondary .wp-block-button__link:hover,
.nfne-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: #fbf7ef;
	background: rgba(255, 255, 255, .08);
	color: #fff;
}
.nfne-hero .wp-block-button__link:focus-visible,
.nfne-project-opening .wp-block-button__link:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}
.nfne-hero__visual,
.nfne-home-hero__visual,
.nfne-page-hero__visual,
.nfne-page-hero--reverse .nfne-page-hero__visual {
	position: relative;
	order: 2 !important;
	min-height: 100%;
	overflow: hidden;
	border-radius: 0;
	background: #132536;
}
.nfne-hero__visual::before,
.nfne-home-hero__visual::before,
.nfne-page-hero__visual::before {
	content: "";
	position: absolute;
	z-index: 2;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(90deg, var(--nfne-ink) 0, rgba(7, 24, 39, .78) 13%, rgba(7, 24, 39, .18) 46%, rgba(7, 24, 39, .08) 100%);
}
.nfne-hero__image,
.nfne-home-hero__image,
.nfne-page-hero__image {
	width: 100%;
	height: 100%;
	margin: 0;
	background: #132536;
}
.nfne-hero__image img,
.nfne-home-hero__image img,
.nfne-page-hero__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: center;
}
.nfne-hero__visual--brand,
.nfne-page-hero__visual--brand {
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at 62% 42%, rgba(215, 154, 43, .17), transparent 30%),
		radial-gradient(circle at 52% 48%, #1c3850 0, #102639 46%, #071827 80%);
}
.nfne-hero__visual--brand::after,
.nfne-page-hero__visual--brand::after {
	content: "PROPERTY MAINTENANCE • NORTH EAST";
	position: absolute;
	z-index: 3;
	right: clamp(1.2rem, 3vw, 2.5rem);
	bottom: clamp(1.2rem, 3vw, 2.4rem);
	left: clamp(1.2rem, 3vw, 2.5rem);
	color: rgba(239, 231, 215, .72);
	font-size: .67rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .18em;
	text-align: right;
	text-transform: uppercase;
}
.nfne-hero__visual--brand .nfne-hero__image,
.nfne-page-hero__visual--brand .nfne-page-hero__image,
.nfne-hero__image--optional,
.nfne-page-hero__image--optional {
	display: grid;
	place-items: center;
	background: transparent;
}
.nfne-hero__visual--brand .nfne-hero__image img,
.nfne-page-hero__visual--brand .nfne-page-hero__image img,
.nfne-hero__image--optional img,
.nfne-page-hero__image--optional img {
	position: relative;
	z-index: 1;
	width: clamp(118px, 11vw, 176px);
	max-width: 40%;
	height: auto;
	min-height: 0;
	object-fit: contain;
	filter: drop-shadow(0 20px 38px rgba(0, 0, 0, .28));
}
.nfne-hero--homepage .nfne-hero__grid { min-height: clamp(420px, 34vw, 500px); }
.nfne-hero--homepage h1 { max-width: 12.5ch; }
.nfne-hero--service .nfne-hero__grid { min-height: clamp(390px, 30vw, 455px); }
.nfne-hero--content .nfne-hero__grid,
.nfne-hero--content-led .nfne-hero__grid { min-height: clamp(350px, 27vw, 415px); grid-template-columns: minmax(0, 66fr) minmax(260px, 34fr); }
.nfne-hero--content h1,
.nfne-hero--content-led h1 { max-width: 19ch; }
.nfne-hero--utility {
	padding: clamp(2.25rem, 4vw, 3.8rem) 0;
}
.nfne-hero--utility .nfne-hero__grid {
	display: block !important;
	min-height: 0;
}
.nfne-hero--utility .nfne-hero__content,
.nfne-hero__content--utility {
	width: min(var(--nfne-content), calc(100% - (var(--nfne-gutter) * 2))) !important;
	max-width: 980px !important;
	min-height: 0;
	margin: 0 auto !important;
	padding: 0;
}
.nfne-hero--utility .nfne-hero__visual { display: none; }
.nfne-hero--utility h1,
.nfne-hero__content--utility h1 { max-width: 24ch; font-size: clamp(2.25rem, 1.75rem + 1.7vw, 3.7rem); }
.nfne-hero--article { padding: clamp(2.35rem, 4.3vw, 4.5rem) 0; }
.nfne-hero--article .nfne-article__meta { margin-top: 1.05rem; gap: .65rem 1.2rem; color: #c8d2d9; }

/* Legal pages use a restrained title banner rather than a marketing hero. */
.nfne-hero--legal,
.nfne-legal-hero {
	padding: clamp(2rem, 3.6vw, 3.35rem) 0;
	background: var(--nfne-ink);
}
.nfne-legal-hero__inner {
	width: min(980px, calc(100% - (var(--nfne-gutter) * 2))) !important;
	max-width: 980px !important;
	margin: 0 auto !important;
}
.nfne-hero--legal h1,
.nfne-legal-hero h1 {
	max-width: 22ch;
	font-size: clamp(2.15rem, 1.65rem + 1.6vw, 3.45rem);
}
.nfne-legal-hero__scope,
.nfne-legal-hero__meta {
	max-width: 75ch;
	margin: .75rem 0 0;
	color: #c8d2d9;
	font-size: .96rem;
	line-height: 1.5;
}
.nfne-legal-hero__meta { color: #9fadb7; font-size: .82rem; }

/* Existing proof/trust strips remain separate blocks but visually connect to the new compact hero family. */
.nfne-hero + .nfne-page-proof,
.nfne-hero + .nfne-home-trust-section {
	position: relative;
	z-index: 3;
}
.nfne-hero + .nfne-page-proof { margin-top: 0 !important; border-top: 0; border-radius: 0 0 10px 10px; }

/* Individual project pages retain one title/image opening and align it with the site-wide family. */
.nfne-project-opening {
	position: relative;
	overflow: hidden;
	background: var(--nfne-ink);
	color: #e7edf1;
}
.nfne-project-opening__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 48fr) minmax(320px, 52fr);
	width: min(var(--nfne-content), calc(100% - (var(--nfne-gutter) * 2))) !important;
	max-width: var(--nfne-content) !important;
	min-height: clamp(390px, 31vw, 470px);
	margin: 0 auto !important;
	gap: 0;
	align-items: stretch;
}
.nfne-project-opening__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2.6rem, 4.5vw, 4.6rem) clamp(1.5rem, 3.6vw, 4rem) clamp(2.6rem, 4.5vw, 4.6rem) 0;
}
.nfne-project-opening h1 { max-width: 16ch; margin: 0; color: #fbf7ef; font-size: clamp(2.45rem, 1.8rem + 2.15vw, 4.35rem); line-height: 1; }
.nfne-project-opening__intro,
.nfne-project-opening .wp-block-post-excerpt__excerpt { max-width: 50ch; margin: 1rem 0 0; color: #c8d2d9; }
.nfne-project-opening__visual { position: relative; min-height: 100%; overflow: hidden; background: #132536; }
.nfne-project-opening__visual::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg, #071827 0, rgba(7, 24, 39, .68) 14%, transparent 48%); pointer-events: none; }
.nfne-project-opening__image,
.nfne-project-opening__image img { width: 100%; height: 100%; min-height: 100%; margin: 0; object-fit: cover; }
.nfne-project-single__body,
.nfne-article__body,
.nfne-template-listing { padding-top: clamp(2rem, 4vw, 3.75rem); padding-bottom: clamp(2.5rem, 5vw, 4.5rem); }

@media (max-width: 1040px) {
	.nfne-hero__grid,
	.nfne-home-hero__grid,
	.nfne-page-hero__grid { grid-template-columns: minmax(0, 56fr) minmax(280px, 44fr); min-height: 390px; }
	.nfne-hero__content,
	.nfne-home-hero__content,
	.nfne-page-hero__content { padding-right: clamp(1.25rem, 3vw, 2.6rem); }
	.nfne-hero h1,
	.nfne-home-hero__content h1,
	.nfne-page-hero__content h1 { font-size: clamp(2.45rem, 1.8rem + 2.7vw, 4rem); }
}

@media (max-width: 782px) {
	.nfne-hero__grid,
	.nfne-home-hero__grid,
	.nfne-page-hero__grid,
	.nfne-hero--content .nfne-hero__grid,
	.nfne-hero--content-led .nfne-hero__grid,
	.nfne-project-opening__grid {
		display: grid !important;
		grid-template-columns: 1fr;
		width: 100% !important;
		min-height: 0;
	}
	.nfne-hero__content,
	.nfne-home-hero__content,
	.nfne-page-hero__content,
	.nfne-page-hero--reverse .nfne-page-hero__content {
		order: 1 !important;
		width: min(100%, calc(var(--nfne-content) + (var(--nfne-gutter) * 2))) !important;
		padding: clamp(2.35rem, 8vw, 3.5rem) var(--nfne-gutter);
	}
	.nfne-hero__visual,
	.nfne-home-hero__visual,
	.nfne-page-hero__visual,
	.nfne-page-hero--reverse .nfne-page-hero__visual {
		order: 2 !important;
		width: 100% !important;
		min-height: clamp(230px, 54vw, 360px);
		border-radius: 0;
	}
	.nfne-hero__visual::before,
	.nfne-home-hero__visual::before,
	.nfne-page-hero__visual::before { background: linear-gradient(180deg, var(--nfne-ink) 0, rgba(7, 24, 39, .35) 28%, rgba(7, 24, 39, .05) 70%); }
	.nfne-hero--content .nfne-hero__visual,
	.nfne-hero--content-led .nfne-hero__visual { min-height: 210px; }
	.nfne-hero h1,
	.nfne-home-hero__content h1,
	.nfne-page-hero__content h1 { max-width: 18ch; font-size: clamp(2.35rem, 8.4vw, 3.7rem); }
	.nfne-hero--utility { padding: 0; }
	.nfne-hero--utility .nfne-hero__content,
	.nfne-hero__content--utility { width: 100% !important; padding: clamp(2.1rem, 7vw, 3rem) var(--nfne-gutter); }
	.nfne-project-opening__content { order: 1; padding: clamp(2.35rem, 8vw, 3.5rem) var(--nfne-gutter); }
	.nfne-project-opening__visual { order: 2; min-height: clamp(250px, 60vw, 390px); }
	.nfne-project-opening__visual::before { background: linear-gradient(180deg, #071827 0, rgba(7, 24, 39, .35) 30%, transparent 68%); }
}

@media (max-width: 480px) {
	.nfne-hero__content,
	.nfne-home-hero__content,
	.nfne-page-hero__content,
	.nfne-hero--utility .nfne-hero__content,
	.nfne-hero__content--utility,
	.nfne-project-opening__content { padding-right: 1rem; padding-left: 1rem; }
	.nfne-hero h1,
	.nfne-home-hero__content h1,
	.nfne-page-hero__content h1,
	.nfne-project-opening h1 { font-size: clamp(2.15rem, 10.5vw, 3rem); }
	.nfne-hero__actions,
	.nfne-home-hero__actions,
	.nfne-page-hero .wp-block-buttons { width: 100%; }
	.nfne-hero__actions .wp-block-button,
	.nfne-home-hero__actions .wp-block-button,
	.nfne-page-hero .wp-block-buttons .wp-block-button { width: 100%; }
	.nfne-hero .wp-block-button__link { width: 100%; }
	.nfne-hero__visual,
	.nfne-home-hero__visual,
	.nfne-page-hero__visual { min-height: 215px; }
	.nfne-hero__visual--brand::after,
	.nfne-page-hero__visual--brand::after { text-align: center; }
	.nfne-legal-hero__scope,
	.nfne-legal-hero__meta { font-size: .82rem; }
}

@media (prefers-reduced-motion: reduce) {
	.nfne-hero *,
	.nfne-project-opening * { animation: none !important; transition: none !important; }
}
