/* =========================================================================
   ATELIER — Single Product (wizard layout)
   Scope: body.single-product .atelier-product-page
   ========================================================================= */

.atelier-product-page {
	--ap-bg:                 #f9f9ff;
	--ap-surface:            #ffffff;
	--ap-surface-low:        #f4f6fa;
	--ap-surface-card:       #ffffff;
	--ap-on-surface:         #0f1c2c;
	--ap-on-surface-soft:    #525f71;
	--ap-on-surface-mute:    #8893a3;
	--ap-primary:            #bc0100;
	--ap-primary-hover:      #eb0000;
	--ap-on-primary:         #ffffff;
	--ap-navy:               #0f1c2c;
	--ap-on-navy:            #ffffff;
	--ap-success:            #1cb57a;
	--ap-outline:            #e3e7ee;
	--ap-outline-strong:     #cfd6e0;
	--ap-shadow-card:        0 1px 2px rgba(15, 28, 44, 0.04), 0 0 0 1px rgba(15, 28, 44, 0.05);
	--ap-shadow-soft:        0 8px 24px rgba(15, 28, 44, 0.06);

	--ap-font:               'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--ap-radius-xs:          0.375rem;
	--ap-radius-sm:          0.5rem;
	--ap-radius-md:          0.75rem;
	--ap-radius-lg:          1rem;

	background: var(--ap-bg);
	color: var(--ap-on-surface);
	font-family: var(--ap-font);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.atelier-product-page *,
.atelier-product-page *::before,
.atelier-product-page *::after { box-sizing: border-box; }

.atelier-product-page img { max-width: 100%; height: auto; display: block; }

.atelier-main {
	max-width: 1320px;
	margin: 0 auto;
	padding: 2.5rem 1.5rem 4rem;
}

/* ---------- Breadcrumb ------------------------------------------------ */

.atelier-breadcrumb { margin-bottom: 1.5rem; }
.atelier-breadcrumb .woocommerce-breadcrumb,
.atelier-breadcrumb__inner {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem;
	font-size: 0.85rem;
	font-weight: 500;
	color: var(--ap-on-surface-soft);
}
.atelier-breadcrumb a {
	color: var(--ap-on-surface-soft);
	text-decoration: none;
	transition: color .15s ease;
}
.atelier-breadcrumb a:hover { color: var(--ap-primary); }
.atelier-breadcrumb__sep { color: var(--ap-on-surface-mute); padding: 0 0.15rem; }

/* ---------- Layout grid ----------------------------------------------- */

.atelier-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 992px) {
	.atelier-grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		gap: 3rem;
	}
}

/* ---------- Gallery --------------------------------------------------- */

.atelier-grid__gallery { position: relative; }

.atelier-grid__gallery .woocommerce-product-gallery {
	background: var(--ap-surface);
	border-radius: var(--ap-radius-md);
	overflow: hidden;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	box-shadow: var(--ap-shadow-card);
}

.atelier-grid__gallery .woocommerce-product-gallery__image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.atelier-grid__gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
}
.atelier-grid__gallery .flex-control-thumbs li { width: 100%; }
.atelier-grid__gallery .flex-control-thumbs img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	cursor: pointer;
	border-radius: var(--ap-radius-xs);
	border: 1px solid var(--ap-outline);
	background: var(--ap-surface);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.atelier-grid__gallery .flex-control-thumbs img:hover { border-color: var(--ap-outline-strong); }
.atelier-grid__gallery .flex-control-thumbs img.flex-active {
	border-color: var(--ap-navy);
	box-shadow: 0 0 0 2px rgba(15, 28, 44, 0.08);
}

.atelier-flag-personalizable {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 3;
	background: var(--ap-primary);
	color: var(--ap-on-primary);
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.5rem 0.85rem;
	border-radius: 999px;
}

/* ---------- Summary --------------------------------------------------- */

.atelier-product-page .atelier-grid__summary {
	display: flex !important;
	flex-direction: column;
	gap: 1.5rem;
	float: none !important;
	width: auto !important;
	clear: none !important;
	margin: 0 !important;
}

.atelier-product-page .atelier-grid__gallery {
	float: none !important;
	width: auto !important;
	clear: none !important;
	margin: 0 !important;
}

.atelier-product-page .atelier-grid {
	display: grid !important;
}

.atelier-summary__sku {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ap-on-surface-soft);
	margin: 0;
}

.atelier-product-page h1.atelier-summary__title,
.atelier-product-page .atelier-summary__title.product_title,
.atelier-product-page .atelier-summary__title.entry-title {
	font-size: clamp(1.6rem, 2.5vw, 2.1rem) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em !important;
	color: var(--ap-on-surface) !important;
	margin: 0 !important;
	text-transform: none !important;
}

.atelier-summary__price {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0;
}
.atelier-summary__price .price,
.atelier-summary__price .woocommerce-Price-amount {
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--ap-primary);
}
.atelier-summary__price ins { background: transparent; text-decoration: none; }
.atelier-summary__price del { color: var(--ap-on-surface-mute); font-size: 1rem; opacity: 0.7; }
.atelier-summary__price-suffix {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--ap-on-surface-soft);
}

/* ---------- Spec cards ------------------------------------------------ */

.atelier-specs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 0.75rem;
}

.atelier-spec {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background: var(--ap-surface);
	padding: 0.85rem 1rem;
	border-radius: var(--ap-radius-md);
	box-shadow: var(--ap-shadow-card);
}
.atelier-spec__icon {
	width: 2rem;
	height: 2rem;
	flex: 0 0 auto;
	background: var(--ap-navy);
	color: var(--ap-on-navy);
	border-radius: var(--ap-radius-xs);
	padding: 0.4rem;
	fill: currentColor;
}
.atelier-spec__body { display: flex; flex-direction: column; min-width: 0; }
.atelier-spec__label {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ap-on-surface-mute);
	line-height: 1.2;
}
.atelier-spec__value {
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--ap-on-surface);
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ---------- Wizard ---------------------------------------------------- */

.atelier-wizard {
	background: var(--ap-surface);
	border-radius: var(--ap-radius-md);
	box-shadow: var(--ap-shadow-card);
	overflow: hidden;
}

.atelier-wizard__tabs {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 0;
	padding: 0.5rem 0.5rem 0;
	border-bottom: 1px solid var(--ap-outline);
}

.atelier-wizard__tab {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 0.85rem 0.5rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ap-on-surface-mute);
	cursor: pointer;
	transition: all .15s ease;
	font-family: inherit;
}
.atelier-wizard__tab:hover:not(.is-active) { color: var(--ap-on-surface-soft); }

.atelier-wizard__tab-num,
.atelier-wizard__tab-check {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	font-weight: 700;
	flex: 0 0 auto;
}
.atelier-wizard__tab-num {
	background: var(--ap-surface-low);
	color: var(--ap-on-surface-mute);
}
.atelier-wizard__tab-check {
	display: none;
	background: var(--ap-success);
	color: var(--ap-on-primary);
}
.atelier-wizard__tab-check svg { width: 0.85rem; height: 0.85rem; }

.atelier-wizard__tab.is-active {
	color: var(--ap-navy);
	border-bottom-color: var(--ap-navy);
}
.atelier-wizard__tab.is-active .atelier-wizard__tab-num {
	background: var(--ap-navy);
	color: var(--ap-on-navy);
}
.atelier-wizard__tab.is-done .atelier-wizard__tab-num { display: none; }
.atelier-wizard__tab.is-done .atelier-wizard__tab-check { display: inline-flex; }

.atelier-wizard__tab-label {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 600px) {
	.atelier-wizard__tab-label { display: none; }
}

/* ---------- Wizard panels ---------------------------------------------- */

.atelier-wizard__form { margin: 0; padding: 0; }

.atelier-wizard__panel {
	display: none;
	padding: 1.5rem;
	animation: ap-fade .25s ease;
}
.atelier-wizard__panel.is-active { display: block; }

@keyframes ap-fade {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: translateY(0); }
}

.atelier-wizard__panel-head { margin-bottom: 1.25rem; }
.atelier-wizard__panel-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--ap-on-surface);
	margin: 0 0 0.25rem;
}
.atelier-wizard__panel-current { color: var(--ap-on-surface-soft); font-weight: 600; }
.atelier-wizard__panel-sub {
	font-size: 0.85rem;
	color: var(--ap-on-surface-mute);
	margin: 0;
}

/* ---------- Swatches -------------------------------------------------- */

.atelier-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.atelier-swatches--color {
	gap: 0.5rem;
}

.atelier-swatch {
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	font-family: inherit;
	transition: transform .12s ease;
}
.atelier-swatch:active { transform: scale(0.95); }

.atelier-swatch--color {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid transparent;
	background: var(--ap-surface);
	transition: all .15s ease;
}
.atelier-swatch__dot {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--swatch-color, #ddd);
	box-shadow: 0 0 0 1px rgba(15, 28, 44, 0.12) inset;
	transition: transform .15s ease;
}
.atelier-swatch--color:hover .atelier-swatch__dot { transform: scale(1.05); }
.atelier-swatch--color.is-selected {
	border-color: var(--ap-navy);
	box-shadow: 0 0 0 1px var(--ap-navy);
}
.atelier-swatch--color.is-disabled { opacity: 0.35; cursor: not-allowed; }
.atelier-swatch--color.is-disabled .atelier-swatch__dot { box-shadow: 0 0 0 1px rgba(15, 28, 44, 0.06) inset; }

.atelier-swatch--button {
	min-width: 3rem;
	padding: 0.7rem 1.1rem;
	border: 1.5px solid var(--ap-outline-strong);
	background: var(--ap-surface);
	color: var(--ap-on-surface);
	font-weight: 700;
	font-size: 0.9rem;
	border-radius: var(--ap-radius-sm);
	transition: all .15s ease;
}
.atelier-swatch--button:hover:not(.is-selected):not(.is-disabled) {
	border-color: var(--ap-navy);
	color: var(--ap-navy);
}
.atelier-swatch--button.is-selected {
	background: var(--ap-navy);
	color: var(--ap-on-navy);
	border-color: var(--ap-navy);
}
.atelier-swatch--button.is-disabled {
	color: var(--ap-on-surface-mute);
	border-color: var(--ap-outline);
	cursor: not-allowed;
	background: var(--ap-surface-low);
	text-decoration: line-through;
}

.atelier-size-guide {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 1rem;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--ap-navy);
	text-decoration: underline;
}
.atelier-size-guide svg { width: 1rem; height: 1rem; fill: currentColor; }

/* ---------- Wizard summary panel -------------------------------------- */

.atelier-summary-list {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	background: var(--ap-surface-low);
	padding: 1.25rem;
	border-radius: var(--ap-radius-sm);
}
.atelier-summary-row {
	display: grid;
	grid-template-columns: 1fr auto auto;
	align-items: center;
	gap: 1rem;
	font-size: 0.9rem;
}
.atelier-summary-row__label {
	color: var(--ap-on-surface);
	font-weight: 500;
}
.atelier-summary-row__value {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--ap-on-surface);
	font-weight: 700;
	justify-self: end;
}
.atelier-summary-row__color {
	display: inline-block;
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 50%;
	background: var(--swatch-color, transparent);
	box-shadow: 0 0 0 1px rgba(15, 28, 44, 0.12) inset;
}
.atelier-summary-row__edit {
	background: transparent;
	border: 0;
	padding: 0;
	color: var(--ap-tertiary, #005ab4);
	font-weight: 600;
	font-size: 0.85rem;
	cursor: pointer;
	text-decoration: underline;
}
.atelier-summary-row--price .atelier-summary-row__value--price {
	color: var(--ap-primary);
	font-weight: 800;
}
.atelier-summary-row--price { border-top: 1px solid var(--ap-outline); padding-top: 0.85rem; }

/* ---------- Wizard actions ------------------------------------------- */

.atelier-wizard__actions {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.75rem;
	padding: 1.25rem 1.5rem 1.5rem;
	border-top: 1px solid var(--ap-outline);
	align-items: center;
}

@media (min-width: 768px) {
	.atelier-wizard__actions { grid-template-columns: auto 1fr 1fr; }
}

.atelier-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1.5px solid var(--ap-outline-strong);
	border-radius: var(--ap-radius-sm);
	overflow: hidden;
	background: var(--ap-surface);
}
.atelier-qty__btn {
	width: 2.5rem;
	background: transparent;
	border: 0;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ap-on-surface);
	cursor: pointer;
	transition: background .12s ease;
	font-family: inherit;
}
.atelier-qty__btn:hover { background: var(--ap-surface-low); }
.atelier-qty__input {
	width: 3rem;
	border: 0;
	text-align: center;
	font-weight: 700;
	font-size: 1rem;
	background: transparent;
	-moz-appearance: textfield;
}
.atelier-qty__input::-webkit-outer-spin-button,
.atelier-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.atelier-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.85rem 1.25rem;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--ap-radius-sm);
	cursor: pointer;
	transition: all .15s ease;
	border: 0;
	font-family: inherit;
	white-space: nowrap;
}
.atelier-btn--primary {
	background: var(--ap-navy);
	color: var(--ap-on-navy);
}
.atelier-btn--primary:hover:not(:disabled) {
	background: #1c2c45;
}
.atelier-btn--primary:disabled,
.atelier-btn--primary.disabled {
	opacity: 0.4;
	cursor: not-allowed;
}
.atelier-btn--accent {
	background: var(--ap-surface);
	color: var(--ap-primary);
	border: 1.5px solid var(--ap-primary);
}
.atelier-btn--accent:hover {
	background: var(--ap-primary);
	color: var(--ap-on-primary);
}

/* ---------- Trust badges --------------------------------------------- */

.atelier-trust {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.75rem;
}
.atelier-trust__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	background: var(--ap-surface);
	padding: 1rem 0.75rem;
	border-radius: var(--ap-radius-md);
	box-shadow: var(--ap-shadow-card);
	text-align: center;
}
.atelier-trust__icon { font-size: 1.5rem; line-height: 1; }
.atelier-trust__label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--ap-on-surface-soft);
}

/* ---------- Tabs (description/composition/care) ---------------------- */

.atelier-tabs { margin-top: 3rem; }

.atelier-tabs__nav {
	display: flex;
	gap: 1.5rem;
	border-bottom: 1px solid var(--ap-outline);
	margin-bottom: 1.5rem;
	overflow-x: auto;
}
.atelier-tabs__tab {
	background: transparent;
	border: 0;
	border-bottom: 2px solid transparent;
	padding: 0.85rem 0.25rem;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--ap-on-surface-mute);
	cursor: pointer;
	transition: all .15s ease;
	font-family: inherit;
	white-space: nowrap;
	margin-bottom: -1px;
}
.atelier-tabs__tab:hover { color: var(--ap-on-surface-soft); }
.atelier-tabs__tab.is-active {
	color: var(--ap-on-surface);
	border-bottom-color: var(--ap-navy);
}
.atelier-tabs__panel { display: none; }
.atelier-tabs__panel.is-active { display: block; }
.atelier-tabs__panel,
.atelier-tabs__panel p,
.atelier-tabs__panel li {
	color: var(--ap-on-surface);
	line-height: 1.7;
}
.atelier-tabs__panel ul { padding-left: 1.25rem; }
.atelier-tabs__panel h2 { display: none; }

/* ---------- Hide WC default chrome inside our markup ----------------- */

.atelier-product-page .woocommerce-product-details__short-description { display: none; }
.atelier-product-page .product_meta { display: none; }
.atelier-product-page .woocommerce-tabs { display: none; }
.atelier-product-page .stock { display: none; }

/* Hide native variations table — wizard is the source of truth */
.atelier-wizard__form > .variations { display: none !important; }
.atelier-wizard__form .reset_variations { display: none !important; }
.atelier-wizard__form .woocommerce-variation { display: none !important; }
.atelier-wizard__form .woocommerce-variation-add-to-cart { display: contents; }

/* ---------- Related products ----------------------------------------- */

.atelier-product-page .related.products,
.atelier-product-page .upsells.products {
	margin-top: 4rem;
}
.atelier-product-page .related.products > h2,
.atelier-product-page .upsells.products > h2 {
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 2px solid var(--ap-on-surface);
}
.atelier-product-page ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	padding: 0;
	margin: 0;
	list-style: none;
}
@media (min-width: 768px) {
	.atelier-product-page ul.products { grid-template-columns: repeat(4, 1fr); }
}
.atelier-product-page ul.products li.product {
	margin: 0 !important; width: 100% !important; float: none !important;
}
.atelier-product-page ul.products li.product a { display: block; text-decoration: none; color: inherit; }
.atelier-product-page ul.products li.product img {
	width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
	background: var(--ap-surface-low);
	border-radius: var(--ap-radius-md);
	margin: 0 0 0.75rem;
	transition: transform .4s ease;
}
.atelier-product-page ul.products li.product:hover img { transform: scale(1.03); }
.atelier-product-page ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.95rem; font-weight: 700;
	color: var(--ap-on-surface); margin: 0 0 0.25rem;
}
.atelier-product-page ul.products li.product .price {
	font-size: 1rem; font-weight: 800; color: var(--ap-primary);
	margin-top: 0.25rem; display: block;
}
.atelier-product-page ul.products li.product .button { display: none; }

/* ---------- Mobile tweaks -------------------------------------------- */

@media (max-width: 767px) {
	.atelier-main { padding: 1.5rem 1rem 3rem; }
	.atelier-wizard__panel { padding: 1.25rem; }
	.atelier-wizard__actions { padding: 1rem; grid-template-columns: 1fr; }
	.atelier-trust { grid-template-columns: repeat(3, 1fr); }
	.atelier-trust__card { padding: 0.75rem 0.5rem; }
}

/* ---------- rtwpvg (Variation Images Gallery) integration ------------- */

.atelier-grid__gallery .rtwpvg-images {
	background: var(--ap-surface);
	border-radius: var(--ap-radius-md);
	overflow: hidden;
	box-shadow: var(--ap-shadow-card);
	width: 100% !important;
	margin: 0 !important;
}

.atelier-grid__gallery .rtwpvg-slider-wrapper img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.atelier-grid__gallery .rtwpvg-thumbnail-slider-wrapper {
	margin-top: 0.75rem !important;
}

.atelier-grid__gallery .rtwpvg-thumbnail-slider-wrapper .swiper-slide img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--ap-radius-xs);
}

/* Eliminar blur de preload tras carga */
.atelier-grid__gallery .rtwpvg-preload-style-blur img {
	filter: none !important;
}

/* Forzar layout horizontal thumbs bajo imagen principal */
.atelier-grid__gallery .rtwpvg-wrapper {
	display: block !important;
	width: 100% !important;
}


/* ATELIER_FULLWIDTH_OVERRIDE — v5 */
body.single-product .site-content,
body.single-product .site-content > .ast-container,
body.single-product .site-content > .ast-container > #primary,
body.single-product #primary,
body.single-product #primary > .ast-row,
body.single-product .ast-container--fluid,
body.single-product .ast-plain-container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
body.single-product main#primary > article {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.single-product .entry-content {
    margin: 0 !important;
    padding: 0 !important;
}
body.single-product .atelier-product-page {
    width: 100%;
    margin: 0;
}
/* END ATELIER_FULLWIDTH_OVERRIDE */


/* ATELIER_GALLERY_FULLWIDTH — v8 */
.atelier-grid__gallery .rtwpvg-images,
.atelier-grid__gallery .rtwpvg-wrapper,
.atelier-grid__gallery .rtwpvg-container,
.atelier-grid__gallery .rtwpvg-slider-wrapper {
    max-width: 100% !important;
    width: 100% !important;
    float: none !important;
}
.atelier-grid__gallery .rtwpvg-slider {
    width: 100% !important;
    max-width: 100% !important;
}
.atelier-grid__gallery .rtwpvg-single-image-container img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover;
}
.atelier-grid__gallery .rtwpvg-thumbnails {
    width: 100% !important;
    max-width: 100% !important;
}
/* END ATELIER_GALLERY_FULLWIDTH */


/* ATELIER_GALLERY_LEFT_THUMBS — v9 */
@media (min-width: 768px) {
    .atelier-grid__gallery .rtwpvg-container {
        display: flex !important;
        flex-direction: row !important;
        gap: 1rem !important;
        align-items: flex-start !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-wrapper {
        order: -1 !important;
        width: 84px !important;
        flex: 0 0 84px !important;
        max-width: 84px !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .atelier-grid__gallery .rtwpvg-slider-wrapper {
        order: 1 !important;
        flex: 1 1 0 !important;
        min-width: 0 !important;
        width: auto !important;
        max-width: 100% !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider,
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-wrapper {
        width: 84px !important;
        height: auto !important;
        max-height: none !important;
        transform: none !important;
        flex-direction: column !important;
        display: flex !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide {
        width: 84px !important;
        height: auto !important;
        margin: 0 0 8px 0 !important;
        flex: 0 0 auto !important;
        transform: none !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide img {
        width: 100%;
        height: auto;
        display: block;
        border-radius: var(--ap-radius-sm);
        border: 1px solid var(--ap-outline);
        transition: border-color .15s ease;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide.swiper-slide-thumb-active img {
        border-color: var(--ap-navy);
        border-width: 2px;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-prev-arrow,
    .atelier-grid__gallery .rtwpvg-thumbnail-next-arrow {
        display: none !important;
    }
}
@media (max-width: 767.98px) {
    .atelier-grid__gallery .rtwpvg-container {
        display: block !important;
    }
}
/* END ATELIER_GALLERY_LEFT_THUMBS */


/* ATELIER_GALLERY_FIXED_HEIGHT — v10 */
.atelier-grid__gallery .atelier-flag-personalizable { display: none !important; }

@media (min-width: 768px) {
    :root { --ap-gallery-h: 680px; }

    .atelier-grid__gallery .rtwpvg-container {
        height: var(--ap-gallery-h) !important;
        max-height: var(--ap-gallery-h) !important;
    }

    .atelier-grid__gallery .rtwpvg-slider-wrapper {
        height: 100% !important;
        max-height: var(--ap-gallery-h) !important;
        overflow: hidden;
        position: relative;
    }
    .atelier-grid__gallery .rtwpvg-slider,
    .atelier-grid__gallery .rtwpvg-slider .swiper-wrapper {
        height: 100% !important;
    }
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide {
        height: 100% !important;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--ap-surface);
        border-radius: var(--ap-radius-md);
        overflow: hidden;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container {
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container img {
        width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
        object-fit: cover !important;
    }

    .atelier-grid__gallery .rtwpvg-thumbnail-wrapper {
        height: var(--ap-gallery-h) !important;
        max-height: var(--ap-gallery-h) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        scrollbar-width: thin;
        scrollbar-color: var(--ap-outline-strong) transparent;
        padding-right: 4px;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-wrapper::-webkit-scrollbar { width: 6px; }
    .atelier-grid__gallery .rtwpvg-thumbnail-wrapper::-webkit-scrollbar-thumb {
        background: var(--ap-outline-strong);
        border-radius: 3px;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-wrapper::-webkit-scrollbar-track { background: transparent; }

    .atelier-grid__gallery .rtwpvg-thumbnail-slider {
        overflow: visible !important;
        height: auto !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide img {
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }
}
/* END ATELIER_GALLERY_FIXED_HEIGHT */


/* ATELIER_WIZARD_RESTYLE — v11 */

/* Reset Astra/Woo button overrides for wizard tabs */
.atelier-product-page .atelier-wizard__tabs {
    background: transparent !important;
    padding: 0.25rem 0.25rem 0 !important;
}
.atelier-product-page button.atelier-wizard__tab {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    color: var(--ap-on-surface-mute) !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    padding: 0.85rem 0.5rem !important;
    min-height: 0 !important;
    height: auto !important;
    width: auto !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    font-family: inherit !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer !important;
    transition: all .15s ease !important;
}
.atelier-product-page button.atelier-wizard__tab:hover {
    background: transparent !important;
    color: var(--ap-on-surface-soft) !important;
    border-color: transparent !important;
}
.atelier-product-page button.atelier-wizard__tab.is-active {
    background: transparent !important;
    color: var(--ap-navy) !important;
    border-bottom-color: var(--ap-navy) !important;
}
.atelier-product-page .atelier-wizard__tab-num {
    background: var(--ap-surface-low) !important;
    color: var(--ap-on-surface-mute) !important;
    width: 1.5rem !important;
    height: 1.5rem !important;
    padding: 0 !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    border-radius: 50% !important;
}
.atelier-product-page button.atelier-wizard__tab.is-active .atelier-wizard__tab-num {
    background: var(--ap-navy) !important;
    color: var(--ap-on-navy) !important;
}
.atelier-product-page button.atelier-wizard__tab.is-done .atelier-wizard__tab-num { display: none !important; }
.atelier-product-page button.atelier-wizard__tab.is-done .atelier-wizard__tab-check { display: inline-flex !important; }
.atelier-product-page .atelier-wizard__tab-check {
    background: var(--ap-success) !important;
    color: #fff !important;
    width: 1.5rem !important;
    height: 1.5rem !important;
    border-radius: 50% !important;
}

/* Quantity selector — clean inline */
.atelier-product-page .atelier-qty {
    display: inline-flex !important;
    align-items: center !important;
    border: 1px solid var(--ap-outline) !important;
    border-radius: var(--ap-radius-sm) !important;
    background: var(--ap-surface) !important;
    overflow: hidden !important;
    height: 44px !important;
}
.atelier-product-page button.atelier-qty__btn,
.atelier-product-page .atelier-qty button {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--ap-on-surface) !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    width: 36px !important;
    height: 44px !important;
    min-height: 0 !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.atelier-product-page button.atelier-qty__btn:hover,
.atelier-product-page .atelier-qty button:hover {
    background: var(--ap-surface-low) !important;
    color: var(--ap-navy) !important;
}
.atelier-product-page .atelier-qty input.qty,
.atelier-product-page .atelier-qty .atelier-qty__input {
    border: 0 !important;
    border-left: 1px solid var(--ap-outline) !important;
    border-right: 1px solid var(--ap-outline) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--ap-on-surface) !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    -moz-appearance: textfield;
}
.atelier-product-page .atelier-qty input.qty::-webkit-outer-spin-button,
.atelier-product-page .atelier-qty input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Add to cart — navy filled */
.atelier-product-page button.single_add_to_cart_button,
.atelier-product-page .single_add_to_cart_button {
    background: var(--ap-navy) !important;
    background-color: var(--ap-navy) !important;
    color: var(--ap-on-navy) !important;
    border: 0 !important;
    border-radius: var(--ap-radius-sm) !important;
    padding: 0 1.5rem !important;
    height: 44px !important;
    min-height: 44px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer !important;
    transition: background .15s ease !important;
    line-height: 1 !important;
    width: auto !important;
}
.atelier-product-page button.single_add_to_cart_button:hover,
.atelier-product-page .single_add_to_cart_button:hover {
    background: #1a2c46 !important;
    color: var(--ap-on-navy) !important;
}
.atelier-product-page button.single_add_to_cart_button.disabled,
.atelier-product-page button.single_add_to_cart_button:disabled {
    background: var(--ap-outline-strong) !important;
    color: var(--ap-on-surface-mute) !important;
    cursor: not-allowed !important;
}

/* Personalize button — red outline */
.atelier-product-page .atelier-wizard__personalize,
.atelier-product-page button.atelier-wizard__personalize,
.atelier-product-page a.atelier-wizard__personalize {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--ap-primary) !important;
    border: 2px solid var(--ap-primary) !important;
    border-radius: var(--ap-radius-sm) !important;
    padding: 0 1.5rem !important;
    height: 44px !important;
    min-height: 44px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all .15s ease !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
.atelier-product-page .atelier-wizard__personalize:hover {
    background: var(--ap-primary) !important;
    color: #fff !important;
}

/* Wizard actions row alignment */
.atelier-product-page .atelier-wizard__actions {
    align-items: center !important;
    gap: 0.75rem !important;
}
/* END ATELIER_WIZARD_RESTYLE */


/* ATELIER_SWATCH_FIX — v12 */
.atelier-product-page button.atelier-swatch,
.atelier-product-page .atelier-swatch {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    height: auto !important;
    min-height: 0 !important;
    width: auto !important;
    border-radius: 0 !important;
    color: inherit !important;
    font-family: inherit !important;
    cursor: pointer !important;
}

.atelier-product-page button.atelier-swatch--color,
.atelier-product-page .atelier-swatch--color {
    width: 2.25rem !important;
    height: 2.25rem !important;
    min-height: 2.25rem !important;
    border-radius: 50% !important;
    border: 2px solid transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    overflow: visible !important;
}

.atelier-product-page button.atelier-swatch--color.is-selected,
.atelier-product-page .atelier-swatch--color.is-selected {
    border-color: var(--ap-navy) !important;
    box-shadow: 0 0 0 1px var(--ap-navy) !important;
}

.atelier-product-page .atelier-swatch--color .atelier-swatch__dot {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    background: var(--swatch-color, #ddd) !important;
    box-shadow: 0 0 0 1px rgba(15, 28, 44, 0.12) inset !important;
    display: block !important;
    transition: transform .15s ease;
}

.atelier-product-page button.atelier-swatch--color:hover .atelier-swatch__dot {
    transform: scale(1.05);
}

/* Size/Fit swatches (button-type) */
.atelier-product-page button.atelier-swatch--button,
.atelier-product-page .atelier-swatch--button {
    min-width: 3rem !important;
    padding: 0.7rem 1.1rem !important;
    border: 1.5px solid var(--ap-outline-strong) !important;
    background: var(--ap-surface) !important;
    color: var(--ap-on-surface) !important;
    font-weight: 700 !important;
    border-radius: var(--ap-radius-sm) !important;
    height: auto !important;
    min-height: 0 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    text-shadow: none !important;
    line-height: 1.2 !important;
}
.atelier-product-page button.atelier-swatch--button:hover:not(.is-selected):not(.is-disabled) {
    border-color: var(--ap-navy) !important;
    background: var(--ap-surface) !important;
}
.atelier-product-page button.atelier-swatch--button.is-selected,
.atelier-product-page .atelier-swatch--button.is-selected {
    background: var(--ap-navy) !important;
    color: var(--ap-on-navy) !important;
    border-color: var(--ap-navy) !important;
}
.atelier-product-page button.atelier-swatch--button.is-disabled,
.atelier-product-page .atelier-swatch--button.is-disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    text-decoration: line-through !important;
}
/* END ATELIER_SWATCH_FIX */


/* ATELIER_MOBILE_FIX — v14 */

/* 1+3. Wizard actions mobile: qty + ATC row 1, Personalizar row 2 full-width */
@media (max-width: 767.98px) {
    .atelier-product-page .atelier-wizard__actions {
        grid-template-columns: auto 1fr !important;
        grid-template-areas: "qty atc" "pers pers" !important;
        gap: 0.6rem !important;
        padding: 1rem !important;
    }
    .atelier-product-page .atelier-wizard__actions .atelier-qty { grid-area: qty; }
    .atelier-product-page .atelier-wizard__actions .single_add_to_cart_button,
    .atelier-product-page .atelier-wizard__actions button.single_add_to_cart_button {
        grid-area: atc;
        width: 100% !important;
        min-width: 0 !important;
    }
    .atelier-product-page .atelier-wizard__actions .atelier-wizard__personalize,
    .atelier-product-page .atelier-wizard__actions a.atelier-wizard__personalize,
    .atelier-product-page .atelier-wizard__actions button.atelier-wizard__personalize {
        grid-area: pers;
        width: 100% !important;
    }
}

/* 2. Sticky bottom action bar mobile (injected by wizard.js) */
.atelier-stickybar { display: none; }
@media (max-width: 767.98px) {
    body.single-product .atelier-stickybar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 50;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
        padding: 0.55rem 0.75rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
        background: rgba(255, 255, 255, 0.92);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        box-shadow: 0 -8px 24px rgba(15, 28, 44, 0.08), 0 -1px 0 rgba(15, 28, 44, 0.06);
    }
    body.single-product .atelier-stickybar__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: 46px;
        border-radius: var(--ap-radius-sm, 0.5rem);
        font-weight: 700;
        font-size: 0.82rem;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        text-decoration: none;
        border: 0;
        cursor: pointer;
        transition: background .15s ease, color .15s ease;
        font-family: inherit;
        line-height: 1;
        white-space: nowrap;
    }
    body.single-product .atelier-stickybar__btn--pers {
        background: transparent;
        color: #bc0100;
        border: 2px solid #bc0100;
    }
    body.single-product .atelier-stickybar__btn--pers:active {
        background: #bc0100;
        color: #fff;
    }
    body.single-product .atelier-stickybar__btn--atc {
        background: #0f1c2c;
        color: #fff;
    }
    body.single-product .atelier-stickybar__btn--atc:active {
        background: #1a2c46;
    }
    body.single-product .atelier-stickybar__btn[disabled],
    body.single-product .atelier-stickybar__btn.is-disabled {
        opacity: 0.4;
        pointer-events: none;
    }
    /* prevent sticky bar covering content */
    body.single-product { padding-bottom: 72px; }
}

/* 4. Wizard tabs mobile (601-767) — tighten padding + truncate labels */
@media (max-width: 767.98px) and (min-width: 601px) {
    .atelier-product-page button.atelier-wizard__tab {
        padding: 0.7rem 0.35rem !important;
        font-size: 0.78rem !important;
        gap: 0.35rem !important;
    }
    .atelier-product-page .atelier-wizard__tab-label {
        max-width: 70px;
    }
}

/* 5. Trust badges mobile — denser cards, smaller icons */
@media (max-width: 767px) {
    .atelier-trust { gap: 0.5rem; }
    .atelier-trust__card { padding: 0.85rem 0.4rem; gap: 0.3rem; }
    .atelier-trust__icon { font-size: 1.25rem; }
    .atelier-trust__label { font-size: 0.62rem; }
}

/* 6. Title bump on small phones */
@media (max-width: 600px) {
    .atelier-product-page h1.atelier-summary__title,
    .atelier-product-page .atelier-summary__title.product_title,
    .atelier-product-page .atelier-summary__title.entry-title {
        font-size: 1.85rem !important;
        line-height: 1.1 !important;
    }
}

/* 7. Summary row price stacking on very narrow */
@media (max-width: 420px) {
    .atelier-summary-row {
        grid-template-columns: 1fr auto;
        gap: 0.25rem 0.6rem;
    }
    .atelier-summary-row__edit { grid-column: 2; justify-self: end; }
}

/* 8. Gallery mobile — restyle rtwpvg thumbs */
@media (max-width: 767.98px) {
    .atelier-grid__gallery .rtwpvg-images,
    .atelier-grid__gallery .rtwpvg-wrapper,
    .atelier-grid__gallery .rtwpvg-slider-wrapper {
        border-radius: var(--ap-radius-md);
        overflow: hidden;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider-wrapper {
        margin-top: 0.5rem !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide img {
        aspect-ratio: 1 / 1;
        object-fit: cover;
        border: 1px solid var(--ap-outline);
        border-radius: var(--ap-radius-xs);
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide.swiper-slide-thumb-active img {
        border-color: var(--ap-navy);
        border-width: 2px;
    }
}

/* 9. Info tabs (descrip/composición/care) bigger hover area mobile */
@media (max-width: 767px) {
    .atelier-tabs__nav { gap: 1rem; }
    .atelier-tabs__tab { padding: 0.85rem 0.4rem; font-size: 0.85rem; }
}

/* 10. Specs cards — 2-col on small phones, denser */
@media (max-width: 480px) {
    .atelier-specs { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
    .atelier-spec { padding: 0.75rem 0.85rem; gap: 0.6rem; }
    .atelier-spec__icon { width: 1.75rem; height: 1.75rem; }
    .atelier-spec__value { font-size: 0.85rem; }
}

/* END ATELIER_MOBILE_FIX */


/* ATELIER_GALLERY_MOBILE_FIX — v15 */
/* Swiper.js (used by rtwpvg gallery) sometimes assigns 16777216px to .swiper-slide
   on mobile when container width is unresolved at init. Hard-clamp to container width. */
@media (max-width: 767.98px) {
    .atelier-grid__gallery .rtwpvg-container {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        overflow: hidden !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        flex: none !important;
        order: 2 !important;
    }
    .atelier-grid__gallery .rtwpvg-slider-wrapper {
        order: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        position: relative !important;
        overflow: hidden !important;
    }
    .atelier-grid__gallery .rtwpvg-slider,
    .atelier-grid__gallery .rtwpvg-slider.swiper,
    .atelier-grid__gallery .rtwpvg-slider .swiper-container {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        overflow: hidden !important;
    }
    .atelier-grid__gallery .rtwpvg-slider .swiper-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide.swiper-slide-active {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        flex-shrink: 0 !important;
        display: block !important;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        display: block !important;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container img,
    .atelier-grid__gallery .rtwpvg-slider-wrapper img,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: 4 / 5;
        object-fit: cover !important;
        display: block !important;
    }
    /* thumbnails row mobile */
    .atelier-grid__gallery .rtwpvg-thumbnail-slider,
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        flex-direction: row !important;
        display: flex !important;
        transform: none !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide {
        width: 60px !important;
        height: 60px !important;
        flex: 0 0 60px !important;
        margin: 0 6px 0 0 !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-slider .swiper-slide img {
        width: 100% !important;
        height: 100% !important;
        aspect-ratio: 1 / 1 !important;
        object-fit: cover !important;
    }
    .atelier-grid__gallery .rtwpvg-thumbnail-prev-arrow,
    .atelier-grid__gallery .rtwpvg-thumbnail-next-arrow {
        display: none !important;
    }
}
/* END ATELIER_GALLERY_MOBILE_FIX */


/* ATELIER_GALLERY_MOBILE_SIZE — v16 */
/* Cap gallery image height mobile to ~60vh so portrait 4:5 doesn't dominate viewport.
   object-fit: contain preserves whole product image; bg fills any letterbox. */
@media (max-width: 767.98px) {
    .atelier-grid__gallery .rtwpvg-slider-wrapper,
    .atelier-grid__gallery .rtwpvg-slider,
    .atelier-grid__gallery .rtwpvg-slider .swiper-wrapper,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide.swiper-slide-active,
    .atelier-grid__gallery .rtwpvg-single-image-container {
        height: 58vh !important;
        max-height: 58vh !important;
        min-height: 0 !important;
        background: var(--ap-surface-low);
    }
    .atelier-grid__gallery .rtwpvg-single-image-container img,
    .atelier-grid__gallery .rtwpvg-slider-wrapper img,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide img {
        width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
        aspect-ratio: auto !important;
        object-fit: contain !important;
        background: var(--ap-surface-low);
    }
    .atelier-grid__gallery .woocommerce-product-gallery__image img {
        max-height: 58vh !important;
        aspect-ratio: auto !important;
        object-fit: contain !important;
    }
}
@media (max-width: 480px) {
    .atelier-grid__gallery .rtwpvg-slider-wrapper,
    .atelier-grid__gallery .rtwpvg-slider,
    .atelier-grid__gallery .rtwpvg-slider .swiper-wrapper,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide.swiper-slide-active,
    .atelier-grid__gallery .rtwpvg-single-image-container {
        height: 50vh !important;
        max-height: 50vh !important;
    }
    .atelier-grid__gallery .woocommerce-product-gallery__image img {
        max-height: 50vh !important;
    }
}
/* END ATELIER_GALLERY_MOBILE_SIZE */


/* ATELIER_GALLERY_FULLWIDTH_MOBILE — v17 */
/* Override v16 letterbox: image fills 100% width, height auto. */
@media (max-width: 767.98px) {
    .atelier-grid__gallery .rtwpvg-slider-wrapper,
    .atelier-grid__gallery .rtwpvg-slider,
    .atelier-grid__gallery .rtwpvg-slider .swiper-wrapper,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide.swiper-slide-active,
    .atelier-grid__gallery .rtwpvg-single-image-container,
    .atelier-grid__gallery .woocommerce-product-gallery__image {
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        background: transparent;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container img,
    .atelier-grid__gallery .rtwpvg-slider-wrapper img,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide img,
    .atelier-grid__gallery .woocommerce-product-gallery__image img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: cover !important;
        display: block !important;
        background: transparent !important;
    }
}
/* END ATELIER_GALLERY_FULLWIDTH_MOBILE */


/* ATELIER_GALLERY_ASPECT_MOBILE — v18 */
/* Give slide/container the same 4:5 aspect as product images so Swiper has
   a defined height and image fills 100% width without letterbox. */
@media (max-width: 767.98px) {
    .atelier-grid__gallery .rtwpvg-slider-wrapper,
    .atelier-grid__gallery .rtwpvg-slider,
    .atelier-grid__gallery .rtwpvg-slider .swiper-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        aspect-ratio: 4 / 5 !important;
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        background: transparent !important;
    }
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide.swiper-slide-active {
        width: 100% !important;
        max-width: 100% !important;
        aspect-ratio: 4 / 5 !important;
        height: 100% !important;
        max-height: 100% !important;
        flex-shrink: 0 !important;
        background: transparent !important;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
        aspect-ratio: 4 / 5 !important;
        background: transparent !important;
    }
    .atelier-grid__gallery .rtwpvg-single-image-container img,
    .atelier-grid__gallery .rtwpvg-slider-wrapper img,
    .atelier-grid__gallery .rtwpvg-slider .swiper-slide img,
    .atelier-grid__gallery .woocommerce-product-gallery__image img {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
        aspect-ratio: 4 / 5 !important;
        object-fit: cover !important;
        display: block !important;
        background: transparent !important;
    }
}
/* END ATELIER_GALLERY_ASPECT_MOBILE */


/* ATELIER_GRID_MINWIDTH_FIX — v19 */
/* Root cause: mobile grid `1fr` = minmax(auto, 1fr) prevents column shrink below
   content. Image natural width (900px) expands column, which propagates down
   through swiper to slide width. Force minmax(0, 1fr) so column can shrink. */
@media (max-width: 991.98px) {
    .atelier-product-page .atelier-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    .atelier-product-page .atelier-grid > * {
        min-width: 0 !important;
    }
    .atelier-product-page .atelier-grid__gallery,
    .atelier-product-page .atelier-grid__gallery .rtwpvg-wrapper,
    .atelier-product-page .atelier-grid__gallery .rtwpvg-container,
    .atelier-product-page .atelier-grid__gallery .rtwpvg-slider-wrapper,
    .atelier-product-page .atelier-grid__gallery .rtwpvg-slider,
    .atelier-product-page .atelier-grid__gallery .swiper,
    .atelier-product-page .atelier-grid__gallery .swiper-wrapper {
        min-width: 0 !important;
        max-width: 100% !important;
    }
}
/* END ATELIER_GRID_MINWIDTH_FIX */
