/*
 Theme Name:   Reservas Eva Molero 2026
 Theme URI:    https://generatepress.com
 Description:  GeneratePress child theme adaptado a la identidad Eva Molero 2026
 Author:       Danivera
 Author URI:   https://danivera.com
 Template:     generatepress
 Version:      0.2
*/


/* =========================================================
   VARIABLES Y GENERAL
   ========================================================= */

:root {
	--padd-20: 20px;
	--no-padd: 0px;

	/* Checkout */
	--eva-primary: #C3C181;
	--eva-white: #FFFFFF;
	--eva-text: #4A4A4A;
	--eva-bg1: #F6F6F6;
	--eva-bg2: #F8F8D4;
	--eva-border: #DEDED8;
	--eva-line: #E7E7E2;

	/* Funcionales */
	--dv-error: #b00000;
	--dv-border: color-mix(in srgb, var(--contrast) 20%, var(--base-3));
}

b,
strong {
	font-weight: 600;
}

h1,
h2,
h3,
h4,
h5 {
	line-height: 125% !important;
}

.tit-podcast b,
h2 strong,
h2 b,
h3 b {
	color: var(--accent) !important;
}

button,
input[type="submit"],
input[type="button"],
input[type="reset"],
a.button,
.wp-block-button__link,
.elementor-button,
.e-button-base,
.bot-home,
.bot-reserva,
.bot-fade {
	transition:
		background-color .3s ease,
		color .3s ease,
		border-color .3s ease,
		box-shadow .3s ease;
}

.grecaptcha-badge {
	visibility: hidden;
}

.elementor-field-type-acceptance a {
	color: var(--accent);
}

.generate-back-to-top,
.generate-back-to-top:visited {
	color: var(--base-3) !important;
	border-radius: var(--padd-20);
}


/* =========================================================
   HOME / BOTONES / ICONOS
   ========================================================= */

.bot-home {
	background: var(--accent);
	color: var(--contrast);
	padding: 0 2px;
	font-family: "DM Serif Display", serif;
	display: inline-block;
	box-sizing: border-box;
	text-align: center;
	border-radius: var(--padd-20);
}

.bot-home:hover,
.bot-home:focus-visible {
	background: var(--contrast);
	color: var(--accent);
}

.site-navigation .gp-icon svg,
.ico-nueva svg * {
	fill: var(--accent) !important;
}


/* =========================================================
   HEADER / MENÚ
   ========================================================= */

#generate-slideout-menu {
	background: var(--base-2);
}

.main-navigation .main-nav ul ul li a {
	font-family: inherit !important;
	font-size: 18px;
}

button.menu-toggle {
	color: var(--base-3) !important;
	border: 0 !important;
	font-size: 22px !important;
}

.has-inline-mobile-toggle #site-navigation.toggled {
	margin-top: .5em;
}

.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
	background: transparent;
}


/* =========================================================
   CABECERA DESTACADA
   ========================================================= */

.cab-destacada {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--no-padd) var(--padd-20);

	opacity: 0;
	transform: translateY(-10px);
	transition:
		opacity .5s ease,
		transform .7s cubic-bezier(.2, .8, .2, 1);
}

.cab-destacada .inside-page-hero {
	background: var(--base-3);
	padding: var(--padd-20);
	border-radius: var(--padd-20);
}

.cab-destacada .cab-destacada-contenido {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;

	opacity: 0;
	transform: translateY(25px);
	transition:
		opacity .65s ease .15s,
		transform .65s cubic-bezier(.2, .8, .2, 1) .15s;
}

.cab-destacada.cab-visible {
	opacity: 1;
	transform: translateY(0);
}

.cab-destacada.cab-visible .cab-destacada-contenido {
	opacity: 1;
	transform: translateY(0);
}

.cab-destacada h1 {
	margin: 0;
}

.cab-destacada .btn-reserva-cabecera {
	flex-shrink: 0;
	text-decoration: none;
	font-family: "DM Serif Display", serif;
	color: var(--contrast);
	border-bottom: 2px solid var(--accent);
}

.cab-destacada .btn-reserva-cabecera span,
.cab-destacada .btn-reserva-cabecera:hover {
	color: var(--accent);
}

.bot-reserva {
	background: var(--accent);
	color: var(--contrast);
	padding: 10px 20px;
	font-family: "DM Serif Display", serif;
	font-size: 18px;
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	border-radius: var(--padd-20);
}

.bot-reserva:hover,
.bot-reserva:focus-visible {
	background: var(--contrast);
	color: var(--accent);
}


/* =========================================================
   ANIMACIONES CABECERA
   ========================================================= */

/* No movemos #masthead para no interferir con el sticky */

#masthead.reveal {
	opacity: 1;
	transform: none;
	transition: none;
}

#masthead.reveal.is-visible .site-logo {
	animation: header-logo .65s cubic-bezier(.2, .8, .2, 1) .05s both;
}

#masthead.reveal.is-visible #site-navigation,
#masthead.reveal.is-visible #mobile-menu-control-wrapper {
	animation: header-menu .65s cubic-bezier(.2, .8, .2, 1) .15s both;
}

@keyframes header-logo {
	from {
		opacity: 0;
		transform: translateY(-15px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes header-menu {
	from {
		opacity: 0;
		transform: translateX(15px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	#masthead .site-logo,
	#masthead #site-navigation,
	#masthead #mobile-menu-control-wrapper {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}


/* =========================================================
   AMELIA
   ========================================================= */

.am-fs__main-heading-inner-title {
	font-family: "DM Serif Display", serif !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
}

.am-amount {
	color: var(--accent) !important;
}

.am-fs__payments,
.am-fs-sb__support-heading,
.am-fs-sb__support-email,
.amelia-v2-booking #amelia-container .am-fs-sb__step-heading,
.amelia-v2-booking #amelia-container.am-fs__wrapper .el-form-item__label,
.amelia-v2-booking #amelia-container .am-input-wrapper .am-input input,
.amelia-v2-booking #amelia-container .am-input-wrapper .am-input textarea,
.amelia-v2-booking #amelia-container .am-input-wrapper .am-textarea input,
.amelia-v2-booking #amelia-container .am-input-wrapper .am-textarea textarea,
.am-button__inner,
.amelia-v2-booking #amelia-container .am-fs__payments-services-info span,
.amelia-v2-booking #amelia-container .am-fs__payments-services-sub p {
	font-size: 16px !important;
	line-height: 22px !important;
}

.amelia-v2-booking #amelia-container.am-fs__wrapper {
	margin: 20px auto !important;
}

.am-button__inner {
	font-family: "DM Serif Display", serif !important;
}

.am-advsc__time-zone {
	display: none !important;
}


/* =========================================================
   WOOCOMMERCE
   ========================================================= */

/* Campos y elementos generales */

.woocommerce-additional-fields,
#billing_company_field,
#billing_address_2,
tr.woocommerce-cart-form__cart-item.cart_item .product-thumbnail {
	display: none !important;
}

#billing_nif_field {
	clear: both;
}

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
	margin-top: 26px;
}

.product-name hr {
	display: block;
	clear: both;
	margin: 20px 0;
	padding: 10px 0;
	background: var(--base-3);
}

.woocommerce-info {
	border-radius: 0 20px 20px 0;
}

.woocommerce div.product .product_title {
	color: var(--accent) !important;
}

.woocommerce h1 {
	margin-bottom: 20px;
}


/* Select2 general */

.select2-container--default .select2-selection--single,
.select2-selection {
	background-color: var(--base-3);
	border: 1px solid var(--dv-border);
	border-radius: 10px;
}

.select2-container--default .select2-selection--single {
	padding: 28px 0;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	margin-top: -14px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 7px;
}

.select2-selection {
	padding: 25px;
}


/* Botones WooCommerce */

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order,
.woocommerce #respond input#submit.disabled,
.woocommerce #respond input#submit:disabled,
.woocommerce #respond input#submit:disabled[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce a.button:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled],
.woocommerce .coupon .button,
.woocommerce-cart-form .button, .woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .wc-block-components-button {
	font-family: "DM Serif Display", serif !important;
	border-radius: var(--padd-20)!important;
}

.woocommerce-cart-form .button,
.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
	background-color: var(--accent) !important;
	color: var(--contrast) !important;
}

.woocommerce-cart-form .button:hover,
.woocommerce #payment #place_order:hover,
.woocommerce-page #payment #place_order:hover {
	background-color: var(--contrast) !important;
	color: var(--accent) !important;
}

.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	border: 0;
}

.woocommerce .coupon input,
.woocommerce .coupon .button {
	font-size: 16px !important;
	line-height: 20px;
}


/* =========================================================
   WOOCOMMERCE · CHECKOUT
   ========================================================= */

/* Títulos */

.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout #order_review_heading {
	color: var(--eva-primary) !important;
	font-family: "DM Serif Display", serif;
	font-weight: 400;
}


/* Tarjeta de facturación */

.woocommerce-checkout #customer_details .col-1 {
	background: var(--eva-white);
	border-radius: 20px;
	padding: 24px;
}

.woocommerce-checkout .woocommerce-billing-fields > h3 {
	margin-top: 0;
	margin-bottom: 22px;
}


/* Tarjeta del pedido */

.woocommerce-checkout #order_review_heading {
	background: var(--eva-white);
	margin: 0;
	padding: 24px 24px 10px;
	border-radius: 20px 20px 0 0;
}

.woocommerce-checkout #order_review {
	background: var(--eva-white);
	padding: 10px 24px 24px;
	border-radius: 0 0 20px 20px;
}


/* Campos */

.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout .select2-selection--single {
	background: var(--eva-white) !important;
	border: 1px solid var(--eva-border) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout
.select2-container--default.select2-container--focus
.select2-selection--single {
	border-color: var(--eva-primary) !important;
	outline: none !important;
}


/* Select2 · Provincia */

.woocommerce-checkout
.select2-container--default
.select2-selection--single {
	height: 46px !important;
	min-height: 46px !important;
	padding: 0 42px 0 14px !important;
	display: flex !important;
	align-items: center;
}

.woocommerce-checkout
.select2-container--default
.select2-selection--single
.select2-selection__rendered {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.4 !important;
	color: var(--eva-text) !important;
}

.woocommerce-checkout
.select2-container--default
.select2-selection--single
.select2-selection__arrow {
	top: 0 !important;
	right: 10px !important;
	height: 100% !important;
}


/* Resumen del pedido */

.woocommerce-checkout-review-order-table {
	margin-bottom: 20px !important;
	border: 0 !important;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	border-left: 0 !important;
	border-right: 0 !important;
}

.woocommerce-checkout-review-order-table thead th {
	background: var(--eva-bg1);
	padding: 16px 14px !important;
	border: 0 !important;
}

.woocommerce-checkout-review-order-table thead th:first-child {
	border-radius: 10px 0 0 10px;
}

.woocommerce-checkout-review-order-table thead th:last-child {
	border-radius: 0 10px 10px 0;
}

.woocommerce-checkout-review-order-table tbody td {
	padding: 18px 14px !important;
}

.woocommerce-checkout-review-order-table .cart-subtotal th,
.woocommerce-checkout-review-order-table .cart-subtotal td {
	background: transparent !important;
	padding: 14px !important;
	border-top: 1px solid var(--eva-line) !important;
	border-bottom: 0 !important;
	border-radius: 0 !important;
}

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
	background: transparent !important;
	padding: 16px 14px !important;
	border-top: 1px solid var(--eva-line) !important;
	border-radius: 0 !important;
	color: var(--eva-text) !important;
}

.woocommerce-checkout-review-order-table .order-total .amount {
	color: var(--eva-primary) !important;
	font-size: 18px;
	font-weight: 600;
}

.woocommerce-checkout-review-order-table .order-total small {
	color: #777 !important;
	font-weight: 400;
}


/* Privacidad y checkboxes */

.woocommerce-privacy-policy-text {
	font-size: 16px;
	line-height: 20px;
	padding: 20px 0 0;
}

.woocommerce-privacy-policy-text p {
	margin-bottom: 10px;
}

#payment .form-row.validate-required {
	margin: 0 0 14px;
}

#payment .woocommerce-form__label.checkbox {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	width: 100%;
	cursor: pointer;
}

#payment .woocommerce-form__label.checkbox input[type="checkbox"] {
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	margin: 4px 0 0 0 !important;
	position: static !important;
	transform: none !important;
}

#payment .woocommerce-form__label.checkbox > span,
#payment .woocommerce-terms-and-conditions-checkbox-text {
	display: inline !important;
	line-height: 1.35 !important;
	margin: 0 !important;
}

#payment .woocommerce-form__label.checkbox a,
#payment .woocommerce-form__label.checkbox abbr,
#payment .woocommerce-terms-and-conditions-checkbox-text a,
#payment .woocommerce-terms-and-conditions-checkbox-text abbr {
	display: inline !important;
	vertical-align: baseline;
}

#payment .woocommerce-form__label.checkbox abbr.required,
#payment .woocommerce-terms-and-conditions-checkbox-text + abbr.required,
#payment abbr.required {
	display: inline !important;
	position: static !important;
	float: none !important;
	margin-left: 4px !important;
	line-height: 1 !important;
	text-decoration: none !important;
	border: 0 !important;
	color: var(--dv-error);
}

#payment .woocommerce-form__label.checkbox p,
#payment .woocommerce-privacy-policy-text p {
	margin: 0 0 10px;
	line-height: 1.4;
}


/* Métodos de pago */

.woocommerce-checkout #payment {
	background: transparent !important;
}

.woocommerce-checkout #payment ul.payment_methods {
	border: 0 !important;
	padding: 0 !important;
}

.woocommerce-checkout
#payment
ul.payment_methods
li.wc_payment_method {
	background: var(--eva-bg1) !important;
	border: 1px solid transparent;
	border-radius: 12px !important;
	padding: 0 !important;
	margin-bottom: 10px !important;
	overflow: hidden;
	box-shadow: none !important;
	transition: background-color .25s ease, border-color .25s ease;
}

.woocommerce-checkout
#payment
ul.payment_methods
li.wc_payment_method:has(input:checked) {
	background: var(--eva-bg2) !important;
	border-color: var(--eva-primary);
}

.woocommerce-checkout
#payment
ul.payment_methods
li.wc_payment_method > label {
	display: block;
	background: transparent !important;
	padding: 16px !important;
	margin: 0 !important;
	border: 0 !important;
}

.woocommerce-checkout
#payment
ul.payment_methods
li input[type="radio"] {
	margin-right: 8px !important;
}

.woocommerce-checkout #payment div.payment_box {
	background: transparent !important;
	margin: 0 !important;
	padding: 0 16px 16px !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--eva-text);
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none !important;
}


/* Botón finalizar pedido */

.woocommerce-checkout #place_order {
	font-family: "DM Serif Display", serif !important;
	font-weight: 400 !important;
}


/* Redsys / Bizum */

.payment_method_bizum img {
	display: none;
}

form#bizum_payment_form,
form#redsys_payment_form {
	display: flex;
	justify-content: space-between;
}

input#submit_bizum_payment_form,
input#submit_redsys_payment_form {
	background: var(--accent);
	color: var(--contrast);
	font-family: "DM Serif Display", serif;
	font-weight: 600;
	border-radius: var(--padd-20);
}

input#submit_bizum_payment_form:hover,
input#submit_redsys_payment_form:hover {
	background: var(--contrast);
	color: var(--accent);
}


/* =========================================================
   FOOTER
   ========================================================= */

.footer-widgets,
.site-info {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--no-padd) var(--padd-20);
}

.inside-footer-widgets > div {
	text-align: center;
}

.inside-site-info,
.footer-widgets-container {
	background: var(--contrast);
}

.footer-widgets-container {
	border-radius:
		var(--padd-20)
		var(--padd-20)
		var(--no-padd)
		var(--no-padd);
}

.img-footer {
	display: block !important;
	width: 300px !important;
	margin: 0 auto;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media screen and (max-width: 768px) {

	.cab-destacada .cab-destacada-contenido {
		align-items: flex-start;
		flex-direction: column;
		gap: 15px;
	}

	.nav-float-right #site-navigation {
		margin-left: 0;
	}

	.slideout-navigation.main-navigation .main-nav ul li a {
		text-align: center !important;
	}

	.cont-header {
		flex-wrap: wrap;
	}

	.cabecera h1 {
		width: 100%;
	}
}


/* =========================================================
   RESTOS / CLASES ESPECÍFICAS
   ========================================================= */

/* Listados */

.lista-citas ol {
	margin: 20px !important;
}

.lista-citas li {
	margin-bottom: 20px;
}

.lista-citas li::marker {
	font-weight: bold;
	color: var(--accent);
}

.faq-tabla p a {
	color: var(--contrast);
	text-decoration: underline;
}


/* Legal */

.caja-legal h2 {
	color: var(--accent);
	margin-top: 40px;
}

.caja-legal h3 {
	margin-top: 20px;
}

/* =========================================================
   REVEAL GENERAL
   ========================================================= */

.reveal {
	opacity: 0;
	transform: translateY(20px);
	transition:
		opacity .6s ease,
		transform .6s cubic-bezier(.2, .8, .2, 1);
}

.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}


/* No tocar la posición del header */
#masthead.reveal {
	opacity: 1;
	transform: none;
}


/* Elementor */
body.elementor-editor-active .reveal,
body.sin-animaciones .reveal {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}


/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {

	.reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

}

/* =========================================================
   ANIMACIÓN CHECKOUT
   ========================================================= */

.woocommerce-checkout #customer_details {
	animation: checkoutEntrada .6s cubic-bezier(.2,.8,.2,1) both;
}

.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
	animation: checkoutEntrada .6s cubic-bezier(.2,.8,.2,1) .12s both;
}

@keyframes checkoutEntrada {

	from {
		opacity: 0;
		transform: translateY(18px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}

}

@media (prefers-reduced-motion: reduce) {

	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		animation: none !important;
	}

}