/* =============================================================================
 *  Paris Mirror — wholesale access layer styles
 *  Scoped under the `pm-*` prefix (+ body.pm-locked / body.pm-unlocked states).
 *  Brand gold: #a07f1a
 * ========================================================================== */

:root {
    --pm-gold:        #a07f1a;
    --pm-gold-dark:   #856813;
    --pm-gold-soft:   #f6efdd;
    --pm-ink:         #1a1a1a;
    --pm-muted:       #8a8a8a;
    --pm-line:        #e6e1d5;
    --pm-radius:      8px;
    --pm-shadow:      0 10px 40px rgba(0, 0, 0, .18);
    --pm-serif:       'Fraunces', Georgia, 'Times New Roman', serif;
    --pm-sans:        'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ------------------------------------------------------------- luxe typography */
.pm-hero, .pm-how, .pm-scale, .pm-cta, .pm-strip, .pm-modal, .pm-bar { font-family: var(--pm-sans); }
.pm-hero__title, .pm-how__title, .pm-scale__title, .pm-cta__title,
.pm-scale__n, .pm-how__num {
    font-family: var(--pm-serif) !important;
    font-weight: 300 !important;
    letter-spacing: -1px;
    font-optical-sizing: auto;
}

/* ------------------------------------------------------------------ access bar */
.pm-bar {
    background: #12100b;
    color: #f4efe4;
    font-family: inherit;
    border-bottom: 1px solid var(--pm-gold);
    position: fixed;      /* pinned to the very top, above the fixed site header */
    top: 0;
    left: 0;
    right: 0;
    z-index: 3000;
}
/* Hide the wholesale access bar on mobile (offsetHeight 0 => pinBar reserves no space). */
body.pm-mobile .pm-bar { display: none !important; }

/* ---- mobile header vertical alignment ---- */
body.pm-mobile header #logo_home { display: flex; align-items: center; }
body.pm-mobile header #logo_home img { margin-bottom: 0 !important; }
/* #top_tools is position:absolute; top:0 in the theme. Pin the positioning context to
   the logo row so 50% centers the cart exactly on the logo. */
body.pm-mobile header > .container > .row { position: relative; }
body.pm-mobile header #top_tools { top: 50% !important; bottom: auto !important; transform: translateY(-50%) !important; }

/* ---- mobile request/order modal: smaller & clear of the fixed header ---- */
body.pm-mobile .pm-modal { align-items: flex-start; }
body.pm-mobile .pm-modal__dialog {
    width: calc(100vw - 24px);
    margin: 72px auto 16px;
    max-height: calc(100vh - 92px);
    padding: 22px 18px 20px;
}
body.pm-mobile .pm-modal__title { font-size: 19px; line-height: 1.2; }
body.pm-mobile .pm-modal__intro { font-size: 13px; margin-bottom: 16px; }
body.pm-mobile .pm-form__grid { grid-template-columns: 1fr; }
.pm-bar__inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 3px 18px;      /* thin */
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.pm-bar__lead {
    font-size: 12.5px;
    letter-spacing: .2px;
    color: #e9e2d0;
    flex: 1 1 260px;
    min-width: 200px;
}
/* slim controls inside the access bar */
.pm-bar__code { height: 27px !important; }
.pm-bar .pm-btn { height: 27px !important; padding: 0 13px !important; font-size: 12.5px !important; }
.pm-bar__request { font-size: 12.5px; padding: 2px !important; }
.pm-bar__form {
    display: flex;
    align-items: stretch;
    gap: 6px;
}
/* autosuggest dropdown on the in-menu search */
.pm-hsug {
    position: absolute; top: calc(100% + 8px); left: 0; right: 0;
    background: #fff; border: 1px solid #ececec; border-radius: 10px;
    box-shadow: 0 14px 40px rgba(0,0,0,.14); overflow: hidden; z-index: 9999;
    display: none; text-align: left;
}
.pm-hsug.open { display: block; }
.pm-hsug-it { display: flex; align-items: center; gap: 14px; padding: 8px 12px; color: #1a1a1a; text-decoration: none; }
.pm-hsug-it:hover, .pm-hsug-it.active { background: #faf6ea; }
.pm-hsug-it img { width: 48px !important; height: 48px !important; object-fit: contain; flex: 0 0 48px !important; margin-right: 12px; }
.pm-hsug-it span { font-size: 13px; line-height: 1.3; padding-left: 2px; }

.pm-bar__code {
    width: 190px;
    height: 34px;
    border: 1px solid #d8d2c4;
    background: #ffffff;
    color: #1a1a1a;
    border-radius: var(--pm-radius);
    padding: 0 12px;
    font-size: 14px;
    letter-spacing: 3px;
    font-variant-numeric: tabular-nums;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.pm-bar__code::placeholder { color: #8b8571; letter-spacing: .5px; }
.pm-bar__code:focus {
    outline: none;
    border-color: var(--pm-gold);
    box-shadow: 0 0 0 3px rgba(160, 127, 26, .28);
}
.pm-bar__code.has-error { border-color: #d9534f; box-shadow: 0 0 0 3px rgba(217, 83, 79, .25); }

.pm-bar__request {
    background: none;
    border: none;
    color: #ffffff !important;
    font-size: 13px;
    text-decoration: none !important;
    cursor: pointer;
    padding: 4px 2px;
}
.pm-bar__request:hover { color: var(--pm-gold) !important; }

.pm-bar__status { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; font-size: 13.5px; }
.pm-bar__check {
    width: 22px; height: 22px; flex: 0 0 22px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--pm-gold); color: #12100b; border-radius: 50%;
}
.pm-bar__check svg { width: 13px; height: 13px; }
.pm-bar__status-text strong { color: #fff; }
.pm-bar__badge {
    background: var(--pm-gold); color: #12100b;
    font-size: 12px; font-weight: 700;
    padding: 3px 10px; border-radius: 999px; white-space: nowrap;
}

.pm-bar__langs { display: flex; gap: 2px; margin-left: auto; }
.pm-lang {
    color: #cfc7b3; font-size: 12px; font-weight: 600; letter-spacing: .5px;
    padding: 4px 8px; border-radius: 5px; text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.pm-lang:hover { color: #fff; }
.pm-lang.is-active { background: var(--pm-gold); color: #12100b; }

.pm-bar__error {
    max-width: 1200px; margin: 0 auto; padding: 8px 18px;
    background: #2a120f; color: #ffb3ad; font-size: 13px; border-top: 1px solid #47201c;
}

/* ---------------------------------------------------------------------- buttons */
.pm-btn {
    display: inline-flex; align-items: center; justify-content: center;
    height: 34px; padding: 0 16px; border: 1px solid transparent;
    border-radius: var(--pm-radius); font-size: 13.5px; font-weight: 600;
    cursor: pointer; transition: background .15s ease, color .15s ease, border-color .15s ease;
    white-space: nowrap; line-height: 1;
}
.pm-btn--gold { background: var(--pm-gold); color: #fff; }
.pm-btn--gold:hover { background: var(--pm-gold-dark); }
.pm-btn--ghost { background: transparent; color: #e9e2d0; border-color: #4a4536; }
.pm-btn--ghost:hover { border-color: var(--pm-gold); color: #fff; }
.pm-btn--lg {
    height: 52px; padding: 0 34px; font-size: 12px;
    text-transform: uppercase; letter-spacing: 2.2px; font-weight: 600;
    border-radius: 2px;                        /* sharper, more couture */
    transition: background .2s ease, color .2s ease;
}

/* luxe number treatment */
.pm-how__num { font-style: italic; font-weight: 400 !important; font-size: 30px; }
.pm-scale__n { font-weight: 400 !important; font-size: 46px; }

/* ------------------------------------------------------------------ price chips */
/* "Hidden" placeholder in the locked product summary. */
body.pm .pd-hidden { color: var(--pm-gold); font-weight: 600; letter-spacing: .3px; }
/* Wholesale summary: keep only the Total row (drop the redundant MSRP/Discount rows). */
body.pm .pd-summary tr:not(.total) { display: none !important; }
/* Total row: keep "Total" on the same line as the price bubble. */
body.pm .pd-summary .total td { vertical-align: top; }
/* Your (wholesale) price sits in a gold bubble; public price + savings stack underneath. */
body.pm .pd-summary .total .pm-price { flex-direction: column; align-items: flex-end; gap: 7px; }
/* The gold bubble = the real price the client pays. */
body.pm .pd-summary .total .pm-price__wholesale {
    display: inline-block; background: var(--pm-gold); color: #fff; font-weight: 800;
    font-size: 1em; line-height: 1.1; padding: 7px 18px; border-radius: 999px;
}
/* Public price → plain info line under the bubble, no strike, no pill. */
body.pm .pd-summary .total .pm-price__public {
    text-decoration: none; background: none; border: 0; padding: 0; gap: 5px; align-items: baseline;
    text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 500; color: #1a1a1a;
}
body.pm .pd-summary .total .pm-price__publabel { text-transform: none; letter-spacing: 0; font-weight: 500; color: #1a1a1a; }
body.pm .pd-summary .total .pm-price__public s { text-decoration: none; color: #1a1a1a; font-weight: 500; }
/* Savings note hidden on the product total. */
body.pm .pd-summary .total .pm-price__save { display: none !important; }

/* Reviews are hidden on the wholesale product page. */
body.pm .pd-rating,
body.pm #reviews { display: none !important; }
/* Keep the separator line under the title, but drop the header price (price lives in the buy box). */
body.pm .pd-headrow { display: flex !important; padding-top: 0 !important; min-height: 0 !important; }
body.pm .pd-headrow .pd-price { display: none !important; }

/* Retail discount badges never belong on the wholesale site (they leak the rate). */
body.pm .m-card-badge,
body.pm .badge_save,
body.pm [id^="priceoption"][id$="_remise"] { display: none !important; }

/* Category listings: show only the wholesale price (no public reference / no %). */
body.pm .m-card-price .pm-price__public,
body.pm .m-card-price .pm-price__save { display: none !important; }

/* Locked: never let a raw price flash — hide known price containers' contents. */
body.pm-locked .m-card-price > *,
body.pm-locked span.price > *,
body.pm-locked [id^="priceoption"] > *,
body.pm-locked .ibcart-table td.r > *,
body.pm-locked .pm-guard > * { visibility: hidden; }

.pm-lock-chip {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px; font-weight: 600; color: var(--pm-gold);
    background: var(--pm-gold-soft); border: 1px solid #e7dcc0;
    padding: 3px 10px; border-radius: 999px; white-space: nowrap;
    visibility: visible !important;
}
.pm-lock-chip svg { width: 12px; height: 12px; }

/* Unlocked: dual price presentation injected by parismirror.js */
.pm-price { display: inline-flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.pm-price__wholesale { color: var(--pm-ink); font-weight: 800; }
.pm-price__public {
    display: inline-flex; align-items: baseline; gap: 5px;
    color: var(--pm-muted); font-weight: 500; font-size: .82em; text-decoration: none;
}
.pm-price__publabel { text-decoration: none; color: #9a9282; font-weight: 500; }
.pm-price__public s { text-decoration: line-through; color: #9a9282; }
.pm-price__save {
    color: var(--pm-gold-dark); font-weight: 700; font-size: .78em;
    background: var(--pm-gold-soft); padding: 1px 7px; border-radius: 999px;
    text-decoration: none;
}

/* ---------------------------------------------------------------------- modal */
.pm-modal { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; }
.pm-modal[hidden] { display: none; }
.pm-modal__backdrop { position: absolute; inset: 0; background: rgba(15, 12, 6, .55); backdrop-filter: blur(2px); }
.pm-modal__dialog {
    position: relative; background: #fff; width: min(620px, calc(100vw - 32px));
    max-height: calc(100vh - 48px); overflow: auto;
    border-radius: 14px; box-shadow: var(--pm-shadow); padding: 30px 30px 26px;
}
.pm-modal__close {
    position: absolute; top: 12px; right: 14px; border: none; background: none;
    font-size: 28px; line-height: 1; color: #b3ab98; cursor: pointer;
}
.pm-modal__close:hover { color: var(--pm-ink); }
.pm-modal__title { font-size: 22px; margin: 0 0 8px; color: var(--pm-ink); }
.pm-modal__intro { font-size: 14px; color: #6b6656; margin: 0 0 20px; line-height: 1.5; }

/* ----------------------------------------------------------------------- forms */
.pm-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pm-field { display: flex; flex-direction: column; gap: 5px; }
.pm-field--full { grid-column: 1 / -1; }
.pm-field span { font-size: 12px; font-weight: 600; color: #6b6656; text-transform: uppercase; letter-spacing: .4px; }
.pm-field input, .pm-field textarea {
    border: 1px solid var(--pm-line); border-radius: var(--pm-radius);
    padding: 10px 12px; font-size: 14px; font-family: inherit; color: var(--pm-ink);
    background: #fff; transition: border-color .15s ease, box-shadow .15s ease;
}
.pm-field input:focus, .pm-field textarea:focus {
    outline: none; border-color: var(--pm-gold); box-shadow: 0 0 0 3px rgba(160, 127, 26, .18);
}
.pm-form__foot { margin-top: 20px; }
.pm-form__result { margin-top: 16px; padding: 12px 14px; border-radius: var(--pm-radius); font-size: 14px; }
.pm-form__result.is-ok  { background: #eef7ec; color: #2f6b2a; border: 1px solid #cfe6c8; }
.pm-form__result.is-err { background: #fdeceb; color: #a3312c; border: 1px solid #f3cfcd; }
.pm-hp { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }

/* ------------------------------------------------------------- home: video hero */
.pm-hero {
    position: relative;
    overflow: hidden;
    min-height: 560px;
    display: flex;
    align-items: center;
    padding: 70px 0;
    background: #0b0b0b;
}
.pm-hero__video { position: absolute; inset: 0; pointer-events: none; }
.pm-hero__video iframe {
    position: absolute; top: 50%; left: 50%;
    width: 100vw; height: 56.25vw;         /* 16:9 cover */
    min-height: 100%; min-width: 177.78vh;
    transform: translate(-50%, -50%);
    border: 0;
}
.pm-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(8,7,4,.82) 0%, rgba(8,7,4,.5) 48%, rgba(8,7,4,.08) 100%);
}
.pm-hero__content {
    position: relative; z-index: 2;
    max-width: 1170px; width: 100%;      /* match the header row so text lines up left */
    margin: 0 auto; padding: 0 15px 0 0; color: #fff;
}
.pm-hero__eyebrow {
    display: inline-block; font-size: 11px; letter-spacing: 4px;
    text-transform: uppercase; color: var(--pm-gold); font-weight: 700; margin-bottom: 28px;
}
.pm-hero__title {
    font-family: Georgia, 'Times New Roman', serif; font-weight: 400;
    font-size: clamp(40px, 4.6vw, 58px); line-height: 1.12; letter-spacing: -.3px; margin: 0 0 26px; color: #fff;
}
/* couture flanking lines on the centred section eyebrows */
.pm-how__eyebrow, .pm-cta__eyebrow { display: inline-flex !important; align-items: center; gap: 14px; }
.pm-how__eyebrow::before, .pm-how__eyebrow::after,
.pm-cta__eyebrow::before, .pm-cta__eyebrow::after { content: ''; width: 26px; height: 1px; background: var(--pm-gold); opacity: .55; }
.pm-hero__title em { font-style: italic; color: var(--pm-gold); }
.pm-hero__sub { max-width: 440px; font-size: 16px; line-height: 1.75; color: #ddd6c7; margin: 0 0 40px; font-weight: 300; }
.pm-hero__cta { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.pm-hero__link {
    color: #fff; font-weight: 600; text-decoration: none;
    border: 0; border-bottom: 1px solid rgba(255,255,255,.4); padding: 0 0 2px;
    background: none; cursor: pointer; font-family: inherit; font-size: inherit; line-height: 1.2;
}
.pm-hero__link:hover { color: var(--pm-gold); border-color: var(--pm-gold); }
.pm-hero--mobile { min-height: 460px; }
.pm-hero--mobile .pm-hero__title { font-size: 34px; }

/* trade value strip under the hero */
.pm-strip { background: #12100b; border-bottom: 2px solid var(--pm-gold); }
.pm-strip__inner {
    max-width: 1200px; margin: 0 auto; padding: 22px 40px;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.pm-strip__item { display: flex; flex-direction: column; gap: 3px; border-left: 2px solid var(--pm-gold); padding-left: 14px; }
.pm-strip__k { color: #fff; font-weight: 700; font-size: 15px; }
.pm-strip__v { color: #b8b19f; font-size: 13px; }

@media (max-width: 991px) {
    .pm-hero { min-height: 460px; }
    .pm-hero__title { font-size: 38px; }
    .pm-hero__content { padding: 0 22px; }
    .pm-strip__inner { grid-template-columns: 1fr 1fr; padding: 18px 22px; gap: 16px; }
}
@media (max-width: 560px) {
    .pm-strip__inner { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------- home: how it works */
.pm-how {
    padding: 90px 0;
    background:
        linear-gradient(rgba(10, 8, 4, .5), rgba(10, 8, 4, .72)),
        url(../../img/bgvdeo-ledmirror-lighted.jpg) center center / cover no-repeat;
    background-color: #14110b;
}
.pm-how__title { text-shadow: 0 2px 18px rgba(0, 0, 0, .55); }
.pm-how__inner { max-width: 1120px; margin: 0 auto; padding: 0 40px; }
.pm-how__head { text-align: center; margin-bottom: 54px; }
.pm-how__eyebrow { display: block; font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--pm-gold); font-weight: 700; margin-bottom: 12px; }
.pm-how__title { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 36px; color: #fff; margin: 0; }
.pm-how__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.pm-how__step { padding: 34px 30px; background: rgba(14, 11, 6, .58); backdrop-filter: blur(3px); border: 1px solid rgba(160, 127, 26, .38); border-radius: 12px; transition: border-color .25s ease, transform .25s ease, background .25s ease; }
.pm-how__step:hover { border-color: var(--pm-gold); background: rgba(20, 15, 6, .7); transform: translateY(-4px); }
.pm-how__num { font-family: Georgia, 'Times New Roman', serif; font-size: 26px; color: var(--pm-gold); display: block; margin-bottom: 16px; }
.pm-how__step h3 { font-size: 18px; margin: 0 0 10px; color: #fff; font-weight: 700; }
.pm-how__step p { font-size: 14.5px; line-height: 1.65; color: #b8b19f; margin: 0; }
.pm-how__cta { text-align: center; margin-top: 46px; }

@media (max-width: 860px) {
    .pm-how { padding: 60px 0; }
    .pm-how__inner { padding: 0 22px; }
    .pm-how__grid { grid-template-columns: 1fr; gap: 18px; }
    .pm-how__title { font-size: 28px; }
}

/* ------------------------------------------------------ home: trusted at scale */
.pm-scale { background: #fff; padding: 90px 0; }
.pm-scale__inner {
    max-width: 1170px; margin: 0 auto; padding: 0 15px;
    display: grid; grid-template-columns: 1.1fr 1fr; gap: 60px; align-items: center;
}
.pm-scale__eyebrow { display: block; font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--pm-gold); font-weight: 700; margin-bottom: 14px; }
.pm-scale__title { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 38px; line-height: 1.12; color: #1a1a1a; margin: 0 0 18px; }
.pm-scale__lead { font-size: 16px; line-height: 1.7; color: #5b564a; margin: 0; max-width: 520px; }
.pm-scale__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 24px; }
.pm-scale__stat { border-left: 2px solid var(--pm-gold); padding-left: 18px; }
.pm-scale__n { display: block; font-family: Georgia, 'Times New Roman', serif; font-size: 40px; color: #1a1a1a; line-height: 1; margin-bottom: 8px; }
.pm-scale__l { font-size: 13.5px; color: #7a7364; line-height: 1.4; }
@media (max-width: 860px) {
    .pm-scale { padding: 60px 0; }
    .pm-scale__inner { grid-template-columns: 1fr; gap: 36px; padding: 0 22px; }
    .pm-scale__title { font-size: 30px; }
}
@media (max-width: 520px) { .pm-scale__stats { grid-template-columns: 1fr; } }

/* ------------------------------------------------------- home: closing CTA band */
.pm-cta { background: #12100b; padding: 80px 0; text-align: center; border-top: 3px solid var(--pm-gold); }
.pm-cta__inner { max-width: 720px; margin: 0 auto; padding: 0 22px; }
.pm-cta__eyebrow { display: block; font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--pm-gold); font-weight: 700; margin-bottom: 14px; }
.pm-cta__title { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 38px; color: #fff; margin: 0 0 14px; }
.pm-cta__sub { font-size: 16px; line-height: 1.6; color: #cfc7b3; margin: 0 0 28px; }
@media (max-width: 860px) { .pm-cta { padding: 56px 0; } .pm-cta__title { font-size: 28px; } }

/* ------------------------------------------------------- home: manifesto quote */
.pm-quote { background: #faf7f0; padding: 100px 0; font-family: var(--pm-sans); }
.pm-quote__inner { max-width: 900px; margin: 0 auto; padding: 0 30px; text-align: center; position: relative; }
.pm-quote__mark {
    display: block; font-family: var(--pm-serif); font-style: italic;
    font-size: 90px; line-height: .5; color: var(--pm-gold); opacity: .55; margin-bottom: 22px;
}
.pm-quote__text {
    font-family: var(--pm-serif); font-weight: 300; font-style: italic;
    font-size: clamp(24px, 3.2vw, 40px); line-height: 1.3; letter-spacing: -.5px;
    color: #1a1a1a; margin: 0;
}
.pm-quote__rule { display: block; width: 46px; height: 2px; background: var(--pm-gold); margin: 34px auto 18px; }
.pm-quote__by { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: #8a8264; font-weight: 600; }
@media (max-width: 860px) { .pm-quote { padding: 66px 0; } .pm-quote__mark { font-size: 66px; } }

/* --------------------------------------------------- home: editorial product story */
.pm-story { max-width: 1280px; margin: 0 auto; padding: 100px 40px; font-family: var(--pm-sans); }
.pm-story__head { text-align: center; margin-bottom: 70px; }
.pm-story__eyebrow { display: inline-block; font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--pm-gold); font-weight: 700; margin-bottom: 18px; }
.pm-story__title { font-family: var(--pm-serif); font-weight: 300; font-size: clamp(30px, 3.6vw, 46px); line-height: 1.12; letter-spacing: -1px; color: #1a1a1a; margin: 0; }
.pm-story__row { display: grid; grid-template-columns: 1.15fr 1fr; gap: 64px; align-items: center; margin-bottom: 92px; }
.pm-story__row:last-child { margin-bottom: 0; }
.pm-story__row--reverse .pm-story__media { order: 2; }
.pm-story__media { overflow: hidden; border-radius: 2px; margin: 0; aspect-ratio: 4 / 3; }
.pm-story__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.1s cubic-bezier(.2,.6,.2,1); }
.pm-story__row:hover .pm-story__media img { transform: scale(1.07); }
.pm-story__chapter { display: block; font-family: var(--pm-serif); font-style: italic; font-size: 15px; color: var(--pm-gold); margin-bottom: 16px; }
.pm-story__text h3 { font-family: var(--pm-serif); font-weight: 400; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.2; letter-spacing: -.5px; color: #1a1a1a; margin: 0 0 16px; }
.pm-story__text p { font-size: 16px; line-height: 1.75; color: #5b564a; margin: 0 0 22px; max-width: 460px; }
.pm-story__link { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; font-weight: 600; color: #1a1a1a; text-decoration: none; border-bottom: 1px solid var(--pm-gold); padding-bottom: 4px; transition: color .2s ease, letter-spacing .2s ease; }
.pm-story__link:hover { color: var(--pm-gold); letter-spacing: 3px; }
@media (max-width: 860px) {
    .pm-story { padding: 64px 22px; }
    .pm-story__head { margin-bottom: 44px; }
    .pm-story__row { grid-template-columns: 1fr; gap: 24px; margin-bottom: 56px; }
    .pm-story__row--reverse .pm-story__media { order: 0; }
    .pm-story__media { aspect-ratio: 16 / 10; }
}

/* =============================================================== luxe footer */
body.pm .pm-footer { background: #0e0c07 !important; color: #cfc7b3; font-family: var(--pm-sans); }
.pm-footer__inner { max-width: 1200px; margin: 0 auto; padding: 0 40px; }

/* footer product lookbook strip */
.pm-footer__gallery { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; }
/* On the cart/quote page, drop the footer gallery images. */
body.page-cart .pm-footer__gallery { display: none !important; }
.pm-footer__thumb { position: relative; display: block; overflow: hidden; aspect-ratio: 1 / 1; background: #16130c; }
.pm-footer__thumb::after { content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(160,127,26,.18); transition: box-shadow .25s ease; pointer-events: none; }
.pm-footer__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.92) brightness(.92); transition: transform .9s cubic-bezier(.2,.6,.2,1), filter .3s ease; }
.pm-footer__thumb:hover img { transform: scale(1.08); filter: saturate(1) brightness(1); }
.pm-footer__thumb:hover::after { box-shadow: inset 0 0 0 2px var(--pm-gold); }
@media (max-width: 860px) { .pm-footer__gallery { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 420px) { .pm-footer__gallery { grid-template-columns: repeat(2, 1fr); } }
.pm-footer__top { padding: 80px 0 58px; }
.pm-footer__top .pm-footer__inner { display: grid; grid-template-columns: 1.25fr 2fr; gap: 70px; }
.pm-footer__logo { font-family: var(--pm-serif); font-weight: 300; font-size: 30px; letter-spacing: 1px; color: #fff !important; text-decoration: none; text-transform: uppercase; display: inline-block; }
.pm-footer__logo em { font-style: italic; color: var(--pm-gold) !important; }
.pm-footer__tag { font-size: 14px; line-height: 1.7; color: #a49c86; margin: 18px 0 26px; max-width: 340px; }
.pm-footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.pm-footer__col h4 { font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--pm-gold); font-weight: 700; margin: 0 0 18px; }
.pm-footer__col ul { list-style: none; margin: 0; padding: 0; }
.pm-footer__col li { margin-bottom: 11px; }
.pm-footer__col a, .pm-footer__phone, .pm-footer__mail { color: #cfc7b3 !important; text-decoration: none; font-size: 13.5px; transition: color .18s ease; }
.pm-footer__col a:hover, .pm-footer__phone:hover, .pm-footer__mail:hover { color: var(--pm-gold) !important; }
.pm-footer__col--contact a { display: block; margin-bottom: 11px; }
.pm-footer__phone { font-family: var(--pm-serif); font-size: 19px; color: #fff !important; }
.pm-footer__col--contact address { font-style: normal; font-size: 13.5px; line-height: 1.6; color: #a49c86; margin-top: 6px; }
.pm-footer__bottom { border-top: 1px solid rgba(160, 127, 26, .22); padding: 22px 0; }
.pm-footer__bottom .pm-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pm-footer__copy { font-size: 12px; color: #8a8264; margin: 0; letter-spacing: .3px; }
/* Currency switch, bottom-right of the site */
.pm-currency { margin: 0; }
.pm-currency__btn { display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 1px solid rgba(160,127,26,.45); color: #e9e2cf; border-radius: 999px; padding: 6px 14px; font: inherit; font-size: 12px; letter-spacing: .3px; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.pm-currency__btn:hover { background: var(--pm-gold); border-color: var(--pm-gold); color: #15110a; }
.pm-currency__on { font-weight: 700; }
.pm-currency__to { color: #8a8264; }
.pm-currency__btn:hover .pm-currency__to { color: #15110a; }
.pm-footer__social { display: flex; gap: 10px; }
.pm-footer__social a { width: 34px; height: 34px; border: 1px solid rgba(160, 127, 26, .35); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #cfc7b3 !important; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.pm-footer__social a:hover { background: var(--pm-gold); border-color: var(--pm-gold); color: #0e0c07 !important; }
.pm-footer__brand .pm-btn--lg { margin-top: 4px; }
@media (max-width: 860px) {
    .pm-footer__top .pm-footer__inner { grid-template-columns: 1fr; gap: 44px; }
    .pm-footer__cols { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
    .pm-footer__bottom .pm-footer__inner { justify-content: center; text-align: center; }
}
@media (max-width: 520px) { .pm-footer__cols { grid-template-columns: 1fr; } }

/* ============================================================ header accents
 * IBMIRROR layout kept — we only push the Paris Mirror gold: search button,
 * cart button and active tab go gold.
 * ========================================================================== */
body.pm #top_line .icon-phone { color: var(--pm-gold); }
body.pm header { border-bottom: 0 !important; }

/* logo now lives in the top bar → kill the in-menu logo everywhere on desktop */

    body.pm-desktop #header_menu,
    body.pm-desktop header .main-menu > #header_menu,
    body.pm-desktop header .main-menu #header_menu { display: none !important; }


/* search submit button → gold */
body.pm header #searchWeb > a { background: var(--pm-gold) !important; }
body.pm header #searchWeb > a:hover { background: var(--pm-gold-dark) !important; }

/* Showroom Program now lives in the main menu (gold) — hide the old top-bar entry to avoid a duplicate */
body.pm #top_line .pm-showroom-link,
body.pm #top_links .pm-showroom-link { display: none !important; }

/* Showroom Program: the in-menu entry is for MOBILE only (desktop keeps the gold pill in the top bar).
   Hidden by default so it never shows on desktop even if device detection is off; shown only on pm-mobile. */
/* Showroom Program — gold entry shown in the main menu (desktop AND mobile) */
body.pm-desktop header .main-menu > ul > li.pm-showroom-mobile-item { display: flex !important; }
body.pm-mobile .pm-showroom-mobile-item,
body.pm-mobile header .main-menu > ul > li.pm-showroom-mobile-item { display: block !important; }
.pm-showroom-mobile-item > a,
body.pm-desktop header .main-menu > ul > li.pm-showroom-mobile-item > a { color: var(--pm-gold) !important; font-weight: 700 !important; }

/* cart button → gold */
body.pm header #top_tools .dropdown-cart a {
    background: var(--pm-gold) !important;
    color: #fff !important;
    border-color: var(--pm-gold) !important;
}
body.pm header #top_tools .dropdown-cart a i { color: #fff !important; }
body.pm header #top_tools .dropdown-cart a:hover {
    background: var(--pm-gold-dark) !important;
    border-color: var(--pm-gold-dark) !important;
    color: #fff !important;
}
body.pm header #top_tools .dropdown-cart a:hover i { color: #fff !important; }

/* active nav tab → gold underline */
body.pm header .main-menu > ul > li > a.show-submenu:hover,
body.pm header .main-menu > ul > li > a:hover { color: var(--pm-gold) !important; }

/* ================================================= header 2-row restructure
 * Desktop only. Row 1 (top bar): logo + phone + currency + cart.
 * Row 2 (main bar): search (left) + menu (right).
 * Mobile keeps the original IBMIRROR header untouched.
 * ========================================================================== */


    /* --- Row 1: top bar (logo) — more compact --- */
    body.pm-desktop #top_line { padding: 9px 0 !important; }
    body.pm-desktop #top_line .row { display: flex !important; align-items: center !important; }
    body.pm-desktop #top_line .pm-toplogo { display: inline-flex; align-items: center; flex: 0 0 auto; margin-right: 26px; }   /* flush left */
    body.pm-desktop #top_line .pm-toplogo img { height: 44px; width: auto; display: block; }
    body.pm-desktop #top_line .col-md-3 { flex: 0 0 auto !important; width: auto !important; max-width: none !important; }
    body.pm-desktop #top_line .col-md-9 { flex: 1 1 auto !important; width: auto !important; max-width: none !important; padding-right: 0 !important; }
    body.pm-desktop #top_line #top_links { width: 100% !important; margin-right: 0 !important; padding-right: 0 !important; }
    /* Align every header row to ONE identical container width so their right edges line up
       (defined here, in the cache-busted stylesheet, to override any stale editorial-header.css). */
    body.pm-desktop header #top_line > .container,
    body.pm-desktop header > .container {
        max-width: 1320px !important; width: auto !important;
        margin-left: auto !important; margin-right: auto !important;
        padding-left: 15px !important; padding-right: 15px !important;
        box-sizing: border-box !important;
    }
    body.pm-desktop header .main-menu > ul { padding-right: 0 !important; }
    /* keep the menu row on one line and let the search shrink instead of overflowing past the edge */
    body.pm-desktop header .main-menu > ul { flex-wrap: nowrap !important; }
    body.pm-desktop header li.mm-search { min-width: 0 !important; flex: 0 1 auto !important; }
    body.pm-desktop header li.mm-search form { width: 300px !important; max-width: 100% !important; }

    /* cart in the top bar, aligned with the phone line, gold pill */
    body.pm-desktop #top_line .pm-topcart { display: flex !important; align-items: center; }
    body.pm-desktop #top_line .pm-topcart a {
        display: inline-flex !important; align-items: center; gap: 6px;
        background: #ececec !important; color: #1a1a1a !important; border: 1px solid #e0e0e0 !important;
        padding: 6px 15px !important; border-radius: 30px !important;
        font-weight: 700 !important; font-size: 12.5px !important; letter-spacing: .3px; margin-left: 16px;
    }
    body.pm-desktop #top_line .pm-topcart a i { color: #1a1a1a !important; }
    body.pm-desktop #top_line .pm-topcart a:hover { background: #e2e2e2 !important; color: #1a1a1a !important; }

    /* --- Row 2: drop row-2 logo + old cart, use full width --- */
    body.pm-desktop .pm-logo-col { display: none !important; }
    body.pm-desktop header .main-menu > #header_menu { display: none !important; }
    body.pm-desktop header nav.col-md-10 { width: 100% !important; flex: 0 0 100% !important; max-width: 100% !important; }
    body.pm-desktop header #top_tools { display: none !important; }
    body.pm-desktop header #searchWeb { display: none !important; }

    /* --- Row 2 (search + menu): taller, vertically centered --- */
    body.pm-desktop header > .container > .row { display: flex !important; align-items: center !important; min-height: 60px !important; }
    /* Bootstrap clearfix pseudo-elements become stray flex items → remove them */
    body.pm-desktop header .row::before,
    body.pm-desktop header .row::after { display: none !important; content: none !important; }
    body.pm-desktop header nav.col-md-10 {
        display: flex !important; align-items: center !important;
        margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important;
    }
    body.pm-desktop header nav { margin-top: 0 !important; }   /* kill the theme's nav margin-top */
    body.pm-desktop header .main-menu > ul { align-items: center !important; }
    body.pm-desktop header .main-menu > ul > li.mm-search { padding-top: 0 !important; padding-bottom: 0 !important; }

    /* --- Row 2: search LEFT, menu RIGHT (reuse theme's li.mm-search) --- */
    body.pm-desktop header nav.col-md-10 { padding: 0 !important; margin: 0 !important; }   /* flush left, aligned with the row/container edge */
    body.pm-desktop header .main-menu { display: flex !important; align-items: center !important; width: 100% !important; justify-content: flex-start !important; margin: 0 !important; padding: 0 !important; }
    /* kill the theme's bottom-heavy link padding (0 top / 15 bottom) so items sit centered
       and remove left padding so the first item lines up with the container edge */
    body.pm-desktop header .main-menu > ul { padding: 0 10px 0 0 !important; margin: 0 !important; padding-inline-start: 0 !important; }
    body.pm-desktop header .main-menu > ul > li { display: flex !important; align-items: center !important; }
    body.pm-desktop header .main-menu > ul > li > a {
        padding-top: 0 !important; padding-bottom: 0 !important; padding-left: 0 !important; padding-right: 24px !important;
        line-height: 1 !important; display: flex !important; align-items: center !important;
    }
    body.pm-desktop header #header_menu { display: none !important; }
    body.pm-desktop header .main-menu > ul {
        display: flex !important; align-items: center !important; flex: 1 1 auto !important;
        width: 100% !important; margin-left: 0 !important; padding-left: 0 !important; padding-right: 10px !important; box-sizing: border-box !important;
    }
    body.pm-desktop header .main-menu > ul > li { float: none !important; }
    body.pm-desktop header .main-menu > ul > li.mm-search { display: flex !important; order: 99 !important; margin: 0 0 0 auto !important; }
    /* align the first menu item's text with the logo edge */
    body.pm-desktop header .main-menu > ul > li.submenu:first-of-type > a { padding-left: 0 !important; }
    body.pm-desktop header li.mm-search form {
        display: flex !important; align-items: center !important; gap: 6px;
        background: #fff !important; border: 1px solid #e0dccf !important;
        border-radius: 30px !important; padding: 3px 4px 3px 18px !important; width: 400px !important;
    }
    body.pm-desktop header li.mm-search input {
        flex: 1 1 auto !important; border: 0 !important; background: transparent !important;
        height: 30px !important; font-size: 13px !important; color: #1a1a1a !important;
        outline: none !important; box-shadow: none !important; width: auto !important;
    }
    body.pm-desktop header li.mm-search input::placeholder { color: #999 !important; }
    body.pm-desktop header li.mm-search button {
        border: 0 !important; width: 34px !important; height: 34px !important; min-width: 34px !important;
        border-radius: 50% !important; background: var(--pm-gold) !important; color: #fff !important;
        display: inline-flex !important; align-items: center !important; justify-content: center !important;
        cursor: pointer !important; padding: 0 !important;
    }
    body.pm-desktop header li.mm-search button i { color: #fff !important; }

    /* on scroll (sticky), collapse the top bar → only the menu row stays */
    body.pm-desktop header.sticky #top_line { display: none !important; }


/* --------------------------------------------------------------------- responsive */
@media (max-width: 720px) {
    .pm-bar__inner { gap: 10px; }
    .pm-bar__lead { flex-basis: 100%; }
    .pm-bar__code { width: 150px; }
    .pm-bar__langs { margin-left: 0; }
    .pm-form__grid { grid-template-columns: 1fr; }
}
