/*
Theme Name: Ridgeview Direct Care
Theme URI: https://ridgeviewdpc.com
Author: Ridgeview Direct Care
Description: Block theme for Ridgeview Direct Care — direct primary care and sports medicine in Wheat Ridge, Colorado. Full Site Editing with Gutenberg patterns for every page section.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ridgeview
Tags: block-patterns, full-site-editing, one-column, custom-colors, custom-menu, editor-style, featured-images, block-styles, wide-blocks, accessibility-ready
*/

/* -------------------------------------------------------------
   Ridgeview — minimal supporting CSS.
   Everything a client normally edits lives in Gutenberg / theme.json.
   The rules below only cover effects Gutenberg cannot express:
   hover treatments, hairline row rules, dropdown chrome, and the
   hero scrim. Each is applied through an "Additional CSS class"
   on the relevant block so it stays visible in the editor.
   ------------------------------------------------------------- */

/* Uppercase micro-label used above headings (also available as H6) */
.rv-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--eyebrow);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	line-height: 1.4;
}

/* Hairline list: every direct child gets a top rule. Used for
   treatment lists, service lists, price rows. */
.rv-rows > * {
	border-top: 1px solid var(--wp--preset--color--sand);
	margin: 0;
	padding: 16px 0;
}
.rv-rows {
	border-bottom: 1px solid var(--wp--preset--color--sand);
}
.rv-rows.is-layout-flow > * + * {
	margin-block-start: 0;
}
.rv-rows--on-navy > * {
	border-top-color: var(--wp--preset--color--navy-line);
}
.rv-rows--on-navy {
	border-bottom-color: var(--wp--preset--color--navy-line);
}

/* Two-up list of service names with underlines (hub + home cards) */
.rv-checklist > * {
	border-bottom: 1px solid var(--wp--preset--color--sand);
	padding-bottom: 12px;
	margin: 0;
}
.rv-checklist--on-navy > * {
	border-bottom-color: var(--wp--preset--color--navy-line);
}

/* Booking cards: whole card tints on hover, in a brand color set
   per card with rv-card--green / --navy / --blue / --gold */
.rv-card {
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.rv-card:hover {
	transform: translateY(-4px);
}
.rv-card--green:hover, .rv-card--green:hover *,
.rv-card--navy:hover, .rv-card--navy:hover *,
.rv-card--blue:hover, .rv-card--blue:hover *,
.rv-card--gold:hover, .rv-card--gold:hover * {
	color: var(--wp--preset--color--cream) !important;
}
.rv-card--green:hover .wp-block-button__link,
.rv-card--navy:hover .wp-block-button__link,
.rv-card--blue:hover .wp-block-button__link,
.rv-card--gold:hover .wp-block-button__link {
	border-color: var(--wp--preset--color--cream) !important;
	background: transparent !important;
}

/* Condition / service cards: quiet lift, gold border, gold arrow label */
.rv-card--soft:hover {
	border-color: var(--wp--preset--color--gold) !important;
	box-shadow: 0 12px 28px rgba(30, 51, 72, 0.09);
}
.rv-card-cta {
	margin-top: auto;
	font-size: 12px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--green);
}
.rv-card--soft {
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
.rv-card--soft > * {
	margin-block-start: 0;
}
.rv-card--soft > * + * {
	margin-block-start: 12px;
}
.rv-card--green:hover { background: var(--wp--preset--color--green) !important; border-color: var(--wp--preset--color--green) !important; }
.rv-card--navy:hover  { background: var(--wp--preset--color--navy) !important;  border-color: var(--wp--preset--color--navy) !important; }
.rv-card--blue:hover  { background: var(--wp--preset--color--blue) !important;  border-color: var(--wp--preset--color--blue) !important; }
.rv-card--gold:hover  { background: var(--wp--preset--color--gold) !important;  border-color: var(--wp--preset--color--gold) !important; }

/* Hero: photo sits behind, cream scrim fades it into the copy */
.rv-hero {
	position: relative;
	isolation: isolate;
}
.rv-hero .rv-hero__scrim {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
}
.rv-hero .rv-hero__content {
	position: relative;
	z-index: 2;
}
.rv-hero .rv-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* On phones the directional scrim can't protect the headline, so the
   overlay goes flat cream instead */
@media (max-width: 781px) {
	.rv-hero .wp-block-cover__background {
		background: rgba(251, 247, 240, 0.9) !important;
	}
	.rv-hero {
		padding-top: var(--wp--preset--spacing--50);
		padding-bottom: var(--wp--preset--spacing--50);
	}
}

/* Media panel in split sections fills its column width; the image
   block's own aspect-ratio setting controls its height */
.rv-media img {
	width: 100%;
	object-fit: cover;
	display: block;
}
.rv-media .wp-block-image,
.rv-media figure {
	margin: 0;
}

/* FAQ (core/details) — serif summary, gold marker, hairline rows */
.rv-faq .wp-block-details {
	padding: 6px 0;
}
.rv-faq .wp-block-details summary {
	font-family: var(--wp--preset--font-family--headings);
	font-size: 22px;
	line-height: 1.4;
	color: var(--wp--preset--color--navy);
	padding: 20px 0;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}
.rv-faq .wp-block-details summary::-webkit-details-marker {
	display: none;
}
.rv-faq .wp-block-details summary::after {
	content: "+";
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--body);
	font-size: 26px;
	flex: 0 0 auto;
	line-height: 1;
}
.rv-faq .wp-block-details[open] summary::after {
	content: "\2013";
}
.rv-faq .wp-block-details > :not(summary) {
	margin-bottom: 24px;
	max-width: 820px;
}

/* Gold bullet lists (condition pages) */
.rv-bullets {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.rv-bullets li {
	position: relative;
	padding-left: 26px;
	line-height: 1.7;
}
.rv-bullets li::before {
	content: "\00B7";
	position: absolute;
	left: 6px;
	top: -2px;
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--headings);
	font-size: 22px;
}

/* Related-links list: label left, gold arrow right */
.rv-arrow-links > * {
	border-bottom: 1px solid var(--wp--preset--color--sand);
	padding: 14px 0;
	margin: 0;
}
.rv-arrow-links a {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}
.rv-arrow-links a::after {
	content: "\2192";
	color: var(--wp--preset--color--gold);
}

/* Header + navigation chrome */
.rv-header {
	position: relative;
	z-index: 90;
}
.rv-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: #ffffff;
	border: 1px solid var(--wp--preset--color--sand);
	box-shadow: 0 14px 34px rgba(30, 51, 72, 0.14);
	padding: 8px 0;
	min-width: 250px;
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 14px;
}
.rv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 8px 22px;
}
.rv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item:hover {
	background: var(--wp--preset--color--cream);
}
.rv-header .rv-phone a,
.rv-header .rv-phone {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--navy);
	white-space: nowrap;
}

/* Footer logo sits on navy */
.rv-logo-invert img {
	filter: brightness(0) invert(1);
	opacity: 0.9;
}

/* Buttons don't get squeezed by a flex row. Short labels stay on one line
   at desktop; long in-card CTAs always wrap rather than overflow. */
.wp-block-buttons > .wp-block-button {
	flex: 0 1 auto;
	max-width: 100%;
}
@media (min-width: 1200px) {
	.wp-block-button__link {
		white-space: nowrap;
	}
}
.rv-card .wp-block-button__link,
.rv-card--soft .wp-block-button__link {
	white-space: normal;
	padding-left: 20px;
	padding-right: 20px;
}

/* Outline button variant */
.wp-block-button.is-style-rv-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--navy);
	border: 1px solid var(--wp--preset--color--navy);
	padding: 17px 30px;
}
.wp-block-button.is-style-rv-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--cream);
}
.has-navy-background-color .wp-block-button.is-style-rv-outline .wp-block-button__link,
.rv-on-navy .wp-block-button.is-style-rv-outline .wp-block-button__link {
	color: var(--wp--preset--color--cream);
	border-color: var(--wp--preset--color--cream);
}
.has-navy-background-color .wp-block-button.is-style-rv-outline .wp-block-button__link:hover,
.rv-on-navy .wp-block-button.is-style-rv-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--navy);
}

/* Trust bar cells */
.rv-trustbar .wp-block-column {
	border-right: 1px solid rgba(251, 247, 240, 0.18);
	text-align: center;
}
.rv-trustbar .wp-block-column:last-child {
	border-right: 0;
}
@media (max-width: 781px) {
	.rv-trustbar .wp-block-column {
		border-right: 0;
		border-bottom: 1px solid rgba(251, 247, 240, 0.18);
	}
	.rv-trustbar .wp-block-column:last-child {
		border-bottom: 0;
	}
}

/* Price row: service left, price right, hairline above each row */
.rv-price-row {
	display: flex;
	justify-content: space-between;
	gap: 32px;
	align-items: baseline;
	border-top: 1px solid var(--wp--preset--color--sand);
	padding: 18px 0;
}
.rv-price-row > * {
	margin: 0;
}
.rv-price-row .rv-price {
	white-space: nowrap;
	font-family: var(--wp--preset--font-family--headings);
	color: var(--wp--preset--color--green);
	font-size: 19px;
	text-align: right;
}

/* Embedded map fills its slot */
.rv-map iframe {
	width: 100%;
	min-height: 150px;
	border: 0;
	display: block;
}

/* Small screens: split grids stack, hero media keeps a sane height */
@media (max-width: 781px) {
	.rv-media img {
		min-height: 260px;
	}
	.rv-header {
		row-gap: 12px;
	}
	.rv-faq .wp-block-details summary {
		font-size: 19px;
	}
}

/* Hero booking card: translucent cream panel over the photo */
.rv-book-card {
	background: rgba(251, 247, 240, 0.82);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 20px 50px rgba(30, 51, 72, 0.18);
}

/* Placeholder form fields. Replace this HTML block with your form
   plugin's block to make the form actually send. */
.rv-formfields {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 20px;
}
.rv-formfields input,
.rv-formfields textarea,
.rv-formfields select {
	border: 1px solid #d8cdba;
	background: rgba(255, 255, 255, 0.85);
	padding: 13px 14px;
	font-size: 15px;
	font-family: inherit;
	color: var(--wp--preset--color--navy);
	outline: none;
	width: 100%;
	box-sizing: border-box;
}

/* Signs + symptoms list reuses the row rules but takes no arrow */
.rv-arrow-links--plain a::after,
.rv-arrow-links--plain p::after {
	content: none;
}
.rv-arrow-links--plain > *:last-child {
	border-bottom: 0;
}

/* Condition sidebar panels keep their rows tight */
.rv-arrow-links > *:last-child {
	border-bottom: 0;
}


/* Jetpack Forms: match the theme's field styling (replaces the old
   placeholder inputs). Buttons inherit the theme button style. */
.rv-form.wp-block-jetpack-contact-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 20px;
}
.rv-form .jetpack-field,
.rv-form .grunion-field-wrap {
	margin: 0;
}
.rv-form .jetpack-field__label,
.rv-form .grunion-field-label {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--taupe);
	margin-bottom: 6px;
	font-weight: 500;
}
.rv-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.rv-form textarea,
.rv-form select {
	border: 1px solid #d8cdba;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.85);
	padding: 13px 14px;
	font-size: 15px;
	font-family: inherit;
	color: var(--wp--preset--color--navy);
	outline: none;
	width: 100%;
	box-sizing: border-box;
}
.rv-form input:focus,
.rv-form textarea:focus,
.rv-form select:focus {
	border-color: var(--wp--preset--color--gold);
}
.rv-form textarea {
	min-height: 110px;
}
.rv-form .wp-block-jetpack-button,
.rv-form .wp-block-button {
	margin-top: 8px;
}
.rv-form .contact-form-submission {
	padding: 24px;
	border: 1px solid var(--wp--preset--color--sand);
	background: #fff;
}
