/*
Theme Name: Hello Elementor Child
Template: hello-elementor
Description: AllBlu Pool child theme. Holds site-wide tracking tags and small functional tweaks so no snippet plugin is needed.
Author: Elevation Labs Consulting
Version: 1.2.1
Text Domain: hello-elementor-child
*/

/* Running Text marquee items render as <div> instead of <h3> (see functions.php).
   Carry over what h3 contributed: Hello reset margins + kit H3 typography. */
.elementor-widget-rkit-running_text div.rkit-marquee-item-content {
	margin-block-start: .5rem;
	margin-block-end: 1rem;
	font-family: var( --e-global-typography-78c2238-font-family ), Sans-serif;
	font-size: var( --e-global-typography-78c2238-font-size );
	font-weight: var( --e-global-typography-78c2238-font-weight );
	line-height: var( --e-global-typography-78c2238-line-height );
}

/* EN | ES language switcher ([allblu_lang_switcher] in the header). */
.allblu-lang {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 3px;
	border: 1.5px solid #273774;
	border-radius: 999px;
	line-height: 1;
	white-space: nowrap;
}
.allblu-lang__opt {
	display: inline-block;
	padding: 7px 11px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	color: #273774;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}
.allblu-lang__opt:hover,
.allblu-lang__opt:focus-visible {
	background-color: rgba(39, 55, 116, .1);
	color: #273774;
}
.allblu-lang__opt.is-current {
	background-color: #273774;
	color: #fff;
}
@media (max-width: 767px) {
	.allblu-lang__opt { padding: 6px 9px; font-size: 12px; }
}

/* Header room for the switcher (same element ids in the English header 29 and its
   Spanish copy 562). Desktop: right column 20% -> 30%, menu 60% -> 50%.
   Below desktop: the mobile row's three boxes size to their content. */
.elementor-element-17f4a4db { width: 47% !important; }
.elementor-element-59e20351 { width: 29% !important; }
@media (max-width: 1024px) {
	.elementor-element-b8e319c { justify-content: space-between !important; flex-wrap: nowrap !important; }
	.elementor-element-b8e319c > .e-con-inner { justify-content: space-between !important; flex-wrap: nowrap !important; }
	.elementor-element-a6a5b00,
	.elementor-element-73531c2,
	.elementor-element-1b888b8 { width: auto !important; flex: 0 1 auto !important; min-width: 0; }
}
@media (max-width: 400px) {
	.allblu-lang__opt { padding: 5px 7px; font-size: 11px; }
	.elementor-element-b8e319c .elementor-element-bc57a94 img { width: 64px !important; }
}
.elementor-element-59e20351 > .elementor-widget-jkit_button,
.elementor-element-59e20351 > .elementor-widget-shortcode { width: auto !important; flex: 0 0 auto !important; }
@media (max-width: 480px) {
	/* Phones: show only the other language, as one small pill. */
	.allblu-lang__opt.is-current { display: none; }
	.allblu-lang { padding: 2px; }
	.elementor-element-b8e319c,
	.elementor-element-b8e319c > .e-con-inner { gap: 8px !important; padding-left: 12px !important; padding-right: 12px !important; }
	.elementor-element-1b888b8,
	.elementor-element-1b888b8 > .e-con-inner { gap: 8px !important; }
}
@media (max-width: 1024px) {
	.elementor-element-1b888b8,
	.elementor-element-1b888b8 > .e-con-inner { flex-direction: row !important; align-items: center !important; flex-wrap: nowrap !important; gap: 8px !important; }
}
@media (max-width: 1024px) {
	.elementor-element-a6a5b00,
	.elementor-element-1b888b8 { flex: 0 0 auto !important; min-width: max-content !important; }
	.elementor-element-73531c2 { flex: 0 1 auto !important; min-width: 0 !important; }
}
@media (max-width: 1024px) {
	.elementor-element-1b888b8 { width: max-content !important; }
	.elementor-element-1b888b8 > .elementor-widget-shortcode { flex: 0 0 auto !important; }
	.elementor-element-69cbf3b,
	.elementor-element-69cbf3b .rkit-navmenu-container,
	.elementor-element-69cbf3b .rkit-hamburger { width: auto !important; }
}
@media (max-width: 400px) {
	.elementor-element-8a94bc8 .jkit-button-wrapper { padding: 10px 14px !important; font-size: 13px !important; gap: 0 !important; }
	.elementor-element-8a94bc8 .jkit-button-wrapper i,
	.elementor-element-8a94bc8 .jkit-button-wrapper svg { display: none !important; }
}

/* ---- Theme Builder templates: Service page, Blog post, Page (EN + ES copies) ---- */
/* .allblu-prose = the Post Content widget in every template. */
.allblu-prose { color: #2b2f3a; font-size: 17px; line-height: 1.7; }
.allblu-prose p { margin: 0 0 1.1em; }
.allblu-prose h2 {
	font-family: "Bricolage Grotesque", Sans-serif; font-weight: 700; color: var( --e-global-color-accent );
	font-size: 36px; line-height: 1.15; margin: 56px 0 16px;
}
.allblu-prose h3 {
	font-family: "Bricolage Grotesque", Sans-serif; font-weight: 600; color: #0c0c0c;
	font-size: 22px; line-height: 1.3; margin: 32px 0 8px;
}
.allblu-prose .elementor-widget-container > :first-child,
.allblu-prose h2:first-child { margin-top: 0; }
.allblu-prose ul,
.allblu-prose ol { margin: 0 0 1.4em; padding: 0; list-style: none; }
.allblu-prose li { position: relative; padding-left: 34px; margin: 0 0 10px; }
.allblu-prose ul > li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 20px; height: 20px; border-radius: 50%;
	background: #8BD6BB url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23273774' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.allblu-prose ol { counter-reset: svc; }
.allblu-prose ol > li { counter-increment: svc; }
.allblu-prose ol > li::before {
	content: counter( svc ); position: absolute; left: 0; top: .15em; width: 24px; height: 24px; border-radius: 50%;
	background: var( --e-global-color-accent ); color: #FAF5F1; font: 700 13px/24px "Bricolage Grotesque", Sans-serif; text-align: center;
}
.allblu-prose a { color: var( --e-global-color-accent ); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.allblu-prose a:hover { color: #425FCE; }
.allblu-prose img { border-radius: 24px; }
@media (max-width: 767px) {
	.allblu-prose { font-size: 16px; }
	.allblu-prose h2 { font-size: 28px; margin-top: 40px; }
	.allblu-prose h3 { font-size: 20px; }
}

.allblu-svc-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.allblu-svc-links a {
	display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 14px;
	background: #fff; color: var( --e-global-color-accent ); font: 600 15px/1.3 "Bricolage Grotesque", Sans-serif;
	text-decoration: none; transition: background .2s, color .2s;
}
.allblu-svc-links a::after { content: "\2192"; font-weight: 400; }
.allblu-svc-links a:hover,
.allblu-svc-links .is-current a { background: var( --e-global-color-accent ); color: #FAF5F1; }

.allblu-svc-phone a { color: #FAF5F1; font: 600 18px/1.4 "Bricolage Grotesque", Sans-serif; text-decoration: none; }
.allblu-svc-phone a:hover { color: #8BD6BB; }

/* Quote card follows the reader down the page on desktop; on tablets and phones the sidebar
   stacks under the content, so the quote card moves to the top of it. */
@media (min-width: 1025px) {
	.allblu-svc-quote { position: sticky; top: 140px; }
}
@media (max-width: 1024px) {
	.allblu-svc-quote { order: -1 !important; }
}

/* Blog posts: the Quick Answer opening boxed as a callout (wrapped in functions.php). */
.allblu-quick-answer {
	background: #fff; border: 2px solid #8BD6BB; border-radius: 24px; padding: 26px 28px 8px; margin: 0 0 40px;
}
.allblu-prose .allblu-quick-answer h2 { font-size: 22px; margin: 0 0 10px; text-transform: none; }

.allblu-post-meta { margin: 0; color: #FAF5F1; font: 500 15px/1.5 "Plus Jakarta Sans", Sans-serif; text-align: center; opacity: .9; }

.allblu-related__title {
	font-family: "Bricolage Grotesque", Sans-serif; font-weight: 700; color: #0c0c0c; font-size: 40px; line-height: 1.1; margin: 0 0 28px;
}
.allblu-related { display: grid; grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); gap: 24px; }
.allblu-related__card {
	display: flex; flex-direction: column; background: #F0F0F0; border-radius: 30px; overflow: hidden; text-decoration: none;
	transition: transform .2s, box-shadow .2s;
}
.allblu-related__card:hover { transform: translateY( -5px ); box-shadow: 0 12px 30px rgba( 39, 55, 116, .15 ); }
.allblu-related__img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.allblu-related__img--empty { background: linear-gradient( 135deg, #273774, #425FCE ); }
.allblu-related__name {
	padding: 20px 24px 26px; color: var( --e-global-color-accent ); font: 600 19px/1.3 "Bricolage Grotesque", Sans-serif;
}
@media (max-width: 1024px) {
	.allblu-related { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media (max-width: 600px) {
	.allblu-related { grid-template-columns: 1fr; }
	.allblu-related__title { font-size: 30px; }
}

/* Hide the sidebar services card while its list is empty (e.g. before any Spanish service page is live). */
/* (Elementor drops a shortcode widget whose output is empty, so match the card that is neither the quote nor the trust card.) */
.allblu-svc-side > .allblu-svc-card:not( .allblu-svc-quote ):not( :has( .elementor-widget-icon-list ) ):not( :has( .allblu-svc-links ) ) { display: none; }
