/*
Theme Name: Canyon View Consulting
Description: A custom block theme scaffolded by Studio Code.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: canyon-view
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* WordPress inserts margin-block-start: var(--wp--style--block-gap) between the
   template's top-level sections (header part, main, footer part) — a gap that
   exists even when no markup asks for it. Zero it so sections butt edge-to-edge
   and own their vertical rhythm via padding; this does not affect block gaps
   inside nested layouts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* === page-header === */
.cv-page-header {
	background:
		radial-gradient( ellipse 900px 400px at 50% -20%, color-mix( in srgb, var( --wp--preset--color--accent ) 18%, transparent ), transparent 70% ),
		var( --wp--preset--color--base );
	padding-block: clamp( 3.5rem, 8vw, 5rem ) clamp( 2.5rem, 5vw, 3.5rem );
	text-align: center;
	border-bottom: 1px solid color-mix( in srgb, var( --wp--preset--color--contrast ) 12%, transparent );
}
.cv-page-heading {
	font-size: clamp( 2rem, 4vw, 2.75rem );
}
.cv-page-sub {
	color: var( --wp--preset--color--muted );
	max-width: 34rem;
	margin: 1rem auto 0;
}
/* === hero === */
.cv-hero {
	background:
		radial-gradient( ellipse 900px 500px at 50% -10%, color-mix( in srgb, var( --wp--preset--color--accent ) 22%, transparent ), transparent 70% ),
		var( --wp--preset--color--base );
	padding-block: clamp( 4rem, 10vw, 7rem ) clamp( 3rem, 8vw, 5rem );
	text-align: center;
}
.cv-hero > .wp-block-group {
	max-width: 46rem;
	margin-inline: auto;
}
.cv-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: var( --wp--preset--font-size--small );
	font-weight: 600;
	color: var( --wp--preset--color--accent );
	margin-bottom: 0.75rem;
}
.cv-hero-heading {
	font-size: clamp( 2.25rem, 4.5vw, 3.5rem );
	max-width: 34rem;
	margin-inline: auto;
}
.cv-hero-sub {
	color: var( --wp--preset--color--muted );
	font-size: var( --wp--preset--font-size--medium );
	max-width: 34rem;
	margin: 1.25rem auto 2rem;
}
.cv-hero .wp-block-buttons {
	justify-content: center;
}
/* === home-sections === */
.cv-pillars {
	padding-block: clamp( 2.5rem, 5vw, 3.5rem );
	border-block: 1px solid color-mix( in srgb, var( --wp--preset--color--contrast ) 12%, transparent );
}
.cv-pillars .wp-block-columns {
	gap: 2rem;
}
.cv-pillar {
	border-inline-start: 2px solid var( --wp--preset--color--accent );
	padding-inline-start: 1.25rem;
}
.cv-pillar-number {
	font-family: var( --wp--preset--font-family--heading );
	font-size: clamp( 1.5rem, 3vw, 2rem );
	font-weight: 600;
	color: var( --wp--preset--color--contrast );
	margin-bottom: 0.35rem;
}
.cv-pillar-label {
	color: var( --wp--preset--color--muted );
	font-size: var( --wp--preset--font-size--small );
	margin: 0;
}
.cv-section {
	padding-block: clamp( 3.5rem, 8vw, 5.5rem );
}
.cv-section-heading {
	font-size: clamp( 1.75rem, 3vw, 2.25rem );
	margin-bottom: 0.5rem;
}
.cv-section-sub {
	color: var( --wp--preset--color--muted );
	max-width: 40rem;
	margin-bottom: 2.5rem;
}
.cv-section-sub a {
	white-space: nowrap;
}
/* === services === */
.cv-teaser-grid {
	gap: 1.5rem;
}
.cv-teaser-card {
	background: var( --wp--preset--color--surface );
	border-top: 3px solid var( --wp--preset--color--accent );
	border-radius: 4px;
	padding: 1.75rem 1.75rem 2rem;
}
.cv-card-heading {
	font-size: 1.25rem;
	margin-bottom: 0.6rem;
}
.cv-teaser-card p:not( .cv-card-heading ) {
	color: var( --wp--preset--color--muted );
	margin: 0;
}
.cv-services-grid {
	gap: 1.5rem;
}
.cv-service-card {
	background: var( --wp--preset--color--surface );
	border-top: 3px solid var( --wp--preset--color--accent );
	border-radius: 4px;
	padding: 1.75rem 1.75rem 2rem;
}
.cv-service-card:nth-child( 3n + 2 ) {
	border-top-color: var( --wp--preset--color--accent-2 );
}
.cv-service-card:nth-child( 3n + 3 ) {
	border-top-color: var( --wp--preset--color--secondary );
}
.cv-service-card p {
	color: var( --wp--preset--color--muted );
	margin: 0;
}
/* === tech-ai === */
.cv-tech-section {
	background: linear-gradient( 180deg, var( --wp--preset--color--base ) 0%, color-mix( in srgb, var( --wp--preset--color--accent-2 ) 10%, var( --wp--preset--color--base ) ) 100% );
	border-top: 1px solid color-mix( in srgb, var( --wp--preset--color--accent-2 ) 35%, transparent );
	border-bottom: 1px solid color-mix( in srgb, var( --wp--preset--color--accent-2 ) 35%, transparent );
}
.cv-tech-grid {
	gap: 1.5rem;
	margin-top: 1rem;
}
.cv-tech-card {
	background: color-mix( in srgb, var( --wp--preset--color--surface ) 70%, transparent );
	border-left: 3px solid var( --wp--preset--color--accent-2 );
	border-radius: 4px;
	padding: 1.5rem 1.25rem 1.5rem 1.5rem;
}
.cv-tech-card p {
	color: var( --wp--preset--color--muted );
	margin: 0;
}
/* === about === */
.cv-about-teaser {
	background: var( --wp--preset--color--surface );
}
.cv-monogram-col {
	flex-grow: 0;
}
.cv-monogram {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: linear-gradient( 135deg, var( --wp--preset--color--primary ), var( --wp--preset--color--secondary ) );
	display: flex;
	align-items: center;
	justify-content: center;
}
.cv-monogram p {
	font-family: var( --wp--preset--font-family--heading );
	font-size: 2.5rem;
	font-weight: 600;
	color: var( --wp--preset--color--contrast );
	margin: 0;
}
.cv-about-teaser .cv-section-heading {
	margin-bottom: 1rem;
}
.cv-bio-section .wp-block-columns {
	gap: 3rem;
}
.cv-bio-text p {
	margin-bottom: 1.5rem;
	line-height: 1.75;
}
.cv-facts-card {
	background: var( --wp--preset--color--surface );
	border-top: 3px solid var( --wp--preset--color--accent );
	border-radius: 4px;
	padding: 2rem;
}
.cv-facts-heading {
	font-size: 1.15rem;
	margin-bottom: 1.25rem;
}
.cv-facts-label {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
	font-weight: 600;
	color: var( --wp--preset--color--accent );
	margin-bottom: 0.35rem;
	margin-top: 1.5rem;
}
.cv-facts-card > .cv-facts-label:first-of-type {
	margin-top: 0;
}
.cv-facts-value {
	color: var( --wp--preset--color--contrast );
	margin: 0;
}
.cv-facts-list {
	margin: 0;
	padding-left: 1.1rem;
	color: var( --wp--preset--color--muted );
}
.cv-facts-list li {
	margin-bottom: 0.5rem;
}

.cv-cta {
	text-align: center;
	padding-block: clamp( 3rem, 7vw, 4.5rem );
	border-top: 1px solid color-mix( in srgb, var( --wp--preset--color--contrast ) 12%, transparent );
}
.cv-cta-heading {
	max-width: 34rem;
	margin-inline: auto;
	margin-bottom: 1.75rem;
}
/* === contact === */
.cv-contact-form-col .grunion-field-label,
.cv-contact-form-col label {
	color: var( --wp--preset--color--contrast );
	font-weight: 500;
	margin-bottom: 0.4rem;
	display: block;
}
.cv-contact-form-col input[type="text"],
.cv-contact-form-col input[type="email"],
.cv-contact-form-col input[type="tel"],
.cv-contact-form-col textarea {
	width: 100%;
	background: var( --wp--preset--color--surface );
	border: 1px solid color-mix( in srgb, var( --wp--preset--color--contrast ) 20%, transparent );
	border-radius: 3px;
	color: var( --wp--preset--color--contrast );
	padding: 0.7rem 0.9rem;
	font-family: var( --wp--preset--font-family--body );
	font-size: var( --wp--preset--font-size--small );
}
.cv-contact-form-col input:focus,
.cv-contact-form-col textarea:focus {
	outline: none;
	border-color: var( --wp--preset--color--secondary );
}
.cv-contact-form-col .wp-block-jetpack-contact-form > div {
	margin-bottom: 1.25rem;
}
.cv-bio-sidebar .cv-facts-card p a {
	overflow-wrap: anywhere;
	font-size: var( --wp--preset--font-size--small );
}
/* === buttons-links === */
.wp-block-button.is-style-outline .wp-element-button {
	background: transparent;
	color: var( --wp--preset--color--contrast );
	box-shadow: inset 0 0 0 1.5px color-mix( in srgb, var( --wp--preset--color--contrast ) 40%, transparent );
}
.wp-block-button.is-style-outline .wp-element-button:hover {
	background: color-mix( in srgb, var( --wp--preset--color--contrast ) 10%, transparent );
	box-shadow: inset 0 0 0 1.5px var( --wp--preset--color--contrast );
	color: var( --wp--preset--color--contrast );
}
.wp-element-button {
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
/* === responsive === */
@media ( max-width: 781px ) {
	.cv-services-grid,
	.cv-services-grid.is-layout-grid {
		grid-template-columns: 1fr;
	}
	.cv-service-card:nth-child( n ) {
		border-top-color: var( --wp--preset--color--accent );
	}
	.cv-monogram-col {
		margin-bottom: 1rem;
	}
}
