/*
 * Canyon Concrete — styles theme.json cannot express.
 * Colors come from the theme.json palette (--wp--preset--color--*).
 */

/* Header, content panel and footer sit flush against each other. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

/* ---------- Header navigation ---------- */

.site-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--border);
	transition: color 0.3s ease;
}

.site-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.site-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.site-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--base);
}

.site-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 4px;
}

/* Dropdowns */
.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--dropdown);
	border: 0;
	min-width: 235px;
	padding: 0.75rem 0;
	text-transform: none;
	font-weight: 400;
	letter-spacing: 0;
}

.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--base);
	font-size: 0.875rem;
	padding: 0.5rem 1.875rem;
}

.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
}

/* Mobile overlay: stacked, left-aligned list */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start;
	text-align: left;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--base);
	background: none;
	padding: 0.25rem 0;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: none;
	padding: 0.25rem 0 0.5rem 1rem;
}

.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--base);
}

/* ---------- Footer ---------- */

.site-footer a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--wp--preset--color--primary-light);
	text-decoration: underline;
}

.site-footer .current-menu-item > a {
	color: var(--wp--preset--color--primary-light);
}

.site-footer .cc-contact-item a::before {
	content: "";
	display: inline-block;
	width: 1.1em;
	height: 1.1em;
	margin-right: 0.4em;
	vertical-align: -0.15em;
	background-color: currentColor;
	-webkit-mask: var(--cc-icon) center / contain no-repeat;
	mask: var(--cc-icon) center / contain no-repeat;
}

.site-footer .cc-phone {
	--cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}

.site-footer .cc-email {
	--cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

@media (min-width: 782px) {
	.site-footer .cc-contact-item + .cc-contact-item {
		border-left: 1px solid var(--wp--preset--color--muted);
		padding-left: 1rem;
	}
}

/* ---------- Content ---------- */

/* Hero caption box */
.cc-hero-caption {
	background-color: rgba(255, 255, 255, 0.85);
}

/* Services grid cards: equal heights, title link without underline until hover */
.cc-service-card {
	height: 100%;
	box-sizing: border-box;
}

.cc-service-card .wp-block-post-title a {
	text-decoration: none;
}

.cc-service-card .wp-block-post-title a:hover,
.cc-service-card .wp-block-post-title a:focus-visible {
	text-decoration: underline;
}

.cc-service-card .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/*
 * Service and project galleries: uniform 4:3 tiles. Core stretches the last image in
 * a row to fill it (flex-grow), which left a single oversized photo at the bottom.
 */
.wp-block-gallery.has-nested-images.cc-service-gallery figure.wp-block-image:not(#individual-image),
.wp-block-gallery.has-nested-images.cc-project-gallery figure.wp-block-image:not(#individual-image) {
	flex-grow: 0;
	aspect-ratio: 4 / 3;
}

.wp-block-gallery.has-nested-images.cc-service-gallery figure.wp-block-image img,
.wp-block-gallery.has-nested-images.cc-project-gallery figure.wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-project-gallery {
	margin-bottom: var(--wp--preset--spacing--50);
}

/* ---------- Contact Form 7 ---------- */

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.875rem 0.9375rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

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

.wpcf7 input[type="submit"],
.wpcf7 input[type="reset"] {
	padding: 0.6rem 1.875rem;
	margin-right: 0.9375rem;
	border: 2px solid var(--wp--preset--color--primary);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary-text);
	font: inherit;
	font-size: 1.0625rem;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus-visible,
.wpcf7 input[type="reset"]:hover,
.wpcf7 input[type="reset"]:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--dark);
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
	}
}
