/*
Theme Name: NEW BAR by O·P·I
Theme URI: https://newbaropi.com
Description: Tema a medida para NEW BAR by O·P·I — El Ateliér de las Uñas. Centro de uñas, pestañas, depilación láser y estética en A Coruña. Child theme de Twenty Twenty-Five, basado en bloques (FSE) e integrado con WooCommerce.
Author: NEW BAR by O·P·I
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.0
Text Domain: newbaropi
*/

/* Los estilos de marca se definen en theme.json. Aquí solo lo que no cubre. */

/* ---------------------------------------------------------------- Portada */

/* Quitar el hueco (block-gap del tema padre) entre la cabecera y la portada. */
.wp-site-blocks > main:has( .nbo-hero ) {
	margin-block-start: 0;
}

.nbo-hero {
	position: relative;
	min-height: min( 92vh, 900px );
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background-color: var( --wp--preset--color--negro );
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.nbo-hero__velo {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient( 180deg, rgba( 15, 12, 11, .62 ) 0%, rgba( 15, 12, 11, .48 ) 45%, rgba( 15, 12, 11, .82 ) 100% );
}

.nbo-hero__contenido {
	position: relative;
	z-index: 2;
	text-align: center;
	color: #fff;
	padding: 6rem 1.5rem;
	max-width: 900px;
}

.nbo-hero__marca {
	font-family: var( --wp--preset--font-family--serif );
	font-size: clamp( 2.6rem, 9vw, 5.5rem );
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: .12em;
	margin: 0 0 .5rem;
	text-indent: .12em;
	color: #fff;
}

.nbo-hero__marca span {
	display: block;
	font-size: .38em;
	letter-spacing: .35em;
	text-indent: .35em;
	margin-top: .5em;
	color: var( --wp--preset--color--dorado );
}

.nbo-hero__sub {
	font-size: .78rem;
	letter-spacing: .35em;
	text-transform: uppercase;
	color: var( --wp--preset--color--nude );
	margin: 0 0 1.75rem;
}

.nbo-hero__eslogan {
	font-family: var( --wp--preset--font-family--serif );
	font-style: italic;
	font-size: clamp( 1.15rem, 3.4vw, 1.9rem );
	line-height: 1.4;
	margin: 0 auto 2.5rem;
	max-width: 22ch;
	color: #fff;
}

.nbo-hero__acciones {
	display: flex;
	flex-wrap: wrap;
	gap: .9rem;
	justify-content: center;
}

.nbo-boton,
.nbo-wa-button {
	display: inline-block;
	padding: 1.05em 2.4em;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	border: 1px solid transparent;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.nbo-boton--primario,
.nbo-wa-button {
	background: var( --wp--preset--color--rosa );
	color: #fff;
}

.nbo-boton--primario:hover,
.nbo-wa-button:hover {
	background: #fff;
	color: var( --wp--preset--color--carbon );
}

.nbo-boton--fantasma {
	border-color: rgba( 255, 255, 255, .7 );
	color: #fff;
}

.nbo-boton--fantasma:hover {
	background: #fff;
	color: var( --wp--preset--color--carbon );
}

.nbo-hero__flecha {
	position: absolute;
	bottom: 1.75rem;
	left: 50%;
	transform: translateX( -50% );
	z-index: 2;
	color: rgba( 255, 255, 255, .8 );
	font-size: 1.4rem;
	animation: nbo-bota 2.4s ease-in-out infinite;
}

@keyframes nbo-bota {
	0%, 100% { transform: translate( -50%, 0 ); }
	50%      { transform: translate( -50%, 8px ); }
}

@media ( prefers-reduced-motion: reduce ) {
	.nbo-hero__flecha { animation: none; }
}

/* ------------------------------------------------------------- Secciones */

.nbo-titulo-seccion {
	text-align: center;
	margin-bottom: 3rem;
}

.nbo-antetitulo {
	font-size: .72rem;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var( --wp--preset--color--rosa );
	margin: 0 0 .75rem;
}

/* Tarjetas de servicio (grid de la portada). */

.nbo-servicios {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 1.25rem;
}

@media ( max-width: 960px ) {
	.nbo-servicios { grid-template-columns: repeat( 2, 1fr ); }
}

@media ( max-width: 560px ) {
	.nbo-servicios { grid-template-columns: 1fr; }
}

.nbo-servicio {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 4px;
	text-decoration: none;
	background: var( --wp--preset--color--carbon );
}

.nbo-servicio img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s cubic-bezier( .2, .7, .3, 1 );
}

.nbo-servicio:hover img,
.nbo-servicio:focus img {
	transform: scale( 1.06 );
}

.nbo-servicio__pie {
	display: block;
	position: absolute;
	inset: auto 0 0 0;
	padding: 2.5rem 1.5rem 1.5rem;
	background: linear-gradient( 180deg, rgba( 15, 12, 11, 0 ) 0%, rgba( 15, 12, 11, .82 ) 100% );
	color: #fff;
}

.nbo-servicio__titulo,
.nbo-servicio__desc,
.nbo-servicio__enlace {
	display: block;
}

.nbo-servicio__titulo {
	font-family: var( --wp--preset--font-family--serif );
	font-size: 1.6rem;
	line-height: 1.2;
	margin: 0 0 .35rem;
	color: #fff;
}

.nbo-servicio__desc {
	font-size: .85rem;
	line-height: 1.5;
	color: rgba( 255, 255, 255, .82 );
	margin: 0 0 .75rem;
}

.nbo-servicio__enlace {
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var( --wp--preset--color--dorado );
}

/* Vídeos en formato reel. */

.nbo-videos {
	display: grid;
	grid-template-columns: repeat( 5, 1fr );
	gap: 1.1rem;
}

@media ( max-width: 960px ) {
	.nbo-videos { grid-template-columns: repeat( 3, 1fr ); }
}

@media ( max-width: 560px ) {
	.nbo-videos { grid-template-columns: repeat( 2, 1fr ); }
}

.nbo-video {
	position: relative;
	border-radius: 4px;
	overflow: hidden;
	background: #000;
	aspect-ratio: 9 / 16;
}

.nbo-video video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Sin barra de controles nativa (reproducción automática silenciada). */
.nbo-video video::-webkit-media-controls,
.nbo-video video::-webkit-media-controls-enclosure {
	display: none !important;
}

.nbo-video__etiqueta {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2rem .9rem .9rem;
	background: linear-gradient( 180deg, rgba( 15, 12, 11, 0 ) 0%, rgba( 15, 12, 11, .8 ) 100% );
	color: #fff;
	font-size: .78rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	pointer-events: none;
}

/* Carrusel de galería: desplazamiento automático por JS + arrastre con ratón/dedo. */

.nbo-carrusel {
	position: relative;
	overflow-x: auto;
	overflow-y: hidden;
	cursor: grab;
	scrollbar-width: none;             /* Firefox */
	-ms-overflow-style: none;          /* IE/Edge */
	--nbo-carrusel-alto: 320px;
}

.nbo-carrusel::-webkit-scrollbar {
	display: none;                     /* Chrome/Safari */
}

.nbo-carrusel.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
}

.nbo-carrusel.is-dragging img {
	pointer-events: none;             /* evita seleccionar/arrastrar la imagen */
	user-select: none;
}

.nbo-carrusel__pista {
	display: flex;
	gap: 1rem;
	width: max-content;
}

.nbo-carrusel img {
	height: var( --nbo-carrusel-alto );
	width: auto;
	border-radius: 4px;
	object-fit: cover;
	flex: 0 0 auto;
}

/* Antes y después. */

.nbo-antes-despues {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 240px, 1fr ) );
	gap: 1rem;
}

.nbo-antes-despues img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
}

/* Bloque de reservas de la portada: formulario | datos + mapa. */

.nbo-reserva {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: start;
	text-align: left;
}

.nbo-reserva__titulo {
	margin: 0 0 1.25rem;
}

@media ( max-width: 900px ) {
	.nbo-reserva { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* Bloque de contacto: datos apilados sobre el mapa (una columna). */

.nbo-contacto {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	align-items: start;
}

.nbo-contacto__dato {
	margin: 0 0 1.1rem;
	line-height: 1.6;
}

.nbo-contacto__dato strong {
	display: block;
	font-size: .72rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var( --wp--preset--color--rosa );
	margin-bottom: .2rem;
}

.nbo-mapa iframe {
	width: 100%;
	min-height: 380px;
	border: 0;
	border-radius: 4px;
	display: block;
}

/* ----------------------------------------- Formulario de cita (CF7) --- */

.wpcf7-form p {
	margin: 0 0 1.15rem;
}

.wpcf7-form label {
	display: block;
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .04em;
	color: var( --wp--preset--color--carbon );
	margin-bottom: .1rem;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="email"],
.wpcf7-form select,
.wpcf7-form textarea {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin-top: .4rem;
	padding: .8rem .95rem;
	font-family: inherit;
	font-size: 1rem;
	color: var( --wp--preset--color--carbon );
	background: var( --wp--preset--color--blanco );
	border: 1px solid var( --wp--preset--color--nude );
	border-radius: 8px;
	transition: border-color .2s ease, box-shadow .2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.wpcf7-form select {
	background-image: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237d6f69' d='M6 8 0 2l1.4-1.4L6 5.2 10.6.6 12 2z'/%3E%3C/svg%3E" );
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
	cursor: pointer;
}

.wpcf7-form textarea {
	min-height: 130px;
	resize: vertical;
}

.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: var( --wp--preset--color--rosa );
	box-shadow: 0 0 0 3px rgba( 201, 143, 128, .18 );
}

/* Aceptación RGPD. */
.wpcf7-form .wpcf7-acceptance {
	display: block;
	font-size: .88rem;
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.wpcf7-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-weight: 400;
	color: var( --wp--preset--color--gris );
	cursor: pointer;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	margin-top: .15rem;
	accent-color: var( --wp--preset--color--rosa );
	flex: 0 0 auto;
}

/* Botón enviar: mismo estilo premium que el resto de botones. */
.wpcf7-form .wpcf7-submit {
	display: inline-block;
	margin-top: .5rem;
	padding: 1.05em 2.6em;
	font-family: var( --wp--preset--font-family--sans );
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var( --wp--preset--color--crema );
	background: var( --wp--preset--color--carbon );
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color .25s ease, transform .2s ease;
}

.wpcf7-form .wpcf7-submit:hover {
	background: var( --wp--preset--color--rosa );
	color: #fff;
	transform: translateY( -1px );
}

.wpcf7-form .wpcf7-spinner {
	margin: .5rem 0 0 .6rem;
}

/* Avisos de validación / envío. */
.wpcf7-form .wpcf7-response-output {
	margin: 1.2rem 0 0;
	padding: .8rem 1rem;
	border-radius: 8px;
	font-size: .9rem;
}

/* --------------------------------------------------------- WooCommerce */

/* Rejilla de productos: anula el maquetado flotante de WooCommerce y usa grid
   con tarjetas de igual alto y el botón anclado abajo. */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat( 4, 1fr );
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0;
	display: flex;
	flex-direction: column;
	background: var( --wp--preset--color--blanco );
	border: 1px solid var( --wp--preset--color--nude );
	border-radius: 8px;
	overflow: hidden;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.woocommerce ul.products li.product:hover {
	transform: translateY( -4px );
	box-shadow: 0 14px 30px rgba( 26, 21, 19, .12 );
	border-color: transparent;
}

/* Imagen superior con proporción fija. */
.woocommerce ul.products li.product > a img,
.woocommerce ul.products li.product img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
	margin: 0;
	transition: transform .8s cubic-bezier( .2, .7, .3, 1 );
}

.woocommerce ul.products li.product:hover img {
	transform: scale( 1.05 );
}

/* El primer <a> engloba imagen + título; lo hacemos columna para poder empujar
   el resto del contenido con padding uniforme. */
.woocommerce ul.products li.product > a {
	display: block;
	text-decoration: none;
	color: inherit;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var( --wp--preset--font-family--serif );
	font-size: 1.3rem;
	line-height: 1.25;
	color: var( --wp--preset--color--carbon );
	padding: 1rem 1.15rem .25rem;
	margin: 0;
	min-height: 3.4em;
}

.woocommerce ul.products li.product .price {
	color: var( --wp--preset--color--carbon );
	font-weight: 600;
	font-size: 1.15rem;
	padding: 0 1.15rem;
	margin: 0 0 1rem;
}

.woocommerce ul.products li.product .price del {
	color: var( --wp--preset--color--gris );
	font-weight: 400;
	margin-right: .4em;
}

/* Botón "Reservar" pegado al fondo de la tarjeta, a todo el ancho útil. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin: auto 1.15rem 1.15rem !important;
	text-align: center;
}

.woocommerce ul.products li.product .button {
	margin-top: auto !important;
}

/* Color explícito del botón de listado: en las páginas de categoría, un estilo
   del tema padre igualaba el texto al fondo (carbón sobre carbón) y quedaba
   invisible. Esta regla, más específica, garantiza texto claro y hover rosa. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
	background-color: var( --wp--preset--color--carbon );
	color: var( --wp--preset--color--crema );
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.button:hover {
	background-color: var( --wp--preset--color--rosa );
	color: #fff;
}

/* Botón "Reservar por WhatsApp" en tratamientos sin precio (verde WhatsApp). */
.woocommerce ul.products li.product a.button.nbo-wa-loop,
.woocommerce ul.products li.product a.button.nbo-wa-loop:hover {
	background-color: #25d366;
	color: #fff;
}

.woocommerce ul.products li.product a.button.nbo-wa-loop:hover {
	background-color: #1eb457;
}

/* Precio "a consultar". */
.nbo-precio-consultar {
	color: var( --wp--preset--color--gris );
	font-style: italic;
	font-weight: 500;
}

@media ( max-width: 960px ) {
	.woocommerce ul.products,
	.woocommerce-page ul.products { grid-template-columns: repeat( 2, 1fr ); }
}

@media ( max-width: 480px ) {
	.woocommerce ul.products,
	.woocommerce-page ul.products { grid-template-columns: 1fr; }
}

.woocommerce div.product .product_title {
	font-family: var( --wp--preset--font-family--serif );
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var( --wp--preset--color--carbon );
	font-size: 1.6rem;
	font-weight: 600;
}

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var( --wp--preset--color--carbon );
	color: var( --wp--preset--color--crema );
	border-radius: 999px;
	padding: 1.05em 2.2em;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	line-height: 1;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var( --wp--preset--color--rosa );
	color: #fff;
}

/* Ficha de tratamiento: duración y llamada a la acción de WhatsApp. */

.nbo-ficha-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin: 1rem 0 1.5rem;
	padding: 1rem 0;
	border-top: 1px solid var( --wp--preset--color--nude );
	border-bottom: 1px solid var( --wp--preset--color--nude );
	font-size: .85rem;
	color: var( --wp--preset--color--gris );
}

.nbo-ficha-meta strong {
	display: block;
	font-size: .7rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var( --wp--preset--color--rosa );
}

.nbo-ficha-wa {
	margin: 1.25rem 0 0;
}

/* Aviso de cómo funciona la reserva, bajo el botón de comprar. */

.nbo-aviso-reserva {
	background: var( --wp--preset--color--nude );
	border-radius: 4px;
	padding: 1rem 1.25rem;
	font-size: .85rem;
	line-height: 1.6;
	margin: 1.5rem 0;
}

/* ------------------------------------------------- Cabecera en móvil --- */

@media ( max-width: 600px ) {

	/* El logo queda en su fila y las acciones ocupan la fila siguiente
	   completa: menú/iconos a la izquierda y "Reservar cita" a la derecha. */
	.nbo-header-acciones {
		width: 100%;
		justify-content: space-between !important;
		margin-top: .35rem;
	}
}

/* --------------------------------------------------------------- Varios */

.nbo-pie-datos a {
	color: inherit;
	text-decoration: none;
}

.nbo-pie-datos a:hover {
	color: var( --wp--preset--color--dorado );
}

.wp-block-button__link {
	transition: background-color .25s ease, color .25s ease, transform .25s ease;
}

.wp-block-button__link:hover {
	transform: translateY( -1px );
}

/* =======================================================================
   ESTÉTICA MICALLENY — Home NEW BAR by O·P·I
   ======================================================================= */

/* ---- Botones outline reutilizables ---- */
.nbo-mcny-btn {
	display: inline-block;
	padding: .9em 2.1em;
	border: 1px solid var( --wp--preset--color--carbon );
	background: transparent;
	color: var( --wp--preset--color--carbon );
	font-family: var( --wp--preset--font-family--sans );
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.nbo-mcny-btn:hover { background: var( --wp--preset--color--carbon ); color: #fff; }

.nbo-mcny-btn--claro { border-color: #fff; color: #fff; }
.nbo-mcny-btn--claro:hover { background: #fff; color: var( --wp--preset--color--carbon ); }

.nbo-mcny-btn--sm {
	padding: .75em 1.6em;
	font-size: .68rem;
	border-color: var( --wp--preset--color--dorado );
	color: var( --wp--preset--color--carbon );
}
.nbo-mcny-btn--sm:hover { background: var( --wp--preset--color--dorado ); color: #fff; border-color: var( --wp--preset--color--dorado ); }

/* ---- Cabecera negra ---- */
.nbo-mcny-header .wp-block-site-title a { color: #fff; }
.nbo-mcny-header .wp-block-site-title {
	font-family: var( --wp--preset--font-family--serif );
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.nbo-mcny-header .wp-block-navigation {
	font-family: var( --wp--preset--font-family--serif );
	font-size: .85rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.nbo-mcny-header .wp-block-navigation a { color: #fff; }
.nbo-mcny-header .wp-block-navigation a:hover,
.nbo-mcny-header .wp-block-navigation .current-menu-item > a,
.nbo-mcny-header .wp-block-navigation [aria-current] { color: var( --wp--preset--color--dorado ); }
.nbo-mcny-header .nbo-header-social a { color: #fff; }
.nbo-mcny-header .nbo-header-social a:hover { color: var( --wp--preset--color--dorado ); }

/* Botón "Pide cita" outline dorado */
.nbo-btn-pidecita .wp-block-button__link {
	background: transparent !important;
	border: 1px solid var( --wp--preset--color--dorado ) !important;
	color: #fff !important;
	border-radius: 0 !important;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.nbo-btn-pidecita .wp-block-button__link:hover {
	background: var( --wp--preset--color--dorado ) !important;
	color: #0a0a0a !important;
}

/* Overlay del menú móvil en oscuro */
.nbo-mcny-header .wp-block-navigation__responsive-container.is-menu-open {
	background: #0a0a0a;
}
.nbo-mcny-header .wp-block-navigation__responsive-container.is-menu-open a { color: #fff; }

/* ---- Hero estilo micalleny ---- */
.nbo-mcny-home .nbo-hero { min-height: min( 80vh, 720px ); }
.nbo-mcny-home .nbo-hero__marca {
	font-family: var( --wp--preset--font-family--serif );
	font-size: clamp( 2.2rem, 6vw, 4rem );
	font-weight: 500;
	letter-spacing: .04em;
	text-indent: 0;
	margin: 0 0 1rem;
}
.nbo-mcny-home .nbo-hero__marca span { display: none; }
.nbo-mcny-home .nbo-hero__sub {
	font-size: .8rem;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: #f4ece7;
	margin: 0 0 2rem;
}
.nbo-mcny-home .nbo-hero__acciones { justify-content: center; }

/* ---- Bienvenida ---- */
.nbo-mcny-bienvenida {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4rem;
	align-items: center;
	max-width: 1120px;
	margin: 0 auto;
	padding: clamp( 3rem, 7vw, 6rem ) clamp( 1.25rem, 5vw, 3rem );
	background: #fff;
}
.nbo-mcny-bienvenida__marca { text-align: center; }
.nbo-mcny-bienvenida__marca img { max-width: 360px; width: 100%; height: auto; }
.nbo-mcny-bienvenida__texto h2 {
	font-size: clamp( 1.8rem, 3.5vw, 2.6rem );
	margin: 0 0 1.25rem;
}
.nbo-mcny-bienvenida__texto p {
	text-align: justify;
	margin: 0 0 1rem;
	color: #3a3330;
}
.nbo-mcny-bienvenida__texto .nbo-mcny-btn { margin-top: 1rem; }

/* ---- Título de sección ---- */
.nbo-mcny-titulo {
	font-size: clamp( 1.9rem, 4vw, 2.8rem );
	margin: 0 0 3rem;
	font-weight: 500;
}

/* ---- Experiencias ---- */
.nbo-mcny-experiencias {
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	gap: 2rem 1.75rem;
}
.nbo-mcny-exp { text-align: center; display: flex; flex-direction: column; }
.nbo-mcny-exp__foto {
	display: block;
	overflow: hidden;
	margin-bottom: 1.1rem;
	aspect-ratio: 4 / 3;
}
.nbo-mcny-exp__foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier( .2, .7, .3, 1 );
}
.nbo-mcny-exp__foto:hover img { transform: scale( 1.06 ); }
.nbo-mcny-exp__titulo {
	font-size: 1.35rem;
	font-weight: 600;
	margin: 0 0 .6rem;
}
.nbo-mcny-exp__desc {
	font-family: var( --wp--preset--font-family--sans );
	font-size: .86rem;
	line-height: 1.6;
	color: #6a615c;
	margin: 0 0 1.1rem;
	flex: 1 1 auto;
}
.nbo-mcny-exp .nbo-mcny-btn { align-self: center; }

/* ---- Contacto + mapa (corte diagonal) ---- */
.nbo-mcny-contacto {
	position: relative;
	background-color: #0a0a0a;
	background-size: cover;
	background-position: center;
	color: #fff;
	clip-path: polygon( 0 3.5vw, 100% 0, 100% 100%, 0 100% );
	margin-top: -1px;
	padding: calc( 3.5vw + 4rem ) clamp( 1.25rem, 5vw, 3rem ) 5rem;
}
.nbo-mcny-contacto__inner {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: 3rem;
	max-width: 1120px;
	margin: 0 auto;
	align-items: center;
}
.nbo-mcny-contacto__mapa iframe {
	width: 100%;
	min-height: 340px;
	border: 0;
	display: block;
}
.nbo-mcny-contacto__datos h2 {
	font-size: 1.7rem;
	color: var( --wp--preset--color--dorado );
	margin: 0 0 .6rem;
}
.nbo-mcny-contacto__datos h2 + p { margin-top: 0; }
.nbo-mcny-contacto__datos p {
	font-family: var( --wp--preset--font-family--sans );
	line-height: 1.9;
	margin: 0 0 1.75rem;
}
.nbo-mcny-contacto__datos a { color: #fff; text-decoration: none; }
.nbo-mcny-contacto__datos a:hover { color: var( --wp--preset--color--dorado ); }
.nbo-mcny-contacto .nbo-wa-button {
	display: inline-block;
	margin-top: .6rem;
	padding: .7em 1.6em;
	border: 1px solid var( --wp--preset--color--dorado );
	color: #fff;
	border-radius: 0;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	background: transparent;
}
.nbo-mcny-contacto .nbo-wa-button:hover { background: var( --wp--preset--color--dorado ); color: #0a0a0a; }
.nbo-mcny-horario em { color: var( --wp--preset--color--dorado ); font-style: italic; }

/* ---- Pie ---- */
.nbo-mcny-footer a { color: inherit; text-decoration: none; }
.nbo-mcny-footer .nbo-footer-legal a:hover,
.nbo-mcny-footer a:hover { color: var( --wp--preset--color--dorado ); }

/* ---- Responsive ---- */
@media ( max-width: 900px ) {
	.nbo-mcny-bienvenida { grid-template-columns: 1fr; gap: 2rem; text-align: center; }
	.nbo-mcny-bienvenida__texto p { text-align: left; }
	.nbo-mcny-experiencias { grid-template-columns: repeat( 2, 1fr ); }
	.nbo-mcny-contacto__inner { grid-template-columns: 1fr; }
	.nbo-mcny-contacto { clip-path: polygon( 0 6vw, 100% 0, 100% 100%, 0 100% ); }
}
@media ( max-width: 520px ) {
	.nbo-mcny-experiencias { grid-template-columns: 1fr; }
}
