/* Figma shared design layer. Keep native PrestaShop hooks and interactions. */
/* Original webfonts supplied by Pierre-Michel, Font Moderat, 11 August 2026. */
@font-face {
  font-family: 'Moderat';
  src: url('../font/Moderat-Regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Moderat';
  src: url('../font/Moderat-Medium.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Moderat Extended';
  src: url('../font/Moderat-Extended-Thin.woff2') format('woff2');
  font-weight: 100; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Moderat Extended';
  src: url('../font/Moderat-Extended-Light.woff2') format('woff2');
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Moderat Extended';
  src: url('../font/Moderat-Extended-Medium.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Moderat Extended';
  src: url('../font/Moderat-Extended-Bold.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../font/InterVariable.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --madime-font-body: 'Inter', sans-serif;
  --madime-font-menu: 'Moderat', 'Inter', sans-serif;
  --madime-font-heading: 'Moderat Extended', 'FuturaLight', sans-serif;
}
/* Shared storefront palette: Figma text/link colours, not Bootstrap's default blue.
   Reservation, validation and other semantic colours keep their own component rules. */
:root, [data-bs-theme="light"] {
  --madime-color-text:#161616;
  --madime-color-link:#6f6f6f;
  --madime-color-control:#414141;
  --madime-color-separator:#c0c0c0;
  --bs-primary:var(--madime-color-control);
  --bs-primary-rgb:65,65,65;
  --bs-primary-text-emphasis:var(--madime-color-text);
  --bs-primary-bg-subtle:#f4f4f4;
  --bs-primary-border-subtle:var(--madime-color-separator);
  --bs-link-color:var(--madime-color-link);
  --bs-link-color-rgb:111,111,111;
  --bs-link-hover-color:var(--madime-color-text);
  --bs-link-hover-color-rgb:22,22,22;
  --bs-focus-ring-color:rgba(65,65,65,.25);
}
/* Let the native anchor rule use these tokens; do not force colours on white/green links. */
a:where(:not(.btn)):is(:focus-visible,:active) {
  --bs-link-color-rgb:var(--bs-link-hover-color-rgb);
}
a:where(:not(.btn)):focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.btn-primary {
  --bs-btn-color:#fff;
  --bs-btn-bg:var(--madime-color-control);
  --bs-btn-border-color:var(--madime-color-control);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--madime-color-text);
  --bs-btn-hover-border-color:var(--madime-color-text);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:var(--madime-color-text);
  --bs-btn-active-border-color:var(--madime-color-text);
  --bs-btn-disabled-color:#fff;
  --bs-btn-disabled-bg:var(--madime-color-control);
  --bs-btn-disabled-border-color:var(--madime-color-control);
  --bs-btn-focus-shadow-rgb:65,65,65;
}
.btn-outline-primary {
  --bs-btn-color:var(--madime-color-control);
  --bs-btn-bg:transparent;
  --bs-btn-border-color:var(--madime-color-control);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--madime-color-control);
  --bs-btn-hover-border-color:var(--madime-color-control);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:var(--madime-color-text);
  --bs-btn-active-border-color:var(--madime-color-text);
  --bs-btn-disabled-color:var(--madime-color-link);
  --bs-btn-disabled-bg:transparent;
  --bs-btn-disabled-border-color:var(--madime-color-separator);
  --bs-btn-focus-shadow-rgb:65,65,65;
}
.btn-link, .btn-basic {
  --bs-btn-color:var(--madime-color-link);
  --bs-btn-hover-color:var(--madime-color-text);
  --bs-btn-active-color:var(--madime-color-text);
  --bs-btn-disabled-color:var(--madime-color-link);
  --bs-btn-focus-shadow-rgb:65,65,65;
}
/* The product reservation is the green exception in Figma, including its focus ring. */
.madime-product__actions .product__add-to-cart-button { --bs-btn-focus-shadow-rgb:59,106,85; }
.breadcrumb {
  --bs-breadcrumb-divider-color:var(--madime-color-separator);
  --bs-breadcrumb-item-active-color:var(--madime-color-separator);
  color:var(--madime-color-separator);
}
.breadcrumb-link { color:var(--madime-color-link); }
.breadcrumb-link:is(:hover,:focus-visible,:active) { color:var(--madime-color-text); }
.accordion {
  --bs-accordion-color:var(--madime-color-text);
  --bs-accordion-btn-color:var(--madime-color-text);
  --bs-accordion-active-color:var(--madime-color-text);
  --bs-accordion-active-bg:transparent;
  --bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(65,65,65,.25);
}
/* These native focus/checked values are compiled colours, not primary-token references.
   Keep Bootstrap's explicit valid/invalid feedback and disabled opacity untouched. */
:is(.form-control,.form-select,.form-check-input):focus:not(.is-valid,.is-invalid):not(.was-validated *) {
  border-color:var(--madime-color-control);
  box-shadow:0 0 0 .25rem rgba(65,65,65,.25);
}
.form-check-input:is(:checked,:indeterminate):not(.is-valid,.is-invalid):not(.was-validated *) {
  background-color:var(--madime-color-control);
  border-color:var(--madime-color-control);
}
/* Neutralise the existing switch thumb asset without replacing or redrawing its SVG. */
.form-switch .form-check-input:focus:not(:checked):not(.is-valid,.is-invalid):not(.was-validated *) { filter:grayscale(1); }
.nav-link:focus-visible,
.search-filters__form-check--color .color:focus-visible { box-shadow:0 0 0 .25rem rgba(65,65,65,.25); }
.nav-pills {
  --bs-nav-pills-link-active-color:#fff;
  --bs-nav-pills-link-active-bg:var(--madime-color-control);
}
.pagination { --bs-pagination-focus-box-shadow:0 0 0 .25rem rgba(65,65,65,.25); }
.progress, .progress-stacked { --bs-progress-bar-bg:var(--madime-color-control); }
/* Native product flags use primary tokens; the outlined reduction stays dark on white. */
.product-flags .badge.discount {
  color:var(--madime-color-control);
  background-color:#fff;
  border-color:var(--madime-color-control);
}
/* Reuse the module's existing SVG shapes. Its loader writes configured blue fills
   into attributes AND inline styles, so only these replaced icon paths need importance. */
.blockreassurance .reassurance__image { color:var(--madime-color-control); }
.blockreassurance--dark .reassurance__image { color:#fff; }
.blockreassurance .reassurance__image svg.replaced-svg { color:inherit; }
.blockreassurance .reassurance__image svg.replaced-svg path:not([fill="none"]) { fill:currentColor!important; }
.blockreassurance .reassurance__image svg.replaced-svg [stroke]:not([stroke="none"]) { stroke:currentColor!important; }
.madime-header__tools { align-items:center; gap:12px; }
/* Bootstrap utilities live in a named layer; important overrides must share it. */
@layer utilities {
  /* Primary helper hovers are hardcoded blue in Bootstrap, unlike its ordinary anchors. */
  .link-primary { color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1))!important; text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important; }
  .link-primary:is(:hover,:focus,:focus-visible,:active) { color:rgba(var(--bs-link-hover-color-rgb),var(--bs-link-opacity,1))!important; text-decoration-color:rgba(var(--bs-link-hover-color-rgb),var(--bs-link-underline-opacity,1))!important; }
  /* Discounts use text-primary-emphasis: a neutral adaptation, not a Figma discount design. */
  .text-primary-emphasis { color:var(--madime-color-text)!important; }
  .madime-header__tools .header-block__title { display:none!important; }
  body #header .header-block__badge { background-color:#414141!important; color:#fff!important; }
  /* Footer social alignment must override Bootstrap's layered utility classes. */
  #footer .madime-footer__newsletter .ps-socialfollow { padding:18px 0 0!important; }
  #footer .madime-footer__newsletter .ps-socialfollow ul { justify-content:flex-end!important; }
}
.madime-header__tools .header-block__action-btn { padding:8px 0; color:#414141; }
.madime-header__tools .header-block__icon { font-size:20px; }
/* Keep the cart glyph neutral as well as the link/badge, on desktop and mobile. */
body #header .header-block__icon { color:#414141; }
/* Exact shopping-bag asset from the live Madime theme. Target the cart only,
   including the native mobile swap and subsequent Ajax header refreshes. */
body #header :is(#_desktop_ps_shoppingcart,#_mobile_ps_shoppingcart) .header-block__icon {
  display:block; flex:0 0 20px; width:20px; height:22px; font-size:0;
  background:url('../img/ico-sac.png') center / contain no-repeat;
}
/* Native mobile navigation keeps the same neutral palette as the desktop menu. */
#mobileMenu :is(.menu__toggle-child,.js-back-button) {
  --bs-btn-color:#414141;
  --bs-btn-hover-color:#161616;
  --bs-btn-active-color:#161616;
  --bs-btn-focus-shadow-rgb:65,65,65;
  color:#414141;
}
#mobileMenu :is(.menu__toggle-child,.js-back-button):is(:hover,:focus-visible,:active) { color:#161616; }
#mobileMenu :is(.menu__toggle-child,.js-back-button) .material-icons { color:inherit; }
.madime-header__tools .header-block__badge { font-size:10px; }
@media(min-width:1200px) {
  /* Legacy compiled page CSS has additional ID specificity on home/category/
     product. Match those selectors so every shared header sticks in flow. */
  body #header, body#index #header, body#category #header, body#product #header {
    position:sticky; top:0; z-index:1031; background:#fff;
  }
  /* Native 4px vertical padding previously pushed the dropdown below the bar. */
  body #header .header-bottom { position:relative; padding-block:0; }
  /* Two equal halves around the logo: four categories on the left; three
     categories plus one compact tools group on the right. Anchor the tools
     inside this same centred row, never to the outer edge of the viewport. */
  body #header .header-bottom__container { width:calc(100% - 48px); max-width:1440px; padding-inline:0; }
  body #header .header-bottom__row { --madime-logo-space:200px; position:relative; margin-inline:0; }
  body #header .ps-mainmenu--desktop { padding-inline:0; }
  body #header .header-bottom__logo {
    left:50%; top:50%; width:161px; padding-inline:0;
    transform:translate(-50%,-50%);
  }
  body #header .header-bottom__logo img {
    width:161px; max-width:161px; height:60px; max-height:60px; object-fit:contain;
  }
  body #header .madime-header__tools {
    position:absolute; right:18px; top:50%; transform:translateY(-50%);
    width:124px; padding:0 20px 0 0; justify-content:flex-start; gap:4px; z-index:4;
  }
  .madime-header__tools > :is(.col-auto,.header-block) { padding-inline:0; flex-shrink:0; }
  body #header .madime-header__tools .header-block__action-btn {
    position:relative; display:flex; flex:0 0 32px; width:32px;
    min-width:32px; min-height:44px; padding-inline:0; justify-content:center;
  }
  body #header .madime-header__tools .header-block__badge {
    position:absolute; left:calc(50% + 14px); top:50%; transform:translateY(-50%);
  }
  /* The account's native dropdown remains clickable, without an extra chevron
     between the three equally spaced icons when the visitor is signed in. */
  body #header .madime-header__tools .dropdown-toggle::after { display:none; }
  body #header #_desktop_ps_searchbar.madime-search-panel { right:18px; }
  body #header .madime-nav { width:100%; }
  body #header .madime-nav__tree {
    --madime-side:calc((100% - var(--madime-logo-space)) / 2);
    --madime-right-links:calc(var(--madime-side) - 160px);
    display:grid; align-items:center; width:100%; padding:0; margin:0; list-style:none;
    grid-template-columns:calc(var(--madime-side) * 110 / 590) calc(var(--madime-side) * 170 / 590) calc(var(--madime-side) * 100 / 590) calc(var(--madime-side) * 210 / 590) var(--madime-logo-space) calc(var(--madime-right-links) * 235 / 470) calc(var(--madime-right-links) * 160 / 470) calc(var(--madime-right-links) * 75 / 470) 160px;
  }
  .madime-nav__item { position:relative; min-width:0; }
  .madime-nav__item:nth-child(5) { grid-column:6; }
  .madime-nav__item-wrapper { display:flex; align-items:center; justify-content:center; min-height:111px; }
  body #header .madime-nav__link {
    color:#161616; font:400 clamp(11px,.868vw,15px)/1.4 var(--madime-font-menu);
    text-transform:uppercase; white-space:nowrap; padding:12px 0; text-decoration:none;
    /* Do not animate font/width during viewport changes (legacy anchors use all). */
    transition:color .2s ease-in-out;
  }
  body #header .madime-nav__link:is(:hover,:focus-visible) { color:#6f6f6f; }
  .madime-nav__submenu {
    position:absolute; z-index:30; top:100%; left:0;
    width:max-content; min-width:220px; max-width:360px;
    max-height:calc(100dvh - 125px); overflow-y:auto; padding:14px 20px;
    background:#fff; border-top:1px solid #ededed;
    box-shadow:0 7px 14px rgba(0,0,0,.08);
  }
  .madime-nav__item:nth-child(n+5) .madime-nav__submenu { left:auto; right:0; }
  .madime-nav__list { list-style:none; padding:0; margin:0; }
  body #header .madime-nav__sublink {
    display:block; padding:7px 0; color:#414141;
    font:400 14px/1.5 var(--madime-font-menu); text-decoration:none;
  }
  body #header .madime-nav__sublink:is(:hover,:focus-visible) { color:#161616; text-decoration:underline; text-underline-offset:3px; }
}
.madime-nav__submenu[hidden] { display:none!important; }
#mobileMenu .menu__toggle-child span { font:400 24px/1 var(--madime-font-menu); }
@media(min-width:768px) and (max-width:1199.98px) {
  .madime-header__tools { order:3; width:auto; margin-left:auto; }
}
body { font-family: var(--madime-font-body); }
body #header .ps-mainmenu__tree-link { font-family: var(--madime-font-menu); }
.madime-home :is(p, small, .madime-home__button),
.madime-category :is(p, small),
.madime-product :is(p, span, a, select, button),
body#category :is(.product-miniature__reference,.product-miniature__price) { font-family: var(--madime-font-body); }
.madime-home :is(h1,h2,h3), .madime-category :is(h1,h2,h3) { font-family: var(--madime-font-heading); }
body#category .madime-category__hero-copy h1,
body#category .madime-category__journal > h2,
body#category .madime-category__journal-grid h3 { font-family:var(--madime-font-heading); font-weight:300; }
body#category .madime-category__hero-copy p,
body#category .madime-category__description,
body#category .madime-category__description p,
body#category .madime-category__journal-grid p { font-family:var(--madime-font-body); }
.madime-home .madime-home__hero-copy h1 { font-weight:700; }
.madime-home .madime-home__appointment h2 { font-weight:500; }
.madime-home .madime-home__category-grid h3 { font-weight:100; }
.madime-home .madime-home__button { font-weight:500; }
.madime-home__product-heading h3,
body#category .product-miniature__title { font-family: var(--madime-font-menu); }
.madime-product__name { font-family: 'Inter',sans-serif; font-weight:400; }
.madime-product__container { gap:0; }
.madime-product__breadcrumb,
.madime-product__meta,
.madime-product__detail-link,
.madime-product__delivery,
.madime-product__services,
.madime-product__help,
.madime-product__help h2,
.madime-product__help a,
.madime-product__description,
.madime-product__description p { font-family:var(--madime-font-body); }
/* Figma 1:111-116: 520px headings and 511px text, not a padded 610px box. */
@media(min-width:1200px) {
  .madime-home__editorial-copy { max-width:none; width:100%; padding-inline:8.333333vw; }
  .madime-home__editorial-copy h2 { max-width:520px; }
  .madime-home__editorial-copy p { max-width:511px; letter-spacing:1.5px; }
  .madime-category__hero:not(.madime-category__hero--without-cover) .madime-category__hero-copy {
    max-width:none; width:100%; padding:52px 3.6vw 52px 10.706vw;
  }
}
body#category .breadcrumb__wrapper { background:#fff; }
body#category .breadcrumb { font:400 13px/20.3px var(--madime-font-body); color:#c0c0c0; }
body#category .breadcrumb-link { color:#6f6f6f; }
body#category .breadcrumb-link:hover { color:#414141; }
@media(min-width:992px) {
  /* Figma category: breadcrumb begins at y=131; the 450px hero begins at y=202. */
  body#category .breadcrumb__wrapper { min-height:91px; margin-bottom:0; }
  body#category .breadcrumb { padding-block:20px; letter-spacing:.28px; }
  .madime-category__hero-copy h1 { margin-bottom:49.25px; }
  .madime-category__hero-copy p { letter-spacing:1.5px; }
}
body#category .product-miniature__top { border-radius:0; }
/* Mariage's full editorial text is longer than the Figma hero. Preserve it below products,
   with a short preview and an ordinary accessible anchor; category50/reference is unchanged. */
.madime-category__hero--long-description { height:auto; min-height:450px; }
.madime-category__hero--long-description .madime-category__hero-media { height:auto; min-height:450px; }
.madime-category__hero--long-description .madime-category__hero-image { min-height:450px; }
.madime-category__description-link {
  display:inline-block; margin-top:20px; color:#414141; font:400 14px/1.5 var(--madime-font-body);
  text-decoration:underline; text-underline-offset:4px;
}
.madime-category__description-link:hover { color:#161616; }
.madime-category__description-link:focus-visible { outline:2px solid #cab771; outline-offset:5px; }
.madime-category__full-description { margin:64px 0; scroll-margin-top:130px; color:#161616; }
.madime-category__full-description h2 {
  margin:0 0 28px; font:300 25px/1.3 var(--madime-font-heading); letter-spacing:1.5px; text-transform:uppercase;
}
.madime-category__full-description-content { max-width:1000px; font:400 18px/1.6 var(--madime-font-body); }
.madime-category__full-description-content blockquote { margin:0 0 24px; padding:0; border:0; background:transparent; }
.madime-category__full-description-content :is(p,span) { font-family:var(--madime-font-body); }
.madime-category__full-description-content :is(img,video,iframe) { max-width:100%; }
@media(max-width:991.98px) {
  .madime-category__hero--long-description { min-height:420px; }
  .madime-category__hero--long-description .madime-category__hero-media,
  .madime-category__hero--long-description .madime-category__hero-image { min-height:420px; }
}
@media(max-width:767.98px) {
  .madime-category__hero--long-description .madime-category__hero-media { height:320px; min-height:0; }
  .madime-category__hero--long-description .madime-category__hero-image { min-height:0; }
  .madime-category__full-description { margin:40px 0; scroll-margin-top:95px; }
  .madime-category__full-description h2 { font-size:20px; }
  .madime-category__full-description-content { font-size:16px; }
}
.madime-home__product-teaser { font-family:var(--madime-font-menu); }
.madime-home__product-teaser small,
.madime-home__occasion-card a,
.madime-home__editorial-copy a,
.madime-category__load-more,
.madime-category__journal-button,
.madime-product__actions .form-select,
.madime-product__actions .product__price,
.madime-product__actions .product__tax-infos,
.madime-product__actions .product__tax-label,
.madime-product__actions .product__add-to-cart-button,
.madime-product__actions .product__availability { font-family:var(--madime-font-body); }
.madime-category__load-more,
.madime-category__journal-button,
.madime-product__actions .product__add-to-cart-button { font-weight:500; }
#footer .footer__main { background:#fff!important; border:0; padding:32px 0; }
#footer .footer__main > .container { max-width:1440px; width:83.333333%; padding:0; }
.madime-footer__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:48px; }
#footer .madime-footer__grid h2 { font-family:var(--madime-font-heading); font-size:24px; font-weight:300; color:#878787; margin:0 0 12px; line-height:1.3; }
.madime-footer__grid ul { list-style:none; margin:0; padding:0; }
.madime-footer__grid li { margin-bottom:8px; }
#footer .madime-footer__grid a, #footer .madime-footer__newsletter p { color:#a5a5a5!important; font-family:'FuturaLight',sans-serif; font-size:18px; line-height:1.55; text-decoration:none; }
#footer .madime-footer__grid a:hover { color:#414141!important; text-decoration:underline; }
#footer .madime-footer__grid h2 a { font:inherit; color:inherit!important; }
.madime-footer__newsletter .ps-emailsubscription { background:transparent!important; padding:0!important; }
.madime-footer__newsletter .container { padding:0; }
.madime-footer__newsletter .row { display:block; margin:0; }
.madime-footer__newsletter .row > * { width:100%; padding:0; }
.madime-footer__newsletter .h3 { margin:22px 0 28px; }
.madime-footer__newsletter input.form-control { min-width:0; font:16px 'FuturaLight',sans-serif; border:1px solid #aaa; border-radius:0; }
.madime-footer__newsletter .btn { background:#fff; color:#666; border:1px solid #aaa; border-radius:0; font-size:12px; }
.madime-footer__newsletter .madime-newsletter__field { display:flex; align-items:stretch; margin-bottom:8px; }
.madime-footer__newsletter .madime-newsletter__field input { width:0; flex:1 1 auto; min-height:48px; }
.madime-footer__newsletter .madime-newsletter__submit { flex:0 0 48px; padding:0; border-left:0; }
.madime-footer__newsletter .madime-newsletter__submit .material-icons { font-size:32px; color:#999; }
.madime-footer__newsletter .madime-newsletter__submit:hover { background:#f4f4f4; }
.madime-footer__newsletter .madime-newsletter__submit:focus-visible { outline:2px solid #414141; outline-offset:2px; }
/* Reuse the existing unframed Facebook artwork; the reference has 34px glyphs. */
#footer .madime-footer__newsletter .ps-socialfollow a { display:inline-flex; align-items:center; color:#666!important; }
#footer .madime-footer__newsletter .ps-socialfollow a:hover { color:#414141!important; }
.madime-footer__newsletter .ps-socialfollow li { display:flex; }
.madime-footer__newsletter .ps-socialfollow svg,
.madime-footer__newsletter .madime-social-icon { width:34px; height:34px; flex:none; }
.madime-social-icon { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; vertical-align:middle; }
.madime-social-icon__facebook { display:block; width:25.2px; height:25.2px; max-width:none; flex:none; opacity:.6; }
.madime-footer__newsletter .madime-social-icon__facebook { width:47.55px; height:47.55px; }
.ps-socialfollow a:hover .madime-social-icon__facebook { opacity:.745; }
#footer .madime-footer__legal { border-top:1px solid #eee; margin-top:36px; padding-top:14px; display:flex; flex-wrap:wrap; gap:24px; }
#footer .madime-footer__legal a { font:12px 'Inter',sans-serif; color:#878787!important; }
@media(max-width:991.98px) {
  .madime-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
}
@media(max-width:575.98px) {
  .madime-footer__grid { grid-template-columns:1fr; gap:24px; }
  #footer .footer__main > .container { width:auto; margin-inline:20px; }
}

/* Quick views live outside .madime-product: retain the same shop controls. */
.quickview .product__add-to-cart-button {
  --bs-btn-bg:#414141;
  --bs-btn-border-color:#414141;
  --bs-btn-hover-bg:#161616;
  --bs-btn-hover-border-color:#161616;
  --bs-btn-active-bg:#161616;
  --bs-btn-active-border-color:#161616;
  --bs-btn-disabled-bg:#414141;
  --bs-btn-disabled-border-color:#414141;
  --bs-btn-focus-shadow-rgb:65,65,65;
  font-family:var(--madime-font-body);
  font-weight:500;
  border-radius:0;
}
.quickview :is(.product__name,.form-select,.product__price,.product__tax-infos,.quickview__details-link) {
  font-family:var(--madime-font-body);
}
.quickview .quickview__details-link { color:#414141; }
.quickview .quickview__details-link:hover { color:#161616; text-decoration:underline; }
.quickview .quickview__details-link:focus-visible { outline:2px solid #414141; outline-offset:3px; }

#header .submenu__left-item:is(.active,:hover,:focus-visible) {
  color:#414141;
  background-color:#f7f7f7;
}

/* Home reference 1:58-1:120: use document flow so live product names/prices
   can grow. The Figma card's sample price is never copied into the catalogue. */
.madime-home__product-teaser {
  display:grid; grid-template-columns:161px minmax(0,1fr); gap:0;
  width:446px; max-width:calc(100% - 80px); min-height:175px; padding:0;
  background:#fff; align-items:center;
}
.madime-home__teaser-image { display:block; width:174px; align-self:stretch; }
.madime-home__product-teaser .madime-home__teaser-image img {
  width:174px; height:100%; min-height:175px; object-fit:contain;
}
.madime-home__teaser-copy { position:relative; padding:35px 22px 32px 0; min-width:0; }
.madime-home__teaser-name {
  display:block; font:400 12px/17px var(--madime-font-menu); letter-spacing:.84px;
  text-transform:uppercase; color:#161616; text-decoration:none;
}
.madime-home .madime-home__teaser-reference {
  margin:10px 0 0; font-size:13.1px; line-height:18.2px; letter-spacing:.24px;
  color:#a5a5a5; text-transform:none;
}
.madime-home .madime-home__teaser-price {
  margin:3px 0 0; font-size:12.5px; line-height:20.3px; letter-spacing:.28px;
  color:#6f6f6f; text-transform:none;
}
.madime-home__teaser-wishlist {
  position:absolute; top:12px; right:14px; border:0; padding:0;
  background:transparent; width:20px; height:20px;
}
.madime-home__product-teaser .madime-home__teaser-wishlist img { width:16px; height:18px; }
.madime-home__teaser-details {
  position:absolute; right:15px; bottom:12px; color:#6f6f6f;
  font:400 13.3px/20.3px var(--madime-font-body); text-transform:none;
}
@media (min-width:1200px) {
  .madime-home__products .madime-home__product-grid { margin-bottom:25px; }
  .madime-home__categories { padding-top:60px; }
  .madime-home__category-grid { margin-bottom:25px; }
  .madime-home__category-grid h3 { margin-top:10px; line-height:18.2px; }
  .madime-home__occasion-grid, .madime-home__journal-grid { grid-template-columns:698fr 708fr; }
  .madime-home__occasion-card:first-child > img { aspect-ratio:698 / 428; }
  .madime-home__occasion-card h2 { margin-top:27px; }
  .madime-home__occasion-card p, .madime-home__journal-grid p {
    font-size:20px; line-height:28px; letter-spacing:1.5px;
  }
  .madime-home__occasion-card > a { display:inline-block; line-height:20.3px; }
  .madime-home__appointment { margin-top:118px; }
  .madime-home__appointment > img {
    position:absolute; width:109.47%; height:244.38%; max-width:none;
    left:-.02%; top:-66.19%; object-fit:cover;
  }
  .madime-home__appointment > div { top:72px; transform:translateX(-50%); }
  .madime-home__appointment h2 { margin-bottom:27.5px; }
  .madime-home__appointment + .madime-home__products { padding-top:65px; }
  .madime-home__appointment + .madime-home__products > h2 { margin-bottom:52px; }
  .madime-home__appointment + .madime-home__products .madime-home__product-grid { margin-bottom:45px; }
  .madime-home__editorial { margin-top:119px; }
  .madime-home__journal { margin-top:97px; padding-top:69px; }
  .madime-home__journal > h2 { margin-bottom:70px; }
  .madime-home__hero-copy p { letter-spacing:1.5px; margin-bottom:26px; }
  /* Reference buttons have explicit widths; text padding must not widen them. */
  .madime-home__button { width:278px; max-width:100%; padding-inline:8px; line-height:19.6px; }
  .madime-home__hero .madime-home__button { width:275px; }
  .madime-home__appointment .madime-home__button,
  .madime-home__appointment + .madime-home__products > .madime-home__button,
  .madime-home__journal > .madime-home__button { width:244px; }
  /* Shared baseline below the one- and two-line editorial headlines. */
  .madime-home__journal-grid h3 { min-height:65px; display:flex; align-items:center; margin-bottom:12px; }
  .madime-home__journal-grid p { margin-bottom:0; }
  .madime-home__journal-grid { margin-bottom:16px; }
  body#index #footer { margin-top:72px; }
  .madime-home__editorial-copy a { display:inline-block; line-height:20.3px; letter-spacing:.28px; }
  .madime-home__editorial-row:first-child .madime-home__editorial-copy p { margin-bottom:25px; }
}
@media (min-width:1600px) {
  /* The third Figma editorial has a lower optical centre and a two-line title. */
  .madime-home__editorial-row:nth-child(3) .madime-home__editorial-copy { transform:translateY(28px); }
  .madime-home__editorial-row:nth-child(3) .madime-home__editorial-copy h2 { margin-bottom:35px; }
}
@media (max-width:767.98px) {
  .madime-home__product-teaser {
    grid-template-columns:92px minmax(0,1fr); max-width:calc(100% - 40px);
  }
  .madime-home__teaser-image, .madime-home__product-teaser .madime-home__teaser-image img { width:92px; }
  .madime-home__teaser-copy { padding-right:15px; }
}

/* Final reference/coherence pass: use the same typography on category controls. */
body#category :is(.madime-category__filter-button,.madime-category__sort .products__sort-dropdown-button,.madime-category__sort .dropdown-menu,.madime-category__all-link,.madime-category__count,.madime-category__subcategory) {
  font-family:var(--madime-font-body);
}
@media (min-width:768px) {
  .madime-category__journal-grid { grid-template-columns:minmax(0,698fr) minmax(0,708fr); }
  body#category .madime-category__journal-grid p { font-size:20px; line-height:28px; letter-spacing:1.5px; }
}
/* The offcanvas already supplies this heading; retain it in standalone filters. */
@layer utilities {
  #offcanvas-faceted #search-filters > .left-block__title { display:none !important; }
}
.madime-product__details { scroll-margin-top:130px; }
/* Align all recommendation blocks to the same content rail, without nesting it. */
body#product .product__accessories { margin-inline:auto; max-width:1440px; width:83.3333%; }
body#product .ps-viewedproduct > .module-products.container { max-width:none; padding-inline:0; width:100%; }
.madime-product__details .product__description { overflow-wrap:anywhere; }
.madime-product__details .product__description :is(img,video,iframe) { max-width:100%; }
.madime-product__details .product__description img { height:auto; }
/* Provider iframe keeps its initial inline width on browser resize. */
#authentication .amazonPayButton { max-width:100%; }
@media (max-width:991.98px) {
  body#product .product__accessories { width:calc(100% - 32px); }
}
@media (max-width:767.98px) {
  .madime-product__details { scroll-margin-top:80px; }
}
/* Keep the last legal links above the fixed cookie control at maximum scroll. */
@media (max-width:575.98px) {
  #footer .footer__main { padding-bottom:calc(80px + env(safe-area-inset-bottom,0px)); }
}
