/*
 * blocks.css — the design (site.css) applied to WordPress's own blocks.
 * Loaded on the site and inside the editor, so editing is what-you-see.
 */

:root {
	--knr-chevron: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22/%3E%3C/svg%3E");
	--knr-arrow: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14%22/%3E%3Cpath%20d%3D%22m12%205%207%207-7%207%22/%3E%3C/svg%3E");
}

/* Icon classes: "knr-i-{name}" on a button, heading or paragraph puts the
   icon before its text (the --knr-i image comes from inc/blocks.php). */
:is(h1, h2, h3, h4, p)[class*="knr-i-"]::before,
.wp-block-button[class*="knr-i-"] .wp-block-button__link::before {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: var(--knr-i) center / contain no-repeat;
	mask: var(--knr-i) center / contain no-repeat;
}
.wp-block-button[class*="knr-i-"] .wp-block-button__link::before {
	width: 18px;
	height: 18px;
}
.visit__card h3::before,
.contact-note h3::before {
	background-color: var(--color-navy);
}

.wp-block-knr-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ---- Buttons (same looks as .btn / .btn--*) ---- */
.wp-block-buttons.wp-block-buttons {
	gap: 14px;
}
.wp-block-buttons.reviews__actions {
	gap: 12px;
}
.wp-block-button .wp-block-button__link {
	font-family: var(--font-heading);
	border-radius: var(--radius-pill);
	cursor: pointer;
	transition: transform var(--transition), background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition);
	text-align: center;
	white-space: nowrap;
	border: 2px solid #0000;
	justify-content: center;
	align-items: center;
	gap: 10px;
	padding: 15px 26px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	display: inline-flex;
	background-color: var(--color-red);
	color: var(--color-white);
	box-shadow: var(--shadow-sm);
}
.wp-block-button .wp-block-button__link:hover {
	transform: translateY(-2px);
	background-color: var(--color-red-dark);
	color: var(--color-white);
}
.wp-block-button .wp-block-button__link:active {
	transform: translateY(0);
}
.wp-block-button.is-style-navy .wp-block-button__link {
	background-color: var(--color-navy);
	box-shadow: none;
}
.wp-block-button.is-style-navy .wp-block-button__link:hover {
	background-color: var(--color-navy-dark);
}
.wp-block-button.is-style-ghost .wp-block-button__link {
	color: var(--color-navy);
	border-color: var(--color-border);
	background-color: #0000;
	box-shadow: none;
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover {
	border-color: var(--color-navy);
	color: var(--color-navy);
	background-color: var(--color-blue-soft);
}
.reviews__actions .wp-block-button.is-style-ghost .wp-block-button__link {
	background-color: var(--color-white);
}
.wp-block-button.is-style-white .wp-block-button__link {
	background-color: var(--color-white);
	color: var(--color-navy-deep);
	box-shadow: none;
}
.wp-block-button.is-style-white .wp-block-button__link:hover {
	background-color: var(--color-off-white);
	color: var(--color-navy-deep);
}
.wp-block-button.is-style-outline-light .wp-block-button__link {
	color: var(--color-white);
	background-color: #0000;
	border-color: #ffffff8c;
	box-shadow: none;
}
.wp-block-button.is-style-outline-light .wp-block-button__link:hover {
	color: var(--color-white);
	border-color: var(--color-white);
	background-color: #ffffff1f;
}
.wp-block-button.btn--block,
.wp-block-button.btn--block .wp-block-button__link {
	width: 100%;
}
.service-intro__aside .wp-block-buttons {
	flex-direction: column;
	align-items: stretch;
	margin-top: 14px;
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-button .wp-block-button__link:hover {
		transform: none;
	}
}
@media (width <= 560px) {
	.reviews__actions {
		width: 100%;
	}
	.reviews__actions .wp-block-button {
		flex: 100%;
	}
	.reviews__actions .wp-block-button__link {
		width: 100%;
	}
}

/* ---- Photos: hero and call-to-action backgrounds, framed images ---- */
.wp-block-image.hero__media,
.wp-block-image.cta__media {
	position: absolute;
	inset: 0;
	z-index: -1;
	margin: 0;
}
.wp-block-image.hero__media img,
.wp-block-image.cta__media img,
.wp-block-image.whyus__media img,
.wp-block-image.about-story__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.wp-block-image.hero__media::after,
.wp-block-image.cta__media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: var(--overlay-navy);
}
.wp-block-image.cta__media::after {
	background: linear-gradient(120deg, #031f38ed, #052f52db);
}

/* ---- FAQ (Details blocks) ---- */
.wp-block-details.faq__item > summary {
	cursor: pointer;
	font-family: var(--font-heading);
	color: var(--color-navy-deep);
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	font-size: 1.05rem;
	font-weight: 700;
	list-style: none;
	display: flex;
}
.wp-block-details.faq__item > summary::-webkit-details-marker {
	display: none;
}
.wp-block-details.faq__item > summary:hover {
	color: var(--color-navy);
}
.wp-block-details.faq__item > summary::after {
	content: "";
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	background-color: var(--color-navy);
	-webkit-mask: var(--knr-chevron) center / contain no-repeat;
	mask: var(--knr-chevron) center / contain no-repeat;
	transition: transform var(--transition);
}
.wp-block-details.faq__item[open] > summary::after {
	transform: rotate(180deg);
}
.wp-block-details.faq__item > :not(summary) {
	color: var(--color-muted);
	padding: 0 22px 20px;
	line-height: 1.6;
}

/* ---- Small pieces ---- */
.service-intro__link a::after {
	content: "";
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: var(--knr-arrow) center / contain no-repeat;
	mask: var(--knr-arrow) center / contain no-repeat;
}
.site-header__wordmark a,
.site-footer__wordmark a {
	color: inherit;
}
.hero-trust__item p {
	margin: 0;
	white-space: nowrap !important; /* the editor sets pre-wrap inline */
}
.hero__top .wp-block-knr-breadcrumbs {
	margin: 0;
}

/* ---- Header navigation (core Navigation block) ---- */
.site-header__cta {
	flex-shrink: 0;
}
.site-header__cta .wp-block-button__link {
	padding: 12px 20px;
	font-size: 0.95rem;
}
.knr-nav {
	margin-left: auto;
	font-family: var(--font-heading);
}
.knr-nav .wp-block-navigation__container {
	gap: 2px;
	align-items: center;
}
.knr-nav .wp-block-navigation-item {
	position: relative;
}
.knr-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	color: #dceaf7;
	border-radius: var(--radius-sm);
	white-space: nowrap;
	transition: color var(--transition), background-color var(--transition);
	padding: 10px 13px;
	font-size: 0.95rem;
	font-weight: 600;
}
.knr-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.knr-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:focus-visible,
.knr-nav .wp-block-navigation__container > :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content {
	color: var(--color-white);
}
.knr-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
	background-color: #ffffff14;
}
.knr-nav .wp-block-navigation__container > :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content::after {
	content: "";
	background-color: var(--color-red);
	border-radius: 3px;
	height: 3px;
	position: absolute;
	bottom: 2px;
	left: 13px;
	right: 13px;
}
.knr-nav .wp-block-navigation__submenu-icon {
	color: #dceaf7;
	margin-left: -8px;
	margin-right: 6px;
}
.knr-nav .has-child .wp-block-navigation__submenu-container {
	background-color: var(--color-white);
	color: var(--color-text);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-md);
	padding: 8px;
	top: calc(100% + 6px);
	left: 0;
}
.knr-nav .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container {
	min-width: 300px !important; /* core sets 200px with a very specific selector */
}
.knr-nav.knr-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	border-radius: var(--radius-sm);
	transition: background-color var(--transition);
	padding: 10px 12px;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
}
.knr-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background-color: var(--color-blue-soft);
}
.knr-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label {
	color: var(--color-navy-deep);
	font-size: 0.98rem;
	font-weight: 700;
	display: block;
}
.knr-nav .wp-block-navigation-item__description {
	color: var(--color-muted);
	font-family: var(--font-body);
	margin-top: 1px;
	font-size: 0.84rem;
	display: block;
}
.knr-nav .wp-block-navigation__responsive-container-open {
	color: var(--color-white);
	padding: 6px;
}
.knr-nav .wp-block-navigation__responsive-container-open svg {
	width: 28px;
	height: 28px;
}

/* Phones and tablets: the menu opens full screen (core's overlay, restyled). */
@media (width <= 1099px) {
	.site-header .site-header__cta {
		display: none;
	}
	.knr-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.knr-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}
.knr-nav.knr-nav:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--color-navy-deep);
	color: #dceaf7;
	padding: 20px;
}
.knr-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	color: var(--color-white);
}
.knr-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 48px;
}
.knr-nav .is-menu-open .wp-block-navigation__container {
	align-items: stretch;
	width: 100%;
	gap: 2px;
}
.knr-nav .is-menu-open .wp-block-navigation-item {
	width: 100%;
}
.knr-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	border-bottom: 1px solid #ffffff14;
	border-radius: 0;
	width: 100%;
	padding: 14px 12px;
	font-size: 1.1rem;
}
.knr-nav .is-menu-open .wp-block-navigation__container > :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content {
	color: var(--color-red);
}
.knr-nav .is-menu-open .wp-block-navigation__container > * > .wp-block-navigation-item__content::after {
	display: none;
}
.knr-nav .is-menu-open .has-child .wp-block-navigation__submenu-container {
	background-color: #ffffff0a;
	border: none;
	box-shadow: none;
	border-radius: var(--radius-sm);
	margin: 4px 0 8px;
	padding: 4px;
	width: 100%;
}
.knr-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__label {
	color: #dceaf7;
}
.knr-nav .is-menu-open .wp-block-navigation-item__description {
	color: #91a8c0;
}
.knr-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background-color: #ffffff14;
}

/* ---- Editor: the live preview of the theme's blocks sits in two wrapper
   divs; let them step aside so the preview lays out exactly as on the site. */
.wp-block[data-type^="knr/"] > .components-disabled,
.wp-block[data-type^="knr/"] > .components-disabled > div {
	display: contents;
}
.wp-block[data-type="knr/icon"] {
	display: inline-flex;
}
