@layer components {
	/* -------------------------------------------------------------
	 * 1. Document & Scroll Lock
	 * ------------------------------------------------------------- */
	html {
		scrollbar-gutter: stable;
		scroll-padding-top: 120px;
	}

	@media (max-width: 959.98px) {
		html:has(.cng-mobile-bar) {
			scroll-padding-bottom: 88px;
		}
	}

	main#main-content:focus {
		outline: none;
	}

	html.is-menu-open,
	html.is-menu-open body {
		overflow: hidden;
	}

	/* Sentinel for intersection observer */
	.site-header-sentinel {
		position: absolute;
		top: 0;
		left: 0;
		width: 1px;
		height: 1px;
		margin: 0;
		padding: 0;
		border: 0;
		pointer-events: none;
		opacity: 0;
		visibility: hidden;
	}

	/* Main content offset for fixed header on non-home pages */
	body:not(.cng-has-hero) #main-content,
	body:not(.cng-has-hero) .site-main {
		padding-top: 76px;
	}

	/* Keep the footer at the bottom of short pages */
	body {
		display: flex;
		flex-direction: column;
	}

	.site-main {
		flex: 1 0 auto;
	}

	/* -------------------------------------------------------------
	 * 2. Header Layout & Sizing
	 * ------------------------------------------------------------- */
	.site-header {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 900;
		background-color: var(--wp--preset--color--ivory);
		color: var(--wp--preset--color--navy);
		/* Sand line as a shadow so the header stays exactly 76px / 108px */
		box-shadow: 0 1px 0 var(--wp--preset--color--sand), 0 10px 30px -18px rgba(28, 38, 48, 0.35);
		transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
	}

	/* Admin bar offset */
	.admin-bar .site-header {
		top: 32px;
	}

	@media (max-width: 782px) {
		.admin-bar .site-header {
			top: 46px;
		}
	}

	.site-header__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--wp--preset--spacing--30);
		height: 76px;
		transition: height 0.3s ease;
	}

	@media (min-width: 640px) {
		.site-header__inner {
			height: 76px;
			gap: var(--wp--preset--spacing--50);
		}
	}

	/* -------------------------------------------------------------
	 * 3. Header Tone & States (Ruling R18)
	 * ------------------------------------------------------------- */
	/*
	 * Home page: transparent header with dark veil when not solid.
	 * Every transparent-state rule sits in @media (scripting: enabled):
	 * only header.js adds .is-solid, so without JS the header stays solid.
	 */
	@media (scripting: enabled) {
		body.cng-has-hero .site-header:not(.is-solid) {
			background-color: transparent;
			color: var(--wp--preset--color--ivory);
			border-bottom-color: transparent;
			box-shadow: none;
		}
	}

	body.cng-has-hero .site-header::before {
		content: "";
		position: absolute;
		inset-inline: 0;
		top: 0;
		height: 230px;
		pointer-events: none;
		z-index: -1;
		opacity: 0;
		transition: opacity 0.3s ease;
		background: linear-gradient(180deg, rgba(28, 38, 48, 0.55) 0%, rgba(28, 38, 48, 0) 100%);
	}

	@media (scripting: enabled) {
		body.cng-has-hero .site-header:not(.is-solid)::before {
			opacity: 1;
		}
	}

	/* Top of home: 108px height */
	@media (scripting: enabled) and (min-width: 640px) {
		body.cng-has-hero .site-header:not(.is-solid) .site-header__inner {
			height: 108px;
		}
	}

	/* -------------------------------------------------------------
	 * 4. Site Logo
	 * ------------------------------------------------------------- */
	.site-logo {
		display: inline-flex;
		align-items: center;
		text-decoration: none;
		flex-shrink: 0;
	}

	.site-logo__img {
		display: block;
		height: 44px;
		width: auto;
		transition: height 0.3s ease;
	}

	/* Toggle main vs on-navy in header */
	.site-header .site-logo__img--on-navy {
		display: none;
	}

	.site-header .site-logo__img--main {
		display: block;
	}

	@media (scripting: enabled) {
		body.cng-has-hero .site-header:not(.is-solid) .site-logo__img--on-navy {
			display: block;
		}

		body.cng-has-hero .site-header:not(.is-solid) .site-logo__img--main {
			display: none;
		}
	}

	@media (scripting: enabled) and (min-width: 640px) {
		body.cng-has-hero .site-header:not(.is-solid) .site-logo__img {
			height: 60px;
		}
	}

	/* -------------------------------------------------------------
	 * 5. Header Controls & Interactive Elements
	 * ------------------------------------------------------------- */
	.site-header__controls {
		display: flex;
		align-items: center;
		gap: var(--wp--preset--spacing--30);
	}

	@media (min-width: 640px) {
		.site-header__controls {
			gap: var(--wp--preset--spacing--50);
		}
	}

	/* WhatsApp outline button */
	.site-header__whatsapp {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--wp--preset--spacing--20);
		min-height: 44px;
		min-width: 44px;
		padding: 0 var(--wp--preset--spacing--30);
		border: 1.5px solid currentColor;
		color: inherit;
		text-decoration: none;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	}

	.site-header__whatsapp-text {
		display: none;
	}

	@media (min-width: 640px) {
		.site-header__whatsapp-text {
			display: inline;
		}
	}

	.site-header__whatsapp-icon {
		flex-shrink: 0;
	}

	.site-header__whatsapp:hover {
		background-color: rgba(202, 156, 86, 0.15);
	}

	/* Menu open button */
	.site-header__menu-btn,
	.site-header__menu-fallback {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--wp--preset--spacing--20);
		min-height: 44px;
		min-width: 44px;
		padding: 0 var(--wp--preset--spacing--20);
		border: 0;
		background: transparent;
		color: inherit;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		cursor: pointer;
		text-decoration: none;
	}

	.site-header__menu-icon {
		flex-shrink: 0;
	}

	/* -------------------------------------------------------------
	 * 6. Language Switch: Header, Overlay & Footer Variants
	 * ------------------------------------------------------------- */
	/* Header language nav: hide landmark below 640px */
	.site-header__controls > nav {
		display: none;
	}

	@media (min-width: 640px) {
		.site-header__controls > nav {
			display: block;
		}

		.site-header .language-menu {
			display: flex;
		}
	}

	/* Header language switch: compact short codes FR / DE / EN */
	.site-header .language-menu {
		align-items: center;
		gap: var(--wp--preset--spacing--30);
		list-style: none;
		padding: 0;
		margin: 0;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		letter-spacing: 0.08em;
	}

	/* Screen-reader text clip for language-name in header */
	.language-menu:not(.language-menu--overlay):not(.language-menu--footer) .language-name {
		border: 0;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
		word-wrap: normal !important;
	}

	.language-menu:not(.language-menu--overlay):not(.language-menu--footer) a {
		color: inherit;
		text-decoration: none;
		padding-bottom: 2px;
		border-bottom: 2px solid transparent;
		display: inline-block;
		min-height: 44px;
		line-height: 44px;
		transition: border-color 0.2s ease, color 0.2s ease;
	}

	/* Underline on active language */
	.site-header .language-menu a[aria-current="page"] {
		border-bottom-color: var(--wp--preset--color--navy);
	}

	@media (scripting: enabled) {
		body.cng-has-hero .site-header:not(.is-solid) .language-menu a[aria-current="page"] {
			border-bottom-color: var(--wp--preset--color--gold);
		}
	}

	.site-header .language-unavailable {
		opacity: 0.45;
		cursor: not-allowed;
		padding-bottom: 2px;
		border-bottom: 2px solid transparent;
		display: inline-block;
		min-height: 44px;
		line-height: 44px;
	}

	/* Overlay and Footer: show name, hide code */
	.language-menu--overlay .language-code,
	.language-menu--footer .language-code {
		display: none;
	}

	.language-menu--overlay .language-name,
	.language-menu--footer .language-name {
		display: inline;
	}

	/* Overlay variant */
	.language-menu--overlay {
		display: flex;
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--20);
		list-style: none;
		padding: 0;
		margin: var(--wp--preset--spacing--20) 0 0;
	}

	.language-menu--overlay a,
	.language-menu--overlay .language-unavailable {
		display: inline-block;
		min-height: 44px;
		line-height: 24px;
		padding: 9px var(--wp--preset--spacing--30);
		border: 1px solid rgba(247, 244, 238, 0.35);
		color: var(--wp--preset--color--ivory);
		text-decoration: none;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		letter-spacing: 0.04em;
		transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	}

	.language-menu--overlay a[aria-current="page"] {
		background-color: var(--wp--preset--color--gold);
		border-color: var(--wp--preset--color--gold);
		color: var(--wp--preset--color--navy-deep);
	}

	.language-menu--overlay a:hover:not([aria-current="page"]) {
		border-color: var(--wp--preset--color--gold);
	}

	.language-menu--overlay .language-unavailable {
		opacity: 0.45;
		cursor: not-allowed;
		border-style: dashed;
	}

	/* Footer variant */
	.language-menu--footer {
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--20);
		list-style: none;
		padding: 0;
		margin: 0;
	}

	.language-menu--footer a {
		color: var(--wp--preset--color--lead);
		text-decoration: none;
		font-size: var(--wp--preset--font-size--body);
		transition: color 0.2s ease;
	}

	.language-menu--footer a[aria-current="page"] {
		color: var(--wp--preset--color--gold);
		font-weight: 600;
	}

	.language-menu--footer a:hover {
		color: var(--wp--preset--color--ivory);
		text-decoration: underline;
	}

	.language-menu--footer .language-unavailable {
		opacity: 0.45;
		cursor: not-allowed;
		color: var(--wp--preset--color--lead);
		font-size: var(--wp--preset--font-size--body);
	}

	/* -------------------------------------------------------------
	 * 7. Focus Rings
	 * ------------------------------------------------------------- */
	/* Transparent hero header: white focus ring */
	@media (scripting: enabled) {
		body.cng-has-hero .site-header:not(.is-solid) :focus-visible {
			outline: 2px solid var(--wp--preset--color--white);
			outline-offset: 2px;
		}
	}

	/* Solid header: navy focus ring */
	.site-header :focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 2px;
	}

	/* Overlay and footer (.cng-on-navy): gold focus ring */
	.cng-on-navy :focus-visible,
	.cng-on-navy:focus-visible {
		outline: 2px solid var(--wp--preset--color--gold);
		outline-offset: 2px;
	}

	/* -------------------------------------------------------------
	 * 8. Menu Overlay Dialog (#cng-menu.cng-menu.cng-on-navy)
	 * ------------------------------------------------------------- */
	dialog#cng-menu.cng-menu {
		position: fixed;
		inset: 0;
		width: 100vw;
		max-width: 100vw;
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		margin: 0;
		padding: 0;
		border: 0;
		background-color: var(--wp--preset--color--navy-deep);
		color: var(--wp--preset--color--ivory);
		overflow-y: auto;
		overflow-x: hidden;
		z-index: 1000;
	}

	dialog#cng-menu::backdrop {
		background-color: rgba(28, 38, 48, 0.85);
		backdrop-filter: blur(4px);
	}

	.cng-menu__inner {
		position: relative;
		min-height: 100%;
		display: flex;
		flex-direction: column;
	}

	/* Overlay top bar */
	.cng-menu__top {
		border-bottom: 1px solid rgba(202, 156, 86, 0.35);
	}

	.cng-menu__top-inner {
		height: 76px;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	@media (min-width: 640px) {
		.cng-menu__top-inner {
			height: 108px;
		}
	}

	.cng-menu__top .site-logo__img {
		height: 44px;
	}

	@media (min-width: 640px) {
		.cng-menu__top .site-logo__img {
			height: 56px;
		}
	}

	/* Close button */
	.cng-menu__close {
		display: inline-flex;
		align-items: center;
		gap: var(--wp--preset--spacing--30);
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		letter-spacing: 0.04em;
		cursor: pointer;
		min-height: 44px;
		min-width: 44px;
	}

	.cng-menu__close-icon {
		position: relative;
		width: 44px;
		height: 44px;
		border: 1.5px solid var(--wp--preset--color--gold);
		border-radius: 50%;
		display: inline-block;
		transition: background-color 0.25s ease;
	}

	.cng-menu__close-icon::before,
	.cng-menu__close-icon::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 18px;
		height: 2px;
		background-color: var(--wp--preset--color--ivory);
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.cng-menu__close-icon::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	.cng-menu__close:hover .cng-menu__close-icon {
		background-color: rgba(202, 156, 86, 0.2);
	}

	/* Overlay main grid */
	.cng-menu__main {
		flex: 1;
		display: flex;
		align-items: center;
	}

	.cng-menu__main-inner {
		width: 100%;
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--60);
		padding-block: var(--wp--preset--spacing--60);
	}

	@media (min-width: 960px) {
		.cng-menu__main-inner {
			grid-template-columns: 1fr 380px;
			gap: var(--wp--preset--spacing--80);
			align-items: start;
			padding-block: var(--wp--preset--spacing--80);
		}
	}

	/* Primary menu in overlay */
	.cng-menu__primary {
		counter-reset: cng-menu-counter;
	}

	.cng-menu__primary ul {
		list-style: none;
		padding: 0;
		margin: 0;
	}

	.cng-menu__primary ul > li {
		position: relative;
		display: flex;
		align-items: baseline;
		gap: var(--wp--preset--spacing--30);
		margin-block-end: var(--wp--preset--spacing--30);
		counter-increment: cng-menu-counter;
	}

	@media (min-width: 640px) {
		.cng-menu__primary ul > li {
			gap: var(--wp--preset--spacing--40);
		}
	}

	.cng-menu__primary ul > li::before {
		content: counter(cng-menu-counter, decimal-leading-zero) / "";
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		letter-spacing: 0.08em;
		color: var(--wp--preset--color--gold);
		width: 28px;
		flex-shrink: 0;
	}

	.cng-menu__primary ul > li > a {
		position: relative;
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--display);
		line-height: 1.2;
		font-weight: 500;
		color: var(--wp--preset--color--ivory);
		text-decoration: none;
	}

	.cng-menu__primary ul > li > a::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 4px;
		width: 0;
		height: 2px;
		background-color: var(--wp--preset--color--gold);
		transition: width 0.3s ease;
	}

	.cng-menu__primary ul > li > a:hover::after,
	.cng-menu__primary ul > li > a:focus-visible::after {
		width: 64px;
	}

	/* Submenus in overlay */
	.cng-menu__primary ul ul {
		counter-reset: none;
		margin-top: var(--wp--preset--spacing--20);
		padding-left: var(--wp--preset--spacing--50);
	}

	.cng-menu__primary ul ul > li::before {
		content: none;
	}

	.cng-menu__primary ul ul > li > a {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--lead);
	}

	/* Overlay sidebar */
	@media (min-width: 960px) {
		.cng-menu__sidebar {
			border-left: 1px solid rgba(202, 156, 86, 0.35);
			padding-left: var(--wp--preset--spacing--60);
		}
	}

	.cng-menu__block + .cng-menu__block {
		margin-top: var(--wp--preset--spacing--60);
	}

	.cng-menu h2.cng-menu__heading,
	.cng-menu__heading {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		letter-spacing: 0.18em;
		text-transform: uppercase;
		color: var(--wp--preset--color--gold);
		margin-bottom: var(--wp--preset--spacing--20);
	}

	/* -------------------------------------------------------------
	 * 9. Contact Component in Navy Contexts (.cng-on-navy)
	 * ------------------------------------------------------------- */
	.cng-on-navy .clickngo-contact__list {
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--30);
	}

	.cng-on-navy .clickngo-contact__term {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--wp--preset--color--gold);
		margin-bottom: var(--wp--preset--spacing--10);
	}

	.cng-on-navy .clickngo-contact__desc {
		margin: 0;
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--lead);
		line-height: 1.6;
	}

	.cng-on-navy .clickngo-contact__desc a {
		color: var(--wp--preset--color--ivory);
		text-decoration: none;
	}

	.cng-on-navy .clickngo-contact__desc a:hover {
		text-decoration: underline;
		text-decoration-color: var(--wp--preset--color--gold);
	}

	.cng-on-navy .cng-contact__phones {
		list-style: none;
		padding: 0;
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--10);
	}

	.cng-on-navy .cng-contact__phone-label {
		color: var(--wp--preset--color--lead);
		font-size: var(--wp--preset--font-size--small);
	}

	/* -------------------------------------------------------------
	 * 10. Footer Layout (.site-footer.cng-on-navy)
	 * ------------------------------------------------------------- */
	.site-footer {
		background-color: var(--wp--preset--color--navy-deep);
		color: var(--wp--preset--color--lead);
		border-top: 4px solid var(--wp--preset--color--gold);
		padding-top: var(--wp--preset--spacing--80);
	}

	.site-footer__grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--60);
	}

	@media (min-width: 640px) {
		.site-footer__grid {
			grid-template-columns: repeat(2, 1fr);
			gap: var(--wp--preset--spacing--60);
		}
	}

	@media (min-width: 1280px) {
		.site-footer__grid {
			grid-template-columns: repeat(4, 1fr);
			gap: var(--wp--preset--spacing--60);
		}
	}

	.site-footer h2.site-footer__heading,
	.site-footer__heading {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: var(--wp--preset--color--gold);
		margin-bottom: var(--wp--preset--spacing--30);
	}

	.site-footer__tagline {
		margin-top: var(--wp--preset--spacing--40);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--lead);
		line-height: 1.6;
	}

	.site-footer .site-logo__img {
		height: 44px;
		width: auto;
	}

	/* Footer primary navigation */
	#cng-footer-nav ul {
		list-style: none;
		padding: 0;
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--20);
	}

	#cng-footer-nav a {
		color: var(--wp--preset--color--lead);
		text-decoration: none;
		font-size: var(--wp--preset--font-size--body);
		transition: color 0.2s ease;
	}

	#cng-footer-nav a[aria-current="page"] {
		color: var(--wp--preset--color--ivory);
		font-weight: 600;
	}

	#cng-footer-nav a:hover {
		color: var(--wp--preset--color--ivory);
		text-decoration: underline;
	}

	/* -------------------------------------------------------------
	 * 11. Legal Bar
	 * ------------------------------------------------------------- */
	.site-footer__legal {
		margin-top: var(--wp--preset--spacing--70);
		padding-block: var(--wp--preset--spacing--40);
		border-top: 1px solid rgba(202, 156, 86, 0.35);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--lead);
	}

	.site-footer__legal-inner {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: center;
		gap: var(--wp--preset--spacing--30);
	}

	.site-footer__copyright {
		margin: 0;
	}

	.site-footer__legal-nav ul {
		list-style: none;
		padding: 0;
		margin: 0;
		display: flex;
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--40);
	}

	.site-footer__legal-nav a {
		color: var(--wp--preset--color--lead);
		text-decoration: none;
		transition: color 0.2s ease;
	}

	.site-footer__legal-nav a:hover {
		color: var(--wp--preset--color--ivory);
		text-decoration: underline;
	}

	/* -------------------------------------------------------------
	 * 12. Property Card (.cng-card)
	 * ------------------------------------------------------------- */
	.cng-card {
		display: flex;
		flex-direction: column;
		border-radius: 0;
	}

	.cng-card__media {
		position: relative;
		display: block;
		line-height: 0;
		overflow: hidden;
		aspect-ratio: 4 / 3;
		background-color: var(--wp--preset--color--sand);
		border-radius: 0;
	}

	.cng-card__media-link,
	.cng-card__media > a {
		display: block;
		width: 100%;
		height: 100%;
		line-height: 0;
		text-decoration: none;
	}

	.cng-card__media::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 4px;
		background-color: var(--wp--preset--color--gold);
		pointer-events: none;
		z-index: 1;
	}

	.cng-card__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
		border-radius: 0;
		transition: transform 0.4s ease;
	}

	.cng-card:hover .cng-card__media img,
	.cng-card:focus-within .cng-card__media img {
		transform: scale(1.03);
	}

	@media (prefers-reduced-motion: reduce) {
		.cng-card__media img,
		.cng-card:hover .cng-card__media img,
		.cng-card:focus-within .cng-card__media img {
			transition: none;
			transform: none !important;
		}
	}

	.cng-card__media .cng-gallery-empty {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 100%;
		margin: 0;
		padding: var(--wp--preset--spacing--30);
		text-align: center;
		color: var(--wp--preset--color--slate);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.4;
	}

	.cng-card__ribbon {
		position: absolute;
		top: var(--wp--preset--spacing--30);
		left: var(--wp--preset--spacing--30);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		line-height: 1.4;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
		border-radius: 0;
		z-index: 2;
	}

	.cng-card__kicker {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--wp--preset--color--slate);
		margin: var(--wp--preset--spacing--30) 0 0;
	}

	.cng-card__title {
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--heading-3);
		font-weight: 600;
		line-height: 1.25;
		margin: var(--wp--preset--spacing--20) 0 0;
	}

	.cng-card__title a {
		text-decoration: none;
		color: var(--wp--preset--color--navy);
		transition: color 0.2s ease;
	}

	.cng-card__title a:hover {
		color: var(--wp--preset--color--navy-deep);
	}

	.cng-card__title a:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 2px;
	}

	.cng-card__facts {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--slate);
		margin: var(--wp--preset--spacing--20) 0 0;
	}

	.cng-card__price {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		gap: var(--wp--preset--spacing--20);
		margin: var(--wp--preset--spacing--20) 0 0;
	}

	.cng-card__price-dt {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--lead);
		font-weight: 600;
		color: var(--wp--preset--color--navy);
	}

	.cng-card__price-eur {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		color: var(--wp--preset--color--slate);
	}

	.cng-card--unavailable {
		padding: var(--wp--preset--spacing--50);
		border: 1px dashed var(--wp--preset--color--greige);
		background-color: var(--wp--preset--color--sand);
		border-radius: 0;
	}

	.cng-card__message {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--slate);
		margin: 0;
	}

	/* -------------------------------------------------------------
	 * 13. Catalogue Filter Form (.cng-filter-form)
	 * ------------------------------------------------------------- */
	.cng-filter-form {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-end;
		gap: var(--wp--preset--spacing--30);
		padding: var(--wp--preset--spacing--40);
		border: 1px solid var(--wp--preset--color--sand);
		border-radius: 0;
	}

	.cng-filter-form--home {
		background-color: var(--wp--preset--color--white);
	}

	.cng-filter-form--bar {
		background-color: var(--wp--preset--color--ivory);
	}

	.cng-filter-form__field {
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--10);
		flex: 1 1 180px;
		min-width: 0;
	}

	.cng-filter-form__field label {
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		letter-spacing: 0.04em;
		color: var(--wp--preset--color--slate);
	}

	.cng-filter-form__field select {
		appearance: none;
		-webkit-appearance: none;
		min-height: 44px;
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50) var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
		border: 1px solid var(--wp--preset--color--slate);
		border-radius: 0;
		background-color: var(--wp--preset--color--white);
		color: var(--wp--preset--color--navy);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23293540' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right var(--wp--preset--spacing--30) center;
		cursor: pointer;
		width: 100%;
	}

	.cng-filter-form__field select:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 2px;
	}

	.cng-filter-form__actions {
		display: flex;
		align-items: center;
		gap: var(--wp--preset--spacing--20);
		flex: 0 0 auto;
	}

	.cng-filter-form__submit {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		padding: 0 var(--wp--preset--spacing--40);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		border: 0;
		border-radius: 0;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 600;
		cursor: pointer;
		transition: background-color 0.2s ease;
	}

	.cng-filter-form__submit:hover {
		background-color: var(--wp--preset--color--navy-deep);
	}

	.cng-filter-form__submit:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 2px;
	}

	.cng-filter-form__reset {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		padding: 0 var(--wp--preset--spacing--20);
		color: var(--wp--preset--color--slate);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		text-decoration: underline;
		text-underline-offset: 4px;
		transition: color 0.2s ease;
	}

	.cng-filter-form__reset:hover {
		color: var(--wp--preset--color--navy);
	}

	.cng-filter-form__reset:focus-visible {
		outline: 2px solid var(--wp--preset--color--navy);
		outline-offset: 2px;
	}

	/* -------------------------------------------------------------
	 * 10. Shared Page Hero (Ruling R36)
	 * ------------------------------------------------------------- */
	.cng-page-hero {
		position: relative;
		overflow: hidden;
		background-color: var(--wp--preset--color--navy-deep);
		min-height: clamp(240px, 12vw + 190px, 360px);
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		padding-top: 76px;
		padding-bottom: var(--wp--preset--spacing--50);
	}

	@media (min-width: 640px) {
		.cng-page-hero {
			padding-top: 108px;
			padding-bottom: var(--wp--preset--spacing--60);
		}
	}

	.cng-page-hero .container {
		position: relative;
		z-index: 2;
		width: 100%;
	}

	.cng-page-hero__img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center 45%;
	}

	.cng-page-hero__veil {
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		background: linear-gradient(180deg, rgba(28, 38, 48, 0.45) 0%, rgba(28, 38, 48, 0.78) 100%);
	}

	.cng-page-hero__title {
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--heading-1);
		font-weight: 600;
		line-height: 1.15;
		color: var(--wp--preset--color--ivory);
		margin: 0;
	}

	/* -------------------------------------------------------------
	 * 11. Core Block Styles (Task 9)
	 * ------------------------------------------------------------- */
	/* core/group: is-style-cng-navy */
	.is-style-cng-navy {
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
	}

	.is-style-cng-navy a {
		color: var(--wp--preset--color--ivory);
	}

	.is-style-cng-navy a:hover {
		color: var(--wp--preset--color--white);
	}

	.cng-on-navy h2,
	.cng-on-navy h3,
	.is-style-cng-navy h2,
	.is-style-cng-navy h3 {
		color: var(--wp--preset--color--ivory);
	}

	.is-style-cng-navy a:focus-visible,
	.is-style-cng-navy button:focus-visible,
	.is-style-cng-navy select:focus-visible,
	.is-style-cng-navy summary:focus-visible {
		outline: 2px solid var(--wp--preset--color--gold);
		outline-offset: 3px;
	}

	/* core/group: service icon block styles */
	.is-style-cng-icon-key::before,
	.is-style-cng-icon-sign::before,
	.is-style-cng-icon-door::before,
	.is-style-cng-icon-notebook::before {
		content: "";
		display: block;
		width: 48px;
		height: 48px;
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
		margin-bottom: var(--wp--preset--spacing--30);
	}

	.is-style-cng-icon-key::before {
		background-image: url('../img/deco/icon-key.svg');
	}

	.is-style-cng-icon-sign::before {
		background-image: url('../img/deco/icon-sign.svg');
	}

	.is-style-cng-icon-door::before {
		background-image: url('../img/deco/icon-door.svg');
	}

	.is-style-cng-icon-notebook::before {
		background-image: url('../img/deco/icon-notebook.svg');
	}


	/* core/list: is-style-cng-steps */
	.is-style-cng-steps {
		list-style: none;
		counter-reset: cng-steps-counter;
		margin: 0;
		padding: 0;
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--50);
		position: relative;
	}

	@media (min-width: 640px) {
		.is-style-cng-steps {
			grid-template-columns: repeat(2, 1fr);
		}
	}

	@media (min-width: 960px) {
		.is-style-cng-steps {
			grid-template-columns: repeat(3, 1fr);
		}
	}

	@media (min-width: 1280px) {
		.is-style-cng-steps {
			grid-template-columns: repeat(6, 1fr);
			background-image: url('../img/deco/steps-wave.svg');
			background-repeat: no-repeat;
			background-position: top center;
			background-size: 100% auto;
			padding-top: 130px;
		}
	}

	.is-style-cng-steps li {
		counter-increment: cng-steps-counter;
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		color: var(--wp--preset--color--lead);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.55;
	}

	.is-style-cng-steps li::before {
		content: counter(cng-steps-counter, decimal-leading-zero) / "";
		display: flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		border-radius: 50%;
		border: 2px solid var(--wp--preset--color--gold);
		background-color: var(--wp--preset--color--navy);
		color: var(--wp--preset--color--ivory);
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--kicker);
		font-weight: 600;
		margin-bottom: var(--wp--preset--spacing--30);
		flex-shrink: 0;
	}

	.is-style-cng-steps li:last-child::before {
		background-color: var(--wp--preset--color--gold);
		color: var(--wp--preset--color--navy);
	}

	/* core/details: is-style-cng-faq */
	.is-style-cng-faq {
		border-top: 1px solid var(--wp--preset--color--greige);
		padding: 0;
		margin: 0;
	}

	.is-style-cng-faq:last-child,
	.is-style-cng-faq:last-of-type {
		border-bottom: 1px solid var(--wp--preset--color--greige);
	}

	.is-style-cng-faq summary {
		list-style: none;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 24px;
		min-height: 44px;
		padding-block: 22px;
		font-family: var(--wp--preset--font-family--serif);
		font-size: var(--wp--preset--font-size--heading-3);
		font-weight: 600;
		line-height: 1.3;
		color: var(--wp--preset--color--navy);
	}

	.is-style-cng-faq summary::-webkit-details-marker {
		display: none;
	}

	.is-style-cng-faq summary::after {
		content: "";
		flex: none;
		width: 34px;
		height: 34px;
		border: 1.5px solid var(--wp--preset--color--gold);
		border-radius: 50%;
		background-repeat: no-repeat;
		background-position: center;
		background-size: 12px 12px;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 0v12M0 6h12' stroke='%23293540' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
		transition: transform 0.25s ease;
	}

	.is-style-cng-faq[open] summary::after {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M0 6h12' stroke='%23293540' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
	}

	.is-style-cng-faq p {
		padding: 0 var(--wp--preset--spacing--80) var(--wp--preset--spacing--50) 0;
		margin: 0;
		font-family: var(--wp--preset--font-family--sans);
		font-size: var(--wp--preset--font-size--body);
		color: var(--wp--preset--color--slate);
		line-height: 1.6;
	}

	/* -------------------------------------------------------------
	 * 12. Forced Colors Mode (WCAG & High Contrast)
	 * ------------------------------------------------------------- */
	@media (forced-colors: active) {
		.cng-showcase__button[aria-pressed="true"] {
			border: 2px solid ButtonText;
			outline: 2px solid ButtonText;
		}

		.cng-menu__close-icon {
			border-color: ButtonText;
		}

		.cng-menu__close-icon::before,
		.cng-menu__close-icon::after {
			forced-color-adjust: none;
			background-color: CanvasText;
		}

		.is-style-cng-faq summary::after {
			forced-color-adjust: none;
			border-color: ButtonText;
		}

		.cng-filter-form__field select {
			forced-color-adjust: none;
			background-color: Canvas;
			color: CanvasText;
			border-color: ButtonText;
		}

		:focus,
		:focus-visible,
		a:focus-visible,
		button:focus-visible,
		input:focus-visible,
		select:focus-visible,
		textarea:focus-visible,
		.skip-link:focus {
			outline-color: Highlight;
		}
	}
}

/* -----------------------------------------------------------------------------
 * 10. Contact Form 7 Forms & Controls (Unlayered)
 *
 * Contact Form 7 enqueues its default stylesheet unlayered. Under the CSS
 * cascade specification, unlayered rules always override layered rules
 * regardless of specificity. To reliably override default CF7 styles (such as
 * default red error tips and blue response borders) while maintaining theme
 * tokens and contrast standards, these rules are intentionally placed outside
 * @layer with .wpcf7 form specificity.
 * ----------------------------------------------------------------------------- */

.wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}

.wpcf7 form p {
	margin: 0;
}

.wpcf7 form label {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--slate);
	margin-bottom: var(--wp--preset--spacing--10);
}

/* Required marker from CF7's own class, so forms already stored on a site need no edit. */
.wpcf7 form label:has(.wpcf7-validates-as-required) {
	display: flex;
	flex-wrap: wrap;
	column-gap: 0.25em;
}

.wpcf7 form label:has(.wpcf7-validates-as-required)::after {
	content: "*" / "";
	order: 1;
}

.wpcf7 form label:has(.wpcf7-validates-as-required) .wpcf7-form-control-wrap {
	order: 2;
	flex: 0 0 100%;
}

.wpcf7 form .cng-form-required-note {
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

.wpcf7 form input[type="text"],
.wpcf7 form input[type="email"],
.wpcf7 form input[type="tel"],
.wpcf7 form input[type="url"],
.wpcf7 form input[type="number"],
.wpcf7 form input[type="date"],
.wpcf7 form select,
.wpcf7 form textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--slate);
	border-radius: 0;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.5;
}

.wpcf7 form textarea {
	min-height: 120px;
	resize: vertical;
}

.wpcf7 form input:focus-visible,
.wpcf7 form select:focus-visible,
.wpcf7 form textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--navy);
	outline-offset: 2px;
}

.wpcf7 form .wpcf7-submit,
.wpcf7 form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 var(--wp--preset--spacing--50);
	background-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--ivory);
	border: 0;
	border-radius: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.wpcf7 form .wpcf7-submit:hover,
.wpcf7 form input[type="submit"]:hover {
	background-color: var(--wp--preset--color--navy-deep);
}

.wpcf7 form .wpcf7-submit:focus-visible,
.wpcf7 form input[type="submit"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--navy);
	outline-offset: 2px;
}

.wpcf7 form input[type].wpcf7-not-valid,
.wpcf7 form select.wpcf7-not-valid,
.wpcf7 form textarea.wpcf7-not-valid,
.wpcf7 form .wpcf7-not-valid {
	border: 2px solid var(--wp--preset--color--navy);
}

.wpcf7 form .wpcf7-not-valid-tip {
	display: block;
	margin-top: var(--wp--preset--spacing--10);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--kicker);
	font-weight: 600;
	color: var(--wp--preset--color--navy);
	border-left: 3px solid var(--wp--preset--color--navy);
	padding-left: var(--wp--preset--spacing--20);
}

.wpcf7 form .wpcf7-not-valid-tip::before {
	content: "! " / "";
	font-weight: 700;
}

/* Doubled class: beats CF7's state rules (.wpcf7 form.sent .wpcf7-response-output, 0,3,1) without relying on load order. */
.wpcf7 form.wpcf7-form .wpcf7-response-output.wpcf7-response-output {
	margin: var(--wp--preset--spacing--40) 0 0 0;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--sand);
	border-left: 4px solid var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
}

/* .cng-on-navy and .is-style-cng-navy variants */
.cng-on-navy .wpcf7 form label,
.is-style-cng-navy .wpcf7 form label,
.cng-on-navy .wpcf7 form .cng-form-required-note,
.is-style-cng-navy .wpcf7 form .cng-form-required-note {
	color: var(--wp--preset--color--ivory);
}

.cng-on-navy .wpcf7 form input[type="text"],
.cng-on-navy .wpcf7 form input[type="email"],
.cng-on-navy .wpcf7 form input[type="tel"],
.cng-on-navy .wpcf7 form input[type="url"],
.cng-on-navy .wpcf7 form input[type="number"],
.cng-on-navy .wpcf7 form input[type="date"],
.cng-on-navy .wpcf7 form select,
.cng-on-navy .wpcf7 form textarea,
.is-style-cng-navy .wpcf7 form input[type="text"],
.is-style-cng-navy .wpcf7 form input[type="email"],
.is-style-cng-navy .wpcf7 form input[type="tel"],
.is-style-cng-navy .wpcf7 form input[type="url"],
.is-style-cng-navy .wpcf7 form input[type="number"],
.is-style-cng-navy .wpcf7 form input[type="date"],
.is-style-cng-navy .wpcf7 form select,
.is-style-cng-navy .wpcf7 form textarea {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--slate);
}

.cng-on-navy .wpcf7 form input:focus-visible,
.cng-on-navy .wpcf7 form select:focus-visible,
.cng-on-navy .wpcf7 form textarea:focus-visible,
.is-style-cng-navy .wpcf7 form input:focus-visible,
.is-style-cng-navy .wpcf7 form select:focus-visible,
.is-style-cng-navy .wpcf7 form textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

.cng-on-navy .wpcf7 form .wpcf7-submit,
.cng-on-navy .wpcf7 form input[type="submit"],
.is-style-cng-navy .wpcf7 form .wpcf7-submit,
.is-style-cng-navy .wpcf7 form input[type="submit"] {
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
}

.cng-on-navy .wpcf7 form .wpcf7-submit:hover,
.cng-on-navy .wpcf7 form input[type="submit"]:hover,
.is-style-cng-navy .wpcf7 form .wpcf7-submit:hover,
.is-style-cng-navy .wpcf7 form input[type="submit"]:hover {
	background-color: var(--wp--preset--color--gold-hover);
}

.cng-on-navy .wpcf7 form .wpcf7-submit:focus-visible,
.cng-on-navy .wpcf7 form input[type="submit"]:focus-visible,
.is-style-cng-navy .wpcf7 form .wpcf7-submit:focus-visible,
.is-style-cng-navy .wpcf7 form input[type="submit"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

.cng-on-navy .wpcf7 form input[type].wpcf7-not-valid,
.cng-on-navy .wpcf7 form select.wpcf7-not-valid,
.cng-on-navy .wpcf7 form textarea.wpcf7-not-valid,
.cng-on-navy .wpcf7 form .wpcf7-not-valid,
.is-style-cng-navy .wpcf7 form input[type].wpcf7-not-valid,
.is-style-cng-navy .wpcf7 form select.wpcf7-not-valid,
.is-style-cng-navy .wpcf7 form textarea.wpcf7-not-valid,
.is-style-cng-navy .wpcf7 form .wpcf7-not-valid {
	border: 2px solid var(--wp--preset--color--gold);
}

.cng-on-navy .wpcf7 form .wpcf7-not-valid-tip,
.is-style-cng-navy .wpcf7 form .wpcf7-not-valid-tip {
	color: var(--wp--preset--color--ivory);
	border-left-color: var(--wp--preset--color--gold);
}

.cng-on-navy .wpcf7 form.wpcf7-form .wpcf7-response-output.wpcf7-response-output,
.is-style-cng-navy .wpcf7 form.wpcf7-form .wpcf7-response-output.wpcf7-response-output {
	background-color: var(--wp--preset--color--navy-deep);
	color: var(--wp--preset--color--ivory);
	border-color: var(--wp--preset--color--gold);
}

/* -----------------------------------------------------------------------------
 * Unlayered Core Button Styles (R40)
 *
 * WordPress core injects unlayered element styles:
 * :root :where(.wp-element-button, .wp-block-button__link) { background-color: #32373c; ... }
 * Because unlayered styles always override styles declared in any @layer regardless
 * of specificity, core button styles must be defined unlayered here, scoped by
 * .wp-block-button, to ensure theme presets and branding prevail.
 * -------------------------------------------------------------------------- */

.wp-block-button .wp-block-button__link {
	background-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--ivory);
	border: 0;
	border-radius: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.wp-block-button .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--navy-deep);
	color: var(--wp--preset--color--ivory);
}

.wp-block-button .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--navy);
	outline-offset: 2px;
}

.cng-on-navy .wp-block-button .wp-block-button__link:focus-visible,
.is-style-cng-navy .wp-block-button .wp-block-button__link:focus-visible,
.wp-block-cover:not(.is-light) .wp-block-button .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

/* Default button on navy contexts (R42) */
.cng-on-navy .wp-block-button:not(.is-style-cng-gold):not(.is-style-cng-outline) .wp-block-button__link,
.is-style-cng-navy .wp-block-button:not(.is-style-cng-gold):not(.is-style-cng-outline) .wp-block-button__link,
.wp-block-cover:not(.is-light) .wp-block-button:not(.is-style-cng-gold):not(.is-style-cng-outline) .wp-block-button__link {
	background-color: transparent;
	border: 1.5px solid var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--ivory);
	padding: calc(var(--wp--preset--spacing--30) - 1.5px) calc(var(--wp--preset--spacing--50) - 1.5px);
}

.cng-on-navy .wp-block-button:not(.is-style-cng-gold):not(.is-style-cng-outline) .wp-block-button__link:hover,
.is-style-cng-navy .wp-block-button:not(.is-style-cng-gold):not(.is-style-cng-outline) .wp-block-button__link:hover,
.wp-block-cover:not(.is-light) .wp-block-button:not(.is-style-cng-gold):not(.is-style-cng-outline) .wp-block-button__link:hover {
	background-color: rgba(247, 244, 238, 0.1);
	color: var(--wp--preset--color--white);
}

/* is-style-cng-gold */
.wp-block-button.is-style-cng-gold .wp-block-button__link {
	background-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--navy);
	border: 0;
	border-radius: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.wp-block-button.is-style-cng-gold .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--gold-hover);
	color: var(--wp--preset--color--navy);
}

.wp-block-button.is-style-cng-gold .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--navy);
	outline-offset: 2px;
}

.cng-on-navy .wp-block-button.is-style-cng-gold .wp-block-button__link:focus-visible,
.is-style-cng-navy .wp-block-button.is-style-cng-gold .wp-block-button__link:focus-visible,
.wp-block-cover:not(.is-light) .wp-block-button.is-style-cng-gold .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

/* is-style-cng-outline */
.wp-block-button.is-style-cng-outline .wp-block-button__link {
	background-color: transparent;
	border: 1.5px solid var(--wp--preset--color--navy);
	color: var(--wp--preset--color--navy);
	border-radius: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
	padding: calc(var(--wp--preset--spacing--30) - 1.5px) calc(var(--wp--preset--spacing--50) - 1.5px);
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wp-block-button.is-style-cng-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--ivory);
}

.wp-block-button.is-style-cng-outline .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--navy);
	outline-offset: 2px;
}

.cng-on-navy .wp-block-button.is-style-cng-outline .wp-block-button__link,
.is-style-cng-navy .wp-block-button.is-style-cng-outline .wp-block-button__link,
.wp-block-cover:not(.is-light) .wp-block-button.is-style-cng-outline .wp-block-button__link {
	border-color: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--ivory);
}

.cng-on-navy .wp-block-button.is-style-cng-outline .wp-block-button__link:hover,
.is-style-cng-navy .wp-block-button.is-style-cng-outline .wp-block-button__link:hover,
.wp-block-cover:not(.is-light) .wp-block-button.is-style-cng-outline .wp-block-button__link:hover {
	background-color: rgba(247, 244, 238, 0.1);
	color: var(--wp--preset--color--white);
}

.cng-on-navy .wp-block-button.is-style-cng-outline .wp-block-button__link:focus-visible,
.is-style-cng-navy .wp-block-button.is-style-cng-outline .wp-block-button__link:focus-visible,
.wp-block-cover:not(.is-light) .wp-block-button.is-style-cng-outline .wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 2px;
}

.cng-home-hero .wp-block-buttons:has(> .wp-block-button) {
	gap: var(--wp--preset--spacing--40);
}
