/* =========================================================================
   CSS custom del proyecto (encolado desde functions.php del tema hijo).
   Solo lo que los controles de Elementor no permiten hacer. Cada bloque
   indica d¨Žnde se usa.
   ========================================================================= */

.pw-accent {
	color: var(--e-global-color-pworange, #ff4f18);
}

@media (max-width: 767px) {
	.pw-br-desktop {
		display: none;
	}
}

#pwb-newsletter-form .elementor-field-textual {
	padding: 17px 24px;
	height: auto;
	font-size: 16px;
}

#pwb-newsletter-form .elementor-field-textual::placeholder {
	color: #8a93a3;
}

:is(#pwb-newsletter-form, #pw-contact-form)
	.elementor-field-type-acceptance
	.elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

:is(#pwb-newsletter-form, #pw-contact-form) .elementor-acceptance-field {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: #001d3f;
}

:is(#pwb-newsletter-form, #pw-contact-form)
	.elementor-field-type-acceptance
	label {
	font-size: 14px;
	line-height: 1.5;
	color: #5b6472;
}

:is(#pwb-newsletter-form, #pw-contact-form) .elementor-field-type-acceptance a {
	color: #00101f;
	text-decoration: underline;
	text-underline-offset: 2px;
}

:is(#pwb-newsletter-form, #pw-contact-form) .elementor-button {
	padding: 8px 8px 8px 28px;
	font-size: 16px;
	font-weight: 500;
}

:is(#pwb-newsletter-form, #pw-contact-form) .elementor-button-content-wrapper {
	align-items: center;
	gap: 16px;
}

:is(#pwb-newsletter-form, #pw-contact-form) .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: #ffffff;
}

:is(#pwb-newsletter-form, #pw-contact-form)
	.elementor-button
	.elementor-button-icon
	svg {
	width: 16px;
	height: 16px;
	transform: rotate(-45deg);
}

:is(#pwb-newsletter-form, #pw-contact-form)
	.elementor-button
	.elementor-button-icon
	svg,
:is(#pwb-newsletter-form, #pw-contact-form)
	.elementor-button
	.elementor-button-icon
	svg
	path {
	fill: #ff4f18;
}

#pwb-breadcrumb .rank-math-breadcrumb p {
	margin: 0;
	color: #00101f;
	font-size: 15px;
	line-height: 1.5;
}

#pwb-breadcrumb .rank-math-breadcrumb a {
	color: #8a93a3;
	text-decoration: none;
	transition: color 0.2s ease;
}

#pwb-breadcrumb .rank-math-breadcrumb a:hover {
	color: #ff4f18;
}

#pwb-breadcrumb .rank-math-breadcrumb .separator {
	margin: 0 10px;
	color: #cdd3dd;
}

#pwb-post-hero-image img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

#pwb-post-body .elementor-widget-theme-post-content {
	color: #5b6472;
	font-size: 16px;
	line-height: 1.7;
}

#pwb-post-body h2 {
	margin: 0 0 18px;
	color: #00101f;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
}

#pwb-post-body h3 {
	margin: 0 0 14px;
	color: #00101f;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
}

#pwb-post-body p {
	margin: 0 0 20px;
}

#pwb-post-body hr {
	width: 68px;
	height: 1px;
	margin: 36px 0;
	border: 0;
	background: #cdd3dd;
}

#pwb-post-body figure {
	margin: 32px 0;
}

#pwb-post-body figure img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 8px;
}

#pwb-post-body figcaption {
	margin-top: 10px;
	color: #8a93a3;
	font-size: 13px;
	line-height: 1.5;
}

#pwb-post-body h2[id],
#pwb-post-body h3[id] {
	scroll-margin-top: 120px;
}

@media (max-width: 767px) {
	.pwb-hero-row > .pwb-hero-left {
		display: contents;
	}

	.pwb-hero-row .pwb-hero-top {
		order: 1;
	}

	.pwb-hero-row .pwb-hero-image {
		order: 2;
	}

	.pwb-hero-row .pwb-hero-bottom {
		order: 3;
	}
}

.e-con.pwb-fit,
.e-con.pwb-fit > .e-con-inner {
	--width: auto;
}

#pw-contact-form .elementor-field-textual {
	min-height: 54px;
	padding: 15px 20px;
}

#pw-contact-form .elementor-field-textual::placeholder {
	color: #8a93a3;
}

#pw-contact-form .elementor-field-label {
	font-weight: 500;
}

#pw-contact-form .pw-optional {
	color: #8a93a3;
	font-weight: 400;
}

#pw-contact-form .elementor-select-wrapper .select-caret-down-wrapper {
	right: 20px;
	color: #00101f;
}

#pw-contact-form .elementor-field-type-checkbox .elementor-field-subgroup {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

#pw-contact-form .elementor-field-type-checkbox .elementor-field-option {
	position: relative;
	margin: 0;
}

#pw-contact-form .elementor-field-type-checkbox .elementor-field-option input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
}

#pw-contact-form .elementor-field-type-checkbox .elementor-field-option label {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid #cdd3dd;
	border-radius: 999px;
	color: #00101f;
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

#pw-contact-form
	.elementor-field-type-checkbox
	.elementor-field-option
	label:hover {
	border-color: #001d3f;
}

#pw-contact-form
	.elementor-field-type-checkbox
	.elementor-field-option
	input:checked
	+ label {
	border-color: #001d3f;
	background: #001d3f;
	color: #ffffff;
}

#pw-contact-form
	.elementor-field-type-checkbox
	.elementor-field-option
	input:focus-visible
	+ label {
	outline: 2px solid #ff4f18;
	outline-offset: 2px;
}

#pw-contact-form .elementor-field-type-acceptance label {
	font-size: 13px;
}

#pw-contact-form .e-form__buttons {
	margin-top: 8px;
}

.pw-contact-direct
	.elementor-element.elementor-widget-icon-box.elementor-view-framed
	.elementor-icon {
	border-color: rgba(255, 255, 255, 0.22);
}

@media (min-width: 768px) {
	.pw-br-mobile {
		display: none;
	}
}

.pw-glass {
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}

.pw-page-content :is(h2, h3, h4) {
	color: var(--e-global-color-pwdark, #00101f);
	font-weight: 600;
	line-height: 1.25;
	margin-block: 2em 0.6em;
}

.pw-page-content h2 {
	font-size: 28px;
}

.pw-page-content h3 {
	font-size: 22px;
}

.pw-page-content h4 {
	font-size: 18px;
}

@media (max-width: 767px) {
	.pw-page-content h2 {
		font-size: 22px;
	}

	.pw-page-content h3 {
		font-size: 19px;
	}
}

.pw-page-content :is(h2, h3, h4):first-child {
	margin-block-start: 0;
}

.pw-page-content p {
	margin-block-end: 1.1em;
}

.pw-page-content :is(ul, ol) {
	padding-inline-start: 1.4em;
	margin-block-end: 1.1em;
}

.pw-page-content li + li {
	margin-block-start: 0.4em;
}

.pw-page-content strong {
	color: var(--e-global-color-pwdark, #00101f);
}

.pw-page-content a {
	color: var(--e-global-color-pwdark, #00101f);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.pw-page-content a:hover {
	color: var(--e-global-color-pworange, #ff4f18);
}

.pwnav .pwnav__menu .pwnav__item.menu__blue-button .pwnav__link {
	position: relative;
	color: #ffffff;
}

.menu__blue-button .pwnav__link::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	top: 50%;
	height: 34px;
	transform: translateY(-50%);
	border-radius: 30px;
	background-color: #001d3f;
	z-index: -1;
	transition: opacity 0.2s ease;
}

.menu__blue-button .pwnav__link:hover::before {
	opacity: 0;
}

@media (max-width: 767px) {
	.menu__blue-button .pwnav__link::before {
		display: none;
	}

	.pwnav__menu .menu__blue-button .pwnav__link {
		background-color: #001d3f;
		color: #ffffff !important;
	}

	.pwnav__menu .menu__blue-button .pwnav__link:hover {
		background-color: var(--pwnav-accent);
	}
	
	.pwnav .pwnav__menu .pwnav__item.menu__blue-button {
    	padding-left: 16px;
    	padding-top: 20px;
    }
}

/* Breadcrumb */

.rank-math-breadcrumb,
.rank-math-breadcrumb a {
	font-size: 13px;
	line-height: 1.3;
	color: #717171;
}

.rank-math-breadcrumb a:hover {
	color: #ff4f18;
}

.rank-math-breadcrumb .last {
	color: #242424;
}

.breadcrumbs__white-color .rank-math-breadcrumb,
.breadcrumbs__white-color .rank-math-breadcrumb a,
.breadcrumbs__white-color .rank-math-breadcrumb .last {
	color: #ffffff !important;
}

.rank-math-breadcrumb .rank-math-breadcrumb a:hover {
	color: #ff4f18 !important;
}
