/* OpenCart components adapted to the Cignet theme. */

/*** Parure brand palette (utverzhdeno klientom na demo cignet/index.html) ***/
:root {
	--primary-color      : #2a2226;
	--secondary-color    : #fff5f7;
	--bg-color           : #FFFFFF;
	--text-color         : #5a4e52;
	--accent-color       : #ff8fa5;
	--white-color        : #FFFFFF;
	--black-color        : #000000;
	--divider-color      : #ff8fa51A;
	--dark-divider-color : #FFFFFF1A;
	--error-color        : rgb(230, 87, 87);
	--default-font       : "Roboto", sans-serif;
	--accent-font        : "Playfair Display", serif;
}

.btn-default:hover,
.btn-default.btn-highlighted {
	background-color: #e2727a;
	border-color: #e2727a;
}

.readmore-btn:hover {
	color: #e2727a;
}


/* Logo a bit smaller than the template: the menu has six items now */
.navbar-brand img {
	width: auto;
	max-height: 50px;
}

.header-action-details > ul > li {
	display: flex;
	align-items: center;
}

.main-menu .mega-menu-catalog > .dropdown-menu {
	max-height: calc(100vh - 140px);
	overflow-x: hidden;
	overflow-y: auto;
}

.main-menu .mega-menu-catalog .mega-menu-link h2 {
	color: var(--primary-color);
}

.main-menu .mega-menu-catalog .mega-menu-link > ul {
	display: block;
}

.main-menu .mega-menu-catalog .mega-menu-link > ul > li > a {
	display: block;
}

/* The template capitalizes every word, which breaks Russian titles
   ("Беларусь И Казахстан"). Keep the text as written. */
.slicknav_nav li a,
.page-header-box ol li.breadcrumb-item,
.section-footer-text p a,
.tag-links,
.page-category-list ul li a {
	text-transform: none;
}

/* Inner page header uses the home page hero photo instead of the demo one.
   The band is short, so frame the lower part where the earrings and the
   ring are (about 40-80% of the photo height), not the eyes. */
.page-header {
	background-image: url('../images/hero-bg-image.jpg');
	background-position: center 70%;
}

/* Contact page cards. */
.contact-info-content .contact-info-label {
	display: block;
	font-family: var(--default-font);
	font-size: 14px;
	color: var(--text-color);
	margin-bottom: 2px;
}

.contact-info-content ul li + li {
	margin-top: 12px;
}

.contact-info-content ul li.contact-info-address {
	font-size: 20px;
}

.contact-info-content .contact-info-note {
	font-size: 14px;
	margin: 12px 0 0;
}

.contact-info-content .contact-info-note a {
	color: var(--accent-color);
	text-decoration: underline;
}

.contact-info-messengers {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 15px;
}

/* The messenger icons are white (made for the dark topbar), so they get the
   same accent circle as the card icons. */
.contact-info-messengers a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--accent-color);
	transition: all 0.3s ease-in-out;
}

.contact-info-messengers a:hover {
	background: var(--primary-color);
}

.contact-info-messengers a img {
	width: 20px;
	height: 20px;
}

.contact-stores-title {
	margin-top: 50px;
}

.contact-store-card .contact-info-content h3 {
	font-size: 24px;
	margin-bottom: 10px;
}

.contact-store-card .contact-info-content p {
	line-height: 1.5em;
}

.contact-store-card-image img {
	width: 100%;
	border-radius: 4px;
	margin-bottom: 20px;
}

/* Gift certificate page: online and plastic certificate cards, then the form. */
.page-voucher {
	padding: 100px 0;
}

.voucher-types {
	margin-bottom: 70px;
}

.voucher-type-card {
	height: calc(100% - 30px);
	margin-bottom: 30px;
	padding: 40px;
	border-radius: 4px;
	background: var(--secondary-color);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.voucher-type-card h2 {
	font-size: 34px;
	margin: 10px 0 15px;
}

.voucher-type-card p {
	flex-grow: 1;
	margin-bottom: 25px;
}

.voucher-type-range {
	display: inline-block;
	font-family: var(--accent-font);
	font-size: 20px;
	color: var(--accent-color);
	border: 1px solid var(--accent-color);
	border-radius: 4px;
	padding: 6px 14px;
	margin-bottom: 20px;
}

.voucher-form .section-title {
	margin-bottom: 40px;
}

.voucher-form-hint {
	font-family: var(--default-font);
	font-size: 14px;
	color: var(--text-color);
	margin-top: 6px;
}

label .voucher-form-hint {
	display: inline;
}

@media (max-width: 991px) {
	.page-voucher {
		padding: 50px 0;
	}

	.voucher-type-card {
		padding: 30px;
	}

	.voucher-type-card h2 {
		font-size: 28px;
	}
}

/* Collection cards: the text moved under the title, the photo column holds a
   tall 4:5 photo instead of the demo's wide one. 4:5 also matches the 600x600
   resize of a 4:5 source, so no padding shows. Phones keep the template's
   short crop. */
.collection-item-title p {
	margin: 15px 0 0;
}

@media (min-width: 992px) {
	.collection-item-image img {
		aspect-ratio: 4 / 5;
	}
}

/* Full-width collection card (an odd last one, e.g. «Парные украшения»):
   a wide photo instead of the tall one of the half-width cards. The image
   is cropped to 1.6:1 so the 600x600 resize adds no visible padding. */
.collection-item-wide .collection-item-image img {
	aspect-ratio: 1.6 / 1;
}

/* Keep the photo close in size to the half-width cards above it. */
@media (min-width: 768px) {
	.collection-item-wide .collection-item-content {
		width: calc(65% - 40px);
	}

	.collection-item-wide .collection-item-image-box {
		width: calc(35% - 40px);
	}
}

/* EnvyBox callback button. The widget keeps it position: absolute and moves
   it by rewriting an inline "top" on every scroll event; the theme's
   SmoothScroll fires few of them, so the button lagged and stayed at the
   top. Pin it to the viewport instead, at the widget's own height (37%). */
.cbk-phone {
	position: fixed !important;
	top: 37% !important;
}

/* Buttons under a message (payment result pages) */
.page-message-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	margin-top: 25px;
}

/* ===== Login and registration ===== */
.password-field {
	position: relative;
}

.password-field .form-control {
	padding-right: 48px;
}

.password-toggle {
	position: absolute;
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
	border: 0;
	background: none;
	padding: 4px;
	color: var(--text-color);
	line-height: 1;
}

.password-toggle:hover {
	color: var(--primary-color);
}

.page-login .form-control.is-invalid {
	border-color: var(--error-color, #dc3545);
}

.page-login .text-danger {
	font-size: 14px;
	margin-top: 6px;
}

.page-login .checkout-form-checkbox {
	margin-bottom: 20px;
}

/* The registration page has a single card: let it take the whole column */
.page-register .login-content-form-item {
	width: 100%;
}

/* ===== One-page checkout (checkout/parure_checkout) ===== */
#parure-checkout.checkout-loading {
	cursor: progress;
}

#parure-checkout.checkout-loading .checkout-sidebar-box,
#parure-checkout.checkout-loading #checkout-shipping {
	opacity: 0.6;
	pointer-events: none;
	transition: opacity 0.2s;
}

.checkout-note {
	margin-bottom: 30px;
}

.checkout-bill-address-box + .checkout-bill-address-box,
#checkout-address .checkout-address-part {
	margin-top: 40px;
}

#checkout-address:empty {
	display: none;
}

.checkout-field-help {
	font-size: 13px;
	margin-top: 5px;
}

#parure-checkout .form-control.is-invalid {
	border-color: var(--error-color, #dc3545);
}

#parure-checkout .text-danger {
	font-size: 14px;
	margin-top: 6px;
}

/* Shipping methods as selectable cards */
.checkout-method-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.checkout-method {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 20px;
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}

.checkout-method:hover,
.checkout-method:has(input:checked) {
	border-color: var(--accent-color);
}

.checkout-method:has(input:checked) {
	background: var(--secondary-color);
}

.checkout-method input {
	margin-top: 5px;
	accent-color: var(--accent-color);
}

.checkout-method-body {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.checkout-method-title {
	font-weight: 500;
	color: var(--primary-color);
}

.checkout-method-description {
	font-size: 14px;
	margin-top: 3px;
}

.checkout-method-price {
	font-weight: 500;
	color: var(--primary-color);
	text-align: right;
	max-width: 40%;
	/* Prices keep together (non-breaking space before the ruble sign), long
	   texts like "Стоимость сообщит менеджер" wrap on phones */
	overflow-wrap: break-word;
}

.checkout-pickup-note {
	margin-top: 15px;
	font-size: 14px;
}

/* Order summary */
.checkout-sidebar-title {
	font-size: 22px;
	margin-bottom: 15px;
}

.product-total-item-title small {
	display: block;
	font-size: 13px;
}

.checkout-qty {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}

.checkout-qty-btn {
	width: 26px;
	height: 26px;
	line-height: 1;
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	background: var(--white-color);
	color: var(--primary-color);
}

.checkout-qty-value {
	min-width: 20px;
	text-align: center;
}

.checkout-remove {
	border: 0;
	background: none;
	padding: 0;
	margin-left: 8px;
	font-size: 13px;
	color: var(--text-color);
	text-decoration: underline;
}

.checkout-promo-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 20px 0;
}

.checkout-promo-row {
	display: flex;
	gap: 8px;
}

.checkout-promo-apply {
	flex-shrink: 0;
	border: 1px solid var(--accent-color);
	border-radius: 4px;
	background: var(--white-color);
	color: var(--accent-color);
	padding: 0 16px;
	font-size: 14px;
}

.all-product-total.is-grand-total p {
	font-weight: 600;
	color: var(--primary-color);
}

#checkout-payment {
	margin-top: 25px;
}

.checkout-agree {
	margin-top: 20px;
}

.place-order-button .btn-default {
	width: 100%;
}

.place-order-button .btn-default[disabled] {
	opacity: 0.7;
	cursor: progress;
}

/* The payment module's form is clicked automatically; shown only when it
   needs the customer (no #button-confirm in it) */
.checkout-payment-form {
	display: none;
	margin-top: 20px;
}

.checkout-payment-form.is-visible {
	display: block;
}

/* Requisites on the About page. */
.page-requisites-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.page-requisites-list li {
	font-size: 18px;
	line-height: 1.6em;
	margin-bottom: 6px;
}

.page-requisites-list b {
	font-weight: 600;
	color: var(--primary-color);
}

/* Scans of documents in page texts (requisites on the About page). */
.page-document-image {
	width: 100%;
	max-width: 300px;
	border: 1px solid var(--divider-color);
	border-radius: 4px;
}

/* Table of contents jumps on policy pages: keep the section title clear of
   the sticky header. */
.privacy-policy-entry-item {
	scroll-margin-top: 120px;
}

/* Taller tiles than the demo's 1:0.781 so photos of people fit. 4:5 also
   matches the 400x500 thumbnail, so the resize adds no padding. */
.main-menu .mega-menu-item-image figure img {
	aspect-ratio: 4 / 5;
}

/* The demo tile title is a single word; longer ones like
   "Бижутерия класса Lux" overflow the narrow tile at 30px. */
.main-menu .mega-menu-item.big-offer-box .mega-menu-item-content h2 {
	font-size: 22px;
}

.header-action-details #search,
.header-action-details #cart {
	position: relative;
	line-height: 1;
}

#cart > button {
	position: relative;
	width: 24px;
	height: 24px;
	color: var(--primary-color);
	background: transparent;
	border: 0;
	padding: 0;
}

#cart > button::before {
	content: '';
	display: block;
	width: 24px;
	height: 24px;
	background: url('../images/icon-cart-primary.svg') center / contain no-repeat;
	transition: transform 0.4s ease-in-out;
}

#cart > button:hover::before {
	transform: scale(1.06);
}

#cart > button > img,
#cart-total {
	display: none !important;
}

.header-action-details #cart > .dropdown-menu {
	display: none;
	left: auto;
	right: 0;
	width: min(440px, calc(100vw - 30px));
	max-height: 70vh;
	overflow-y: auto;
	color: var(--text-color);
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	box-shadow: 0 12px 35px rgba(47, 61, 56, 0.15);
	padding: 15px;
	margin-top: 18px;
}

.header-action-details #cart > .dropdown-menu.show {
	display: block;
	opacity: 1;
	visibility: visible;
	transform: scale(1, 1);
}

.header-action-details #cart > .dropdown-menu > li {
	display: block;
	width: 100%;
}

#cart .table {
	--bs-table-bg: transparent;
	margin: 0;
}

#cart .table td {
	font-size: 13px;
	line-height: 1.4;
	vertical-align: middle;
	padding: 8px 5px;
}

#cart .table td:first-child {
	width: 62px;
}

#cart .img-thumbnail {
	width: 52px;
	height: 52px;
	object-fit: cover;
}

#cart .cart-remove {
	color: var(--error-color);
	background: transparent;
	border: 0;
	padding: 4px;
}

#cart .cart-summary {
	border-top: 1px solid var(--divider-color);
	padding-top: 12px;
}

#cart .cart-actions {
	display: flex;
	justify-content: space-between;
	gap: 10px;
}

#cart .cart-actions a {
	flex: 1;
	color: var(--white-color);
	background: var(--accent-color);
	border-radius: 4px;
	text-align: center;
	padding: 11px 15px;
}

#cart .cart-empty {
	text-align: center;
	margin: 0;
	padding: 15px;
}

.footer-logo a {
	display: inline-block;
}

.footer-copyright-text a {
	color: var(--white-color);
	text-decoration: underline;
}

.cookie-notification {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 1055;
	width: min(520px, calc(100% - 40px));
	color: var(--primary-color);
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	box-shadow: 0 12px 35px rgba(47, 61, 56, 0.18);
	padding: 20px;
}

.cookie-notification__container {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 0;
}

.cookie-notification__info {
	flex: 1;
	line-height: 1.5;
}

.cookie-notification__btn {
	flex: 0 0 auto;
}

.cookie-notification .cookie-notification__info a {
	color: var(--btn-color);
	text-decoration: underline;
}

@media only screen and (max-width: 575px) {
	.cookie-notification {
		right: 15px;
		bottom: 15px;
		width: calc(100% - 30px);
		padding: 15px;
		font-size: 14px;
	}

	.cookie-notification__container {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
}

/* Compatibility helpers used by the existing OpenCart templates. */
.pull-left {
	float: left;
}

.pull-right {
	float: right;
}

.text-left {
	text-align: left;
}

.text-right {
	text-align: right;
}

.img-responsive {
	display: block;
	max-width: 100%;
	height: auto;
}

/* OpenCart 3 vydaet Bootstrap 3 klassy knopok - privodim ih k vidu temy,
   no .btn-default ne trogaem: v shablone eto glavnaya CTA-knopka. */
.btn-inverse,
.btn-primary {
	color: var(--white-color);
	background: var(--primary-color);
	border-color: var(--primary-color);
}

.btn-inverse:hover,
.btn-primary:hover {
	color: var(--white-color);
	background: #e2727a;
	border-color: #e2727a;
}

@media (max-width: 991px) {
	.header-action-details > ul {
		gap: 12px;
	}

	.header-action-details #cart > .dropdown-menu {
		position: fixed;
		top: 120px;
		right: 15px;
	}
}

@media (max-width: 767px) {
	.cookie-notification__container {
		align-items: stretch;
		flex-direction: column;
	}
}

.footer-contact-subtitle {
	margin-top: 8px;
}

/****************************************/
/***      OpenCart compatibility layer      ***/
/****************************************/

/* OpenCart 3 outputs Bootstrap 3 markup while the theme is built on Bootstrap 5.
   Only what is needed so that the blocks that were not re-styled — checkout
   steps, account forms, stock modules — match the rest of the theme. */

.form-horizontal .form-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 20px;
}

.form-horizontal .form-group > [class^='col-'],
.form-horizontal .form-group > [class*=' col-'] {
	padding-left: 0;
	padding-right: 0;
}

.control-label,
.form-label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--primary-color);
	margin-bottom: 8px;
}

.form-group.required > .control-label::after,
.form-group.required > label::after,
.form-group.required > div > .control-label::after {
	content: ' *';
	color: var(--error-color);
}

.help-block {
	display: block;
	font-size: 13px;
	color: var(--text-color);
	margin-top: 6px;
}

.text-danger {
	font-size: 13px;
	color: var(--error-color);
}

.has-error .form-control {
	border-color: var(--error-color);
}

.radio,
.checkbox {
	margin-bottom: 8px;
}

.radio label,
.checkbox label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

.well {
	background: var(--secondary-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	padding: 30px;
	height: 100%;
}

.well h2,
.well h3 {
	margin-bottom: 15px;
}

fieldset {
	margin-bottom: 30px;
}

legend {
	font-family: var(--accent-font);
	font-size: 24px;
	color: var(--primary-color);
	border-bottom: 1px solid var(--divider-color);
	padding-bottom: 12px;
	margin-bottom: 20px;
}

.buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	margin-top: 30px;
}

.buttons::after {
	content: none;
}

/* Bring the stock Bootstrap 3 buttons in line with the theme.
   .btn-default is left alone: in this template it is the main CTA button. */
.btn {
	border-radius: 4px;
	padding: 13px 26px;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.4s ease-in-out;
}

.btn-light,
.btn-link {
	color: var(--primary-color);
	background: transparent;
	border: 1px solid var(--divider-color);
}

.btn-danger {
	color: var(--white-color);
	background: var(--error-color);
	border-color: var(--error-color);
}

.btn-lg {
	padding: 17px 30px;
}

.btn-block {
	display: block;
	width: 100%;
}

/* OpenCart tables: orders, returns, transactions, compare. */
.table {
	width: 100%;
	color: var(--text-color);
	margin-bottom: 25px;
}

.table > :not(caption) > * > * {
	padding: 14px 15px;
	border-bottom: 1px solid var(--divider-color);
}

.table thead td,
.table thead th {
	font-weight: 500;
	color: var(--primary-color);
	background: var(--secondary-color);
}

.table-responsive {
	overflow-x: auto;
}

/* Menu lists of the stock modules in the side column. */
.page-single-sidebar .list-group {
	display: block;
	background: var(--secondary-color);
	border-radius: 4px;
	overflow: hidden;
}

.page-single-sidebar .list-group-item {
	display: block;
	color: var(--primary-color);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--divider-color);
	padding: 13px 20px;
	transition: all 0.3s ease-in-out;
}

.page-single-sidebar .list-group-item:last-child {
	border-bottom: 0;
}

.page-single-sidebar .list-group-item:hover,
.page-single-sidebar .list-group-item.active {
	color: var(--accent-color);
	background: var(--white-color);
}

/* Alerts. */
.alert {
	border-radius: 4px;
	border: 1px solid var(--divider-color);
	padding: 16px 20px;
	margin-bottom: 25px;
}

.alert-success {
	color: #1d6b3f;
	background: #eaf7ef;
	border-color: #cbe9d7;
}

.alert-danger {
	color: #8c2f2f;
	background: #fdeeee;
	border-color: #f4cfcf;
}

.alert-info {
	color: var(--primary-color);
	background: var(--secondary-color);
}

/****************************************/
/***        Blocks added by the theme       ***/
/****************************************/

/* Pagination — system/library/pagination.php emits Bootstrap 3 markup. */
.page-pagination {
	margin-top: 40px;
}

.page-pagination .pagination,
.pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.pagination > li > a,
.pagination > li > span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	color: var(--primary-color);
	background: var(--secondary-color);
	border-radius: 4px;
	padding: 0 12px;
	transition: all 0.3s ease-in-out;
}

.pagination > li > a:hover,
.pagination > li.active > span {
	color: var(--white-color);
	background: var(--accent-color);
}

/* Product card: sale badge and rating stars. */
.product-item-image {
	position: relative;
}

.product-item-badge {
	position: absolute;
	top: 15px;
	left: 15px;
	z-index: 2;
	font-size: 12px;
	text-transform: uppercase;
	color: var(--white-color);
	background: var(--accent-color);
	border-radius: 4px;
	padding: 5px 12px;
}

.product-item-rating {
	color: var(--accent-color);
	font-size: 13px;
	margin-top: 6px;
}

/* Category page: intro block and empty result. */
.page-category-intro {
	display: flex;
	align-items: flex-start;
	gap: 25px;
	margin-bottom: 35px;
}

.page-category-intro-image img {
	width: 140px;
	border-radius: 4px;
}

.page-category-intro-content > *:last-child {
	margin-bottom: 0;
}

/* Long SEO text under the product listing, set off by a rule above it. */
.page-category-description {
	margin-top: 80px;
	padding-top: 50px;
	border-top: 1px solid var(--divider-color);
}

.page-category-description > *:last-child {
	margin-bottom: 0;
}

/* Rich text pasted from the old site: headings sit flush and list items
   inherit the 1em body leading, so both need loosening up. */
.page-category-intro-content h1,
.page-category-intro-content h2,
.page-category-intro-content h3,
.page-category-intro-content h4,
.page-category-description h1,
.page-category-description h2,
.page-category-description h3,
.page-category-description h4 {
	margin-bottom: 20px;
}

.page-category-intro-content p,
.page-category-intro-content li,
.page-category-description p,
.page-category-description li {
	line-height: 1.8em;
}

.page-category-intro-content li,
.page-category-description li {
	margin-bottom: 10px;
}

.page-empty-message {
	text-align: center;
	padding: 60px 20px;
}

.page-empty-message p {
	margin-bottom: 25px;
}

/* Subcategory list in the side column. */
.product-category-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.product-category-links > li > a {
	display: block;
	color: var(--text-color);
	padding: 7px 0;
	transition: all 0.3s ease-in-out;
}

.product-category-links > li > a:hover {
	color: var(--accent-color);
}

.product-category-result-pagination li.active > a {
	color: var(--accent-color);
	font-weight: 500;
}

/* Search page. */
.product-search-form {
	background: var(--secondary-color);
	border-radius: 4px;
	padding: 30px;
	margin-bottom: 40px;
}

.product-search-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 25px;
}

.product-search-checks label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

/* Text pages and service messages. */
.page-information,
.page-message {
	padding: 100px 0;
}

.page-content-body > *:last-child,
.page-message-content > *:last-child {
	margin-bottom: 0;
}

.page-message-content {
	text-align: center;
}

.page-message-content .btn-default {
	margin-top: 25px;
}

/* Product page: attributes, rating, discounts. */
.product-single-meta-list ul {
	list-style: none;
	padding: 0;
	margin: 0 0 25px;
}

.product-single-meta-list li {
	color: var(--text-color);
	padding: 5px 0;
}

.product-single-rating {
	color: var(--accent-color);
	margin-bottom: 15px;
}

.product-single-rating-link {
	color: var(--text-color);
	margin-left: 8px;
}

.product-single-discounts ul {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
}

.product-single-minimum {
	font-size: 13px;
	color: var(--error-color);
	margin-top: 12px;
}

.product-single-options {
	margin-bottom: 25px;
}

.customer-review-initial {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-family: var(--accent-font);
	font-size: 22px;
	color: var(--white-color);
	background: var(--accent-color);
	border-radius: 50%;
}

.customer-review-empty {
	color: var(--text-color);
	margin-bottom: 25px;
}

.review-form-rating {
	display: flex;
	align-items: center;
	gap: 8px;
}

.review-form-rating label {
	margin: 0;
}

/* Cart. */
.cart-item-remove {
	color: var(--error-color);
	background: transparent;
	border: 0;
	padding: 6px;
}

.cart-item-nostock {
	color: var(--error-color);
}

.order-summary-promocode-title {
	font-size: 15px;
	margin-bottom: 12px;
}

.order-summary-modules > * + * {
	margin-top: 20px;
}

/* Checkout: accordion steps. */
.page-checkout {
	padding: 100px 0;
}

.checkout-step {
	background: var(--secondary-color);
	border-radius: 4px;
	margin-bottom: 15px;
	overflow: hidden;
}

.checkout-step-header {
	padding: 20px 25px;
}

.checkout-step-title {
	font-family: var(--accent-font);
	font-size: 20px;
	color: var(--primary-color);
	margin: 0;
}

.checkout-step-title a {
	display: block;
	color: inherit;
}

.checkout-step-body {
	background: var(--white-color);
	padding: 25px;
}

.checkout-step-body:empty {
	display: none;
}

/* Contacts. */
.contact-store-item {
	display: flex;
	gap: 20px;
	border-bottom: 1px solid var(--divider-color);
	padding-bottom: 25px;
	margin-bottom: 25px;
}

.contact-store-item:last-child {
	border-bottom: 0;
}

.contact-store-image img {
	width: 120px;
	border-radius: 4px;
}

.contact-store-content > *:last-child {
	margin-bottom: 0;
}

.contact-form-note {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.contact-form-note label {
	margin: 0;
}

/* Blog. */
.page-blog-single {
	padding: 100px 0;
}

@media (max-width: 767px) {
	.page-category-intro,
	.contact-store-item {
		flex-direction: column;
	}

	.product-search-form {
		padding: 20px;
	}
}

/****************************************/
/***       Home page section modules        ***/
/****************************************/

/* In the original markup the offer cards lived inside .our-best-sellers and were
   separated from the tiles by .top-offer-item-list { margin-top: 80px }.
   As a standalone module they get their own wrapper, so the spacing moves
   onto it — otherwise the section sticks to its neighbours. */
.top-offer-box {
	padding: 20px 0 60px;
}

.top-offer-box .top-offer-item-list {
	margin-top: 0;
}

/* A "why choose us" item may carry a caption, which the static markup did not
   carry. */
.promise-item-content p {
	margin: 6px 0 0;
}

/****************************************/
/***          Side column modules           ***/
/****************************************/

/* Nested subcategory list inside the category tree. */
.product-category-children {
	list-style: none;
	padding: 0 0 0 15px;
	margin: 4px 0 8px;
}

.product-category-links > li.active > a,
.product-category-children > li.active > a {
	color: var(--accent-color);
	font-weight: 500;
}

/* Compact list of products and articles in the sidebar. */
.sidebar-item-list {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.sidebar-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.sidebar-item-image {
	flex: 0 0 72px;
}

.sidebar-item-image img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 4px;
}

.sidebar-item-content h3 {
	font-size: 15px;
	line-height: 1.4;
	margin: 0 0 6px;
}

.sidebar-item-content h3 a {
	color: var(--primary-color);
	transition: all 0.3s ease-in-out;
}

.sidebar-item-content h3 a:hover {
	color: var(--accent-color);
}

.sidebar-item-price strong {
	color: var(--accent-color);
}

.sidebar-item-price span {
	color: var(--text-color);
	text-decoration: line-through;
	margin-left: 6px;
}

.sidebar-item-meta {
	font-size: 13px;
	color: var(--text-color);
}

/* Subcategories shown in the category page content. */
.page-refine {
	margin-bottom: 35px;
}

.page-refine-title {
	font-family: var(--accent-font);
	font-size: 20px;
	color: var(--primary-color);
	margin-bottom: 15px;
}

.page-refine-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.page-refine-links > li > a {
	display: block;
	color: var(--primary-color);
	background: var(--secondary-color);
	border-radius: 4px;
	padding: 8px 16px;
	transition: all 0.3s ease-in-out;
}

.page-refine-links > li > a:hover {
	color: var(--white-color);
	background: var(--accent-color);
}

/****************************************/
/***        Extra product page tabs         ***/
/****************************************/

/* Editor text is not always wrapped in <p> — the description tab is bare text —
   so the container itself has to carry the leading, not just the paragraphs. */
.product-tab-item-content {
	line-height: 1.7em;
}

.product-tab-item-content > *:first-child {
	margin-top: 0;
}

.product-tab-item-content > *:last-child {
	margin-bottom: 0;
}

/* Base links have neither colour nor underline, so inside body text they
   were indistinguishable from plain text. */
.product-tab-item-content a {
	color: var(--accent-color);
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s ease-in-out;
}

.product-tab-item-content a:hover {
	border-bottom-color: var(--accent-color);
}

/* Content came from the old site and expects text to wrap around the images. */
.product-tab-item-content .delivery-icon {
	float: right;
	max-width: 130px;
	margin: 0 0 15px 25px;
}

.product-tab-item-content .delivery-icon img {
	max-width: 100%;
	height: auto;
}

.product-tab-item-content h3,
.product-tab-item-content h4 {
	font-family: var(--accent-font);
	font-size: 20px;
	color: var(--primary-color);
	margin: 25px 0 12px;
}

.product-tab-item-content p.bold {
	font-weight: 500;
	color: var(--primary-color);
}

.product-tab-item-content .clearfix::after {
	content: '';
	display: block;
	clear: both;
}

@media (max-width: 575px) {
	.product-tab-item-content .delivery-icon {
		float: none;
		margin: 0 0 15px;
	}
}

/* ===== Customer account (account/frame.twig) ===== */

.account-page {
	padding: 100px 0;
}

.account-sidebar {
	position: sticky;
	top: 110px;
}

.account-menu {
	background: var(--white-color);
	padding: 30px;
}

.account-menu ul li {
	margin-bottom: 14px;
	padding-bottom: 14px;
}

.account-menu ul li a {
	color: var(--text-color);
}

.account-menu ul li.active a,
.account-menu ul li a:hover {
	color: var(--primary-color);
}

.account-menu ul li.active a {
	font-weight: 600;
}

.account-menu ul li img {
	max-width: 20px;
	opacity: 0.55;
}

.account-menu ul li.active img {
	opacity: 1;
}

.account-content > .alert {
	margin-bottom: 25px;
}

.account-hello {
	margin-bottom: 30px;
}

.account-hello h2 {
	font-size: 34px;
	margin-bottom: 10px;
}

.account-hello p {
	margin: 0;
}

.account-hello a,
.account-link {
	color: var(--primary-color);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.account-link:hover,
.account-hello a:hover {
	color: var(--btn-color);
}

.account-link-muted {
	color: var(--text-color);
}

/* Counters on the dashboard */
.account-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 30px;
}

.account-stat {
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	padding: 25px;
	color: var(--text-color);
	transition: all 0.3s ease-in-out;
}

.account-stat:hover {
	border-color: var(--btn-color);
	color: var(--text-color);
	transform: translateY(-2px);
}

.account-stat-label {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.account-stat-value {
	font-family: var(--accent-font);
	font-size: 32px;
	line-height: 1.2;
	color: var(--primary-color);
}

.account-stat-note {
	font-size: 14px;
	line-height: 1.4;
}

/* White card for a page section */
.account-block {
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	padding: 30px;
	margin-bottom: 30px;
}

.account-block-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 15px;
	margin-bottom: 20px;
}

.account-block-header h3 {
	font-size: 24px;
	margin: 0;
}

.account-block-header p {
	margin: 5px 0 0;
}

.account-empty {
	text-align: center;
	padding: 30px 0 10px;
}

.account-empty p {
	margin-bottom: 20px;
}

.account-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}

/* Tables: orders, bonuses, transactions */
.account-table {
	width: 100%;
	border-collapse: collapse;
}

.account-table th {
	font-family: var(--accent-font);
	font-weight: 400;
	font-size: 16px;
	color: var(--primary-color);
	padding: 0 12px 14px 0;
	border-bottom: 1px solid var(--divider-color);
	text-align: left;
}

.account-table td {
	padding: 16px 12px 16px 0;
	border-bottom: 1px solid var(--divider-color);
	vertical-align: middle;
}

.account-table tbody tr:last-child td {
	border-bottom: none;
}

.account-table-total,
.account-order-number {
	font-weight: 600;
	color: var(--primary-color);
	white-space: nowrap;
}

.account-table-action {
	text-align: right;
	white-space: nowrap;
}

.account-points-plus {
	color: #2e8b57;
	font-weight: 600;
	white-space: nowrap;
}

.account-points-minus {
	color: #c0392b;
	font-weight: 600;
	white-space: nowrap;
}

.account-pagination {
	margin-top: 20px;
}

/* Status badges */
.account-status {
	display: inline-block;
	font-size: 13px;
	line-height: 1.3;
	padding: 5px 12px;
	border-radius: 30px;
	white-space: nowrap;
}

.account-status-progress {
	color: #8a5a00;
	background: #fff3d6;
}

.account-status-done {
	color: #1e6b45;
	background: #e3f4ea;
}

.account-status-cancelled {
	color: #9b2c2c;
	background: #fbe4e4;
}

/* Order page */
.account-order-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 25px;
}

.account-order-head h2 {
	font-size: 34px;
	margin-bottom: 5px;
}

.account-order-head p {
	margin: 0;
}

.account-order-products {
	list-style: none;
	margin: 0;
	padding: 0;
}

.account-order-product {
	display: grid;
	grid-template-columns: 80px 1fr auto auto;
	align-items: center;
	gap: 20px;
	padding: 18px 0;
	border-bottom: 1px solid var(--divider-color);
}

.account-order-product:first-child {
	padding-top: 0;
}

.account-order-product-image img {
	width: 80px;
	height: 100px;
	object-fit: cover;
	border-radius: 4px;
	background: var(--secondary-color);
}

.account-order-voucher {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 100px;
	border-radius: 4px;
	background: var(--secondary-color);
	font-size: 28px;
	color: var(--primary-color);
}

.account-order-product-info h4 {
	font-size: 18px;
	margin-bottom: 6px;
}

.account-order-product-info h4 a {
	color: var(--primary-color);
}

.account-order-product-info h4 a:hover {
	color: var(--btn-color);
}

.account-order-product-info p {
	font-size: 14px;
	margin: 0;
}

.account-order-product-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
	margin-top: 8px;
	font-size: 14px;
}

.account-order-product-qty {
	white-space: nowrap;
}

.account-order-product-total {
	min-width: 90px;
	text-align: right;
	font-weight: 600;
	color: var(--primary-color);
	white-space: nowrap;
}

.account-order-totals {
	margin: 20px 0 0 auto;
	max-width: 380px;
}

.account-order-total {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 6px 0;
}

.account-order-total dt {
	font-weight: 400;
}

.account-order-total dd {
	margin: 0;
	white-space: nowrap;
	color: var(--primary-color);
}

.account-order-total-final {
	border-top: 1px solid var(--divider-color);
	margin-top: 6px;
	padding-top: 12px;
}

.account-order-total-final dt,
.account-order-total-final dd {
	font-weight: 600;
	font-size: 18px;
	color: var(--primary-color);
}

.account-order-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 30px;
}

.account-order-detail {
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	padding: 25px;
}

.account-order-detail-wide {
	grid-column: 1 / -1;
}

.account-order-detail h4 {
	font-size: 18px;
	margin-bottom: 10px;
}

.account-order-detail p,
.account-order-detail address {
	margin: 0 0 6px;
}

/* Order status history */
.account-timeline {
	list-style: none;
	margin: 0;
	padding: 0 0 0 22px;
	border-left: 2px solid var(--divider-color);
}

.account-timeline li {
	position: relative;
	padding-bottom: 18px;
}

.account-timeline li:last-child {
	padding-bottom: 0;
}

.account-timeline li::before {
	content: "";
	position: absolute;
	left: -29px;
	top: 5px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--white-color);
	border: 2px solid var(--divider-color);
}

.account-timeline li.current::before {
	background: var(--btn-color);
	border-color: var(--btn-color);
}

.account-timeline-date {
	display: block;
	font-size: 13px;
}

.account-timeline-status {
	font-weight: 600;
	color: var(--primary-color);
}

.account-timeline p {
	font-size: 14px;
	margin: 4px 0 0;
}

/* Bonus balance */
.account-balance {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.account-balance-value {
	font-family: var(--accent-font);
	font-size: 44px;
	line-height: 1.1;
	color: var(--primary-color);
}

.account-balance-note {
	font-size: 14px;
	margin-top: 6px;
}

.account-rules {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.account-rules li {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 15px;
}

.account-rules li b {
	font-family: var(--accent-font);
	font-weight: 400;
	font-size: 26px;
	color: var(--btn-color);
}

/* Wishlist */
.account-wishlist {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
}

.account-wishlist-item {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	overflow: hidden;
}

.account-wishlist-image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: var(--secondary-color);
}

.account-wishlist-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 8px;
	padding: 18px;
}

.account-wishlist-body h4 {
	font-size: 17px;
	line-height: 1.35;
	margin: 0;
}

.account-wishlist-body h4 a {
	color: var(--primary-color);
}

.account-wishlist-price {
	font-weight: 600;
	color: var(--primary-color);
}

.account-wishlist-price s {
	font-weight: 400;
	color: var(--text-color);
	margin-left: 6px;
}

.account-wishlist-stock {
	font-size: 13px;
}

.account-wishlist-body .btn-default {
	margin-top: auto;
	width: 100%;
	text-align: center;
}

.account-wishlist-remove {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--white-color);
	color: var(--primary-color);
	box-shadow: 0 4px 12px rgba(47, 61, 56, 0.15);
	transition: all 0.3s ease-in-out;
}

.account-wishlist-remove:hover {
	background: var(--btn-color);
	color: var(--white-color);
}

/* Addresses */
.account-addresses {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-bottom: 25px;
}

.account-address {
	display: flex;
	flex-direction: column;
	gap: 15px;
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	padding: 22px;
}

.account-address.default {
	border-color: var(--btn-color);
}

.account-address address {
	margin: 0;
	line-height: 1.6;
}

.account-address-badge {
	align-self: flex-start;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--white-color);
	background: var(--btn-color);
	border-radius: 30px;
	padding: 3px 10px;
}

.account-address-actions {
	display: flex;
	gap: 20px;
	margin-top: auto;
	font-size: 14px;
}

/* Forms in the account reuse the checkout form look */
.account-block .checkout-login-form .form-group {
	margin-bottom: 20px;
}

.account-form-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 25px;
	margin-bottom: 25px;
}

.account-form-radios-column {
	flex-direction: column;
	gap: 10px;
	margin-bottom: 0;
}

.account-form-legend {
	font-size: 18px;
	margin: 5px 0 15px;
}

.account-form-radios label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	cursor: pointer;
}

@media only screen and (max-width: 1199px) {
	.account-wishlist {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media only screen and (max-width: 991px) {
	.account-page {
		padding: 50px 0;
	}

	.account-sidebar {
		position: static;
		margin-bottom: 25px;
	}

	/* The menu turns into a scrolling row of chips */
	.account-menu {
		border: none;
		padding: 0;
		background: transparent;
	}

	.account-menu ul {
		display: flex;
		gap: 8px;
		overflow-x: auto;
		padding-bottom: 6px;
		scrollbar-width: none;
	}

	.account-menu ul::-webkit-scrollbar {
		display: none;
	}

	.account-menu ul li,
	.account-menu ul li:last-child {
		flex: 0 0 auto;
		margin: 0;
		padding: 0;
		border: none;
	}

	.account-menu ul li a {
		gap: 8px;
		padding: 8px 14px;
		border: 1px solid var(--divider-color);
		border-radius: 30px;
		background: var(--white-color);
		font-size: 14px;
		white-space: nowrap;
	}

	.account-menu ul li.active a {
		border-color: var(--primary-color);
	}

	.account-menu ul li img {
		max-width: 16px;
	}
}

@media only screen and (max-width: 767px) {
	.account-hello h2,
	.account-order-head h2 {
		font-size: 26px;
	}

	.account-stats,
	.account-rules,
	.account-addresses,
	.account-order-details {
		grid-template-columns: 1fr;
	}

	.account-stats {
		gap: 12px;
	}

	.account-stat {
		padding: 18px 20px;
	}

	.account-stat-value {
		font-size: 26px;
	}

	.account-block {
		padding: 20px;
	}

	.account-order-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

	/* Table rows become cards */
	.account-table thead {
		display: none;
	}

	.account-table,
	.account-table tbody,
	.account-table tr,
	.account-table td {
		display: block;
		width: 100%;
	}

	.account-table tr {
		border-bottom: 1px solid var(--divider-color);
		padding: 14px 0;
	}

	.account-table tbody tr:last-child {
		border-bottom: none;
	}

	.account-table td,
	.account-table tbody tr:last-child td {
		display: flex;
		justify-content: space-between;
		gap: 15px;
		padding: 4px 0;
		border: none;
		text-align: right;
	}

	.account-table td::before {
		content: attr(data-label);
		color: var(--text-color);
		text-align: left;
	}

	.account-table td.account-table-action {
		justify-content: flex-end;
		padding-top: 8px;
	}

	.account-order-product {
		grid-template-columns: 70px 1fr;
		gap: 8px 15px;
	}

	.account-order-product-image {
		grid-row: span 3;
	}

	.account-order-product-image img,
	.account-order-voucher {
		width: 70px;
		height: 88px;
	}

	.account-order-product-total {
		text-align: left;
	}

	.account-order-totals {
		max-width: none;
	}

	.account-wishlist {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.account-wishlist-body {
		padding: 12px;
	}

	.account-wishlist-body h4 {
		font-size: 15px;
	}

	.account-wishlist-body .btn-default {
		padding: 10px;
		font-size: 13px;
	}
}

/* ===== Buy in one click (checkout/parure_oneclick) ===== */

.product-single-content-btn {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* Second button: outlined, the cart button stays the main one */
.product-single-content-btn .btn-default.btn-highlighted {
	background: transparent;
	border-color: var(--primary-color);
	color: var(--primary-color);
}

.product-single-content-btn .btn-default.btn-highlighted:hover {
	background: var(--primary-color);
	color: var(--white-color);
	opacity: 1;
}

.parure-oneclick {
	max-width: 460px;
	text-align: left;
}

.parure-oneclick-product {
	display: flex;
	align-items: center;
	gap: 15px;
	padding-bottom: 15px;
	margin-bottom: 15px;
	border-bottom: 1px solid var(--divider-color);
}

.parure-oneclick-product img {
	width: 64px;
	height: 80px;
	object-fit: cover;
	border-radius: 4px;
	background: var(--secondary-color);
}

.parure-oneclick-name {
	font-family: var(--accent-font);
	color: var(--primary-color);
	line-height: 1.3;
}

.parure-oneclick-price {
	font-weight: 600;
	color: var(--primary-color);
	margin-top: 4px;
}

.parure-oneclick-intro {
	font-size: 14px;
	margin-bottom: 15px;
}

.parure-oneclick .form-group {
	margin-bottom: 14px;
}

.parure-oneclick .checkout-form-checkbox {
	margin-bottom: 10px;
}

.parure-oneclick-error:empty {
	display: none;
}

.parure-oneclick-error {
	margin-bottom: 10px;
}

.parure-oneclick-submit {
	width: 100%;
	text-align: center;
	background: var(--btn-color);
	border-color: var(--btn-color);
	color: var(--white-color);
}

.parure-oneclick-submit:hover {
	color: var(--white-color);
	opacity: 0.85;
}

.parure-oneclick-submit::after {
	display: none;
}

/* ===== Empty states: 404, empty cart, nothing found ===== */

.parure-empty {
	max-width: 620px;
	margin: 0 auto;
	text-align: center;
}

.parure-empty h2 {
	font-size: 34px;
	margin-bottom: 15px;
}

.parure-empty p {
	margin-bottom: 25px;
}

.parure-empty-code {
	font-family: var(--accent-font);
	font-size: 140px;
	line-height: 1;
	color: var(--btn-color);
	margin-bottom: 10px;
}

.parure-empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--secondary-color);
	margin-bottom: 25px;
}

.parure-empty-icon img {
	width: 40px;
}

.parure-empty-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 15px;
}

.parure-empty-search {
	display: flex;
	gap: 10px;
	margin: 0 auto 25px;
	max-width: 480px;
}

.parure-empty-search .form-control {
	flex: 1;
}

.parure-search-empty {
	padding: 20px 0 10px;
}

.parure-search-categories {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.parure-search-categories a {
	padding: 8px 16px;
	border: 1px solid var(--divider-color);
	border-radius: 30px;
	color: var(--primary-color);
	font-size: 14px;
	transition: all 0.3s ease-in-out;
}

.parure-search-categories a:hover {
	border-color: var(--btn-color);
	color: var(--btn-color);
}

/* ===== Cart ===== */

.cart-item-nostock {
	display: block;
	font-size: 13px;
	color: #c0392b;
}

.cart-free-delivery {
	padding: 15px 0 20px;
	border-bottom: 1px solid var(--divider-color);
	margin-bottom: 15px;
}

.cart-free-delivery p {
	font-size: 14px;
	margin-bottom: 10px;
}

.cart-free-delivery b {
	color: var(--primary-color);
	white-space: nowrap;
}

.cart-free-delivery-bar {
	height: 6px;
	border-radius: 6px;
	background: var(--secondary-color);
	overflow: hidden;
}

.cart-free-delivery-bar span {
	display: block;
	height: 100%;
	background: var(--btn-color);
	border-radius: 6px;
	transition: width 0.4s ease-in-out;
}

.order-summary-total-final h3 {
	font-weight: 600;
}

.cart-summary-note {
	font-size: 13px;
	margin: 15px 0 0;
}

/* ===== Order placed ===== */

.parure-order-success {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.parure-order-success h2 {
	font-size: 34px;
	margin-bottom: 15px;
}

.parure-order-steps {
	list-style: none;
	counter-reset: step;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 30px 0;
	padding: 0;
	text-align: left;
}

.parure-order-steps li {
	counter-increment: step;
	position: relative;
	padding: 25px 20px 20px;
	border: 1px solid var(--divider-color);
	border-radius: 4px;
	font-size: 14px;
}

.parure-order-steps li::before {
	content: counter(step);
	display: block;
	font-family: var(--accent-font);
	font-size: 28px;
	line-height: 1;
	color: var(--btn-color);
	margin-bottom: 10px;
}

.parure-order-steps li b {
	display: block;
	color: var(--primary-color);
	margin-bottom: 5px;
}

.parure-order-success .page-message-buttons {
	justify-content: center;
}

/* ===== Password recovery ===== */

.login-form-note {
	font-size: 14px;
	margin: 20px 0 0;
	text-align: center;
}

.login-form-note a {
	color: var(--primary-color);
	text-decoration: underline;
}

@media only screen and (max-width: 767px) {
	.parure-empty h2,
	.parure-order-success h2 {
		font-size: 26px;
	}

	.parure-empty-code {
		font-size: 100px;
	}

	.parure-order-steps {
		grid-template-columns: 1fr;
	}
}

/* ===== Ring size table (product tab, tools/seed-ring-sizes.php) ===== */

.parure-size-guide h4 {
	font-size: 20px;
	margin: 20px 0 10px;
}

.parure-size-guide ol {
	padding-left: 20px;
	margin-bottom: 15px;
}

.parure-size-guide ol li {
	margin-bottom: 8px;
}

.parure-size-table-wrap {
	max-width: 520px;
	overflow-x: auto;
}

.parure-size-table {
	width: 100%;
	border-collapse: collapse;
	text-align: center;
}

.parure-size-table th {
	font-family: var(--accent-font);
	font-weight: 400;
	color: var(--primary-color);
	padding: 10px 12px;
	border-bottom: 1px solid var(--divider-color);
}

.parure-size-table td {
	padding: 8px 12px;
	border-bottom: 1px solid var(--divider-color);
}

.parure-size-table tbody tr:nth-child(even) {
	background: var(--secondary-color);
}

.parure-size-table td:first-child {
	font-weight: 600;
	color: var(--primary-color);
}

/* ===== Home: offer cards and the wide banner (parure_promo offers / banner) ===== */

.parure-offers {
	padding: 100px 0 40px;
}

.parure-offers-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
}

.parure-offer {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 35px 30px;
	background: var(--secondary-color);
	border-radius: 4px;
	color: var(--text-color);
	transition: all 0.3s ease-in-out;
}

.parure-offer:hover {
	color: var(--text-color);
	transform: translateY(-3px);
	box-shadow: 0 12px 30px rgba(47, 61, 56, 0.08);
}

.parure-offer-icon {
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.parure-offer-accent {
	font-family: var(--accent-font);
	font-size: 54px;
	line-height: 1;
	color: var(--btn-color);
	margin-bottom: 18px;
}

.parure-offer-title {
	font-family: var(--accent-font);
	font-size: 22px;
	line-height: 1.3;
	color: var(--primary-color);
	margin-bottom: 10px;
}

.parure-offer-text {
	flex: 1;
	line-height: 1.6;
}

.parure-offer-link {
	margin-top: 18px;
	font-size: 14px;
	font-weight: 500;
	color: var(--primary-color);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.parure-banner {
	padding: 60px 0;
}

.parure-banner-box {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	background: var(--primary-color);
	border-radius: 4px;
	overflow: hidden;
}

.parure-banner-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding: 60px;
	color: rgba(255, 255, 255, 0.8);
}

.parure-banner-content .section-sub-title {
	color: var(--white-color);
	margin-bottom: 15px;
}

.parure-banner-content h2 {
	font-size: 40px;
	color: var(--white-color);
	margin-bottom: 15px;
}

.parure-banner-content p {
	margin-bottom: 25px;
}

.parure-banner-content .btn-default {
	background: var(--btn-color);
	border-color: var(--btn-color);
	color: var(--white-color);
}

.parure-banner-image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
}

@media only screen and (max-width: 991px) {
	.parure-offers {
		padding: 60px 0 20px;
	}

	.parure-offers-list {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.parure-offer {
		padding: 25px;
	}

	.parure-offer-accent {
		font-size: 42px;
	}

	.parure-banner-box {
		grid-template-columns: 1fr;
	}

	.parure-banner-content {
		padding: 35px 25px;
	}

	.parure-banner-content h2 {
		font-size: 30px;
	}

	.parure-banner-image {
		order: -1;
	}

	.parure-banner-image img {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}
}

/* ===== Footer newsletter: consent and answer (parure_subscribe) ===== */

.footer-subscribe-agree {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 12px;
	font-size: 12px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.7);
	cursor: pointer;
}

.footer-subscribe-agree input {
	flex: 0 0 auto;
	margin-top: 3px;
	accent-color: var(--btn-color);
}

.footer-subscribe-agree a {
	color: var(--white-color);
	text-decoration: underline;
}

.footer-subscribe-message {
	margin-top: 8px;
	font-size: 13px;
}

.footer-subscribe-message:empty {
	display: none;
}

.footer-subscribe-message.is-error {
	color: #ffb3c1;
}

.footer-subscribe-message.is-success {
	color: #b8e6c8;
}

/* ===== Footer bottom line: copyright left, developer right ===== */

.footer-copyright-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 8px 30px;
	text-align: left;
}

.footer-copyright-row p {
	margin: 0;
}

@media only screen and (max-width: 767px) {
	.footer-copyright-row {
		flex-direction: column;
		text-align: center;
	}
}

/* ===== Site map (information/sitemap) ===== */

.parure-sitemap {
	padding: 90px 0;
}

.parure-sitemap-section {
	margin-bottom: 60px;
}

.parure-sitemap-title {
	font-size: 34px;
	margin-bottom: 30px;
}

.parure-sitemap-catalog {
	column-count: 3;
	column-gap: 25px;
}

.parure-sitemap-group {
	break-inside: avoid;
	margin-bottom: 25px;
	padding: 28px 30px;
	background: var(--secondary-color);
	border-radius: 4px;
}

.parure-sitemap-group h3 {
	font-size: 22px;
	margin-bottom: 14px;
}

.parure-sitemap-group h3 a,
.parure-sitemap ul a {
	color: var(--primary-color);
	transition: color 0.3s ease-in-out;
}

.parure-sitemap-group h3 a:hover,
.parure-sitemap ul a:hover {
	color: var(--btn-color);
}

.parure-sitemap ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.parure-sitemap ul li {
	padding: 5px 0;
	line-height: 1.4;
}

/* Third level: a quieter indented list */
.parure-sitemap ul ul {
	margin: 4px 0 2px 14px;
	padding-left: 12px;
	border-left: 1px solid var(--divider-color);
}

.parure-sitemap ul ul li {
	font-size: 14px;
	padding: 3px 0;
}

.parure-sitemap-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 25px;
	margin-bottom: 60px;
}

.parure-sitemap-row .parure-sitemap-section {
	margin-bottom: 0;
}

.parure-sitemap-row .parure-sitemap-title {
	font-size: 26px;
	margin-bottom: 18px;
}

.parure-sitemap-collections {
	column-count: 4;
	column-gap: 30px;
}

.parure-sitemap-collections li {
	break-inside: avoid;
	font-size: 15px;
}

@media only screen and (max-width: 1199px) {
	.parure-sitemap-catalog {
		column-count: 2;
	}

	.parure-sitemap-collections {
		column-count: 3;
	}
}

@media only screen and (max-width: 767px) {
	.parure-sitemap {
		padding: 50px 0;
	}

	.parure-sitemap-title {
		font-size: 28px;
		margin-bottom: 20px;
	}

	.parure-sitemap-catalog,
	.parure-sitemap-collections {
		column-count: 1;
	}

	.parure-sitemap-collections {
		column-count: 2;
		column-gap: 15px;
	}

	.parure-sitemap-row {
		grid-template-columns: 1fr;
	}

	.parure-sitemap-group {
		padding: 22px;
	}
}

/* ===== Catalog showcase (product/parure_catalog) ===== */

.parure-catalog {
	padding: 90px 0;
}

.parure-catalog-head {
	margin-bottom: 40px;
	text-align: center;
}

.parure-catalog-head p {
	max-width: 560px;
	margin: 10px auto 0;
}

.parure-catalog-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 25px;
	margin-bottom: 90px;
}

.parure-catalog-tile {
	display: flex;
	flex-direction: column;
	color: var(--primary-color);
}

.parure-catalog-image {
	display: block;
	overflow: hidden;
	border-radius: 4px;
	/* Product photos have white backgrounds: keep the tile white too */
	background: var(--white-color);
	border: 1px solid var(--divider-color);
	margin-bottom: 14px;
}

.parure-catalog-image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform 0.6s ease-in-out;
}

.parure-catalog-tile:hover .parure-catalog-image img {
	transform: scale(1.05);
}

.parure-catalog-name {
	display: block;
	font-family: var(--accent-font);
	font-size: 22px;
	line-height: 1.3;
	color: var(--primary-color);
	transition: color 0.3s ease-in-out;
}

.parure-catalog-tile:hover .parure-catalog-name,
.parure-catalog-collection:hover .parure-catalog-name {
	color: var(--btn-color);
}

.parure-catalog-total {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	color: var(--text-color);
}

.parure-catalog-collections {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 20px;
}

.parure-catalog-collection {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 14px 14px 18px;
	background: var(--secondary-color);
	border-radius: 4px;
	text-align: center;
}

.parure-catalog-collection img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 4px;
	background: var(--white-color);
}

.parure-catalog-collection .parure-catalog-name {
	font-size: 19px;
}

@media only screen and (max-width: 1199px) {
	.parure-catalog-grid,
	.parure-catalog-collections {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media only screen and (max-width: 767px) {
	.parure-catalog {
		padding: 50px 0;
	}

	.parure-catalog-grid,
	.parure-catalog-collections {
		grid-template-columns: repeat(2, 1fr);
		gap: 15px;
	}

	.parure-catalog-grid {
		margin-bottom: 50px;
	}

	.parure-catalog-name {
		font-size: 17px;
	}

	.parure-catalog-total {
		font-size: 13px;
	}
}
