/* National Select — editorial residential identity. Colours/fonts come from theme.json presets. */
:root {
	--ns-navy: var(--wp--preset--color--midnight);
	--ns-navy-deep: var(--wp--preset--color--midnight-deep);
	--ns-ivory: var(--wp--preset--color--ivory);
	--ns-stone: var(--wp--preset--color--stone);
	--ns-copper: var(--wp--preset--color--copper);
	--ns-copper-deep: var(--wp--preset--color--copper-deep);
	--ns-slate: var(--wp--preset--color--slate);
	--ns-ink: var(--wp--preset--color--ink);
	--ns-serif: var(--wp--preset--font-family--display);
	--ns-sans: var(--wp--preset--font-family--body);
	--ns-line: rgba(16, 37, 54, .12);
	--ns-ease: cubic-bezier(.22, .61, .36, 1);
	--ns-gutter: clamp(1.25rem, 5vw, 4.5rem);
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; font-weight: 380; color: #3c4852; }
.wp-site-blocks > * { margin-block-start: 0; }
:where(.wp-site-blocks, .editor-styles-wrapper) :is(em, i, cite, dfn, address) { font-style: normal; }
h1 em, h2 em, h3 em, .ns-statement em, .ns-band__quote em { color: var(--ns-copper-deep); }
::selection { background: var(--ns-copper); color: #fff; }
a { text-underline-offset: .22em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--ns-navy); outline-offset: 3px; box-shadow: 0 0 0 2px #fff; }

/* ------------------------------------------------------------ header (transparent over hero) */
header.wp-block-template-part { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 100; height: 0; }
.ns-header { background: transparent; transition: background .45s var(--ns-ease), box-shadow .45s var(--ns-ease); }
body:not(.ns-has-hero) .ns-header, body.ns-scrolled .ns-header { background: rgba(245, 243, 238, .97); box-shadow: 0 1px 0 var(--ns-line); }
.ns-header__bar { padding-block: 1.35rem; gap: clamp(.8rem, 1.7vw, 2rem); transition: padding .4s var(--ns-ease); }
body.ns-scrolled .ns-header__bar { padding-block: .9rem; }
.ns-logo { gap: .15rem !important; }
.ns-logo__name { margin: 0; font-family: var(--ns-serif); font-weight: 500; font-size: clamp(1.2rem, 2vw, 1.65rem); letter-spacing: .01em; line-height: 1; white-space: nowrap; }
.ns-logo__name a { text-decoration: none; color: var(--ns-navy); transition: color .4s; }
.ns-logo__sub { margin: 0 !important; font-family: var(--ns-sans); font-size: .55rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ns-copper-deep); }
.ns-nav { font-family: var(--ns-sans); font-size: .72rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; gap: 2rem; }
.ns-nav .wp-block-navigation-item__content { color: var(--ns-navy); text-decoration: none; transition: color .3s; }
.ns-nav .wp-block-navigation-item__content:hover { color: var(--ns-copper); }
.ns-nav .wp-block-navigation__submenu-container { background: var(--ns-ivory) !important; border: 0 !important; padding: 1rem 0 !important; min-width: 270px !important; box-shadow: 0 30px 60px -30px rgba(10, 24, 36, .35); }
.ns-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--ns-navy) !important; padding: .6rem 1.5rem !important; letter-spacing: .1em; }
.ns-header__cta .wp-block-button__link { padding: .75rem .95rem !important; font-size: .68rem !important; white-space: nowrap; }
body.ns-has-hero:not(.ns-scrolled) :is(.ns-logo__name a, .ns-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content, .ns-nav .wp-block-navigation__submenu-icon) { color: #fff; }
body.ns-has-hero:not(.ns-scrolled) .ns-logo__sub { color: rgba(255, 255, 255, .75); }
body.ns-has-hero:not(.ns-scrolled) .ns-nav .wp-block-navigation__responsive-container-open { color: #fff; }
body.ns-has-hero:not(.ns-scrolled) .ns-header__cta .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .6); }
.ns-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ns-ivory); color: var(--ns-navy); padding: 1.5rem var(--ns-gutter); animation: none; }
.ns-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; padding: .25rem 0 !important; min-width: 0 !important; }
.ns-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .8rem; }
.ns-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: var(--ns-navy) !important; font-family: var(--ns-serif); font-size: 1.7rem; letter-spacing: 0; text-transform: none; }
.ns-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--ns-sans); font-size: .96rem; letter-spacing: 0; padding: .25rem 0 !important; }
@media (max-width: 1350px) { .ns-nav { gap: .95rem; letter-spacing: .10em; } }
@media (max-width: 1130px) {
	.ns-header__cta { display: none !important; }
	.ns-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ns-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ------------------------------------------------------------ structure */
.ns-main { margin: 0; }
.ns-content > .alignfull { margin-block: 0 !important; }
.ns-sec { padding-block: clamp(5rem, 11vw, 10rem); }
.ns-sec--ivory { background: var(--ns-ivory); }
.ns-sec--white { background: #fff; }
.ns-sec--stone { background: var(--ns-stone); }
.ns-sec--flush { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.ns-sec--statement { padding-block: clamp(6rem, 13vw, 12rem); }
.ns-sec--narrow .ns-wrap, .ns-wrap--narrow { max-width: 860px; margin-inline: auto; }
.ns-sec--stack .ns-wrap > * + * { margin-top: clamp(4rem, 9vw, 8rem) !important; }
.ns-wrap > * + * { margin-block-start: clamp(3rem, 6vw, 5rem); }
.ns-eyebrow { font-family: var(--ns-sans); font-size: .7rem; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--ns-copper-deep); margin: 0 0 1.4rem; }
.ns-eyebrow.has-text-align-center::after { content: ""; display: block; width: 1px; height: 2.5rem; background: var(--ns-copper); margin: 1.2rem auto 0; }
.ns-small { font-size: .8rem; color: var(--ns-slate); }
.ns-center { justify-content: center; }
.ns-head { max-width: 860px; margin-inline: auto; }
.ns-head__title { margin: 0; }
.ns-head__intro { max-width: 620px; margin: 1.6rem auto 0; font-size: 1.12rem; color: var(--ns-slate); }

/* buttons */
.wp-block-button__link { border-radius: 0; transition: background .35s var(--ns-ease), color .35s var(--ns-ease), border-color .35s; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--ns-navy); border: 1px solid rgba(16, 37, 54, .35); padding: calc(1.15rem - 1px) calc(2.2rem - 1px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ns-navy); color: #fff; border-color: var(--ns-navy); }
.ns-hero .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .6); }
.ns-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--ns-navy); }
.wp-block-button.is-style-ns-text > .wp-block-button__link { background: none; color: var(--ns-navy); padding: .3rem 0; border-bottom: 1px solid var(--ns-copper); }
.wp-block-button.is-style-ns-text > .wp-block-button__link:hover { color: var(--ns-copper-deep); background: none; }

/* ------------------------------------------------------------ hero */
.ns-hero { padding-top: clamp(8rem, 14vh, 10rem) !important; padding-inline: var(--ns-gutter) !important; align-items: center !important; justify-content: center !important; text-align: center; }
.ns-hero--home { padding-bottom: clamp(2.5rem, 7vh, 5rem) !important; }
.ns-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(10, 24, 36, .62), rgba(10, 24, 36, .38) 42%, rgba(10, 24, 36, .74)); }
.ns-hero .wp-block-cover__inner-container { position: relative; z-index: 2 !important; }
.ns-hero__inner { max-width: 1050px; margin-inline: auto; }
.ns-hero .ns-eyebrow { color: rgba(255, 255, 255, .85); }
.ns-hero__title { color: #fff !important; margin: 0 auto 1.6rem; font-weight: 400; text-wrap: balance; }
.ns-hero__title em { color: #e9c9a6; }
.ns-hero__lead { color: rgba(255, 255, 255, .88); max-width: 640px; margin: 0 auto; font-size: 1.1rem; }
.ns-hero__actions { justify-content: center; margin-top: 2.6rem; gap: 1rem; }
.ns-hero .wp-block-cover__image-background { animation: ns-settle 2.6s var(--ns-ease) both; }
@keyframes ns-settle { from { transform: scale(1.08); } to { transform: scale(1); } }
.ns-hero .ns-hero__inner > * { animation: ns-rise 1.4s var(--ns-ease) both; }
.ns-hero .ns-hero__inner > :nth-child(2) { animation-delay: .15s; }
.ns-hero .ns-hero__inner > :nth-child(3) { animation-delay: .3s; }
.ns-hero .ns-hero__inner > :nth-child(4) { animation-delay: .45s; }
@keyframes ns-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------ statement */
.ns-statement { font-family: var(--ns-serif); font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.18; color: var(--ns-navy); max-width: 1000px; margin: 0 auto; text-wrap: balance; font-weight: 400; }
.ns-statement__sub { max-width: 600px; margin: 2.2rem auto 2rem; color: var(--ns-slate); }

/* ------------------------------------------------------------ services grid */
.ns-svcwrap > * + * { margin-top: clamp(2rem, 4vw, 4rem) !important; }
.ns-svcgrid { gap: clamp(1.5rem, 4vw, 4rem) !important; }
.ns-svcgrid > .ns-svc:nth-child(2) { margin-top: clamp(0rem, 8vw, 7rem); }
.ns-svc__img { margin: 0; overflow: hidden; }
.ns-svc__img img { transition: transform 1.6s var(--ns-ease); }
.ns-svc:hover .ns-svc__img img { transform: scale(1.05); }
.ns-svc__panel { position: relative; z-index: 2; background: #fff; margin: -5rem 28% 0 0 !important; padding: 2rem 2.4rem 0 0; }
.ns-sec--ivory .ns-svc__panel { background: var(--ns-ivory); }
.ns-svc__title { margin: 0 0 .8rem; }
.ns-svc__title a { color: var(--ns-navy); text-decoration: none; }
.ns-svc__title a:hover { color: var(--ns-copper-deep); }
.ns-svc__text { color: var(--ns-slate); margin: 0; max-width: 34rem; }

/* ------------------------------------------------------------ panels (expanding image strip) */
.ns-panels { gap: 0 !important; margin: 0 !important; max-width: none !important; width: 100%; height: clamp(440px, 72vh, 720px); }
.ns-panels > .wp-block-column { flex: 1 1 0 !important; transition: flex-grow .9s var(--ns-ease); overflow: hidden; }
.ns-panels:hover > .wp-block-column { flex-grow: .8 !important; }
.ns-panels > .wp-block-column:hover { flex-grow: 1.7 !important; }
.ns-panel { height: 100%; min-height: 100% !important; padding: 2.5rem !important; align-items: flex-end !important; justify-content: flex-start !important; }
.ns-panel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 24, 36, .75), transparent 55%); z-index: 1; }
.ns-panel .wp-block-cover__inner-container { z-index: 2 !important; position: relative; }
.ns-panel .wp-block-cover__image-background { transition: transform 1.6s var(--ns-ease); }
.ns-panel:hover .wp-block-cover__image-background { transform: scale(1.06); }
.ns-panel__sub { font-size: .66rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255, 255, 255, .8); margin: 0 0 .7rem; }
.ns-panel__title { color: #fff !important; margin: 0; white-space: nowrap; }

/* ------------------------------------------------------------ steps */
.ns-steps { gap: clamp(1.5rem, 3vw, 3rem) !important; }
.ns-step { position: relative; padding-top: 1rem; }
.ns-step + .ns-step::before { content: ""; position: absolute; left: calc(-1 * clamp(.75rem, 1.5vw, 1.5rem)); top: 2.2rem; bottom: 0; width: 1px; background: var(--ns-line); }
.ns-step__title { font-size: clamp(1.35rem, 1.8vw, 1.65rem) !important; margin: 0 0 .8rem; color: var(--ns-navy); }
.ns-step__text { margin: 0 auto; max-width: 18rem; font-size: .96rem; color: var(--ns-slate); }

/* ------------------------------------------------------------ band */
.ns-band { padding-inline: var(--ns-gutter) !important; }
.ns-band__quote { font-family: var(--ns-serif); font-size: clamp(2rem, 4.4vw, 4rem); line-height: 1.12; color: #fff; max-width: 980px; margin: 0 auto; font-weight: 400; text-wrap: balance; }
.ns-band__quote em { color: #e9c9a6; }

/* ------------------------------------------------------------ overlap */
.ns-overlap { gap: 0 !important; align-items: center !important; }
.ns-overlap__img { margin: 0; }
.ns-overlap__text { position: relative; z-index: 2; }
.ns-overlap__panel { background: var(--ns-ivory); padding: clamp(2rem, 4vw, 4rem); margin-left: -8rem !important; box-shadow: 0 40px 80px -50px rgba(10, 24, 36, .35); }
.ns-sec--ivory .ns-overlap__panel { background: #fff; }
.ns-overlap--rev .ns-overlap__panel { margin-left: 0 !important; margin-right: -8rem !important; }
.ns-overlap__title { margin: 0 0 1.4rem; font-size: clamp(2rem, 3.4vw, 3.2rem) !important; }
.ns-overlap__panel > p { color: #4a5661; }
ul.is-style-ns-dash { list-style: none; padding: 0; margin: 1.5rem 0; }
ul.is-style-ns-dash li { padding: .55rem 0 .55rem 2.2rem; position: relative; }
ul.is-style-ns-dash li::before { content: ""; position: absolute; left: 0; top: 1.25rem; width: 1.3rem; height: 1px; background: var(--ns-copper); }

/* ------------------------------------------------------------ twocol, facts, faq, gallery */
.ns-twocol { gap: clamp(2.5rem, 7vw, 7rem) !important; }
.ns-twocol h2, .ns-twocol h3 { margin: 0 0 1.2rem; }
.ns-facts table { width: 100%; border-collapse: collapse; }
.ns-facts :is(td, th) { border: 0; border-bottom: 1px solid var(--ns-line); padding: 1.15rem 1rem 1.15rem 0; text-align: left; vertical-align: top; }
.ns-facts thead th { font-size: .66rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ns-copper-deep); font-weight: 500; }
.ns-facts td:first-child { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--ns-slate); width: 34%; padding-top: 1.35rem; }
.ns-credits td:first-child { text-transform: none; letter-spacing: 0; font-size: .9rem; color: inherit; width: auto; padding-top: 1.15rem; }
.ns-credits td { font-size: .9rem; }
.ns-faqwrap { gap: clamp(2rem, 6vw, 6rem) !important; }
.ns-faq__item { border-bottom: 1px solid var(--ns-line); }
.ns-faq__item summary { cursor: pointer; list-style: none; padding: 1.5rem 3rem 1.5rem 0; font-family: var(--ns-serif); font-size: 1.5rem; color: var(--ns-navy); position: relative; }
.ns-faq__item summary::-webkit-details-marker { display: none; }
.ns-faq__item summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-family: var(--ns-sans); font-weight: 200; font-size: 1.8rem; color: var(--ns-copper); transition: transform .4s var(--ns-ease); }
.ns-faq__item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.ns-faq__item > p { margin: 0 0 1.5rem; color: var(--ns-slate); }
.ns-gallery { gap: clamp(1rem, 2.5vw, 2rem) !important; }
.ns-gal { margin: 0; overflow: hidden; }
.ns-gal img { transition: transform 1.6s var(--ns-ease); }
.ns-gal:hover img { transform: scale(1.04); }
.ns-gal__cap { font-family: var(--ns-serif); font-size: 1.35rem; color: var(--ns-navy); margin: .9rem 0 2rem; }

/* ------------------------------------------------------------ CTA */
.ns-cta__title { margin: 0; }
.ns-cta__text { color: var(--ns-slate); max-width: 560px; margin: 1.6rem auto 0; }
.ns-cta__contact { font-family: var(--ns-serif); font-size: clamp(1.3rem, 2vw, 1.75rem); margin: 2.2rem 0 0 !important; color: var(--ns-navy); }
.ns-cta__contact a { color: var(--ns-navy); text-decoration: none; border-bottom: 1px solid var(--ns-copper); }
.ns-cta__contact span { margin: 0 1rem; color: var(--ns-copper); }
.ns-cta__btns { justify-content: center; margin-top: 2.5rem !important; gap: 1rem; }

/* ------------------------------------------------------------ contact */
.ns-contact { gap: clamp(2rem, 5vw, 5rem) !important; }
.ns-contact h2 { margin: 0 0 2rem; font-size: clamp(2.2rem, 3.4vw, 3.2rem); }
.ns-kv { padding: 1.2rem 0; border-top: 1px solid var(--ns-line); }
.ns-kv > * { margin: 0 !important; }
.ns-k { font-size: .66rem; letter-spacing: .26em; text-transform: uppercase; color: var(--ns-copper-deep); margin-bottom: .4rem !important; }
.ns-v { font-family: var(--ns-serif); font-size: 1.35rem; line-height: 1.35; color: var(--ns-navy); }
.ns-v a { color: var(--ns-navy); text-decoration: none; }
.ns-kv .ns-small { margin-top: .4rem !important; }
.ns-formcard { background: #fff; padding: clamp(1.75rem, 4vw, 3.5rem) !important; }
.ns-formcard .forminator-ui.forminator-custom-form { font-family: var(--ns-sans) !important; }
.ns-formcard .forminator-label { font-family: var(--ns-sans) !important; font-size: .66rem !important; font-weight: 500 !important; letter-spacing: .2em; text-transform: uppercase; color: var(--ns-navy) !important; }
.ns-formcard :is(.forminator-input, .forminator-textarea, select, .select2-selection) { border: 0 !important; border-bottom: 1px solid rgba(16, 37, 54, .3) !important; border-radius: 0 !important; background: transparent !important; padding-left: 0 !important; font-family: var(--ns-sans) !important; font-size: 1.02rem !important; color: var(--ns-ink) !important; }
.ns-formcard .forminator-input-with-icon .forminator-datepicker { padding-left: 2.5rem !important; }
.ns-formcard :is(.forminator-input, .forminator-textarea):focus { border-bottom-color: var(--ns-copper) !important; box-shadow: none !important; }
.ns-formcard .forminator-textarea { border: 1px solid rgba(16, 37, 54, .2) !important; padding: .9rem !important; }
.ns-formcard .forminator-button-submit { background: var(--ns-copper) !important; color: var(--ns-navy) !important; border-radius: 0 !important; padding: 1.15rem 2.4rem !important; font-family: var(--ns-sans) !important; font-size: .74rem !important; letter-spacing: .2em; text-transform: uppercase; font-weight: 600 !important; }
.ns-formcard .forminator-button-submit:hover { background: var(--ns-navy) !important; color: #fff !important; }
.ns-formcard :is(.forminator-input, .forminator-textarea, select, .select2-selection):focus-visible { outline: 2px solid var(--ns-navy); outline-offset: 2px; }
.ns-formcard .forminator-file-upload, .ns-formcard .forminator-multi-upload { border-radius: 0 !important; background: var(--ns-ivory) !important; border-color: rgba(16, 37, 54, .2) !important; }

/* ------------------------------------------------------------ map */
.ns-ukmap { margin: 0; text-align: center; }
.ns-ukmap svg { width: min(100%, 340px); height: auto; overflow: visible; }
.ns-ukmap__land { fill: var(--ns-stone); stroke: var(--ns-navy); stroke-width: .5; stroke-linejoin: round; }
.ns-ukmap__dot { fill: var(--ns-copper); }
.ns-ukmap__pulse { fill: var(--ns-copper); opacity: .25; transform-box: fill-box; transform-origin: center; animation: ns-pulse 2.8s var(--ns-ease) infinite; }
@keyframes ns-pulse { 0% { transform: scale(.4); opacity: .5; } 100% { transform: scale(2.4); opacity: 0; } }
.ns-ukmap figcaption { font-family: var(--ns-serif); font-size: 1.2rem; color: var(--ns-navy); margin-top: .8rem; }

/* ------------------------------------------------------------ text pages */
.ns-pagehead { background: var(--ns-navy); color: #fff; text-align: center; padding-block: clamp(9rem, 16vw, 13rem) clamp(4rem, 7vw, 6rem); margin-bottom: clamp(3rem, 6vw, 5rem); }
.ns-pagehead .ns-eyebrow { color: #e9c9a6; }
.ns-pagehead h1 { color: #fff; font-size: clamp(2.8rem, 5vw, 4.6rem); margin: 0 0 .8rem; font-weight: 400; }
.ns-pagehead__date { color: rgba(255, 255, 255, .6); font-size: .8rem; letter-spacing: .1em; }
.ns-prose { padding-bottom: clamp(5rem, 9vw, 8rem); }
.ns-prose h2 { font-size: clamp(1.8rem, 2.6vw, 2.3rem); margin-top: 3rem; }
.ns-prose h3 { font-size: 1.55rem; margin-top: 2.5rem; }
.ns-prose > .ns-facts { max-width: var(--wp--style--global--wide-size); }
body:not(.ns-has-hero) .ns-pagehead { padding-top: clamp(8rem, 14vw, 11rem); }

/* ------------------------------------------------------------ footer */
.ns-footer { background: var(--ns-navy-deep); color: rgba(245, 243, 238, .65); padding-block: clamp(5rem, 9vw, 8rem) 2rem; }
.ns-footer a { color: rgba(245, 243, 238, .85); text-decoration: none; transition: color .3s; }
.ns-footer a:hover { color: var(--ns-copper); }
.ns-footer__logo { font-size: clamp(2rem, 4vw, 3rem) !important; }
.ns-footer__logo a { color: #fff !important; }
.ns-footer__line { font-family: var(--ns-serif); font-size: 1.3rem; color: rgba(245, 243, 238, .7); margin: 1rem auto 2.5rem; }
.ns-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 2rem; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; }
.ns-footer__info { margin-top: clamp(3rem, 6vw, 5rem) !important; padding-block: 2.5rem; border-block: 1px solid rgba(245, 243, 238, .12); text-align: center; }
.ns-footer__k { font-size: .62rem; letter-spacing: .3em; text-transform: uppercase; color: var(--ns-copper); margin: 0 0 .5rem; }
.ns-footer__v { font-family: var(--ns-serif); font-size: 1.25rem; color: #fff; margin: 0; }
.ns-footer__bottom { padding-top: 1.75rem; font-size: .74rem; gap: 1rem; }
.ns-footer__bottom p { margin: 0; }
.ns-footer__legal { display: flex; gap: 1.5rem; flex-wrap: wrap; }

/* ------------------------------------------------------------ motion */
.ns-js .ns-reveal { opacity: 0; transform: translateY(30px); transition: opacity 1.3s var(--ns-ease), transform 1.3s var(--ns-ease); }
.ns-js .ns-reveal.is-in { opacity: 1; transform: none; }
.editor-styles-wrapper .ns-reveal { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .ns-hero__inner > * { animation: none !important; }
.ns-js .ns-reveal:focus-within { opacity: 1; transform: none; }
.ns-projects { max-width: var(--wp--style--global--wide-size); margin: 0 auto; padding: clamp(3rem, 7vw, 6rem) var(--ns-gutter); }
.ns-projects h2 { margin: 0 0 1rem; }
.ns-projects__filters { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin: 1.5rem 0 2rem; }
.ns-projects__filters select { display: block; width: 100%; min-width: 9rem; padding: .6rem; font: inherit; }
.ns-projects__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 2rem; }
.ns-projects__grid img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.ns-projects__grid h3 { margin: 1rem 0 .5rem; }
.ns-projects__grid p { margin: 0; }
.ns-projects__grid .ns-projects__facts { margin-bottom: .5rem; color: var(--ns-copper-deep); font-size: .92rem; }
.ns-contact__aside, .ns-footer__info, .ns-cta__contact { overflow-wrap: anywhere; }
#tender-enquiry { scroll-margin-top: 6rem; }
#cookie-notice.cn-position-bottom {
	left: max(1rem, env(safe-area-inset-left));
	bottom: max(1rem, env(safe-area-inset-bottom));
	z-index: 90;
	width: min(26rem, calc(100% - 2rem));
	min-width: 0;
	box-shadow: 0 12px 36px rgba(10, 24, 36, .28);
	font-family: var(--ns-sans);
	font-size: .95rem;
	line-height: 1.5;
}
#cookie-notice .cookie-notice-container { padding: 1.15rem 1.25rem; text-align: left; }
#cookie-notice #cn-notice-text { display: block; margin: 0 0 .8rem; }
#cookie-notice #cn-notice-buttons { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; }
#cookie-notice #cn-notice-buttons .cn-button { margin: 0; border-radius: 0; min-height: 2.75rem; padding: .6rem 1rem; font: 600 .92rem var(--ns-sans); }
#cookie-notice #cn-accept-cookie { color: var(--ns-navy); }
#cookie-notice #cn-more-info { color: var(--ns-ivory); background: transparent !important; text-decoration: underline; text-underline-offset: .2em; }
#cookie-notice .cn-button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
#cookie-notice #cn-close-notice { display: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.ns-js .ns-reveal { opacity: 1 !important; transform: none !important; }
}

/* ------------------------------------------------------------ small screens */
@media (max-width: 781px) {
	.ns-svcgrid > .ns-svc:nth-child(2) { margin-top: 0; }
	.ns-svc__panel { margin: -2.5rem 1.25rem 0 0 !important; padding: 1.5rem 1.5rem 0 0; }
	.ns-overlap__panel, .ns-overlap--rev .ns-overlap__panel { margin: -3rem 1rem 0 !important; }
	.ns-overlap--rev { flex-direction: column-reverse; }
	.ns-panels { height: auto; flex-direction: column; }
	.ns-panels > .wp-block-column { min-height: 320px; }
	.ns-step + .ns-step::before { display: none; }
	.ns-steps { gap: 2.5rem !important; }
	.ns-header__bar { padding-block: 1rem; }
	.ns-logo__name { font-size: 1.3rem; }
	.ns-cta__contact span { display: block; height: .4rem; overflow: hidden; color: transparent; }
	.ns-hero { min-height: 78svh !important; padding-top: 7rem !important; padding-bottom: 2.75rem !important; }
	.ns-hero__title { font-size: clamp(2.5rem, 8.4vw, 4rem); }
	.ns-hero__actions { margin-top: 1.75rem; }
}
@media (max-width: 781px) {
	.ns-panels > .wp-block-column { min-height: 0; }
	.ns-panels .ns-panel { min-height: 380px !important; height: 380px; }
	.ns-svc__panel { margin-right: 12% !important; }
	.ns-panel__title { white-space: normal; }
}
