/* Catalog pages: use the same neutral page base as the homepage so the
   shared footer keeps exactly the same white gap and footer tint. */
body.joaya-catalog-page {
	background: var(--joaya-page-bg);
	--joaya-catalog-section-gap: 1.3rem;
	--joaya-catalog-hero-gap: 2.85rem;
	--joaya-catalog-card-height: 35rem;
}

body.joaya-catalog-page .site-main--catalog {
	background: var(--joaya-page-bg);
	padding-bottom: 4.5rem;
}

body.joaya-catalog-page .catalog-page {
	padding-top: 4rem;
	background: transparent;
}

body.joaya-catalog-page .site-main--catalog-has-hero {
	padding-top: 0;
}

body.joaya-catalog-page .site-main--catalog-has-hero .catalog-page {
	padding-top: 0;
}

/* Catalog pages must inherit the exact same footer behavior as the homepage. */

.catalog-page__hero {
	margin: 0 0 var(--joaya-catalog-hero-gap);
}

.catalog-page__hero-media {
	min-height: 36rem;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.catalog-page__shell {
	display: grid;
	gap: var(--joaya-catalog-section-gap);
}

.catalog-page__header {
	margin-bottom: 0;
}

.catalog-page__header--landing,
.catalog-page__header--grid {
	display: grid;
	gap: 0.35rem;
	max-width: 50rem;
}

.catalog-page__header p {
	max-width: 34rem;
	margin: 0.35rem 0 0;
	font-size: 1rem;
	line-height: 1.55;
	color: #665a53;
}

.catalog-page__title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--joaya-source-gap-10);
	font-family: var(--joaya-sans);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1;
}

.catalog-page__title em {
	font-style: italic;
	font-weight: 600;
	color: var(--joaya-lilac);
}

.catalog-page .joaya-product-card,
.catalog-page .joaya-note-card,
.catalog-page .catalog-model-card,
.catalog-page .catalog-duo-card,
.gift-card-page__media,
.maison-story__card,
.maison-story__wide,
.catalog-page__pagination a,
.catalog-page__pagination span {
	background: rgba(255, 255, 255, 0.92);
}

.catalog-page .joaya-product-card__media,
.gift-card-page__media-placeholder {
	background: rgba(255, 255, 255, 0.96);
}

.catalog-products__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.catalog-page__pagination ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.catalog-page__pagination a,
.catalog-page__pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.8rem;
	min-height: 2.8rem;
	padding: 0.6rem 0.85rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.84);
}

.catalog-page__pagination .current {
	color: #fff;
	background: var(--joaya-sage);
	border-color: var(--joaya-sage);
}

.catalog-page__empty {
	max-width: 38rem;
}

.catalog-page--all-jewelry {
	--catalog-jewelry-ink: #243961;
	--catalog-jewelry-accent: var(--joaya-lilac);
	--catalog-jewelry-text: #2f3542;
	--catalog-jewelry-muted: #626b78;
	--catalog-jewelry-line: rgba(36, 57, 97, 0.14);
	padding-top: 3.4rem;
	background: #fff;
	color: var(--catalog-jewelry-text);
}

.catalog-page--all-jewelry .catalog-page__shell {
	gap: 1.65rem;
}

.catalog-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: rgba(36, 57, 97, 0.62);
}

.catalog-breadcrumb a {
	color: inherit;
	text-decoration: none;
}

.catalog-breadcrumb a:hover,
.catalog-breadcrumb a:focus-visible {
	color: var(--catalog-jewelry-ink, var(--joaya-action-bg));
	outline: none;
}

.catalog-all-jewelry__hero {
	display: grid;
	gap: 0.7rem;
	max-width: 58rem;
	padding-top: 0.35rem;
}

.catalog-all-jewelry__eyebrow,
.catalog-filters__header h2,
.catalog-filters__group legend,
.catalog-sort label {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--catalog-jewelry-ink);
}

.catalog-all-jewelry__eyebrow {
	color: var(--joaya-lilac);
}

.catalog-all-jewelry__title {
	margin: 0;
	font-family: var(--joaya-serif);
	font-size: 4.9rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 0.94;
	color: var(--joaya-ink);
}

.catalog-all-jewelry__title--search {
	font-family: var(--joaya-sans);
	font-size: clamp(1.9rem, 3vw, 2.75rem);
	font-weight: 400;
	line-height: 1.18;
	text-align: center;
	color: var(--joaya-lilac);
}

.catalog-all-jewelry__intro {
	max-width: 46rem;
	margin: 0;
	font-size: 1.04rem;
	line-height: 1.7;
	color: var(--catalog-jewelry-muted);
}

.catalog-all-jewelry__tabs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--catalog-jewelry-line);
}

.catalog-all-jewelry__tabs a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0.68rem 0.95rem;
	border: 1px solid var(--catalog-jewelry-line);
	border-radius: 0;
	background: #fff;
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--catalog-jewelry-ink);
	text-decoration: none;
}

.catalog-all-jewelry__tabs a.is-active {
	border-color: var(--catalog-jewelry-accent);
	background: var(--catalog-jewelry-accent);
	color: #fff;
}

.catalog-all-jewelry__layout {
	display: grid;
	grid-template-columns: minmax(15rem, 17.5rem) minmax(0, 1fr);
	align-items: start;
	gap: 2rem;
}

.catalog-filters {
	position: sticky;
	top: calc(var(--joaya-header-desktop-height, 156px) + 1rem);
	max-height: calc(100vh - var(--joaya-header-desktop-height, 156px) - 2rem);
	overflow: auto;
	padding: 1.1rem;
	border: 1px solid var(--catalog-jewelry-line);
	border-radius: 0;
	background: #fff;
}

.catalog-filters__summary {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3rem;
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--catalog-jewelry-ink);
	cursor: pointer;
	list-style: none;
}

.catalog-filters__summary::-webkit-details-marker {
	display: none;
}

.catalog-filters__summary em {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.55rem;
	height: 1.55rem;
	border-radius: 999px;
	background: var(--joaya-lilac);
	font-style: normal;
	font-size: 0.75rem;
	color: #fff;
}

.catalog-filters__summary::after {
	content: "+";
	font-size: 1.25rem;
	font-weight: 500;
	color: var(--joaya-sage);
}

.catalog-filters[open] .catalog-filters__summary::after {
	content: "-";
}

.catalog-filters__form {
	display: grid;
	gap: 1.05rem;
}

.catalog-filters__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--catalog-jewelry-line);
}

.catalog-filters__header a {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--joaya-sage);
	text-decoration: none;
	white-space: nowrap;
}

.catalog-filters__group {
	display: grid;
	gap: 0.15rem;
	min-width: 0;
	padding: 0;
	margin: 0;
	border: 0;
}

.catalog-filters__group legend {
	padding: 0 0 0.45rem;
	font-size: 0.72rem;
	color: rgba(36, 57, 97, 0.72);
}

.catalog-filter-option {
	display: flex;
	align-items: center;
	gap: 0.62rem;
	min-height: 2.85rem;
	padding: 0.28rem 0;
	border-top: 1px solid rgba(36, 57, 97, 0.08);
	font-size: 0.94rem;
	line-height: 1.3;
	color: var(--catalog-jewelry-text);
	cursor: pointer;
}

.catalog-filter-option:first-of-type {
	border-top: 0;
}

.catalog-filter-option input {
	flex: 0 0 auto;
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: var(--catalog-jewelry-ink);
}

.catalog-filter-option__swatch {
	flex: 0 0 auto;
	width: 1.05rem;
	height: 1.05rem;
	border: 1px solid rgba(36, 57, 97, 0.22);
	border-radius: 999px;
	background: var(--catalog-filter-swatch, #fff);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.72);
}

.catalog-filter-option__label {
	min-width: 0;
	overflow-wrap: anywhere;
}

.catalog-price-filter {
	gap: 1rem;
	padding-top: 0.2rem;
}

.catalog-price-filter__slider {
	position: relative;
	height: 2rem;
	margin-top: 0.15rem;
}

.catalog-price-filter__slider::before,
.catalog-price-filter__slider::after {
	position: absolute;
	top: 50%;
	right: 0;
	left: 0;
	height: 0.38rem;
	transform: translateY(-50%);
	content: "";
}

.catalog-price-filter__slider::before {
	background: rgba(36, 57, 97, 0.08);
}

.catalog-price-filter__slider::after {
	right: calc(100% - var(--catalog-price-max, 100%));
	left: var(--catalog-price-min, 0%);
	background: var(--catalog-jewelry-accent);
}

.catalog-price-filter__slider input[type="range"] {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	width: 100%;
	height: 2rem;
	margin: 0;
	padding: 0;
	background: transparent;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}

.catalog-price-filter__slider input[type="range"]::-webkit-slider-runnable-track {
	height: 0.38rem;
	background: transparent;
}

.catalog-price-filter__slider input[type="range"]::-webkit-slider-thumb {
	width: 1.35rem;
	height: 1.35rem;
	margin-top: -0.48rem;
	border: 0;
	border-radius: 999px;
	background: var(--catalog-jewelry-ink);
	cursor: pointer;
	pointer-events: auto;
	-webkit-appearance: none;
	appearance: none;
}

.catalog-price-filter__slider input[type="range"]::-moz-range-track {
	height: 0.38rem;
	background: transparent;
}

.catalog-price-filter__slider input[type="range"]::-moz-range-thumb {
	width: 1.35rem;
	height: 1.35rem;
	border: 0;
	border-radius: 999px;
	background: var(--catalog-jewelry-ink);
	cursor: pointer;
	pointer-events: auto;
}

.catalog-price-filter__values {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
}

.catalog-price-filter__values input {
	width: 100%;
	min-height: 3rem;
	padding: 0.7rem 0.8rem;
	border: 0;
	background: rgba(36, 57, 97, 0.05);
	font-family: var(--joaya-sans);
	font-size: 0.9rem;
	font-weight: 600;
	text-align: center;
	color: var(--catalog-jewelry-ink);
	appearance: textfield;
}

.catalog-price-filter__values input::-webkit-outer-spin-button,
.catalog-price-filter__values input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.catalog-filters__submit,
.catalog-sort button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	padding: 0.72rem 1rem;
	border: 1px solid var(--catalog-jewelry-ink);
	border-radius: 0;
	background: var(--catalog-jewelry-ink);
	font-family: var(--joaya-sans);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-transform: uppercase;
	color: #fff;
	cursor: pointer;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.catalog-filters__submit:hover,
.catalog-filters__submit:focus-visible,
.catalog-sort button:hover,
.catalog-sort button:focus-visible {
	border-color: var(--joaya-lilac);
	background: var(--joaya-lilac);
	color: #fff;
	outline: none;
}

.catalog-all-jewelry__results {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.catalog-results-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.25rem;
	padding: 0.7rem 0;
	border-top: 1px solid var(--catalog-jewelry-line);
	border-bottom: 1px solid var(--catalog-jewelry-line);
}

.catalog-results-bar p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.7rem;
	margin: 0;
	font-size: 0.94rem;
	font-weight: 700;
	color: var(--catalog-jewelry-muted);
}

.catalog-results-bar p span + span {
	font-weight: 500;
	color: rgba(36, 57, 97, 0.56);
}

.catalog-results-bar p span + span::before {
	content: "/";
	padding-right: 0.7rem;
	color: rgba(36, 57, 97, 0.32);
}

.catalog-sort {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.6rem;
	margin: 0;
}

.catalog-sort label {
	font-size: 0.72rem;
	color: rgba(36, 57, 97, 0.68);
}

.catalog-sort select {
	min-width: 11.25rem;
	min-height: 2.75rem;
	padding: 0 2.2rem 0 0.85rem;
	border: 1px solid var(--catalog-jewelry-line);
	border-radius: 0;
	background: #fff;
	color: var(--catalog-jewelry-text);
	font-family: var(--joaya-sans);
	font-size: 0.9rem;
}

.catalog-active-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.catalog-active-filters a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.45rem;
	padding: 0.54rem 0.78rem;
	border: 1px solid rgba(36, 57, 97, 0.16);
	border-radius: 0;
	background: #fff;
	font-size: 0.86rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--catalog-jewelry-ink);
	text-decoration: none;
}

.catalog-active-filters a:hover,
.catalog-active-filters a:focus-visible {
	border-color: var(--joaya-lilac);
	color: var(--joaya-lilac);
	outline: none;
}

.catalog-active-filters__reset {
	border-color: transparent !important;
	color: var(--joaya-sage) !important;
}

.catalog-page--all-jewelry .catalog-products__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.15rem;
}

.catalog-page--all-jewelry .joaya-product-card {
	display: grid;
	min-width: 0;
}

.catalog-page--all-jewelry .joaya-product-card__media {
	border: 1px solid rgba(36, 57, 97, 0.08);
	background: #fff;
}

.catalog-page--all-jewelry .joaya-product-card__image,
.catalog-page--all-jewelry .joaya-product-card__image--placeholder {
	object-fit: contain;
	padding: 0.85rem;
	background: #fff;
}

.catalog-page--all-jewelry .joaya-product-card__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.8rem;
	min-height: 4.8rem;
	padding: 0.72rem 0 0;
}

.catalog-page--all-jewelry .joaya-product-card__title {
	color: var(--catalog-jewelry-ink);
}

.catalog-page--all-jewelry .joaya-product-card__eyebrow {
	display: block;
	margin-top: 0.22rem;
	font-size: 0.78rem;
	color: var(--catalog-jewelry-muted);
}

.catalog-page--all-jewelry .joaya-product-card__price {
	align-items: flex-end;
	color: var(--catalog-jewelry-ink);
}

.catalog-all-jewelry__empty {
	display: grid;
	gap: 0.6rem;
	max-width: 44rem;
	padding: 1.4rem;
	border: 1px solid var(--catalog-jewelry-line);
	border-radius: 0;
	background: #fff;
}

.catalog-all-jewelry__empty h2,
.catalog-all-jewelry__empty p {
	margin: 0;
}

.catalog-all-jewelry__empty h2 {
	font-family: var(--joaya-serif);
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.1;
	color: var(--joaya-ink);
}

.catalog-all-jewelry__empty p {
	font-size: 0.98rem;
	line-height: 1.65;
	color: var(--catalog-jewelry-muted);
}

.catalog-page--legal {
	padding-top: 3rem;
	background: #fff;
}

.legal-page {
	gap: clamp(2rem, 4vw, 3.4rem);
	color: var(--joaya-action-bg);
}

.legal-page__breadcrumb {
	width: min(100%, 74rem);
	margin: 0 auto;
	color: rgba(36, 57, 97, 0.38);
}

.catalog-page__header--legal {
	display: grid;
	justify-items: center;
	gap: 0.8rem;
	max-width: 76rem;
	margin: 0 auto;
	text-align: center;
}

.catalog-page__header--legal p {
	max-width: 42rem;
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(36, 57, 97, 0.62);
}

.legal-page__title {
	margin: 0;
	font-family: var(--joaya-serif);
	font-size: clamp(2.85rem, 5vw, 4.65rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1;
	color: var(--joaya-lilac);
}

.legal-page__sections {
	display: grid;
	gap: clamp(2.6rem, 5vw, 4.6rem);
	width: min(100%, 74rem);
	margin: 0 auto;
}

.legal-page__section {
	display: grid;
	gap: 1rem;
	padding: 0;
	border: 0;
	background: #fff;
}

.legal-page__section h2,
.legal-page__section p,
.legal-page__list {
	margin: 0;
}

.legal-page__section h2 {
	font-family: var(--joaya-sans);
	font-size: clamp(1rem, 1.4vw, 1.18rem);
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--joaya-lilac);
}

.legal-page__section p,
.legal-page__list {
	font-family: var(--joaya-sans);
	font-size: 0.98rem;
	font-weight: 400;
	line-height: 1.76;
	color: rgba(36, 57, 97, 0.82);
}

.legal-page__list {
	display: grid;
	gap: 0.35rem;
	padding-left: 1.2rem;
}

.legal-page__list li::marker {
	color: var(--joaya-lilac);
}

.catalog-models__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--joaya-grid-gap);
	overflow: visible;
}

.catalog-model-card {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1 / 1.34;
	background: transparent;
}

.catalog-model-card__visual {
	position: absolute;
	inset: 0;
	display: block;
	background-position: center;
	background-size: cover;
}

.catalog-model-card__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 1.1rem;
	background: linear-gradient(180deg, rgba(28, 23, 20, 0.04) 28%, rgba(28, 23, 20, 0.26) 100%);
	color: #fff;
	text-align: center;
}

.catalog-model-card__overlay strong {
	font-family: var(--joaya-sans);
	font-size: 1.25rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.catalog-duo {
	padding-top: 0;
}

.catalog-duo__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
}

.catalog-duo-card {
	position: relative;
	display: block;
	min-height: 28rem;
	overflow: hidden;
	background: transparent;
}

.catalog-duo-card__image {
	position: absolute;
	inset: 0;
	display: block;
	background-position: center;
	background-size: cover;
}

.catalog-duo-card__content {
	position: absolute;
	left: 3rem;
	bottom: 3rem;
	z-index: 1;
	display: grid;
	gap: 0.85rem;
	max-width: 25rem;
	color: #fff;
}

.catalog-duo-card__content small {
	font-size: 0.92rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.catalog-page--creoles-acier-316l .catalog-duo-card,
.catalog-page--nos-collections .catalog-duo-card {
	min-height: var(--joaya-catalog-card-height);
}

.catalog-duo-card__content strong {
	font-family: var(--joaya-serif);
	font-size: clamp(2.4rem, 4vw, 3.6rem);
	font-weight: 500;
	line-height: 0.95;
}

.catalog-duo-card__content span {
	max-width: 19rem;
	font-size: 1rem;
	line-height: 1.5;
}

.catalog-landing-cta {
	display: flex;
	justify-content: center;
	margin-top: 1.25rem;
}

.catalog-landing-cta__button {
	min-width: min(100%, 20rem);
	max-width: 100%;
	min-height: 3.65rem;
	padding: 1rem 1.75rem;
	border: 1px solid rgba(49, 41, 35, 0.1);
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	font-family: var(--joaya-sans);
	font-size: 1.02rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	color: var(--joaya-ink);
}

.catalog-landing-cta__button:hover,
.catalog-landing-cta__button:focus-visible {
	border-color: rgba(200, 162, 214, 0.48);
	background: var(--joaya-cta-bg);
	color: var(--joaya-ink);
	outline: none;
}

@media (min-width: 1024px) {
	.home-duo-card__content,
	.catalog-duo-card__content {
		left: 3rem;
		right: 3rem;
		bottom: 3rem;
		max-width: 32rem;
	}

	.home-duo-card__content strong,
	.catalog-duo-card__content strong {
		font-family: var(--joaya-serif);
		font-size: clamp(2.8rem, 5vw, 4.4rem);
		font-weight: 500;
		line-height: 0.95;
	}

	.home-duo-card__content span,
	.catalog-duo-card__content span {
		max-width: none;
		font-size: 1rem;
		line-height: 1.5;
	}

	.catalog-page--nos-collections .catalog-duo {
		width: 100vw;
		margin-right: calc(50% - 50vw);
		margin-left: calc(50% - 50vw);
	}

	.catalog-page--nos-collections .catalog-duo__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.catalog-page--nos-collections .catalog-duo-card {
		min-height: clamp(34rem, 44vw, 44rem);
	}

	.catalog-page--nos-collections .catalog-duo-card__content {
		left: clamp(2rem, 3vw, 3rem);
		right: clamp(2rem, 3vw, 3rem);
		max-width: none;
	}

	.catalog-page--nos-collections .catalog-duo-card__content strong {
		font-size: clamp(2.6rem, 3.5vw, 4.1rem);
		white-space: nowrap;
	}
}

.gift-card-page {
	display: grid;
	grid-template-columns: minmax(20rem, 0.96fr) minmax(24rem, 1fr);
	gap: clamp(2.2rem, 4vw, 4.4rem);
	align-items: start;
	min-height: var(--joaya-gift-card-scroll-range, auto);
}

.gift-card-page__media {
	display: grid;
	gap: 1rem;
}

.gift-card-page__media-frame {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: var(--joaya-surface-muted);
	box-shadow: 0 1.2rem 3.4rem rgba(49, 41, 35, 0.08);
}

.gift-card-page__media-frame::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0) 34%, rgba(49, 41, 35, 0.16) 100%),
		linear-gradient(90deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0));
	pointer-events: none;
}

.gift-card-page__notices {
	margin-bottom: 1.25rem;
}

.gift-card-page__notices .woocommerce-notices-wrapper {
	display: grid;
	gap: 0.65rem;
}

.catalog-page--gift-card .gift-card-page__notices .woocommerce-info,
.catalog-page--gift-card .gift-card-page__notices .woocommerce-message,
.catalog-page--gift-card .gift-card-page__notices .woocommerce-error {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: 0.72rem 1rem 0.72rem 2.55rem;
	border: 1px solid rgba(200, 162, 214, 0.24);
	outline: 0;
	background: rgba(251, 247, 250, 0.96);
	box-shadow: none;
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	line-height: 1.5;
	color: rgba(36, 57, 97, 0.72);
	list-style: none;
}

.catalog-page--gift-card .gift-card-page__notices .woocommerce-message {
	animation: joaya-gift-card-notice-hide 5.6s ease forwards;
}

.catalog-page--gift-card .gift-card-page__notices .woocommerce-info::before,
.catalog-page--gift-card .gift-card-page__notices .woocommerce-message::before,
.catalog-page--gift-card .gift-card-page__notices .woocommerce-error::before {
	position: absolute;
	top: 50%;
	left: 1rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1rem;
	height: 1rem;
	margin: 0;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: 0.65rem;
	line-height: 1;
	color: var(--joaya-lilac);
	transform: translateY(-50%);
}

.catalog-page--gift-card .gift-card-page__notices .woocommerce-info li,
.catalog-page--gift-card .gift-card-page__notices .woocommerce-message li,
.catalog-page--gift-card .gift-card-page__notices .woocommerce-error li {
	margin: 0;
	padding: 0;
	list-style: none;
}

@keyframes joaya-gift-card-notice-hide {
	0%,
	78% {
		max-height: 5rem;
		opacity: 1;
	}

	100% {
		max-height: 0;
		margin: 0;
		padding-top: 0;
		padding-bottom: 0;
		border-color: transparent;
		opacity: 0;
		pointer-events: none;
	}
}

.gift-card-page__media img,
.gift-card-page__media-placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.gift-card-page__media-overlay {
	position: absolute;
	right: clamp(1rem, 2.4vw, 1.5rem);
	bottom: clamp(1rem, 2.4vw, 1.5rem);
	left: clamp(1rem, 2.4vw, 1.5rem);
	z-index: 1;
}

.gift-card-page__media-card {
	display: grid;
	gap: 0.85rem;
	padding: 1.25rem 1.2rem;
	border: 1px solid rgba(255, 255, 255, 0.36);
	background: rgba(255, 255, 255, 0.78);
	backdrop-filter: blur(12px);
	box-shadow: 0 1rem 2.6rem rgba(49, 41, 35, 0.12);
}

.gift-card-page__media-chip {
	display: inline-flex;
	width: fit-content;
	min-height: 2rem;
	margin: 0;
	padding: 0.42rem 0.8rem;
	background: rgba(200, 162, 214, 0.18);
	font-family: var(--joaya-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #7f648f;
}

.gift-card-page__media-card h2 {
	margin: 0;
	font-size: clamp(2rem, 3vw, 2.55rem);
	line-height: 0.98;
	color: var(--joaya-ink);
}

.gift-card-page__media-card p {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.94rem;
	line-height: 1.7;
	color: rgba(49, 41, 35, 0.76);
}

.gift-card-page__media-highlights {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.gift-card-page__media-highlights span {
	display: inline-flex;
	align-items: center;
	padding: 0.42rem 0.72rem;
	border: 1px solid rgba(49, 41, 35, 0.1);
	background: rgba(255, 255, 255, 0.68);
	font-family: var(--joaya-sans);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.68);
}

.gift-card-page__media-placeholder {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 247, 245, 0.94));
}

.gift-card-page__content {
	display: grid;
	gap: 1.15rem;
	align-content: start;
	max-width: 40rem;
	padding: clamp(0.1rem, 0.8vw, 0.6rem) 0;
}

@media (min-width: 1024px) {
	.gift-card-page__media,
	.gift-card-page__content {
		position: sticky;
		top: 168px;
	}

	.gift-card-page__content {
		max-height: calc(100vh - 188px);
		overflow-y: auto;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}

	.gift-card-page__content::-webkit-scrollbar {
		display: none;
	}
}

.gift-card-page__eyebrow {
	margin-bottom: 0.2rem;
	color: #8f6ba6;
	background: rgba(200, 162, 214, 0.12);
}

.gift-card-page__title {
	margin: 0;
	font-size: clamp(2.45rem, 3.95vw, 3.75rem);
	line-height: 0.96;
}

.gift-card-page__lead {
	max-width: 37rem;
	margin: 0;
	font-size: 1rem;
	line-height: 1.74;
	color: var(--joaya-muted);
}

.gift-card-page__range {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.45rem 0.7rem;
	margin: -0.1rem 0 0.1rem;
	font-family: var(--joaya-sans);
	font-size: 0.92rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.7);
}

.gift-card-page__range strong {
	font-family: var(--joaya-sans);
	font-size: 2.05rem;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: var(--joaya-ink);
}

.gift-card-page__supporting {
	max-width: 35rem;
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.68;
	color: #8f6ba6;
}

.gift-card-page__intro-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 0.75rem;
}

.gift-card-page__intro-meta span {
	display: inline-flex;
	align-items: center;
	min-height: 2.15rem;
	padding: 0.48rem 0.78rem;
	border: 1px solid rgba(49, 41, 35, 0.1);
	background: rgba(255, 255, 255, 0.9);
	font-family: var(--joaya-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.7);
}

.gift-card-page__form {
	display: grid;
	gap: 1.3rem;
	margin-top: 0.3rem;
}

.gift-card-page__section {
	display: grid;
	gap: 1rem;
	padding: 1.45rem 1.45rem 1.5rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 1rem 2.2rem rgba(49, 41, 35, 0.04);
}

.gift-card-page__section--preview {
	background:
		linear-gradient(180deg, rgba(200, 162, 214, 0.09), rgba(255, 255, 255, 0.96) 38%),
		rgba(255, 255, 255, 0.94);
}

.gift-card-page__section-header {
	display: grid;
	gap: 0.45rem;
}

.gift-card-page__label {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.74rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #8f6ba6;
}

.gift-card-page__section-copy {
	max-width: 34rem;
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.72;
	color: rgba(49, 41, 35, 0.76);
}

.gift-card-page__amount-title {
	margin-top: 0.15rem;
	color: var(--joaya-lilac);
}

.gift-card-page__field {
	display: block;
}

.gift-card-page__fields {
	display: grid;
	gap: 0.8rem;
}

.gift-card-page__fields--duo {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
}

.gift-card-page__field-label {
	display: block;
	margin-bottom: 0.45rem;
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	font-weight: 500;
	line-height: 1.4;
	color: var(--joaya-ink);
}

.gift-card-page__field input,
.gift-card-page__field textarea {
	width: 100%;
	border: 1px solid rgba(49, 41, 35, 0.12);
	background: rgba(255, 255, 255, 0.98);
	font-family: var(--joaya-sans);
	font-size: 0.96rem;
	line-height: 1.55;
	color: var(--joaya-ink);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.gift-card-page__field input {
	min-height: 3.35rem;
	padding: 0.85rem 1rem;
}

.gift-card-page__field textarea {
	min-height: 8rem;
	padding: 0.95rem 1rem;
	resize: vertical;
}

.gift-card-page__field input::placeholder,
.gift-card-page__field textarea::placeholder {
	color: rgba(49, 41, 35, 0.42);
}

.gift-card-page__field input:focus,
.gift-card-page__field textarea:focus {
	outline: none;
	border-color: rgba(200, 162, 214, 0.76);
	box-shadow: 0 0 0 3px rgba(200, 162, 214, 0.14);
}

.gift-card-page__field-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
}

.gift-card-page__field-hint {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	line-height: 1.58;
	color: rgba(49, 41, 35, 0.7);
}

.gift-card-page__counter {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.58);
}

.gift-card-page__amounts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.85rem;
}

.gift-card-page__amount {
	position: relative;
	display: block;
	cursor: pointer;
}

.gift-card-page__amount input {
	position: absolute;
	inset: 0;
	opacity: 0;
}

.gift-card-page__amount > span {
	display: grid;
	align-content: center;
	min-height: 4.35rem;
	padding: 0.5rem;
	border: 1px solid rgba(49, 41, 35, 0.12);
	background: rgba(255, 255, 255, 0.98);
	transition: border-color 220ms ease, background-color 220ms ease, transform 220ms ease, box-shadow 220ms ease;
}

.gift-card-page__amount > span strong {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.2rem;
	padding: 0.55rem 0.58rem;
	border: 1px solid rgba(49, 41, 35, 0.1);
	background: rgba(255, 255, 255, 0.78);
	font-family: var(--joaya-serif);
	font-size: 1.82rem;
	font-weight: 500;
	line-height: 1;
	color: var(--joaya-ink);
	text-align: center;
	white-space: nowrap;
	transition: border-color 220ms ease, background-color 220ms ease, color 220ms ease;
}

.gift-card-page__amount > span strong .woocommerce-Price-amount,
.gift-card-page__amount > span strong bdi,
.gift-card-page__amount > span strong .woocommerce-Price-currencySymbol {
	display: inline;
	white-space: nowrap;
}

.gift-card-page__amount:hover > span,
.gift-card-page__amount:focus-within > span {
	border-color: rgba(200, 162, 214, 0.72);
	background: rgba(200, 162, 214, 0.08);
	transform: translateY(-1px);
}

.gift-card-page__amount:hover > span strong,
.gift-card-page__amount:focus-within > span strong {
	border-color: rgba(200, 162, 214, 0.5);
	background: rgba(255, 255, 255, 0.94);
}

.gift-card-page__amount input:checked + span {
	background: linear-gradient(180deg, rgba(200, 162, 214, 0.18), rgba(255, 255, 255, 0.96));
	border-color: rgba(200, 162, 214, 0.84);
	box-shadow: inset 0 0 0 1px rgba(200, 162, 214, 0.34);
}

.gift-card-page__amount input:checked + span strong {
	border-color: rgba(200, 162, 214, 0.7);
	background: #fff;
	color: var(--joaya-ink);
}

.gift-card-page__benefits {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 0.7rem;
}

.gift-card-page__benefits span {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding: 0.45rem 0.75rem;
	border: 1px solid rgba(200, 162, 214, 0.28);
	background: rgba(200, 162, 214, 0.08);
	font-family: var(--joaya-sans);
	font-size: 0.74rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #7f648f;
}

.gift-card-page__preview {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(15rem, 0.92fr);
	gap: 1rem;
	align-items: stretch;
}

.gift-card-page__preview-card {
	position: relative;
	overflow: hidden;
	padding: 1rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background:
		radial-gradient(circle at top right, rgba(200, 162, 214, 0.18), rgba(200, 162, 214, 0) 36%),
		linear-gradient(135deg, rgba(198, 216, 205, 0.34), rgba(255, 255, 255, 0.84) 48%, rgba(233, 217, 228, 0.42));
}

.gift-card-page__preview-card::before {
	content: "";
	position: absolute;
	right: -4.5rem;
	bottom: -5rem;
	width: 15rem;
	height: 15rem;
	background: radial-gradient(circle, rgba(49, 41, 35, 0.09), rgba(49, 41, 35, 0));
}

.gift-card-page__preview-paper {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 1.15rem;
	min-height: 100%;
	padding: 1.35rem 1.35rem 1.45rem;
	background: rgba(255, 255, 255, 0.88);
	backdrop-filter: blur(12px);
	box-shadow: 0 1.15rem 3rem rgba(49, 41, 35, 0.12);
}

.gift-card-page__preview-paper::before {
	content: "";
	position: absolute;
	top: 1.15rem;
	bottom: 1.15rem;
	left: 0;
	width: 0.3rem;
	background: linear-gradient(180deg, #d1acc3, #aec4be);
}

.gift-card-page__preview-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
}

.gift-card-page__preview-eyebrow {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.58);
}

.gift-card-page__preview-kicker {
	margin: 0.35rem 0 0;
	font-family: var(--joaya-sans);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #8f6ba6;
}

.gift-card-page__preview-delivery {
	display: grid;
	gap: 0.25rem;
	align-content: start;
}

.gift-card-page__preview-delivery span,
.gift-card-page__preview-signature span,
.gift-card-page__preview-code span,
.gift-card-page__preview-note span {
	display: block;
	font-family: var(--joaya-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.52);
}

.gift-card-page__preview-delivery strong {
	font-family: var(--joaya-sans);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--joaya-ink);
}

.gift-card-page__preview-amounts {
	min-height: 3.2rem;
}

.gift-card-page__preview-amount {
	display: none;
	font-family: var(--joaya-serif);
	font-size: clamp(2.25rem, 5vw, 3.15rem);
	font-weight: 500;
	line-height: 1;
	color: var(--joaya-ink);
}

.gift-card-page__preview-amount.is-active {
	display: block;
}

.gift-card-page__preview-recipient {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.9rem;
	line-height: 1.65;
	color: rgba(49, 41, 35, 0.72);
}

.gift-card-page__preview-recipient span {
	display: inline-block;
	margin-left: 0.3rem;
	font-size: 1.08rem;
	font-weight: 600;
	color: var(--joaya-ink);
}

.gift-card-page__preview-message {
	min-height: 8.5rem;
	margin: 0;
	padding: 1rem 1.05rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.7);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
	font-size: 1rem;
	line-height: 1.76;
	color: var(--joaya-ink);
	white-space: pre-line;
}

.gift-card-page__preview-message.is-placeholder,
.gift-card-page__preview-recipient .is-placeholder,
.gift-card-page__preview-signature .is-placeholder {
	color: rgba(49, 41, 35, 0.5);
	font-style: italic;
}

.gift-card-page__preview-footer {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
	padding-top: 0.15rem;
}

.gift-card-page__preview-signature,
.gift-card-page__preview-code {
	display: grid;
	gap: 0.3rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(49, 41, 35, 0.08);
}

.gift-card-page__preview-signature strong {
	font-family: var(--joaya-sans);
	font-size: 0.94rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--joaya-ink);
}

.gift-card-page__preview-code strong {
	font-family: var(--joaya-sans);
	font-size: 0.94rem;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.14em;
	color: var(--joaya-ink);
}

.gift-card-page__preview-code small {
	font-family: var(--joaya-sans);
	font-size: 0.76rem;
	line-height: 1.58;
	color: rgba(49, 41, 35, 0.62);
}

.gift-card-page__preview-notes {
	display: grid;
	align-content: start;
	gap: 0.8rem;
}

.gift-card-page__preview-note {
	display: grid;
	gap: 0.42rem;
	padding: 1rem 1.05rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.9);
}

.gift-card-page__preview-note p {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.72;
	color: rgba(49, 41, 35, 0.72);
}

.gift-card-page__notes {
	display: grid;
	gap: 0.55rem;
	color: var(--joaya-muted);
}

.gift-card-page__notes p {
	margin: 0;
	line-height: 1.72;
}

.gift-card-page__submit {
	width: 100%;
	min-width: 0;
	padding: 1rem 1.45rem;
	border-color: var(--joaya-action-bg);
	border-radius: 0;
	background: var(--joaya-action-bg);
	color: #fff;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.gift-card-page__footer {
	display: grid;
	gap: 1rem;
}

.gift-card-page__submit:hover,
.gift-card-page__submit:focus-visible {
	background: var(--joaya-lilac);
	border-color: var(--joaya-lilac);
	color: #fff;
}

.maison-story {
	display: grid;
	gap: 1.5rem;
}

.maison-story__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.maison-story__card,
.maison-story__wide {
	overflow: hidden;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.82);
}

.maison-story__media {
	min-height: 22rem;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.maison-story__copy,
.maison-story__wide-copy {
	padding: 1.5rem;
}

.maison-story__copy h2,
.maison-story__wide-copy h2 {
	font-size: clamp(2rem, 4vw, 3.1rem);
}

.maison-story__copy p,
.maison-story__wide-copy p:last-child {
	color: var(--joaya-muted);
}

.maison-story__wide {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
}

.maison-story__wide-media {
	min-height: 28rem;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.catalog-page--shipping,
.catalog-page--returns {
	padding-top: 0;
}

.catalog-page__header--shipping,
.catalog-page__header--returns {
	max-width: 54rem;
	margin: 0 auto;
	padding-top: 0.4rem;
	text-align: center;
}

.catalog-page__header--shipping .catalog-page__title,
.catalog-page__header--returns .catalog-page__title {
	justify-content: center;
}

.shipping-page__lead,
.shipping-page__support,
.returns-page__lead {
	max-width: 48rem;
	margin-left: auto;
	margin-right: auto;
}

.shipping-page__support {
	color: var(--joaya-lilac);
}

.shipping-page__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.1rem;
}

.shipping-page__card {
	display: grid;
	gap: 0.95rem;
	min-height: 17.5rem;
	padding: 1.9rem 1.65rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.88);
	text-align: center;
	align-content: start;
}

.shipping-page__card h2 {
	margin: 0;
	font-size: clamp(1.65rem, 3vw, 2.3rem);
	line-height: 1.08;
}

.shipping-page__card-accent {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--joaya-lilac);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.shipping-page__card-details {
	display: grid;
	gap: 0.8rem;
	margin-top: auto;
}

.shipping-page__card-details p {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.7;
	color: var(--joaya-ink);
}

.shipping-page__regions {
	display: grid;
	gap: 1.05rem;
}

.shipping-page__region {
	border: 1px solid rgba(49, 41, 35, 0.16);
	background: rgba(255, 255, 255, 0.98);
	scroll-margin-top: 8rem;
}

.shipping-page__region summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.35rem 1.45rem;
	list-style: none;
	font-family: var(--joaya-sans);
	font-size: 1.28rem;
	font-weight: 500;
	line-height: 1.25;
	color: var(--joaya-ink);
	cursor: pointer;
}

.shipping-page__region summary::-webkit-details-marker {
	display: none;
}

.shipping-page__region summary::after {
	content: "▴";
	flex: 0 0 auto;
	margin-left: 1.25rem;
	font-size: 1rem;
	line-height: 1;
	transform: rotate(0deg);
	transition: transform 220ms ease;
}

.shipping-page__region:not([open]) summary::after {
	transform: rotate(180deg);
}

.shipping-page__region-body {
	display: grid;
	gap: 1rem;
	padding: 0 1.45rem 1.45rem;
	border-top: 1px solid rgba(49, 41, 35, 0.12);
}

.shipping-page__rows {
	display: grid;
	gap: 1rem;
}

.shipping-page__row {
	display: grid;
	gap: 0.45rem;
}

.shipping-page__row h3 {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.45;
	color: var(--joaya-lilac);
	text-transform: none;
}

.shipping-page__row p,
.shipping-page__note,
.shipping-page__footer p {
	margin: 0;
	font-size: 0.96rem;
	line-height: 1.75;
	color: rgba(49, 41, 35, 0.78);
}

.shipping-page__note {
	padding-top: 0.3rem;
}

.shipping-page__footer {
	padding-top: 0.55rem;
}

.returns-page {
	display: grid;
	gap: 1.25rem;
}

.returns-page__policy,
.returns-page__step,
.returns-page__footer {
	border: 1px solid rgba(49, 41, 35, 0.1);
	background: rgba(255, 255, 255, 0.9);
}

.returns-page__policy {
	display: grid;
	gap: 1rem;
	padding: 1.6rem 1.55rem;
}

.returns-page__intro,
.returns-page__list,
.returns-page__step p,
.returns-page__footer p {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.78;
	color: rgba(49, 41, 35, 0.78);
}

.returns-page__list {
	display: grid;
	gap: 0.85rem;
	padding-left: 1.2rem;
}

.returns-page__list li::marker {
	color: var(--joaya-lilac);
}

.returns-page__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.returns-page__step {
	display: grid;
	gap: 0.75rem;
	align-content: start;
	padding: 1.45rem 1.35rem;
}

.returns-page__step-index {
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--joaya-lilac);
}

.returns-page__step h2 {
	margin: 0;
	font-size: clamp(1.45rem, 2.5vw, 2rem);
	line-height: 1.12;
}

.returns-page__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.35rem;
}

.returns-page__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.7rem;
	padding: 0.72rem 1.25rem;
	border: 1px solid var(--joaya-ink);
	background: transparent;
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--joaya-ink);
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.returns-page__cta:hover,
.returns-page__cta:focus-visible {
	border-color: var(--joaya-lilac);
	background: var(--joaya-lilac);
	color: #fff;
	outline: none;
}

.loyalty-page {
	--loyalty-parme: var(--joaya-lilac);
	--loyalty-sage: var(--joaya-sage);
	--loyalty-gold: #d7b871;
	gap: clamp(2rem, 4vw, 3.6rem);
}

.catalog-page__header--loyalty {
	max-width: 58rem;
}

.catalog-page__header--loyalty p {
	max-width: 46rem;
}

.loyalty-page__title {
	font-size: clamp(2.8rem, 6vw, 5rem);
}

.loyalty-page__subtitle,
.loyalty-page__eyebrow {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.62);
}

.loyalty-page__subtitle {
	color: var(--loyalty-sage);
}

.loyalty-page__frieze {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.4rem);
	padding: clamp(1.45rem, 3vw, 2rem);
	border: 1px solid rgba(49, 41, 35, 0.08);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(200, 162, 214, 0.08)),
		var(--joaya-page-bg);
	overflow: hidden;
}

.loyalty-page__frieze::before {
	content: "";
	position: absolute;
	top: calc(clamp(1.45rem, 3vw, 2rem) + 6.9rem);
	right: 7%;
	left: 7%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(49, 41, 35, 0.22), transparent);
}

.loyalty-page__step {
	position: relative;
	z-index: 1;
	display: grid;
	justify-items: center;
	align-content: start;
	gap: 0.7rem;
	text-align: center;
}

.loyalty-page__step-number {
	font-family: var(--joaya-serif);
	font-size: clamp(2.1rem, 4vw, 3.1rem);
	font-weight: 600;
	line-height: 1;
	color: var(--loyalty-parme);
}

.loyalty-page__step:nth-child(1) .loyalty-page__step-number {
	color: #dd9077;
}

.loyalty-page__step:nth-child(3) .loyalty-page__step-number {
	color: var(--loyalty-sage);
}

.loyalty-page__step:nth-child(4) .loyalty-page__step-number {
	color: var(--loyalty-gold);
}

.loyalty-page__step h2 {
	max-width: 13rem;
	min-height: 2.9rem;
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 0.86rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.28;
	text-transform: uppercase;
	color: rgba(49, 41, 35, 0.72);
}

.loyalty-page__step p {
	max-width: 15rem;
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.58;
	color: rgba(49, 41, 35, 0.74);
}

.loyalty-page__step-icon {
	position: relative;
	display: inline-flex;
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 999px;
	background: rgba(200, 162, 214, 0.26);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42);
}

.loyalty-page__step:nth-child(1) .loyalty-page__step-icon {
	background: rgba(221, 144, 119, 0.2);
}

.loyalty-page__step:nth-child(3) .loyalty-page__step-icon {
	background: rgba(124, 143, 112, 0.24);
}

.loyalty-page__step:nth-child(4) .loyalty-page__step-icon {
	background: rgba(215, 184, 113, 0.26);
}

.loyalty-page__step-icon::before,
.loyalty-page__step-icon::after {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	color: rgba(49, 41, 35, 0.72);
}

.loyalty-page__step-icon--account::before {
	width: 1.35rem;
	height: 1.35rem;
	border: 2px solid currentColor;
	border-radius: 999px;
	transform: translate(-50%, -86%);
}

.loyalty-page__step-icon--account::after {
	width: 2.65rem;
	height: 1.5rem;
	border: 2px solid currentColor;
	border-top-left-radius: 2rem;
	border-top-right-radius: 2rem;
	border-bottom: 0;
	transform: translate(-50%, 5%);
}

.loyalty-page__step-icon--gift::before {
	width: 2.7rem;
	height: 2.2rem;
	border: 2px solid currentColor;
}

.loyalty-page__step-icon--gift::after {
	width: 2px;
	height: 3rem;
	background: currentColor;
	box-shadow: -1.1rem -0.8rem 0 -0.95rem currentColor, 1.1rem -0.8rem 0 -0.95rem currentColor;
}

.loyalty-page__step-icon--reward::before {
	width: 3rem;
	height: 1.9rem;
	border: 2px solid currentColor;
	border-radius: 0.18rem;
	background:
		linear-gradient(90deg, transparent 0 34%, currentColor 34% 36%, transparent 36% 64%, currentColor 64% 66%, transparent 66% 100%);
}

.loyalty-page__step-icon--reward::after {
	width: 0.44rem;
	height: 0.44rem;
	border-radius: 999px;
	background: currentColor;
	box-shadow: -1.5rem 0 0 currentColor, 1.5rem 0 0 currentColor;
}

.loyalty-page__step-icon--bag::before {
	width: 2.5rem;
	height: 2.55rem;
	border: 2px solid currentColor;
	border-radius: 0.25rem;
	transform: translate(-50%, -40%);
}

.loyalty-page__step-icon--bag::after {
	width: 1.25rem;
	height: 0.82rem;
	border: 2px solid currentColor;
	border-bottom: 0;
	border-top-left-radius: 1rem;
	border-top-right-radius: 1rem;
	transform: translate(-50%, -125%);
}

.loyalty-page__section {
	display: grid;
	grid-template-columns: minmax(16rem, 0.42fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 2.6rem);
	align-items: start;
	padding-top: clamp(0.4rem, 1vw, 0.9rem);
}

.loyalty-page__section-copy {
	display: grid;
	gap: 0.75rem;
	align-content: start;
}

.loyalty-page__section-copy h2,
.loyalty-page__thanks h2 {
	margin: 0;
	font-size: clamp(1.9rem, 3vw, 2.7rem);
	line-height: 1.08;
}

.loyalty-page__section-copy p:not(.loyalty-page__eyebrow),
.loyalty-page__thanks p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.7;
	color: rgba(49, 41, 35, 0.74);
}

.loyalty-page__how-grid,
.loyalty-page__advantage-grid {
	display: grid;
	gap: 1rem;
}

.loyalty-page__how-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.loyalty-page__advantage-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.loyalty-page__how-grid article,
.loyalty-page__advantage {
	display: grid;
	align-content: start;
	gap: 0.72rem;
	padding: 1.25rem;
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(255, 255, 255, 0.94);
}

.loyalty-page__how-grid span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 1px solid rgba(200, 162, 214, 0.7);
	border-radius: 999px;
	font-family: var(--joaya-sans);
	font-weight: 700;
	color: var(--loyalty-parme);
}

.loyalty-page__how-grid h3,
.loyalty-page__advantage h3 {
	margin: 0;
	font-family: var(--joaya-sans);
	font-size: 1.05rem;
	line-height: 1.35;
	color: var(--joaya-ink);
}

.loyalty-page__how-grid p,
.loyalty-page__advantage p {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.64;
	color: rgba(49, 41, 35, 0.72);
}

.loyalty-page__formula {
	font-weight: 700;
	color: var(--loyalty-parme) !important;
}

.loyalty-page__faq-list {
	display: grid;
	border-top: 1px solid rgba(49, 41, 35, 0.1);
}

.loyalty-page__faq-item {
	border-bottom: 1px solid rgba(49, 41, 35, 0.1);
}

.loyalty-page__faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.15rem 0;
	font-family: var(--joaya-sans);
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--joaya-ink);
	cursor: pointer;
	list-style: none;
}

.loyalty-page__faq-item summary::-webkit-details-marker {
	display: none;
}

.loyalty-page__faq-item summary::after {
	content: "+";
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--loyalty-parme);
}

.loyalty-page__faq-item[open] summary::after {
	content: "−";
}

.loyalty-page__faq-item p {
	max-width: 48rem;
	margin: 0;
	padding: 0 0 1.2rem;
	font-size: 0.96rem;
	line-height: 1.72;
	color: rgba(49, 41, 35, 0.74);
}

.loyalty-page__thanks {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: clamp(1.4rem, 3vw, 2rem);
	border: 1px solid rgba(49, 41, 35, 0.08);
	background: rgba(200, 162, 214, 0.1);
}

.loyalty-page__thanks > div {
	display: grid;
	gap: 0.72rem;
	max-width: 48rem;
}

.loyalty-page__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.7rem;
	min-width: 13rem;
	padding: 0.76rem 1.25rem;
	border: 1px solid var(--joaya-ink);
	background: var(--joaya-ink);
	font-family: var(--joaya-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.loyalty-page__cta:hover,
.loyalty-page__cta:focus-visible {
	border-color: var(--loyalty-parme);
	background: var(--loyalty-parme);
	color: #fff;
	outline: none;
}

@media (max-width: 1023px) {
	.catalog-page {
		padding-top: 3rem;
	}

	.catalog-page--all-jewelry {
		padding-top: 2.6rem;
	}

	.catalog-page--legal {
		padding-top: 2.4rem;
	}

	.catalog-page__hero-media {
		min-height: 26rem;
	}

	.catalog-products__grid,
	.catalog-models__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.catalog-duo__grid,
	.gift-card-page,
	.maison-story__grid,
	.maison-story__wide,
	.shipping-page__cards,
	.returns-page__steps,
	.loyalty-page__section,
	.loyalty-page__how-grid,
	.loyalty-page__advantage-grid {
		grid-template-columns: 1fr;
	}

	.loyalty-page__frieze {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.loyalty-page__frieze::before {
		display: none;
	}

	.loyalty-page__thanks {
		align-items: flex-start;
		flex-direction: column;
	}

	.catalog-all-jewelry__title {
		font-size: 4rem;
	}

	.catalog-all-jewelry__title--search {
		font-size: 2.35rem;
	}

	.catalog-all-jewelry__layout {
		grid-template-columns: 1fr;
		gap: 1.35rem;
	}

	.catalog-filters {
		position: static;
		max-height: none;
		overflow: visible;
	}

	.catalog-filters__summary {
		display: flex;
	}

	.catalog-filters[open] .catalog-filters__summary {
		padding-bottom: 0.85rem;
		border-bottom: 1px solid var(--catalog-jewelry-line);
		margin-bottom: 1rem;
	}

	.catalog-filters__form {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 1.2rem;
	}

	.catalog-filters__header,
	.catalog-filters__submit {
		grid-column: 1 / -1;
	}

	.catalog-page--all-jewelry .catalog-products__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.catalog-duo-card {
		min-height: 22rem;
	}

	.catalog-page--creoles-acier-316l .catalog-duo-card,
	.catalog-page--nos-collections .catalog-duo-card {
		min-height: 27.5rem;
	}

	.gift-card-page__content {
		max-width: none;
		padding: 0;
	}

	.gift-card-page__amounts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gift-card-page__preview {
		grid-template-columns: 1fr;
	}

	.gift-card-page__media-overlay {
		right: 1rem;
		bottom: 1rem;
		left: 1rem;
	}

	.gift-card-page__fields--duo {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 639px) {
	.catalog-page__title {
		font-size: 1.72rem;
	}

	.catalog-page--all-jewelry {
		padding-top: 2rem;
	}

	.catalog-page--legal {
		padding-top: 1.8rem;
	}

	.legal-page {
		gap: 2rem;
	}

	.legal-page__breadcrumb {
		justify-content: flex-start;
	}

	.catalog-page__header--legal {
		justify-items: center;
		text-align: center;
	}

	.legal-page__title {
		font-size: 2.55rem;
		line-height: 1.05;
	}

	.legal-page__sections {
		gap: 2.4rem;
	}

	.legal-page__section {
		gap: 0.8rem;
	}

	.legal-page__section h2 {
		font-size: 0.98rem;
	}

	.catalog-page__header--shipping,
	.catalog-page__header--returns {
		text-align: left;
	}

	.catalog-page__header--shipping .catalog-page__title,
	.catalog-page__header--returns .catalog-page__title {
		justify-content: flex-start;
	}

	.catalog-models__grid {
		grid-template-columns: 1fr;
	}

	.catalog-products__grid,
	.catalog-page--all-jewelry .catalog-products__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.85rem 0.7rem;
	}

	.catalog-page .catalog-products__grid .joaya-product-card {
		min-width: 0;
	}

	.catalog-page .catalog-products__grid .joaya-product-card__media {
		aspect-ratio: 1 / 1.18;
	}

	.catalog-page .catalog-products__grid .joaya-product-card__body,
	.catalog-page--all-jewelry .catalog-products__grid .joaya-product-card__body {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0.32rem;
		min-height: 0;
		padding-top: 0.45rem;
	}

	.catalog-page .catalog-products__grid .joaya-product-card__title {
		font-size: 0.84rem;
		line-height: 1.25;
	}

	.catalog-page .catalog-products__grid .joaya-product-card__eyebrow {
		margin-top: 0.15rem;
		font-size: 0.68rem;
		line-height: 1.25;
	}

	.catalog-page .catalog-products__grid .joaya-product-card__price,
	.catalog-page--all-jewelry .catalog-products__grid .joaya-product-card__price {
		align-items: flex-start;
		padding-left: 0;
		font-size: 0.86rem;
	}

	.catalog-page--pampilles-interchangeables .catalog-models__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.55rem;
	}

	.catalog-page--pampilles-interchangeables .catalog-model-card {
		aspect-ratio: 1 / 1.16;
	}

	.catalog-page--pampilles-interchangeables .catalog-model-card__overlay {
		padding: 0.55rem;
	}

	.catalog-page--pampilles-interchangeables .catalog-model-card__overlay strong {
		font-size: 0.72rem;
		line-height: 1.15;
		letter-spacing: 0.04em;
	}

	.catalog-breadcrumb {
		font-size: 0.68rem;
	}

	.catalog-all-jewelry__hero {
		gap: 0.6rem;
	}

	.catalog-all-jewelry__title {
		font-size: 3rem;
		line-height: 0.98;
	}

	.catalog-all-jewelry__title--search {
		font-size: 1.72rem;
		line-height: 1.18;
	}

	.catalog-all-jewelry__intro {
		font-size: 0.98rem;
	}

	.catalog-all-jewelry__tabs {
		flex-wrap: nowrap;
		margin-right: calc(var(--joaya-home-gutter-mobile, 1.5rem) * -1);
		overflow-x: auto;
		padding-bottom: 0.85rem;
		scrollbar-width: thin;
	}

	.catalog-all-jewelry__tabs a {
		min-height: 2.35rem;
		padding: 0.62rem 0.82rem;
		font-size: 0.74rem;
	}

	.catalog-filters {
		padding: 1rem;
	}

	.catalog-filters__form {
		grid-template-columns: 1fr;
	}

	.catalog-results-bar,
	.catalog-sort {
		align-items: stretch;
		flex-direction: column;
	}

	.catalog-results-bar {
		gap: 0.75rem;
	}

	.catalog-sort {
		width: 100%;
	}

	.catalog-sort select,
	.catalog-sort button {
		width: 100%;
	}

	.gift-card-page__title {
		font-size: 2.4rem;
	}

	.gift-card-page__lead,
	.gift-card-page__supporting {
		font-size: 0.96rem;
	}

	.gift-card-page__section {
		padding: 1.2rem 1rem 1.25rem;
	}

	.gift-card-page__media-card,
	.gift-card-page__preview-card,
	.gift-card-page__preview-paper,
	.gift-card-page__preview-note {
		padding: 1rem;
	}

	.gift-card-page__media-card h2 {
		font-size: 1.85rem;
	}

	.gift-card-page__preview-footer {
		grid-template-columns: 1fr;
	}

	.gift-card-page__field-meta {
		align-items: flex-start;
	}

	.gift-card-page__submit {
		width: 100%;
		min-width: 0;
	}

	.shipping-page__card {
		min-height: 0;
		padding: 1.5rem 1rem;
	}

	.shipping-page__region summary {
		padding: 1.15rem 1rem;
		font-size: 1.2rem;
	}

	.shipping-page__region-body {
		padding: 0 1rem 1rem;
	}

	.loyalty-page__frieze {
		grid-template-columns: 1fr;
		padding: 1.2rem 1rem;
	}

	.loyalty-page__step h2 {
		min-height: 0;
	}

	.loyalty-page__how-grid article,
	.loyalty-page__advantage,
	.loyalty-page__thanks {
		padding: 1.15rem 1rem;
	}

	.loyalty-page__cta {
		width: 100%;
		min-width: 0;
	}
}
