/* ==========================================================================
   Maison du Preez – theme styles
   Colour system (from the supplied crest/logo; contrast ratios measured):
   --mdp-navy      #14203B  primary dark surface & primary action    (ivory text 15.2:1)
   --mdp-surface   #FAF8F4  page surface (ivory)                       (ink text 15.2:1)
   --mdp-surface-2 #F1EDE6  secondary surface (stone)                  (ink 13.8:1)
   --mdp-product-bg#F4F4F2  low-chroma product-viewing surface         (keeps metal colour true)
   --mdp-ink       #16203A  body text
   --mdp-ink-muted #555B6E  secondary text                            (6.4:1 on ivory)
   --mdp-gold      #C6A15B  decorative gold only on light (2.3:1); text-safe on navy (6.7:1)
   --mdp-gold-light#E2C58D  gold text on navy                         (9.7:1)
   --mdp-gold-text #7F6026  gold-toned text on light                  (5.5:1)
   --mdp-border    #D6CEBF  decorative dividers (non-essential)
   --mdp-control-border #7A7466 form control borders                  (4.4:1, ≥3:1 non-text)
   --mdp-focus     #2457C5  focus ring on light (6.1:1); gold-light on dark surfaces
   status: success #2E6A4E · warning #8A5A00 · error #A63A3A · info #2F5480 (all ≥5.4:1 on ivory)
   ========================================================================== */

:root {
	--mdp-navy: #14203B;
	--mdp-navy-2: #1E2B4D;
	--mdp-surface: #FAF8F4;
	--mdp-surface-2: #F1EDE6;
	--mdp-product-bg: #F4F4F2;
	--mdp-ink: #16203A;
	--mdp-ink-muted: #555B6E;
	--mdp-gold: #C6A15B;
	--mdp-gold-light: #E2C58D;
	--mdp-gold-text: #7F6026;
	--mdp-border: #D6CEBF;
	--mdp-control-border: #7A7466;
	--mdp-focus: #2457C5;
	--mdp-action: #14203B;
	--mdp-action-hover: #2B3A61;
	--mdp-on-action: #FAF8F4;
	--mdp-success: #2E6A4E;
	--mdp-warning: #8A5A00;
	--mdp-error: #A63A3A;
	--mdp-info: #2F5480;
	--mdp-font-serif: "Cormorant Garamond", "Cormorant Fallback", Georgia, serif;
	--mdp-font-sans: Montserrat, "Montserrat Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mdp-wrap: 1280px;
	--mdp-gutter: 16px;
}
@media (min-width: 768px) { :root { --mdp-gutter: 24px; } }

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
@media (min-width: 1025px) { html { scroll-padding-top: 150px; } }
body { margin: 0; background: var(--mdp-surface); color: var(--mdp-ink); font: 400 1rem/1.65 var(--mdp-font-sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
h1, h2, h3, h4, h5, h6 { font-family: var(--mdp-font-serif); font-weight: 500; line-height: 1.15; color: inherit; margin: 0 0 .6em; letter-spacing: .005em; }
h1 { font-size: clamp(2.25rem, 1.8rem + 2vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 1.45rem + 1.3vw, 2.5rem); }
h3 { font-size: clamp(1.3rem, 1.2rem + .4vw, 1.6rem); }
p { margin: 0 0 1em; }
a { color: var(--mdp-ink); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--mdp-gold-text); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--mdp-focus); outline-offset: 3px; }
.mdp-main:focus { outline: none; }
::selection { background: var(--mdp-gold-light); color: var(--mdp-navy); }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.mdp-skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; margin: 0; z-index: 100000; top: 8px; left: 8px; padding: .75rem 1rem; background: var(--mdp-surface); color: var(--mdp-ink); outline: 2px solid var(--mdp-focus); }
.mdp-wrap { width: 100%; max-width: var(--mdp-wrap); margin-inline: auto; padding-inline: var(--mdp-gutter); }
.mdp-wrap--narrow { max-width: 820px; }

/* Dark (navy) sections set in Elementor with the class mdp-on-dark */
.mdp-on-dark { color: var(--mdp-surface); --mdp-focus: var(--mdp-gold-light); --mdp-w-focus: var(--mdp-gold-light); }
.mdp-on-dark a { color: var(--mdp-surface); }
.mdp-on-dark a:hover { color: var(--mdp-gold-light); }
.mdp-on-dark :focus-visible { outline-color: var(--mdp-gold-light); }
.mdp-on-dark .elementor-heading-title { color: inherit; }
.mdp-on-dark .mdp-nav__list .sub-menu { color: var(--mdp-ink); }

/* Elementor integration */
.elementor-widget-heading .elementor-heading-title { font-family: var(--mdp-font-serif); font-weight: 500; }
.elementor-widget-heading p.elementor-heading-title { font-family: var(--mdp-font-sans); }
.elementor-widget-text-editor { font-family: var(--mdp-font-sans); line-height: 1.7; }
.elementor-button { font-family: var(--mdp-font-sans); min-height: 48px; display: inline-flex !important; align-items: center; }
.elementor-button:focus-visible { outline: 2px solid var(--mdp-focus); outline-offset: 3px; }
.mdp-template--header { position: sticky; top: 0; z-index: 30; }
.admin-bar .mdp-template--header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mdp-template--header { top: 0; position: relative; } }
.mdp-site-header { position: relative; }
@media (min-width: 1025px) {
	.mdp-buy-column { position: sticky; top: 112px; align-self: flex-start; }
}
.mdp-crest-list { margin: 1.5rem 0 0; }
.mdp-crest-list dt { font: 600 .75rem/1.4 var(--mdp-font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--mdp-gold-text); margin-top: 1.5rem; }
.mdp-crest-list dd { margin: .35rem 0 0; }

/* Coming soon */
.mdp-coming-soon .mdp-main { min-height: 100vh; }
.mdp-coming-soon-fallback { min-height: 100vh; display: grid; place-content: center; gap: 1rem; text-align: center; background: var(--mdp-navy); color: var(--mdp-surface); padding: 2rem var(--mdp-gutter); }
.mdp-coming-soon-fallback .mdp-cs-crest { width: min(320px, 70vw); margin: 0 auto; color: var(--mdp-gold); }
.mdp-coming-soon-fallback a { color: var(--mdp-gold-light); }

/* Fallback header/footer */
.mdp-fallback-header { background: var(--mdp-surface); border-bottom: 1px solid var(--mdp-border); }
.mdp-fallback-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 72px; flex-wrap: wrap; }
.mdp-fallback-logo { margin: 0; font: 500 1.25rem/1 var(--mdp-font-serif); letter-spacing: .18em; text-transform: uppercase; }
.mdp-fallback-logo a { text-decoration: none; }
.mdp-fallback-nav__list { list-style: none; display: flex; gap: 1.5rem; margin: 0; padding: 0; flex-wrap: wrap; }
.mdp-fallback-nav__list a { text-decoration: none; font: 500 .8125rem var(--mdp-font-sans); letter-spacing: .14em; text-transform: uppercase; display: inline-block; padding: .5rem 0; }
.mdp-fallback-nav__toggle { display: none; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--mdp-ink); background: none; font: 600 .75rem var(--mdp-font-sans); letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 900px) {
	.mdp-fallback-nav__toggle { display: inline-flex; align-items: center; }
	.mdp-fallback-nav__list { display: none; flex-direction: column; gap: 0; width: 100%; }
	.mdp-fallback-nav.is-open .mdp-fallback-nav__list { display: flex; }
}
.mdp-fallback-actions { display: flex; gap: 1rem; margin: 0; }
.mdp-fallback-actions a { display: inline-flex; align-items: center; min-height: 44px; }
.mdp-fallback-footer { background: var(--mdp-navy); color: var(--mdp-surface); padding: 3rem 0; margin-top: 4rem; }
.mdp-fallback-footer a { color: var(--mdp-surface); }
.mdp-fallback-footer__menu { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; padding: 0; }
.mdp-fallback-content { padding-block: 3rem 5rem; }
.mdp-fallback-list { list-style: none; padding: 0; display: grid; gap: 2rem; }
.mdp-prose { max-width: 68ch; }

/* WooCommerce: notices */
.mdp-notices:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { font-family: var(--mdp-font-sans); border: 1px solid var(--mdp-border) !important; border-left: 4px solid var(--mdp-info) !important; background: #fff !important; color: var(--mdp-ink) !important; padding: 1rem 1.25rem !important; margin: 1rem 0 !important; list-style: none; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; }
.woocommerce-message { border-left-color: var(--mdp-success) !important; }
.woocommerce-error { border-left-color: var(--mdp-error) !important; flex-direction: column; align-items: flex-start; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }

/* WooCommerce: forms (cart, checkout, account) */
.woocommerce form .form-row { margin: 0 0 1.1rem; padding: 0; }
.woocommerce form .form-row label { font: 600 .75rem/1.4 var(--mdp-font-sans); letter-spacing: .1em; text-transform: uppercase; margin-bottom: .35rem; display: block; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .9375rem; display: flex; gap: .5rem; align-items: flex-start; }
.woocommerce form .form-row .required { color: var(--mdp-error); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce .select2-container .select2-selection--single { border: 1px solid var(--mdp-control-border); border-radius: 0; min-height: 48px; padding: .6rem .8rem; font: 400 1rem var(--mdp-font-sans); color: var(--mdp-ink); background: #fff; width: 100%; }
.woocommerce .select2-container .select2-selection--single { display: flex; align-items: center; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--mdp-error); }
.woocommerce input[type=checkbox], .woocommerce input[type=radio] { width: 20px; height: 20px; accent-color: var(--mdp-action); flex: none; margin-top: .15rem; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #place_order, .woocommerce .checkout-button { background: var(--mdp-action) !important; color: var(--mdp-on-action) !important; border: 1px solid var(--mdp-action) !important; border-radius: 0 !important; font: 600 .8125rem/1.2 var(--mdp-font-sans) !important; letter-spacing: .14em !important; text-transform: uppercase; padding: .9rem 1.5rem !important; min-height: 48px; }
.woocommerce .button:hover, .woocommerce #place_order:hover, .woocommerce .checkout-button:hover { background: var(--mdp-action-hover) !important; }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .55; }
.woocommerce #place_order { width: 100%; font-size: .875rem !important; }

/* Cart & checkout tables */
.woocommerce table.shop_table { border: 0; border-collapse: collapse; width: 100%; font-family: var(--mdp-font-sans); border-radius: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border: 0; border-bottom: 1px solid var(--mdp-border); padding: 1rem .5rem; }
.woocommerce table.shop_table th { font: 600 .75rem/1.4 var(--mdp-font-sans); letter-spacing: .12em; text-transform: uppercase; }
.woocommerce table.shop_table .order-total th, .woocommerce table.shop_table .order-total td { font-size: 1.0625rem; font-weight: 600; }
.woocommerce-cart table.cart img { width: 88px; background: var(--mdp-product-bg); }
.woocommerce a.remove { color: var(--mdp-error) !important; font-size: 1.4rem; width: 32px; height: 32px; line-height: 30px; }
.woocommerce a.remove:hover { background: var(--mdp-error); color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout-review-order { background: var(--mdp-surface-2); padding: 1.5rem; }
.woocommerce-checkout #payment { background: #fff !important; border: 1px solid var(--mdp-border); border-radius: 0 !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--mdp-surface-2) !important; color: var(--mdp-ink) !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--mdp-surface-2) !important; }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text { font-size: .875rem; }
@media (min-width: 1025px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 3rem; align-items: start; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup, .woocommerce-checkout form.checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
	.woocommerce-checkout #customer_details { grid-column: 1; }
	.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 2; }
	.woocommerce-checkout #order_review_heading { grid-row: 1; margin-top: 0; }
	.woocommerce-checkout #order_review { grid-row: 2 / span 3; }
	.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
}
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive tr td::before { font-weight: 600; }
	.woocommerce-cart-form .actions .coupon { display: flex; flex-direction: column; gap: .5rem; }
	.woocommerce-cart-form .actions .coupon input, .woocommerce-cart-form .actions .coupon .button { width: 100% !important; }
}

/* Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: .25rem; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: flex; min-height: 44px; align-items: center; padding: 0 .75rem; text-decoration: none; border-left: 2px solid transparent; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { border-left-color: var(--mdp-gold); font-weight: 600; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--mdp-border) !important; border-radius: 0 !important; padding: 1.5rem !important; background: #fff; }

/* Stock text inside Woo forms */
.woocommerce .stock.in-stock { color: var(--mdp-success); }
.woocommerce .stock.out-of-stock { color: var(--mdp-error); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Forced colours (Windows high contrast) */
@media (forced-colors: active) {
	.mdp-avail__label::before { forced-color-adjust: none; background: CanvasText; }
	.elementor-button, .woocommerce .button { border: 1px solid ButtonText !important; }
}

/* Print */
@media print {
	.mdp-template--header, .mdp-template--footer, .mdp-quickbar, .mdp-actions { display: none !important; }
}

/* Optional sections (Journal, podcast, Instagram, featured pieces) collapse entirely when their
   widget has nothing real to show – no empty bands of padding. */
.e-con.mdp-collapse-empty:not(:has(.elementor-widget)) { display: none !important; }
.mdp-cs-privacy { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; margin: 0; font-size: .8125rem; }
.mdp-cs-privacy a { color: var(--mdp-gold-light); }
.mdp-coming-soon-main { position: relative; }

/* WooCommerce forms: single column on small screens (replaces woocommerce-smallscreen.css) */
.woocommerce form .form-row .input-text, .woocommerce form .form-row select, .woocommerce .select2-container { width: 100% !important; max-width: 100%; }
@media (max-width: 767px) {
	.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-1, .woocommerce-page .col2-set .col-2,
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none !important; width: 100% !important; }
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive tbody tr, .woocommerce table.shop_table_responsive tbody td { display: block; text-align: right; }
	.woocommerce table.shop_table_responsive tbody td::before { content: attr(data-title) ": "; float: left; }
	.woocommerce table.shop_table_responsive tbody td.product-remove::before, .woocommerce table.shop_table_responsive tbody td.product-thumbnail::before { content: none; }
	.woocommerce .cart-collaterals .cart_totals { width: 100% !important; float: none !important; }
	.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: 100% !important; }
}

/* WooCommerce defaults overridden for contrast and target size */
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce ul.products li.product .price { color: var(--mdp-ink); }
.woocommerce-variation-availability .stock, .woocommerce div.product .stock { color: var(--mdp-ink); }
.woocommerce form .show-password-input, .woocommerce-page form .show-password-input { min-width: 24px; min-height: 24px; }
.mdp-episode__meta a, .mdp-prose a, .woocommerce-privacy-policy-text a, .woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; }

/* Match WooCommerce checkout's initial JavaScript state in CSS so nothing collapses after load (CLS). */
.woocommerce-shipping-fields:has(#ship-to-different-address-checkbox:not(:checked)) .shipping_address { display: none; }
.woocommerce-account-fields:has(#createaccount:not(:checked)) div.create-account { display: none; }

/* Paragraph spacing that does not depend on :last-child (stable while HTML is still streaming,
   which otherwise caused a measurable layout shift on slow mobile connections). */
.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor p + p, .elementor-widget-text-editor p + ul, .elementor-widget-text-editor ul + p, .elementor-widget-text-editor h2 + p, .elementor-widget-text-editor p + h2 { margin-top: 1em; }
