/**
 * Clínica Abadt — Global Design System
 * Premium medical & aesthetic clinic styling
 */

/* ==========================================================================
   Design tokens
   ========================================================================== */

:root {
	--ca-primary-dark: #0d3d61;
	--ca-primary: #1a5c8c;
	--ca-primary-light: #1e7ba0;
	--ca-bg-light: #f4f8fb;
	--ca-text: #1a2d45;
	--ca-muted: #6b8399;
	--ca-border: #d4e4ef;
	--ca-gold: #e8a020;
	--ca-white: #ffffff;

	/* Derived tokens */
	--ca-primary-rgb: 26, 92, 140;
	--ca-shadow-sm: 0 2px 8px rgba(13, 61, 97, 0.06);
	--ca-shadow-md: 0 8px 24px rgba(13, 61, 97, 0.1);
	--ca-shadow-lg: 0 16px 40px rgba(13, 61, 97, 0.12);
	--ca-radius-sm: 8px;
	--ca-radius-md: 12px;
	--ca-radius-lg: 16px;
	--ca-radius-xl: 24px;
	--ca-transition: 0.25s ease;
	--ca-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Map Elementor kit globals to the design system */
.elementor-kit-9,
.elementor-kit-9 :where(.e-con, .elementor-widget) {
	--e-global-color-primary: var(--ca-text);
	--e-global-color-secondary: var(--ca-muted);
	--e-global-color-text: var(--ca-muted);
	--e-global-color-accent: var(--ca-primary);
	--e-global-color-a822b1f: var(--ca-bg-light);
}

/* ==========================================================================
   Base & typography
   ========================================================================== */

body {
	font-family: var(--ca-font);
	color: var(--ca-text);
	background-color: var(--ca-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body a:not(.elementor-button):not(.wp-block-button__link):not(.elementor-social-icon) {
	color: var(--ca-primary);
	text-decoration-color: rgba(var(--ca-primary-rgb), 0.35);
	transition: color var(--ca-transition), text-decoration-color var(--ca-transition);
}

body a:not(.elementor-button):not(.wp-block-button__link):not(.elementor-social-icon):hover,
body a:not(.elementor-button):not(.wp-block-button__link):not(.elementor-social-icon):focus {
	color: var(--ca-primary-light);
	text-decoration-color: var(--ca-primary-light);
}

.elementor-widget-heading .elementor-heading-title,
h1, h2, h3, h4, h5, h6 {
	color: var(--ca-text);
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p {
	color: var(--ca-muted);
}

/* Section eyebrow labels */
.elementor-widget-heading h6.elementor-heading-title {
	color: var(--ca-gold) !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
}

.page-header .entry-title {
	color: var(--ca-text);
	font-weight: 600;
}

/* ==========================================================================
   Header & navigation
   ========================================================================== */

.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: var(--ca-shadow-sm);
}

.elementor-location-header > .e-con.e-parent {
	background-color: var(--ca-white) !important;
	border-bottom: 1px solid var(--ca-border);
}

.elementor-location-header .elementor-nav-menu--main .elementor-item {
	color: var(--ca-text) !important;
	font-weight: 500;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	transition: color var(--ca-transition);
}

.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--main .elementor-item:focus,
.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-location-header .elementor-nav-menu--main .elementor-item.highlighted {
	color: var(--ca-primary) !important;
}

.elementor-location-header .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::before,
.elementor-location-header .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item::after {
	background-color: var(--ca-primary) !important;
	height: 2px;
}

.elementor-location-header .elementor-menu-toggle {
	color: var(--ca-primary-dark) !important;
	border: 1px solid var(--ca-border);
	border-radius: var(--ca-radius-sm);
	padding: 0.5rem;
	transition: background-color var(--ca-transition), border-color var(--ca-transition);
}

.elementor-location-header .elementor-menu-toggle:hover,
.elementor-location-header .elementor-menu-toggle:focus {
	background-color: var(--ca-bg-light);
	border-color: var(--ca-primary-light);
}

.elementor-location-header .elementor-nav-menu--dropdown {
	background-color: var(--ca-white) !important;
	border: 1px solid var(--ca-border);
	border-radius: var(--ca-radius-md);
	box-shadow: var(--ca-shadow-md);
	padding: 0.5rem 0;
}

.elementor-location-header .elementor-nav-menu--dropdown .elementor-item {
	color: var(--ca-text) !important;
	padding: 0.75rem 1.25rem !important;
}

.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:focus,
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
	background-color: var(--ca-bg-light) !important;
	color: var(--ca-primary) !important;
}

.elementor-location-header .elementor-widget-image img {
	max-height: 52px;
	width: auto;
}

/* Header CTA */
.elementor-location-header .elementor-button {
	background: linear-gradient(135deg, var(--ca-primary) 0%, var(--ca-primary-light) 100%) !important;
	color: var(--ca-white) !important;
	border: none !important;
	border-radius: var(--ca-radius-sm) !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em;
	box-shadow: 0 4px 14px rgba(var(--ca-primary-rgb), 0.28);
	transition: transform var(--ca-transition), box-shadow var(--ca-transition), background var(--ca-transition);
}

.elementor-location-header .elementor-button:hover,
.elementor-location-header .elementor-button:focus {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(var(--ca-primary-rgb), 0.35);
	background: linear-gradient(135deg, var(--ca-primary-dark) 0%, var(--ca-primary) 100%) !important;
	color: var(--ca-white) !important;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.elementor-button,
.wp-block-button__link,
.elementor-kit-9 button,
.elementor-kit-9 input[type="button"],
.elementor-kit-9 input[type="submit"] {
	font-family: var(--ca-font) !important;
	font-weight: 600 !important;
	border-radius: var(--ca-radius-sm) !important;
	transition: transform var(--ca-transition), box-shadow var(--ca-transition), background var(--ca-transition), color var(--ca-transition), border-color var(--ca-transition);
}

/* Primary buttons */
.elementor-page .elementor-button {
	background: linear-gradient(135deg, var(--ca-primary) 0%, var(--ca-primary-light) 100%) !important;
	color: var(--ca-white) !important;
	border: none !important;
	box-shadow: 0 4px 14px rgba(var(--ca-primary-rgb), 0.22);
}

.elementor-page .elementor-button:hover,
.elementor-page .elementor-button:focus {
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(var(--ca-primary-rgb), 0.3);
}

/* Secondary / outline buttons (white background in hero & footer CTA) */
.elementor-13 .elementor-element-8126798 .elementor-button,
.elementor-258 .elementor-element-bcc2d8b .elementor-button,
.elementor-page .elementor-button.elementor-button-outline {
	background-color: var(--ca-white) !important;
	background-image: none !important;
	color: var(--ca-primary) !important;
	border: 2px solid var(--ca-border) !important;
	box-shadow: var(--ca-shadow-sm);
}

.elementor-13 .elementor-element-8126798 .elementor-button:hover,
.elementor-258 .elementor-element-bcc2d8b .elementor-button:hover,
.elementor-page .elementor-button.elementor-button-outline:hover {
	background-color: var(--ca-bg-light) !important;
	border-color: var(--ca-primary-light) !important;
	color: var(--ca-primary-dark) !important;
	transform: translateY(-2px);
}

/* ==========================================================================
   Hero sections
   ========================================================================== */

/*
 * Overlay only — do NOT touch ::before (Elementor background image lives there).
 * Use ::after for the dark gradient on top of the editor background.
 */
.elementor-element-7932bbb {
	position: relative;
	overflow: hidden;
}

.elementor-element-7932bbb::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(
		135deg,
		rgba(13, 61, 97, 0.68) 0%,
		rgba(26, 92, 140, 0.68) 100%
	);
}

.elementor-element-7932bbb > .e-con-inner {
	position: relative;
	z-index: 2;
}

.elementor-element-7932bbb > .elementor-background-video-container {
	z-index: 0;
}

/* Hero typography — first section inside each Elementor page wrapper */
.elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child h1.elementor-heading-title {
	color: var(--ca-white) !important;
}

.elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child .elementor-widget-text-editor,
.elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child .elementor-widget-text-editor p {
	color: rgba(255, 255, 255, 0.92) !important;
}

.elementor-element-7932bbb h3.elementor-heading-title {
	color: var(--ca-gold) !important;
	font-weight: 500 !important;
}

/* Keep buttons row compact so stats stay visible below */
.elementor-element-7932bbb .elementor-element-2bf2ae7 {
	flex-grow: 0 !important;
	flex-shrink: 0;
}

/* Inicio hero stats row (Elementor containers + HTML widget) */
.elementor-element-7932bbb .ca-hero-stats,
.elementor-element-7932bbb .e-con.ca-hero-stats {
	--flex-direction: row;
	--width: 100%;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: flex-start !important;
	gap: 2.5rem 3.5rem;
	margin-top: 2.75rem;
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 100% !important;
	position: relative;
	z-index: 2;
}

.elementor-element-7932bbb .ca-hero-stat,
.elementor-element-7932bbb .e-con.ca-hero-stat {
	--flex-direction: column;
	--width: auto;
	display: flex !important;
	flex-direction: column !important;
	flex: 0 1 auto !important;
	width: auto !important;
	max-width: none !important;
	gap: 0.35rem;
	min-width: 7.5rem;
}

/* Stat values — Elementor Heading widgets */
.elementor-element-7932bbb .ca-hero-stat .elementor-widget-heading,
.elementor-element-7932bbb .ca-hero-stat .elementor-heading-title,
.elementor-element-7932bbb .ca-hero-stat__value {
	color: var(--ca-white) !important;
	font-family: var(--ca-font);
	font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.02em;
	margin: 0;
}

/* Stat labels — Elementor Text Editor widgets */
.elementor-element-7932bbb .ca-hero-stat .elementor-widget-text-editor,
.elementor-element-7932bbb .ca-hero-stat .elementor-widget-text-editor p,
.elementor-element-7932bbb .ca-hero-stat__label {
	color: rgba(255, 255, 255, 0.82) !important;
	font-family: var(--ca-font);
	font-size: 0.9375rem !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	margin: 0;
}

.elementor-element-7932bbb .ca-hero-stat__value--rating {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.elementor-element-7932bbb .ca-hero-stat__star {
	width: 1.15em;
	height: 1.15em;
	flex-shrink: 0;
	color: var(--ca-white);
}

/* Light band sections */
.elementor-element-343b4be,
.elementor-element-d40fff1 {
	background-color: var(--ca-bg-light) !important;
}

/* ==========================================================================
   Cards & service sections
   ========================================================================== */

/* Icon-box service cards */
.elementor-page .e-con.e-child[data-settings*="background_background"]:has(.elementor-widget-icon-box) {
	background-color: var(--ca-white) !important;
	border: 1px solid var(--ca-border) !important;
	border-radius: var(--ca-radius-lg) !important;
	box-shadow: var(--ca-shadow-sm) !important;
	transition: transform var(--ca-transition), box-shadow var(--ca-transition), border-color var(--ca-transition);
}

.elementor-page .e-con.e-child[data-settings*="background_background"]:has(.elementor-widget-icon-box):hover {
	transform: translateY(-4px);
	box-shadow: var(--ca-shadow-md) !important;
	border-color: rgba(var(--ca-primary-rgb), 0.35) !important;
	border-bottom-width: 3px !important;
}

.elementor-widget-icon-box .elementor-icon {
	background-color: var(--ca-bg-light) !important;
	color: var(--ca-primary) !important;
	fill: var(--ca-primary) !important;
	border-radius: var(--ca-radius-md) !important;
	transition: background-color var(--ca-transition), color var(--ca-transition);
}

.elementor-widget-icon-box:hover .elementor-icon {
	background-color: var(--ca-primary) !important;
	color: var(--ca-white) !important;
	fill: var(--ca-white) !important;
}

.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-title a {
	color: var(--ca-text) !important;
	font-weight: 600 !important;
}

.elementor-widget-icon-box .elementor-icon-box-description {
	color: var(--ca-muted) !important;
	line-height: 1.65;
}

/* Contacto page — contact cards match Inicio service cards */
.elementor-72 .elementor-element-9f236d8 {
	background-color: var(--ca-bg-light) !important;
	margin-bottom: 80px !important;
}

.elementor-72 .elementor-element-2ea5eb9 {
	background-color: var(--ca-white);
}

.elementor-72 .elementor-element-705290e {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	gap: 25px;
	width: 100% !important;
}

.elementor-72 .elementor-element-705290e > .e-con.e-child[data-settings*="background_background"] {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	width: auto !important;
	max-width: none !important;
	--width: auto !important;
	background-color: var(--ca-white) !important;
	border: 1px solid var(--ca-border) !important;
	border-radius: var(--ca-radius-lg) !important;
	box-shadow: var(--ca-shadow-sm) !important;
	padding: 30px !important;
	transition: transform var(--ca-transition), box-shadow var(--ca-transition), border-color var(--ca-transition);
}

.elementor-72 .elementor-element-705290e > .e-con.e-child[data-settings*="background_background"]:hover {
	transform: translateY(-4px);
	box-shadow: var(--ca-shadow-md) !important;
	border-color: rgba(var(--ca-primary-rgb), 0.35) !important;
	border-bottom-width: 3px !important;
}

.elementor-72 .elementor-element-705290e .elementor-icon-box-wrapper {
	gap: 10px;
	text-align: start;
}

.elementor-72 .elementor-element-705290e .elementor-icon-box-title {
	margin-block-end: 14px;
}

.elementor-72 .elementor-element-705290e .elementor-view-stacked .elementor-icon {
	background-color: var(--ca-bg-light) !important;
	color: var(--ca-primary) !important;
	fill: var(--ca-primary) !important;
	font-size: 42px !important;
	padding: 10px !important;
	border-radius: var(--ca-radius-md) !important;
	transition: background-color var(--ca-transition), color var(--ca-transition), fill var(--ca-transition);
}

.elementor-72 .elementor-element-705290e .e-con.e-child:hover .elementor-view-stacked .elementor-icon {
	background-color: var(--ca-primary) !important;
	color: var(--ca-white) !important;
	fill: var(--ca-white) !important;
}

.elementor-72 .elementor-element-705290e .elementor-icon-box-title,
.elementor-72 .elementor-element-705290e .elementor-icon-box-title a {
	color: var(--ca-text) !important;
	font-family: var(--ca-font) !important;
	font-size: 1.0625rem !important;
	font-weight: 600 !important;
}

.elementor-72 .elementor-element-705290e .elementor-icon-box-description {
	color: var(--ca-muted) !important;
	font-family: var(--ca-font) !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
}

/* Image service cards */
.elementor-page .e-con.e-child:has(.elementor-widget-image):has(.elementor-widget-icon-box) {
	background-color: var(--ca-white) !important;
	border: 1px solid var(--ca-border) !important;
	border-radius: var(--ca-radius-lg) !important;
	box-shadow: var(--ca-shadow-sm) !important;
	overflow: hidden;
	transition: transform var(--ca-transition), box-shadow var(--ca-transition);
}

.elementor-page .e-con.e-child:has(.elementor-widget-image):has(.elementor-widget-icon-box):hover {
	transform: translateY(-4px);
	box-shadow: var(--ca-shadow-md) !important;
	border-color: rgba(var(--ca-primary-rgb), 0.3) !important;
}

/* Testimonial cards */
.elementor-testimonial-carousel .swiper-slide,
.elementor-main-swiper .swiper-slide {
	background-color: var(--ca-white) !important;
	border: 1px solid var(--ca-border) !important;
	border-radius: var(--ca-radius-xl) !important;
	box-shadow: var(--ca-shadow-sm) !important;
}

.elementor-testimonial__text {
	color: var(--ca-muted) !important;
	font-style: italic;
	line-height: 1.7;
}

.elementor-testimonial__name {
	color: var(--ca-primary) !important;
	font-weight: 600 !important;
}

/* Stats / highlight box */
.elementor-element-e9c20fa:not(.elementor-motion-effects-element-type-background),
.elementor-element-e9c20fa > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background: linear-gradient(160deg, var(--ca-primary-dark) 0%, var(--ca-primary) 100%) !important;
}

/* Section headings accent color */
.elementor-widget-heading h2.elementor-heading-title {
	color: var(--ca-text);
	font-weight: 700;
	line-height: 1.2;
}

.elementor-widget-heading .elementor-heading-title[style*="color: var( --e-global-color-accent )"],
.elementor-element-ad5bce6 .elementor-heading-title,
.elementor-element-97aeca0 .elementor-heading-title,
.elementor-element-648302c .elementor-heading-title {
	color: var(--ca-gold) !important;
}

/* ==========================================================================
   WPForms — appointment form
   ========================================================================== */

:root,
.wpforms-container,
.wpforms-container-full,
div[id^="wpforms-"] {
	--wpforms-field-border-radius: var(--ca-radius-sm);
	--wpforms-field-border-color: var(--ca-border);
	--wpforms-field-border-color-spare: var(--ca-border);
	--wpforms-field-background-color: var(--ca-white);
	--wpforms-field-text-color: var(--ca-text);
	--wpforms-label-color: var(--ca-text);
	--wpforms-label-sublabel-color: var(--ca-muted);
	--wpforms-button-border-radius: var(--ca-radius-sm);
	--wpforms-button-background-color: var(--ca-primary);
	--wpforms-button-border-color: var(--ca-primary);
	--wpforms-button-text-color: var(--ca-white);
	--wpforms-page-break-color: var(--ca-primary);
	--wpforms-container-border-color: var(--ca-border);
	--wpforms-container-border-radius: var(--ca-radius-lg);
}

.wpforms-container {
	background-color: var(--ca-white);
	border: 1px solid var(--ca-border) !important;
	border-radius: var(--ca-radius-lg) !important;
	box-shadow: var(--ca-shadow-md);
	padding: 2rem 2.25rem !important;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.wpforms-field-label,
.wpforms-field-label-inline {
	font-weight: 600 !important;
	color: var(--ca-text) !important;
}

.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field input[type="tel"],
.wpforms-field input[type="number"],
.wpforms-field input[type="url"],
.wpforms-field select,
.wpforms-field textarea {
	border: 1px solid var(--ca-border) !important;
	border-radius: var(--ca-radius-sm) !important;
	color: var(--ca-text) !important;
	transition: border-color var(--ca-transition), box-shadow var(--ca-transition);
}

.wpforms-field input:focus,
.wpforms-field select:focus,
.wpforms-field textarea:focus {
	border-color: var(--ca-primary-light) !important;
	box-shadow: 0 0 0 3px rgba(var(--ca-primary-rgb), 0.12) !important;
	outline: none;
}

.wpforms-field input::placeholder,
.wpforms-field textarea::placeholder {
	color: var(--ca-muted);
	opacity: 0.7;
}

.wpforms-submit-container .wpforms-submit,
.wpforms-page-button {
	background: linear-gradient(135deg, var(--ca-primary) 0%, var(--ca-primary-light) 100%) !important;
	border: none !important;
	border-radius: var(--ca-radius-sm) !important;
	color: var(--ca-white) !important;
	font-weight: 600 !important;
	padding: 0.875rem 2rem !important;
	box-shadow: 0 4px 14px rgba(var(--ca-primary-rgb), 0.25);
	transition: transform var(--ca-transition), box-shadow var(--ca-transition);
}

.wpforms-submit-container .wpforms-submit:hover,
.wpforms-page-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(var(--ca-primary-rgb), 0.32);
}

.wpforms-field-required label::after,
.wpforms-required-label {
	color: var(--ca-primary-light) !important;
}

.wpforms-confirmation-container-full {
	background-color: var(--ca-bg-light);
	border: 1px solid var(--ca-border);
	border-left: 4px solid var(--ca-primary);
	border-radius: var(--ca-radius-md);
	color: var(--ca-text);
	padding: 1.25rem 1.5rem;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.elementor-location-footer {
	margin-top: 0;
}

/* Footer CTA band */
.elementor-258 .elementor-element-de5a17c:not(.elementor-motion-effects-element-type-background),
.elementor-258 .elementor-element-de5a17c > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background: linear-gradient(135deg, var(--ca-primary) 0%, var(--ca-primary-light) 100%) !important;
}

.elementor-258 .elementor-element-381fcd4 .elementor-heading-title {
	color: var(--ca-white) !important;
}

.elementor-258 .elementor-element-dff5347,
.elementor-258 .elementor-element-dff5347 p {
	color: rgba(255, 255, 255, 0.88) !important;
}

/* Main footer */
.elementor-258 .elementor-element-f1f9eb2:not(.elementor-motion-effects-element-type-background),
.elementor-258 .elementor-element-f1f9eb2 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: var(--ca-primary-dark) !important;
}

.elementor-258 .elementor-element-c0495b6 .elementor-heading-title,
.elementor-258 .elementor-element-bd2cad4 .elementor-heading-title {
	color: var(--ca-white) !important;
	font-weight: 600;
}

.elementor-258 .elementor-element-76761f3,
.elementor-258 .elementor-element-76761f3 p {
	color: rgba(255, 255, 255, 0.78) !important;
}

.elementor-258 .elementor-icon-list-text {
	color: rgba(255, 255, 255, 0.78) !important;
}

.elementor-258 .elementor-icon-list-icon i,
.elementor-258 .elementor-icon-list-icon svg {
	color: var(--ca-gold) !important;
	fill: var(--ca-gold) !important;
}

.elementor-258 .elementor-social-icon {
	background-color: rgba(255, 255, 255, 0.1) !important;
	border: 1px solid rgba(255, 255, 255, 0.15);
	transition: background-color var(--ca-transition), transform var(--ca-transition);
}

.elementor-258 .elementor-social-icon:hover {
	background-color: var(--ca-gold) !important;
	transform: translateY(-2px);
}

.elementor-258 .elementor-element-17a9064 {
	border-top-color: rgba(255, 255, 255, 0.12) !important;
}

.elementor-258 .elementor-element-f56d03f,
.elementor-258 .elementor-element-f56d03f a {
	color: rgba(255, 255, 255, 0.55) !important;
}

.elementor-258 .elementor-element-f56d03f a:hover {
	color: var(--ca-gold) !important;
}

/* ==========================================================================
   Misc polish
   ========================================================================== */

.site-main {
	background-color: var(--ca-white);
}

/* Star ratings in testimonials */
.elementor-testimonial__text span[style*="color"] {
	color: var(--ca-gold) !important;
}

/* Selection color */
::selection {
	background-color: rgba(var(--ca-primary-rgb), 0.18);
	color: var(--ca-text);
}

/* Smooth scroll */
html {
	scroll-behavior: smooth;
}

/* ==========================================================================
   Mobile responsiveness
   ========================================================================== */

@media (max-width: 1024px) {
	.elementor-location-header > .e-con.e-parent {
		padding-left: 1.5rem !important;
		padding-right: 1.5rem !important;
	}

	.elementor-kit-9 h1 {
		font-size: 2.75rem !important;
	}

	.elementor-kit-9 h2 {
		font-size: 2rem !important;
	}
}

@media (max-width: 767px) {
	.elementor-location-header .elementor-widget-image img {
		max-height: 42px;
	}

	.elementor-location-header .elementor-button {
		font-size: 0.8125rem !important;
		padding: 0.625rem 1rem !important;
	}

	.elementor-element-7932bbb {
		padding-top: 6rem !important;
		padding-bottom: 4rem !important;
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	.elementor-element-7932bbb .ca-hero-stats,
	.elementor-element-7932bbb .e-con.ca-hero-stats {
		--flex-direction: row;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 1rem 1.25rem;
		margin-top: 2rem;
		justify-content: flex-start !important;
	}

	.elementor-element-7932bbb .ca-hero-stat,
	.elementor-element-7932bbb .e-con.ca-hero-stat {
		--width: auto;
		flex: 1 1 0 !important;
		min-width: 0 !important;
		width: auto !important;
		max-width: none !important;
	}

	.elementor-element-7932bbb .ca-hero-stat .elementor-heading-title,
	.elementor-element-7932bbb .ca-hero-stat__value {
		font-size: clamp(1.125rem, 4.5vw, 1.5rem) !important;
	}

	.elementor-element-7932bbb .ca-hero-stat .elementor-widget-text-editor,
	.elementor-element-7932bbb .ca-hero-stat .elementor-widget-text-editor p,
	.elementor-element-7932bbb .ca-hero-stat__label {
		font-size: 0.6875rem !important;
		line-height: 1.35 !important;
	}

	.elementor-kit-9 h1 {
		font-size: 2rem !important;
		line-height: 1.25 !important;
	}

	.elementor-kit-9 h2 {
		font-size: 1.625rem !important;
	}

	.elementor-page .e-con.e-child[data-settings*="background_background"]:has(.elementor-widget-icon-box) {
		padding: 1.5rem !important;
	}

	.wpforms-container {
		padding: 1.5rem !important;
		border-radius: var(--ca-radius-md) !important;
	}

	.elementor-258 .elementor-element-de5a17c {
		padding: 2rem 1.5rem !important;
	}

	.elementor-258 .elementor-element-f1f9eb2 {
		padding-top: 10rem !important;
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
		border-radius: 24px !important;
	}

	.elementor-258 .elementor-element-dff5347 {
		max-width: 100% !important;
		width: 100% !important;
	}

	/* Stack hero buttons */
	.elementor-element-2bf2ae7 {
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 0.75rem;
	}

	.elementor-element-2bf2ae7 .elementor-button {
		width: 100%;
		justify-content: center;
	}

	/* Contacto cards: 2×2 on small screens */
	.elementor-72 .elementor-element-705290e {
		flex-wrap: wrap !important;
	}

	.elementor-72 .elementor-element-705290e > .e-con.e-child[data-settings*="background_background"] {
		flex: 1 1 calc(50% - 12.5px) !important;
	}

	.elementor-72 .elementor-element-9f236d8 {
		margin-bottom: 48px !important;
	}
}

@media (max-width: 480px) {
	.elementor-location-header .elementor-nav-menu--main {
		display: none;
	}

	.elementor-kit-9 h1 {
		font-size: 1.75rem !important;
	}
}
