/**
 * Sistema visual del tema hijo.
 *
 * Las reglas de componentes se incorporarán por fase para mantener el CSS
 * pequeño, reusable y fácil de editar.
 */

:root {
	--cu-color-ink: #271f2d;
	--cu-color-plum: #6d3567;
	--cu-color-plum-dark: #45213f;
	--cu-color-rose: #c7758c;
	--cu-color-paper: #fffdfb;
	--cu-color-sand: #f3ece8;
	--cu-color-line: #dfd4d8;
	--cu-shadow-soft: 0 14px 35px rgb(39 31 45 / 10%);
	--cu-radius-sm: 0.5rem;
	--cu-radius-md: 0.75rem;
	--cu-radius-lg: 1.25rem;
	--cu-space-1: 0.25rem;
	--cu-space-2: 0.5rem;
	--cu-space-3: 0.75rem;
	--cu-space-4: 1rem;
	--cu-space-6: 1.5rem;
	--cu-space-8: 2rem;
	--cu-space-12: 3rem;
	--cu-space-16: 4rem;
	--cu-space-20: 5rem;
	--cu-content-width: 64rem;
}

/* Astra: elimina el espacio exterior superior e inferior del área principal. */
.ast-separate-container #primary {
	margin: 0;
}

/* Títulos nativos de Astra en páginas y entradas. */
.ast-separate-container .entry-title {
	text-align: center;
}

/* Astra usa 5.34em; se reduce a la mitad sin alterar los demás lados. */
.ast-separate-container .ast-article-single {
	padding-top: 2.67em;
}


/* arreglos para el margen antes del h1*/
header.entry-header:not(.related-entry-header) {
  text-align: center;
}


/* Astra baja a 3.34em desde 1200px; se conserva esa proporción. */
@media (max-width: 1200px) {
	.ast-separate-container .ast-article-single {
		padding-top: 1.67em;
	}
}


/* Astra: Sacamos margen antes del h1*/
@media (min-width: 922px)
{


 .ast-separate-container #primary,
  .ast-separate-container.ast-left-sidebar #primary, 
  .ast-separate-container.ast-right-sidebar #primary
{
margin-top: 0;	
}

.ast-plain-container.ast-no-sidebar #primary {
    margin-top: 20px;
    margin-bottom: 0px;
  }


}

@media (min-width: 1200px) {
/*  .ast-plain-container.ast-no-sidebar #primary {
    margin-top: 20px;
    margin-bottom: 0px;
  }*/

}



/* Los componentes se limitan a la página de inicio mediante .cu-home. */

.cu-home {
	color: var(--cu-color-ink);
}

.cu-home :is(a, button, input, textarea) {
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.cu-home :is(a, button, input, textarea):focus-visible {
	outline: 3px solid var(--cu-color-plum);
	outline-offset: 3px;
}

.cu-home .wp-block-group,
.cu-home .wp-block-columns {
	box-sizing: border-box;
}

.cu-hero,
.cu-section,
.cu-contact {
	padding-block: clamp(var(--cu-space-12), 8vw, 6.5rem);
}

/* La portada usa el ancho completo de Astra; cada sección llena ese espacio. */
.page-id-1117 .site-content > .ast-container {
	width: 100%;
	max-width: none;
	padding-inline: 0;
}


.page-id-1117 #primary {
	margin-block: 0;
}

.page-id-1117.ast-separate-container .site-main > .ast-article-single,
.page-id-1117 .entry-content {
	width: 100%;
	max-width: none;
	padding: 0;
}

/* Astra limita el hijo directo de .entry-content; cu-home debe ser full-width. */
/*Se agrego padding a 0 para que el fondo de las secciones abarque todo el ancho de la pagina */
.page-id-1117 .entry-content[data-ast-blocks-layout] > main.cu-home {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding: 0; 
}

.cu-home > :is(.cu-hero, .cu-section, .cu-contact) {
	width: 100%;
	margin-block: 0 !important;
}

.cu-hero {
	background: linear-gradient(120deg, var(--cu-color-paper) 0%, #f8f0f3 100%);
	padding-block: var(--cu-space-2);
}

.cu-hero__inner,
.cu-section__inner,
.cu-contact__inner {
	max-width: var(--cu-content-width);
	margin-inline: auto;
	padding-inline: var(--cu-space-6);
}

.cu-hero__columns.wp-block-columns {
	align-items: flex-start;
	gap: clamp(var(--cu-space-8), 6vw, var(--cu-space-20));
}

.cu-hero__columns > .wp-block-column {
	align-self: flex-start;
}

.cu-contact__columns {
	align-items: center;
	gap: clamp(var(--cu-space-8), 6vw, var(--cu-space-20));
}

.cu-contact-gallery {
	position: relative;
	max-width: 31rem;
	margin-inline: auto;
	padding: 0 0 18% 10%;
}

.cu-contact-gallery .wp-block-image {
	margin: 0;
}

.cu-contact-gallery img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.cu-contact-gallery__main img {
	aspect-ratio: 4 / 5;
	border-radius: var(--cu-radius-lg);
	box-shadow: var(--cu-shadow-soft);
}

.cu-contact-gallery__accent {
	position: absolute;
	z-index: 1;
	inset-inline-end: 0;
	inset-block-end: 0;
	width: 52%;
}

.cu-contact-gallery__accent img {
	aspect-ratio: 4 / 5;
	border: 0.35rem solid #fff;
	border-radius: var(--cu-radius-lg);
	box-shadow: 0 1.2rem 2.5rem rgb(42 28 42 / 28%);
}

.cu-eyebrow {
	margin-block: 0 var(--cu-space-4);
	color: var(--cu-color-plum);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cu-hero h1 {
	max-width: 15ch;
	margin-block: 0 var(--cu-space-6);
	color: var(--cu-color-plum-dark);
	font-size: 5rem;
	font-weight: 500;
	letter-spacing: -0.055em;
	line-height: 0.96;
}

.cu-hero__copy {
	max-width: 36rem;
	font-size: clamp(1rem, 1.7vw, 1.18rem);
	line-height: 1.7;
}

.cu-button-row {
	gap: var(--cu-space-3);
	margin-top: var(--cu-space-8);
}

.cu-home .wp-block-button__link {
	border-radius: 999px;
	padding: 0.82rem 1.35rem;
	font-weight: 700;
	text-decoration: none;
}

.cu-home .wp-block-button__link:hover {
	box-shadow: var(--cu-shadow-soft);
	transform: translateY(-2px);
}

.cu-button--outline .wp-block-button__link {
	border: 1px solid var(--cu-color-plum);
	background: transparent !important;
	color: var(--cu-color-plum) !important;
}

.cu-hero__image,
.cu-image-card {
	margin: 0;
}

.cu-hero__image img {
	width: min(100%, 31rem);
	margin-inline: auto;
	border-radius: var(--cu-radius-lg);
	box-shadow: var(--cu-shadow-soft);
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.cu-section--designs {
	background: var(--cu-color-plum-dark);
	color: var(--cu-color-paper);
}

.cu-section--testimonials {
	background: var(--cu-color-paper);
}

.cu-section--sale {
	background: var(--cu-color-sand);
}

.cu-section--offers {
	background: var(--cu-color-plum-dark);
	color: var(--cu-color-paper);
}

.cu-section-heading {
	max-width: 47rem;
	margin-inline: auto;
	margin-bottom: clamp(var(--cu-space-8), 5vw, var(--cu-space-16));
	text-align: center;
}

.cu-section-heading__eyebrow {
	margin-block: 0 var(--cu-space-3);
	color: var(--cu-color-rose);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cu-section-heading h2 {
	margin: 0;
	color: inherit;
	font-size: clamp(2rem, 5vw, 3.75rem);
	font-weight: 500;
	letter-spacing: -0.045em;
	line-height: 1.04;
}

.cu-section-heading__copy {
	max-width: 42rem;
	margin: var(--cu-space-4) auto 0;
	line-height: 1.65;
}

.cu-design-query .wp-block-post-template {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	width: 100% !important;
	gap: var(--cu-space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cu-design-query .wp-block-post-template > li {
	display: flex;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	overflow: hidden;
	border: 1px solid var(--cu-color-line);
	border-radius: var(--cu-radius-md);
	background: #fff;
}

.cu-design-card {
	flex: 1;
	height: 100%;
	overflow: hidden;
	border: 0;
	border-radius: inherit;
	background: #fff;
}

.cu-design-card .wp-block-post-featured-image,
.cu-design-card .wp-block-post-featured-image a {
	display: block;
	margin: 0;
	overflow: hidden;
}

.cu-design-card .wp-post-image {
	display: block;
	width: 100%;
	border-radius: var(--cu-radius-md) var(--cu-radius-md) 0 0;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.cu-design-card .wp-block-post-title,
.cu-design-card .wp-block-post-excerpt {
	margin-inline: var(--cu-space-4);
}

.cu-design-card .wp-block-post-title {
	margin-top: var(--cu-space-4);
	margin-bottom: var(--cu-space-2);
	font-size: 1.17rem;
	line-height: 1.25;
}

.cu-design-card .wp-block-post-title a {
	color: var(--cu-color-plum-dark);
	text-decoration: none;
}

.cu-design-card .wp-block-post-title a:hover {
	color: var(--cu-color-plum);
}

.cu-design-card .wp-block-post-excerpt {
	margin-top: 0;
	margin-bottom: var(--cu-space-4);
	color: #645b64;
	font-size: 0.92rem;
	line-height: 1.55;
}

.cu-sale-grid,
.cu-offer-grid {
	gap: var(--cu-space-6);
}

.cu-image-card {
	position: relative;
	overflow: hidden;
	border-radius: var(--cu-radius-md);
	background: #fff;
	box-shadow: var(--cu-shadow-soft);
}

.cu-image-card img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.cu-image-card figcaption {
	padding: var(--cu-space-4);
	color: var(--cu-color-plum-dark);
	font-size: 0.92rem;
	font-weight: 700;
}

.cu-offer-grid .cu-image-card {
	background: #fff;
	box-shadow: none;
}

.cu-offer-grid .cu-image-card figcaption {
	color: var(--cu-color-plum-dark);
}

.cu-testimonial-layout {
	align-items: center;
	gap: clamp(var(--cu-space-8), 6vw, var(--cu-space-20));
}

.cu-testimonial-layout .wp-block-image {
	margin: 0;
}

.cu-testimonial-layout img {
	width: 100%;
	border-radius: var(--cu-radius-lg);
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.cu-testimonial-note {
	padding: clamp(var(--cu-space-6), 4vw, var(--cu-space-12));
	border-inline-start: 3px solid var(--cu-color-rose);
	background: #fff;
	box-shadow: var(--cu-shadow-soft);
}

.cu-testimonial-note p {
	font-size: clamp(1.2rem, 2vw, 1.6rem);
	line-height: 1.45;
}

.cu-testimonial-note .cu-testimonial-note__caption {
	margin-bottom: 0;
	color: #746872;
	font-size: 0.92rem;
}

.cu-contact {
	background: linear-gradient(135deg, #f6edf0, var(--cu-color-paper));
}
/* Ajustes para el formulario de contacto */

.cu-contact-form, .wpcf7-form {
	padding: clamp(var(--cu-space-6), 4vw, var(--cu-space-12));
	border-radius: var(--cu-radius-lg);
	background: #fff;
	box-shadow: var(--cu-shadow-soft);
}

.cu-contact-form label, .wpcf7-form label {
	display: block;
	margin-bottom: var(--cu-space-2);
	font-weight: 700;
}

.cu-contact-form :is(input, textarea), .wpcf7-form p span input , .wpcf7-form p span textarea  {
	box-sizing: border-box;
	width: 100%;
	margin-bottom: var(--cu-space-4);
	padding: 0.8rem 0.9rem;
	border: 1px solid var(--cu-color-line);
	border-radius: var(--cu-radius-sm);
	background: #fff;
	color: var(--cu-color-ink);
	font: inherit;
}

/*ajustes para prevenir saltos de línea no deseados*/

.cu-form-field > label {
	display: block;
	margin-bottom: 0.5rem;
}

.wpcf7 form > p {
  margin-bottom: 0.6em;
}

.cu-contact-form textarea, .wpcf7-form p span textarea  {
	min-height: 4rem;
	resize: vertical;
}

.cu-contact-form button, .wpcf7-form .wpcf7-submit {
	width: 100%;
	padding: 0.9rem 1.25rem;
	border: 0;
	border-radius: 999px;
	background: var(--cu-color-plum);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.cu-contact-form button:hover , .wpcf7-form .wpcf7-submit:hover {
	background: var(--cu-color-plum-dark);
}

.cu-form-note {
	margin-top: var(--cu-space-4);
	color: #746872;
	font-size: 0.86rem;
	line-height: 1.5;
}

@media (max-width: 781px) {
	.cu-hero__inner,
	.cu-section__inner,
	.cu-contact__inner {
		padding-inline: var(--cu-space-4);
	}

	.cu-hero__columns,
	.cu-contact__columns,
	.cu-testimonial-layout {
		gap: var(--cu-space-8);
	}

	.cu-contact-gallery {
		display: grid;
		gap: var(--cu-space-4);
		padding: 0;
	}

	.cu-contact-gallery__accent {
		position: static;
		width: 68%;
		justify-self: end;
	}

	.cu-design-query .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: var(--cu-space-4);
	}

}

@media (max-width: 480px) {
	.cu-design-query .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cu-home :is(a, button, input, textarea) {
		transition: none;
	}
}

/* Astra Builder: encabezado y pie administrables desde el Customizer. */
.site-header .ast-primary-header-bar {
	border-bottom: 1px solid var(--cu-color-line);
	background: var(--cu-color-paper);
}

.site-header .site-title a {
	color: var(--cu-color-plum-dark);
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	font-weight: 600;
	letter-spacing: 0.08em;
}

.site-header .site-description {
	color: var(--cu-color-plum);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-header .main-header-menu .menu-link {
	color: var(--cu-color-ink);
	font-size: 0.86rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.site-header .main-header-menu .menu-item:hover > .menu-link,
.site-header .main-header-menu .current-menu-item > .menu-link {
	color: var(--cu-color-plum);
}

.site-header .ast-builder-button-wrap .ast-custom-button {
	border-radius: 999px;
	background: var(--cu-color-plum);
	color: #fff;
	font-size: 0.86rem;
	font-weight: 700;
}

.site-header .ast-builder-button-wrap .ast-custom-button:hover {
	background: var(--cu-color-plum-dark);
}

@media (min-width: 922px) {
	.site-header .site-primary-header-wrap {
		max-width: 90rem;
	}

	.site-header .ast-builder-grid-row,
	.site-header .site-header-primary-section-right {
		align-items: center;
	}

	.site-header .site-header-primary-section-right {
		gap: var(--cu-space-3);
	}

	.site-header .main-header-menu {
		flex-wrap: nowrap;
	}

	.site-header .main-header-menu .menu-link {
		padding-inline: 0.55em;
		white-space: nowrap;
	}


}

.cu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.25em;
	margin-right: 0.45em;
	color: var(--cu-color-plum);
	vertical-align: -0.12em;
}

.cu-contact-point .cu-icon {
	float: left;
	margin-top: 0.15em;
}

.cu-contact-point strong,
.cu-contact-point a {
	margin-left: 1.7em;
}

.cu-contact-point:hover .cu-icon,
.cu-contact-point:focus-within .cu-icon {
	transform: translateY(-2px);
}

.cu-whatsapp {
	margin-top: var(--cu-space-6);
}

.cu-whatsapp .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: #258b55;
}

.cu-whatsapp .wp-block-button__link:hover {
	background: #1b6d42;
}

.cu-whatsapp .dashicons {
	width: auto;
	height: auto;
	margin: 0;
	font-size: 1.1em;
}

.cu-footer-shell {
	max-width: var(--cu-content-width);
	margin-inline: auto;
	padding: clamp(2.5rem, 6vw, 5rem) var(--cu-space-6) var(--cu-space-8);
	color: #f9f3f7;
}

.site-footer .ast-builder-grid-row-container,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap {
	background: var(--cu-color-plum-dark);
}

.site-footer .ast-builder-grid-row-container-inner,
.site-footer .ast-builder-grid-row {
	max-width: none;
}

.site-footer .ast-footer-copyright {
	width: 100%;
	padding: 0;
	color: inherit;
}

.cu-footer-grid {
	display: grid;
	grid-template-columns: minmax(12rem, 1.3fr) repeat(3, minmax(10rem, 1fr));
	gap: clamp(var(--cu-space-6), 5vw, var(--cu-space-16));
}

.cu-footer-brand {
	margin: 0 0 var(--cu-space-3);
	color: #fff;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.cu-footer-heading {
	margin: 0 0 var(--cu-space-4);
	color: #fff;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cu-footer-shell p {
	margin: 0 0 var(--cu-space-3);
	line-height: 1.6;
}

.cu-footer-shell a {
	color: #fff;
	text-decoration-color: rgb(255 255 255 / 50%);
}

.cu-footer-shell a:hover {
	color: #f0bbcb;
}

.cu-footer-social {
	display: flex;
	justify-content: center;
	gap: var(--cu-space-3);
	margin-top: var(--cu-space-4);
}

.cu-footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid rgb(255 255 255 / 42%);
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
}

.cu-footer-social a:hover,
.cu-footer-social a:focus-visible {
	border-color: #f0bbcb;
	background: rgb(255 255 255 / 12%);
	color: #f0bbcb;
}

.cu-footer-social .dashicons {
	width: 1.1rem;
	height: 1.1rem;
	font-size: 1.1rem;
}

.cu-footer-legal-menu {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.5;
}

.cu-footer-legal-menu li {
	margin: 0 0 var(--cu-space-2);
}

.cu-footer-legal-menu a {
	display: inline-block;
}

.cu-footer-meta {
	margin: var(--cu-space-8) 0 0;
	padding-top: var(--cu-space-6);
	border-top: 1px solid rgb(255 255 255 / 22%);
	color: #e9dce5;
	font-size: 0.85rem;
}

@media (max-width: 781px) {
	.cu-footer-grid {
		grid-template-columns: 1fr;
		gap: var(--cu-space-8);
	}

	.cu-footer-shell {
		padding-inline: var(--cu-space-4);
	}

	
/* agregado por el usuario*/

  .ast-separate-container #primary {
 padding:0;
  }

	
}
