/*
Theme Name: Twenty Twenty-Five Child
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Description: Child theme for Twenty Twenty-Five.
Author: Your Name
Template: twentytwentyfive
Version: 1.0.3
Text Domain: twentytwentyfive-child
*/

/* Use on the Hero heading to improve readability over images. */
.hero-readable-heading {
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

/* Add this class to the Book Now button block. */
.book-now-pill .wp-block-button__link,
.wp-block-button__link.book-now-pill {
	border-radius: 999px;
}

/* Hero readability helpers */
.hero-dark-slate-text,
.hero-dark-slate-text :is(h1, h2, h3, h4, h5, h6, p) {
	color: var(--wp--preset--color--dark-slate, var(--wp--preset--color--contrast)) !important;
}

.hero-image-dim-50 img {
	opacity: 0.5;
}

/* Services cards */
.services-cards .wp-block-column {
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	transition: box-shadow 0.2s ease;
}

/* Footer hook verification notice */
.footer-notice-probe {
	margin: 12px auto 0;
	padding: 8px 12px;
	max-width: var(--wp--style--global--content-size, 760px);
	font-size: 12px;
	line-height: 1.35;
	text-align: center;
	color: var(--wp--preset--color--accent-4, #5f5f5f);
	border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);
}

/* Site Editor canvas: avoid extra offset gap under header */
.editor-styles-wrapper .wp-site-blocks > main,
.editor-styles-wrapper main.wp-block-group {
	padding-top: 0 !important;
}

/* Gravity Forms submit button: match site button style */
.gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]),
.gform-theme--framework .gform-theme-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.7em 1.3em;
	min-height: 44px;
	font-family: var(--wp--preset--font-family--body, inherit);
	font-size: var(--wp--preset--font-size--small, 0.95rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.2;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--contrast, #111);
	background: var(--wp--preset--color--contrast, #111);
	color: var(--wp--preset--color--base, #fff);
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.08s ease;
}

.gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]):hover,
.gform-theme--framework .gform-theme-button:hover {
	background: var(--wp--preset--color--accent-4, #5f5f5f);
	border-color: var(--wp--preset--color--accent-4, #5f5f5f);
	color: var(--wp--preset--color--base, #fff);
}

.gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]):focus-visible,
.gform-theme--framework .gform-theme-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-4, #5f5f5f);
	outline-offset: 2px;
}

.gform_wrapper :is(.gform_button, input[type="submit"], button[type="submit"]):active,
.gform-theme--framework .gform-theme-button:active {
	transform: translateY(1px);
}

/* Gravity Forms v2.5+ theme framework hard override (prevents default blue button) */
.gform-theme--framework,
.gform_wrapper {
	--gf-ctrl-btn-bg-color-primary: var(--wp--preset--color--contrast, #111);
	--gf-ctrl-btn-color-primary: var(--wp--preset--color--base, #fff);
	--gf-ctrl-btn-border-color-primary: var(--wp--preset--color--contrast, #111);
	--gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--accent-4, #5f5f5f);
	--gf-ctrl-btn-border-color-hover-primary: var(--wp--preset--color--accent-4, #5f5f5f);
}

body .gform_wrapper .gform_footer input[type="submit"],
body .gform_wrapper .gform_page_footer input[type="button"].gform_next_button,
body .gform_wrapper .gform_page_footer input[type="submit"],
body .gform_wrapper .gform_page_footer input[type="button"].gform_previous_button,
body .gform_wrapper button.gform_button,
body .gform-theme--framework .gform-theme-button {
	background-color: var(--wp--preset--color--contrast, #111) !important;
	border-color: var(--wp--preset--color--contrast, #111) !important;
	color: var(--wp--preset--color--base, #fff) !important;
}

body .gform_wrapper .gform_footer input[type="submit"]:hover,
body .gform_wrapper .gform_page_footer input[type="button"].gform_next_button:hover,
body .gform_wrapper .gform_page_footer input[type="submit"]:hover,
body .gform_wrapper button.gform_button:hover,
body .gform-theme--framework .gform-theme-button:hover {
	background-color: var(--wp--preset--color--accent-4, #5f5f5f) !important;
	border-color: var(--wp--preset--color--accent-4, #5f5f5f) !important;
}

/* Gravity Forms fields: match site typography and palette */
body .gform_wrapper {
	--gf-local-bg: var(--wp--preset--color--base, #f5f1e8);
	--gf-local-text: var(--wp--preset--color--contrast, #111);
	--gf-local-muted: var(--wp--preset--color--accent-4, #5f5f5f);
	--gf-local-border: color-mix(in srgb, var(--wp--preset--color--contrast, #111) 20%, transparent);
	--gf-local-focus: var(--wp--preset--color--accent-4, #5f5f5f);
	--gf-local-error: #b42318;
}

body .gform_wrapper .gform_heading .gform_title,
body .gform_wrapper .gform_heading .gform_description,
body .gform_wrapper .gfield_label {
	color: var(--gf-local-text);
}

body .gform_wrapper .gfield_label {
	font-family: var(--wp--preset--font-family--body, inherit);
	font-size: var(--wp--preset--font-size--small, 0.95rem);
	font-weight: 500;
	letter-spacing: 0.01em;
	margin-bottom: 0.35rem;
}

body .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], textarea, select),
body .gform-theme--framework :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], textarea, select) {
	width: 100%;
	border-radius: 12px;
	border: 1px solid var(--gf-local-border);
	background-color: var(--gf-local-bg);
	color: var(--gf-local-text);
	font-family: var(--wp--preset--font-family--body, inherit);
	font-size: var(--wp--preset--font-size--small, 0.95rem);
	line-height: 1.45;
	padding: 0.75rem 0.9rem;
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

body .gform_wrapper textarea {
	min-height: 130px;
	resize: vertical;
}

body .gform_wrapper :is(input, textarea, select)::placeholder {
	color: color-mix(in srgb, var(--gf-local-muted) 80%, white);
	opacity: 1;
}

body .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], textarea, select):focus,
body .gform-theme--framework :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="password"], textarea, select):focus {
	outline: none;
	border-color: var(--gf-local-focus);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--gf-local-focus) 28%, transparent);
}

body .gform_wrapper .gfield_description,
body .gform_wrapper .gform_description,
body .gform_wrapper .gfield_consent_description {
	color: var(--gf-local-muted);
	font-size: 0.88rem;
}

body .gform_wrapper .gfield_error :is(input, textarea, select),
body .gform_wrapper .gfield--type-email.gfield_error :is(input, textarea, select) {
	border-color: var(--gf-local-error) !important;
	background-color: color-mix(in srgb, #fff 92%, var(--gf-local-error));
}

body .gform_wrapper .validation_message,
body .gform_wrapper .gform_validation_errors {
	border-radius: 12px;
	border: 1px solid color-mix(in srgb, var(--gf-local-error) 40%, transparent);
	background-color: color-mix(in srgb, #fff 92%, var(--gf-local-error));
	color: #7a271a;
	font-size: 0.9rem;
}

body .gform_wrapper .gform_fields {
	row-gap: 1rem;
}

body .gform_wrapper .gform_footer,
body .gform_wrapper .gform_page_footer {
	margin-top: 1.25rem;
	padding-top: 0.25rem;
}

/* Make entire service card clickable and add hover effects */
.clickable-card {
  position: relative;
  /* Add a smooth fade for the shadow and a slight lift */
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  /* Optional: gives the card slight rounded corners to make the shadow look natural */
  border-radius: 8px;
	padding: 24px; /* Adds breathing room between the text and the card edge */
}

/* The invisible stretched link */
.clickable-card a::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
}

/* The shadow and lift effect when the mouse hovers over the card */
.clickable-card:hover {
  /* A soft, diffused shadow (horizontal, vertical, blur, spread, color) */
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
  /* Lifts the card up by 3 pixels */
}

/* Related Services */

.related-services {
	margin-top: 2rem;
}

.related-services h3 {
	margin-bottom: 1rem;
}

.related-services-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.related-service-item {
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.related-service-link {
	display: block;
	padding: 1.2rem;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

.related-service-title {
	font-weight: 600;
	font-size: 1rem;
}

.related-service-item:hover {
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

/* Related Projects */

.related-projects {
	margin-top: 2rem;
}

.related-projects h3 {
	margin-bottom: 1rem;
}

.related-projects-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.related-project-item {
	border-radius: 12px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.related-project-link {
	display: block;
	padding: 1.2rem;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

.related-project-title {
	font-weight: 600;
	font-size: 1rem;
}

.related-project-item:hover {
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

.related-project-link img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 8px;
	margin-bottom: 0.5rem;
}

/* Only apply transforms on real hover devices */
@media (hover: hover) {

	.clickable-card:hover {
		transform: translateY(-3px);
	}

	.related-service-item:hover,
	.related-project-item:hover {
		transform: translateY(-4px);
	}
}

/* Remove leftover header offset */
.wp-site-blocks {
	padding-top: 0 !important;
}
