/* =================================================================
 * Rhein 1905 — Brand Theme Layer
 * Geneva. Since 1905.
 * Loads on top of PrestaShop Classic theme.
 * ================================================================= */

:root {
  /* Brand palette — derived from the gold tobacco-leaf logo */
  --rhein-gold:       #A1885A;
  --rhein-gold-dark:  #8A7148;
  --rhein-gold-light: #C7B186;
  --rhein-espresso:   #2B1F17;
  --rhein-havana:     #6E4A26;
  --rhein-black:      #161311;
  --rhein-ivory:      #F5EFE3;
  --rhein-paper:      #F5EFE3;
  --rhein-card:       #FAF7F0;
  --rhein-line:       #E5DDC9;
  --rhein-oxblood:    #6B2A2A;
  --rhein-muted:      #6B5E4E;

  /* Typography — Cormorant auto-hébergé (latin) + polices système CJK.
   * Cormorant ne porte que le latin (unicode-range) : le chinois retombe
   * automatiquement sur la 1re police CJK disponible de la pile. */
  --rhein-serif:  'Cormorant Garamond', 'Songti SC', 'STSong', 'Source Han Serif SC', 'Noto Serif SC', 'SimSun', 'Times New Roman', serif;
  --rhein-sans:   -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', 'Source Han Sans SC', 'Noto Sans SC', system-ui, sans-serif;

  /* Spacing rhythm */
  --rhein-section-y:   clamp(4rem, 8vw, 7rem);
  --rhein-content-max: 1280px;
  --rhein-radius:      2px;
  --rhein-radius-lg:   4px;
}

/* Locales CJK : serif système élégant (Songti/STSong sur Apple, SimSun sur
 * Windows) pour le chinois ; Cormorant reste devant pour les mots latins
 * (RHEIN 1905, COHIBA…) grâce à son unicode-range latin. */
html[lang^="zh"] {
  --rhein-serif: 'Cormorant Garamond', 'Songti SC', 'STSong', 'Source Han Serif SC', 'Noto Serif SC', 'SimSun', serif;
  --rhein-sans:  -apple-system, 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', 'Source Han Sans SC', 'Noto Sans SC', system-ui, sans-serif;
}

/* ---------- Base ---------- */
html, body {
  background: var(--rhein-paper) !important;
  color: var(--rhein-espresso);
  font-family: var(--rhein-sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* Classic theme's #wrapper has a grey bg + top padding that breaks our
   cream uniform look. Force it transparent to inherit body. */
#wrapper {
  background: var(--rhein-paper) !important;
  padding-top: 0 !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--rhein-serif);
  font-weight: 500;
  color: var(--rhein-espresso);
  letter-spacing: 0.005em;
  line-height: 1.15;
}

h1, .h1 { font-size: clamp(2.25rem, 4vw, 3.5rem); }
h2, .h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3, .h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }

a { color: var(--rhein-espresso); text-decoration: none; transition: color .18s ease; }
a:hover, a:focus { color: var(--rhein-gold); }

::selection { background: var(--rhein-gold); color: #fff; }

/* =================================================================
 * HEADER — Rhein 1905
 * Custom header.tpl override replaces classic's .header-top/.header-nav.
 * Layout:
 *   .rhein-header
 *     .rhein-header__utility   (thin espresso strip: contact / lang / login / cart)
 *     .rhein-header__main      (paper bar: logo + menu + search trigger)
 *     .rhein-header__search-overlay  (full-screen, hidden by default)
 * ================================================================= */

/* Neutralise classic's original header containers (we render our own). */
.header-top,
.header-nav { display: none !important; }

/* Currency selector hidden globally — single CHF. */
.currency-selector,
#_desktop_currency_selector,
#_mobile_currency_selector { display: none !important; }

.rhein-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--rhein-paper);
  border-bottom: 1px solid var(--rhein-line);
}

/* ---------- Utility bar ---------- */
.rhein-header__utility {
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.55rem 0;
}
.rhein-header__utility a,
.rhein-header__utility a:visited {
  color: var(--rhein-gold-light);
  text-decoration: none;
  transition: color 0.2s ease;
}
.rhein-header__utility a:hover { color: #fff; }
.rhein-header__utility-inner {
  max-width: var(--rhein-content-max);
  margin: 0 auto;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 24px;
}
.rhein-header__utility-left { flex: 1 1 auto; }
.rhein-header__utility-right {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex: 0 0 auto;
}
/* Module wrappers in the right slot — render inline */
.rhein-header__utility-right > div,
.rhein-header__utility-right .language-selector-wrapper,
.rhein-header__utility-right .user-info,
.rhein-header__utility-right .blockcart {
  display: inline-flex !important;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  background: transparent;
  padding: 0;
}
.rhein-header__utility-right .blockcart .header > a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--rhein-gold-light);
}
.rhein-header__utility-right .blockcart .cart-products-count {
  font-family: var(--rhein-sans);
  letter-spacing: 0.1em;
}
/* Material icons inside the utility bar — small and gold */
.rhein-header__utility .material-icons {
  font-size: 0.95rem;
  color: var(--rhein-gold-light);
  vertical-align: middle;
}
/* Contact link wrapper from ps_contactinfo nav.tpl */
.rhein-header__utility #_desktop_contact_link,
.rhein-header__utility #contact-link {
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* Language selector — show "FR/EN/...", hide material-icons chevron, draw our own */
.language-selector,
.language-selector-wrapper {
  position: relative;
  padding: 0;
}
.language-selector .btn-unstyle,
.language-selector button[data-toggle="dropdown"] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: transparent;
  border: 0;
  padding: 0;
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  cursor: pointer;
}
.language-selector .btn-unstyle:hover,
.language-selector button[data-toggle="dropdown"]:hover { color: #fff; }

/* ---------- BLANKET text-color override for the utility bar ----------
   Classic's stylesheet has many highly-specific dark colors (#232323, #7a7a7a)
   that bleed into our espresso utility bar. This rule forces every textual
   descendant to gold-light by default, with white on hover for links/buttons.
   Place AFTER all other .rhein-header__utility rules so it wins the cascade. */
.rhein-header__utility,
.rhein-header__utility *:not(.material-icons):not(i) {
  color: var(--rhein-gold-light) !important;
}
.rhein-header__utility .material-icons,
.rhein-header__utility i.material-icons {
  color: var(--rhein-gold-light) !important;
}
.rhein-header__utility a:hover,
.rhein-header__utility a:hover *,
.rhein-header__utility button:hover,
.rhein-header__utility button:hover *,
.rhein-header__utility .language-selector:hover *,
.rhein-header__utility .user-info:hover *,
.rhein-header__utility .blockcart:hover * {
  color: #fff !important;
}
/* Dropdown panel items keep their own dark-on-paper styling (they sit on
   paper background, not espresso) */
.rhein-header__utility .dropdown-menu,
.rhein-header__utility .dropdown-menu * {
  color: var(--rhein-espresso) !important;
}
.rhein-header__utility .dropdown-menu a:hover,
.rhein-header__utility .dropdown-menu .dropdown-item:hover {
  color: var(--rhein-gold) !important;
}

/* Hide ONLY the material-icons glyph (the <i>), keep the <span class="expand-more"> text visible */
.language-selector i.material-icons,
.language-selector i.expand-more {
  font-size: 0 !important;
  line-height: 0 !important;
  width: 0 !important;
  height: 0 !important;
  visibility: hidden;
  margin: 0 !important;
}

/* Custom chevron after the language code */
.language-selector .btn-unstyle::after,
.language-selector button[data-toggle="dropdown"]::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-left: 0.15rem;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-1px) rotate(45deg);
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.language-selector:hover .btn-unstyle::after,
.language-selector:hover button[data-toggle="dropdown"]::after { opacity: 1; }

/* Language dropdown panel */
.language-selector .dropdown-menu {
  position: absolute;
  top: calc(100% + 0.6rem);
  right: 0;
  min-width: 120px;
  margin: 0;
  padding: 0.4rem 0;
  background: var(--rhein-paper);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius);
  box-shadow: 0 6px 20px rgba(22,19,17,0.12);
  list-style: none;
  z-index: 50;
}
.language-selector .dropdown-menu li { margin: 0; padding: 0; list-style: none; }
.language-selector .dropdown-menu a,
.language-selector .dropdown-menu .dropdown-item {
  display: block;
  padding: 0.45rem 1rem;
  color: var(--rhein-espresso) !important;
  font-family: var(--rhein-sans);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.language-selector .dropdown-menu a:hover,
.language-selector .dropdown-menu .dropdown-item:hover {
  background: var(--rhein-ivory);
  color: var(--rhein-gold) !important;
}
.language-selector .dropdown-menu li.current a { color: var(--rhein-gold) !important; }

/* Mobile native select fallback in the dropdown — keep hidden on desktop */
.language-selector select.link.hidden-md-up { display: none; }
@media (max-width: 900px) {
  .language-selector .dropdown-menu { display: none !important; }
  .language-selector select.link.hidden-md-up {
    display: inline-block;
    background: transparent;
    border: 0;
    color: var(--rhein-gold-light);
    font-family: var(--rhein-sans);
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }
}

/* Contact link in utility bar — force visible, classic hides #_desktop_contact_link in some viewports */
.rhein-header__utility #_desktop_contact_link,
.rhein-header__utility #contact-link {
  display: inline-block !important;
  color: var(--rhein-gold-light);
}
.rhein-header__utility #contact-link a {
  color: var(--rhein-gold-light);
  text-decoration: none;
}
.rhein-header__utility #contact-link a:hover { color: #fff; }
.rhein-header__utility #contact-link span { color: #fff; font-weight: 500; }

/* User-info (sign-in) link in utility bar */
.rhein-header__utility .user-info a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--rhein-gold-light);
}
.rhein-header__utility .user-info a:hover { color: #fff; }
.rhein-header__utility .user-info .material-icons {
  font-size: 0.95rem !important;
  width: auto !important;
  height: auto !important;
  visibility: visible;
}

/* Cart link in utility bar */
.rhein-header__utility .blockcart .header > a {
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
}
.rhein-header__utility .blockcart .header > a:hover { color: #fff; }
.rhein-header__utility .blockcart .material-icons {
  font-size: 1rem !important;
  width: auto !important;
  height: auto !important;
  visibility: visible;
}

/* ---------- Main bar ---------- */
.rhein-header__main { background: var(--rhein-paper); }
.rhein-header__main-inner {
  max-width: var(--rhein-content-max);
  margin: 0 auto;
  padding: 1.1rem 1.5rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.5rem;
}
@media (max-width: 900px) {
  .rhein-header__main-inner {
    grid-template-columns: auto 1fr auto;
    padding: 0.85rem 1rem;
  }
}

.rhein-header__logo {
  display: flex;
  align-items: center;
  justify-self: start;
}
.rhein-header__logo h1.rhein-header__logo-h1 {
  margin: 0;
  padding: 0;
  font-size: 0;
  line-height: 0;
}
.rhein-header__logo a { display: inline-block; line-height: 0; }
.rhein-header__logo img {
  display: block;
  max-height: 60px;
  width: auto;
}
@media (max-width: 600px) {
  .rhein-header__logo img { max-height: 44px; }
}

/* Center the logo on small screens (menu becomes a drawer) */
@media (max-width: 900px) {
  .rhein-header__main-inner { grid-template-columns: auto 1fr auto; }
  .rhein-header__logo { justify-self: center; }
}

.rhein-header__nav-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
}
/* Hide any ps_searchbar that lands inside displayTop — we render search
   only via displaySearch inside the overlay. */
.rhein-header__nav-wrap #search_widget,
.rhein-header__nav-wrap .search-widgets { display: none !important; }

/* Main menu — overrides classic's .top-menu a[data-depth="0"] specificity */
.rhein-header__nav-wrap .menu,
.rhein-header__nav-wrap #_desktop_top_menu {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  float: none !important;
}
.rhein-header__nav-wrap .top-menu,
.rhein-header__nav-wrap ul.top-menu,
.rhein-header__nav-wrap ul#top-menu {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 1.5rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
.rhein-header__nav-wrap .top-menu > li {
  white-space: nowrap;
}
.rhein-header__nav-wrap .top-menu > li {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  float: none !important;
}
.rhein-header__nav-wrap .top-menu > li > a,
.rhein-header__nav-wrap .top-menu > li > a[data-depth="0"],
.rhein-header__nav-wrap .top-menu a.dropdown-item[data-depth="0"] {
  display: inline-block;
  position: relative;
  padding: 0.55rem 0 !important;
  margin: 0;
  font-family: var(--rhein-sans);
  font-weight: 500 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--rhein-espresso) !important;
  text-decoration: none;
  border: 0 !important;
  background: transparent !important;
  transition: color 0.2s ease;
}
.rhein-header__nav-wrap .top-menu > li > a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--rhein-gold);
  transform: translateX(-50%);
  transition: width 0.3s ease;
}
.rhein-header__nav-wrap .top-menu > li:hover > a,
.rhein-header__nav-wrap .top-menu > li > a:hover {
  color: var(--rhein-gold) !important;
}
.rhein-header__nav-wrap .top-menu > li:hover > a::after,
.rhein-header__nav-wrap .top-menu > li > a:hover::after { width: 100%; }

/* Sub-menu dropdowns — open on hover (desktop).
   !important on top/left/transform neutralises classic theme.js, which on
   every li mouseenter rewrites inline `top: li.height + li.position().top`.
   That formula is wrong when the li's offset parent isn't its direct parent
   (our custom flex layout) — it pushes the panel ~150px below the li, opens
   a dead zone the cursor can't cross before the hover-intent timer fires. */
.rhein-header__nav-wrap .top-menu > li > .popover.sub-menu,
.rhein-header__nav-wrap .top-menu > li > .sub-menu,
.rhein-header__nav-wrap .top-menu > li > .js-sub-menu {
  display: block !important;
  position: absolute;
  top: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  min-width: 220px;
  margin: 0;
  padding: 0.6rem 0;
  background: var(--rhein-paper);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius);
  box-shadow: 0 8px 28px rgba(22,19,17,0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.08s ease, visibility 0s ease 0.08s;
  z-index: 60;
  width: auto !important;
  min-width: 220px !important;
  max-width: 320px;
}

/* Invisible bridge above the panel to absorb the padding gap between the
   li bottom and the panel's first item. Without it, slow cursor moves
   through the gap drop the hover before reaching the panel. */
.rhein-header__nav-wrap .top-menu > li > .popover.sub-menu::before,
.rhein-header__nav-wrap .top-menu > li > .sub-menu::before,
.rhein-header__nav-wrap .top-menu > li > .js-sub-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  height: 10px;
  background: transparent;
}

/* Open state — driven by JS hoverIntent (see rhein.js setupMenuHoverIntent).
   Native :hover is kept as fallback for graceful degradation if JS fails. */
.rhein-header__nav-wrap .top-menu > li:hover > .popover.sub-menu,
.rhein-header__nav-wrap .top-menu > li:hover > .sub-menu,
.rhein-header__nav-wrap .top-menu > li:hover > .js-sub-menu,
.rhein-header__nav-wrap .top-menu > li.is-open > .popover.sub-menu,
.rhein-header__nav-wrap .top-menu > li.is-open > .sub-menu,
.rhein-header__nav-wrap .top-menu > li.is-open > .js-sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%);
  transition: opacity 0.08s ease, visibility 0s ease;
}
.rhein-header__nav-wrap .sub-menu ul,
.rhein-header__nav-wrap .sub-menu .top-menu {
  display: block !important;
  margin: 0;
  padding: 0;
  list-style: none;
  background: transparent;
  box-shadow: none;
  border: 0;
}
.rhein-header__nav-wrap .sub-menu ul > li,
.rhein-header__nav-wrap .sub-menu .top-menu > li {
  display: block;
  margin: 0;
  padding: 0;
  border: 0 !important;
  float: none !important;
}
.rhein-header__nav-wrap .sub-menu a,
.rhein-header__nav-wrap .sub-menu a.dropdown-item,
.rhein-header__nav-wrap .sub-menu a.dropdown-submenu {
  display: block;
  padding: 0.5rem 1.2rem !important;
  font-family: var(--rhein-sans);
  font-weight: 400 !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.06em;
  text-transform: none !important;
  color: var(--rhein-espresso) !important;
  border: 0 !important;
  background: transparent !important;
  transition: background 0.15s ease, color 0.15s ease;
}
.rhein-header__nav-wrap .sub-menu a:hover {
  background: var(--rhein-ivory);
  color: var(--rhein-gold) !important;
}

/* Hide the BS collapse toggles inside menu items (mobile-only chevrons) */
.rhein-header__nav-wrap .navbar-toggler,
.rhein-header__nav-wrap .collapse-icons { display: none !important; }

/* Home page: keep the cover pure on desktop. The markup stays in the
   DOM so classic's responsive JS can still clone #_desktop_top_menu
   into the mobile drawer (#_mobile_top_menu). */
.rhein-header__nav-wrap.is-home-hidden { display: none !important; }

@media (max-width: 900px) {
  .rhein-header__nav-wrap { display: none !important; }
}

/* ---------- Actions (search + mobile cart/user) ---------- */
.rhein-header__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  justify-self: end;
}

/* Shop CTA pill */
.rhein-header__cta {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: 0.7rem 1.6rem;
  background: var(--rhein-espresso);
  color: var(--rhein-ivory) !important;
  border: 1px solid var(--rhein-espresso);
  border-radius: var(--rhein-radius);
  font-family: var(--rhein-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
  position: relative;
}
.rhein-header__cta::after {
  content: "";
  display: inline-block;
  margin-left: 0.7rem;
  width: 14px;
  height: 1px;
  background: currentColor;
  opacity: 0.7;
  transition: width 0.25s ease, opacity 0.25s ease;
}
.rhein-header__cta:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
  color: #fff !important;
}
.rhein-header__cta:hover::after { width: 22px; opacity: 1; }
.rhein-header__cta:focus-visible {
  outline: 2px solid var(--rhein-gold);
  outline-offset: 3px;
}
@media (max-width: 600px) {
  .rhein-header__cta {
    padding: 0.55rem 1rem;
    font-size: 0.68rem;
    letter-spacing: 0.16em;
  }
  .rhein-header__cta::after { display: none; }
}
@media (max-width: 420px) {
  .rhein-header__cta { display: none; }
}

.rhein-header__search-toggle {
  background: transparent;
  border: 0;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--rhein-espresso);
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease;
}
.rhein-header__search-toggle:hover {
  color: var(--rhein-gold);
  background: rgba(161, 136, 90, 0.08);
}
.rhein-header__search-toggle:focus-visible {
  outline: 2px solid var(--rhein-gold);
  outline-offset: 2px;
}

.rhein-header__mobile-actions {
  display: none;
  align-items: center;
  gap: 0.25rem;
}
@media (max-width: 900px) {
  .rhein-header__mobile-actions { display: inline-flex; }
}

/* ---------- Mobile menu toggle (hamburger) ---------- */
.rhein-header__menu-toggle {
  display: none;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 0;
  padding: 10px 8px;
  cursor: pointer;
  flex-direction: column;
  justify-content: space-between;
  justify-self: start;
}
.rhein-header__menu-toggle span {
  display: block;
  height: 1px;
  width: 100%;
  background: var(--rhein-espresso);
  transition: transform 0.25s ease, opacity 0.2s ease;
}
@media (max-width: 900px) {
  .rhein-header__menu-toggle { display: inline-flex; }
  .rhein-header__utility-left { display: none; }
}

/* ---------- Search overlay ---------- */
.rhein-header__search-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(4rem, 12vh, 8rem) 1.5rem 2rem;
  animation: rhein-search-in 0.25s ease both;
}
.rhein-header__search-overlay[hidden] { display: none; }
.rhein-header__search-overlay-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(22, 19, 17, 0.92);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.rhein-header__search-overlay-inner {
  position: relative;
  width: 100%;
  max-width: 720px;
  padding-top: 0.5rem;
}
.rhein-header__search-overlay-eyebrow {
  display: block;
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  margin-bottom: 1.25rem;
}
.rhein-header__search-close {
  position: absolute;
  top: -0.5rem;
  right: -0.25rem;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 0;
  color: var(--rhein-ivory);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}
.rhein-header__search-close:hover { color: var(--rhein-gold); }

/* Search widget styling — overlay context only */
.rhein-header__search-overlay #search_widget,
.rhein-header__search-overlay .search-widgets {
  display: block !important;
  width: 100%;
  max-width: none;
  background: transparent;
}
.rhein-header__search-overlay #search_widget form,
.rhein-header__search-overlay .search-widgets form {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 1rem;
  width: 100%;
  margin: 0;
  padding: 1rem 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rhein-gold-light);
  position: relative;
}
.rhein-header__search-overlay form .material-icons {
  flex: 0 0 auto;
  font-size: 1.5rem !important;
  width: auto !important;
  height: auto !important;
  color: var(--rhein-gold-light);
  opacity: 1;
  cursor: default;
  visibility: visible;
  font-family: 'Material Icons' !important;
  display: inline-block;
}
.rhein-header__search-overlay form .material-icons.clear { display: none !important; }
.rhein-header__search-overlay form input[type="text"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: transparent;
  border: 0;
  outline: 0;
  padding: 0.25rem 0;
  font-family: var(--rhein-serif);
  font-weight: 400;
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: var(--rhein-ivory);
}
.rhein-header__search-overlay form input[type="text"]::placeholder {
  color: rgba(245, 239, 227, 0.45);
  font-style: italic;
}

/* Lock body scroll when overlay open (toggled by rhein.js) */
body.rhein-search-open { overflow: hidden; }

@keyframes rhein-search-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ---------- Buttons — refined gold CTA ---------- */
.btn-primary,
.btn-rhein {
  background: var(--rhein-havana);
  border: 1px solid var(--rhein-havana);
  color: var(--rhein-ivory);
  font-family: var(--rhein-sans);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
  padding: 0.95rem 2rem;
  border-radius: var(--rhein-radius);
  transition: all .2s ease;
}
.btn-primary:hover, .btn-rhein:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
  color: #fff;
}

.btn-rhein-outline {
  background: transparent;
  border: 1px solid var(--rhein-gold);
  color: var(--rhein-gold);
  font-family: var(--rhein-sans);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
  padding: 0.95rem 2rem;
  border-radius: var(--rhein-radius);
  transition: all .2s ease;
}
.btn-rhein-outline:hover {
  background: var(--rhein-gold);
  color: #fff;
}

/* ---------- Hero ---------- */
.rhein-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: var(--rhein-black);
  color: var(--rhein-ivory);
  overflow: hidden;
}
.rhein-hero__media {
  position: absolute; inset: 0;
  background-position: center;
  background-size: cover;
  filter: brightness(0.55) saturate(0.95);
  transform: scale(1.02);
}
.rhein-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    rgba(0,0,0,0.15) 0%,
    rgba(0,0,0,0.05) 40%,
    rgba(0,0,0,0.55) 100%);
}
.rhein-hero__content {
  position: relative;
  z-index: 2;
  max-width: 960px;
  padding: 0 1.5rem;
}
.rhein-hero__eyebrow {
  font-family: var(--rhein-sans);
  font-size: 0.78rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  margin-bottom: 1.25rem;
  display: inline-block;
}
.rhein-hero__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 6vw, 5rem);
  line-height: 1.05;
  margin: 0 0 1.25rem;
  color: var(--rhein-ivory);
}
.rhein-hero__title em {
  font-style: italic;
  color: var(--rhein-gold-light);
  font-weight: 400;
}
.rhein-hero__subtitle {
  font-family: var(--rhein-sans);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  font-weight: 300;
  letter-spacing: 0.02em;
  color: var(--rhein-ivory);
  opacity: 0.92;
  max-width: 640px;
  margin: 0 auto 2.25rem;
}
.rhein-hero__actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ---------- Heritage strip ---------- */
.rhein-heritage {
  background: var(--rhein-ivory);
  padding: var(--rhein-section-y) 1.5rem;
  text-align: center;
  border-top: 1px solid var(--rhein-line);
  border-bottom: 1px solid var(--rhein-line);
}
.rhein-heritage__inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
@media (max-width: 720px) {
  .rhein-heritage__inner { grid-template-columns: 1fr; gap: 2.5rem; }
}
.rhein-heritage__stat { padding: 0 1rem; }
.rhein-heritage__num {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(2.5rem, 5vw, 4rem);
  color: var(--rhein-gold);
  line-height: 1;
  display: block;
  margin-bottom: 0.5rem;
}
.rhein-heritage__label {
  font-family: var(--rhein-sans);
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rhein-muted);
}

/* ---------- Section title (shared) ---------- */
.rhein-section-head {
  text-align: center;
  margin: 0 auto 3rem;
  max-width: 760px;
  padding: 0 1.5rem;
}
.rhein-section-head__eyebrow {
  font-family: var(--rhein-sans);
  font-size: 0.75rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  margin-bottom: 0.85rem;
  display: block;
}
.rhein-section-head__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(1.85rem, 3.4vw, 2.6rem);
  margin: 0 0 0.85rem;
  color: var(--rhein-espresso);
}
.rhein-section-head__lead {
  font-size: 1.05rem;
  color: var(--rhein-muted);
  font-weight: 300;
}

/* ---------- Collections grid ---------- */
.rhein-collections {
  padding: var(--rhein-section-y) 0;
  background: var(--rhein-paper);
}
.rhein-collections__grid {
  max-width: var(--rhein-content-max);
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 980px) {
  .rhein-collections__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .rhein-collections__grid { grid-template-columns: 1fr; }
}
.rhein-collection-card {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--rhein-espresso);
  border-radius: var(--rhein-radius-lg);
  color: var(--rhein-ivory);
  text-decoration: none;
}
.rhein-collection-card__media {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .9s ease;
  filter: brightness(0.7);
}
.rhein-collection-card:hover .rhein-collection-card__media { transform: scale(1.06); }
.rhein-collection-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.75) 100%);
}
.rhein-collection-card__content {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.75rem 1.5rem;
  z-index: 2;
}
.rhein-collection-card__eyebrow {
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  display: block;
  margin-bottom: 0.4rem;
}
.rhein-collection-card__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: 1.6rem;
  margin: 0 0 0.5rem;
  color: #fff;
}
.rhein-collection-card__cta {
  font-family: var(--rhein-sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  border-bottom: 1px solid var(--rhein-gold-light);
  padding-bottom: 2px;
}

/* ---------- Editorial story block ---------- */
.rhein-story {
  padding: var(--rhein-section-y) 0;
  background: var(--rhein-ivory);
  scroll-margin-top: 100px; /* offset for sticky header on anchor scroll */
}
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
.rhein-story__inner {
  max-width: var(--rhein-content-max);
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
@media (max-width: 900px) {
  .rhein-story__inner { grid-template-columns: 1fr; gap: 2rem; }
}
.rhein-story__media {
  margin: 0;
  padding: 0;
  display: block;
  border-radius: var(--rhein-radius-lg);
  overflow: hidden;
  line-height: 0;
  background: transparent;
}
.rhein-story__media img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.rhein-story__eyebrow {
  font-family: var(--rhein-sans);
  font-size: 0.75rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  display: block;
  margin-bottom: 0.85rem;
}
.rhein-story__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(1.85rem, 3vw, 2.4rem);
  margin: 0 0 1.25rem;
}
.rhein-story__copy p {
  color: var(--rhein-muted);
  margin-bottom: 1.1rem;
  font-size: 1.05rem;
  line-height: 1.75;
  font-weight: 300;
}
.rhein-story__signature {
  font-family: var(--rhein-serif);
  font-style: italic;
  color: var(--rhein-gold);
  font-size: 1.1rem;
  margin-top: 1.5rem;
}

/* ---------- Concierge block (private clients HK / CN) ---------- */
.rhein-concierge {
  padding: var(--rhein-section-y) 0;
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  text-align: center;
}
.rhein-concierge__inner {
  max-width: 820px; margin: 0 auto; padding: 0 1.5rem;
}
.rhein-concierge h2 { color: var(--rhein-ivory); }
.rhein-concierge p { color: var(--rhein-gold-light); font-weight: 300; }
.rhein-concierge__channels {
  display: flex; gap: 1rem; justify-content: center;
  margin-top: 2rem; flex-wrap: wrap;
}
.rhein-concierge__channel {
  background: transparent;
  border: 1px solid var(--rhein-gold);
  color: var(--rhein-gold-light);
  padding: 0.85rem 1.75rem;
  border-radius: var(--rhein-radius);
  font-family: var(--rhein-sans);
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: all .2s ease;
}
.rhein-concierge__channel:hover {
  background: var(--rhein-gold);
  color: var(--rhein-espresso);
  border-color: var(--rhein-gold);
}

/* ---------- Newsletter band ---------- */
.rhein-newsletter {
  padding: calc(var(--rhein-section-y) * 0.7) 1.5rem;
  background: var(--rhein-ivory);
  text-align: center;
  border-top: 1px solid var(--rhein-line);
}
.rhein-newsletter__inner { max-width: 640px; margin: 0 auto; }
.rhein-newsletter h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); margin-bottom: 0.5rem; }
.rhein-newsletter__lead { color: var(--rhein-muted); font-weight: 300; margin-bottom: 1.5rem; }

/* ---------- Footer overrides ---------- */
.footer-container {
  background: var(--rhein-black);
  color: var(--rhein-ivory);
  padding-top: 4rem;
}
.footer-container h3, .footer-container .h3 { color: var(--rhein-gold-light); font-size: 0.85rem; letter-spacing: 0.18em; text-transform: uppercase; font-family: var(--rhein-sans); }
.footer-container a { color: var(--rhein-ivory); opacity: 0.78; }
.footer-container a:hover { color: var(--rhein-gold); opacity: 1; }
.footer-container .links ul li a { font-size: 0.92rem; }

/* ---------- Product card refinements (luxe asiatique : or sur creme) ---------- */
.product-miniature {
  background: var(--rhein-card);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius-lg);
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: border-color .28s ease, transform .28s ease, box-shadow .28s ease;
}
.product-miniature:hover {
  border-color: var(--rhein-gold);
  transform: translateY(-5px);
  box-shadow: 0 18px 38px -16px rgba(43, 31, 23, .38);
}

/* --- Cadre image + zoom lent au survol --- */
.product-miniature .thumbnail-top {
  position: relative;
  overflow: hidden;
  background: #fff;
}
/* fin filet or revele sous l'image au survol */
.product-miniature .thumbnail-top::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rhein-gold-light), var(--rhein-gold), var(--rhein-gold-light), transparent);
  opacity: 0;
  transition: opacity .28s ease;
  z-index: 2;
}
.product-miniature:hover .thumbnail-top::after { opacity: 1; }

.product-miniature .thumbnail.product-thumbnail { display: block; overflow: hidden; }
.product-miniature .thumbnail.product-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .65s cubic-bezier(.2, .7, .2, 1);
  will-change: transform;
}
.product-miniature:hover .thumbnail.product-thumbnail img { transform: scale(1.06); }

/* --- Bloc texte : centre, prix colle en bas pour aligner les cartes --- */
.product-miniature .product-description {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1 1 auto;
  padding: 1.05rem 1.1rem 1.3rem;
}
.product-miniature .product-title { margin: 0 0 .35rem; }
.product-miniature .product-title a {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: 1.22rem;
  line-height: 1.22;
  letter-spacing: .01em;
  color: var(--rhein-espresso);
  transition: color .2s ease;
}
.product-miniature:hover .product-title a { color: var(--rhein-havana); }

/* --- Prix : Cormorant, presence forte, filet or centre au-dessus --- */
.product-miniature .product-price-and-shipping {
  margin-top: auto;
  padding-top: .8rem;
  position: relative;
}
.product-miniature .product-price-and-shipping::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 30px; height: 2px;
  background: var(--rhein-gold);
}
.product-miniature .product-price-and-shipping .price {
  font-family: var(--rhein-serif);
  font-weight: 600;
  font-size: 1.4rem;
  color: var(--rhein-espresso);
  letter-spacing: .01em;
}

/* --- Coeur wishlist : discret au repos, or au survol --- */
.product-miniature .wishlist-button {
  background: rgba(250, 247, 240, .85);
  backdrop-filter: blur(2px);
  border: 1px solid var(--rhein-line);
  color: var(--rhein-muted);
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.product-miniature .wishlist-button:hover {
  color: var(--rhein-gold);
  border-color: var(--rhein-gold);
  background: #fff;
}

/* ---------- Page hero (generic, smaller than home hero) ---------- */
.rhein-page-hero {
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  padding: clamp(4rem, 9vw, 7rem) 1.5rem;
  text-align: center;
  position: relative;
}
.rhein-page-hero::after {
  content: '';
  position: absolute; left: 50%; bottom: 0;
  width: 60px; height: 1px;
  background: var(--rhein-gold);
  transform: translateX(-50%);
}
.rhein-page-hero__inner { max-width: 880px; margin: 0 auto; }
.rhein-page-hero__eyebrow {
  font-family: var(--rhein-sans);
  font-size: 0.75rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  display: inline-block;
  margin-bottom: 1.25rem;
}
.rhein-page-hero__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height: 1.1;
  margin: 0 0 1rem;
  color: var(--rhein-ivory);
}
.rhein-page-hero__lead {
  font-size: 1.05rem;
  color: var(--rhein-gold-light);
  font-weight: 300;
  max-width: 640px;
  margin: 0 auto;
  line-height: 1.6;
}

/* ---------- Contact page two-column ---------- */
.rhein-contact {
  background: var(--rhein-paper);
  padding: var(--rhein-section-y) 1.5rem;
}
.rhein-contact__inner {
  /* Stacked single column — form on top, address card below.
     Narrower max-width than the page so the cards keep a comfortable
     reading width instead of stretching the full 1280px. */
  max-width: var(--rhein-content-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: start;
}
/* Address card above the form (override DOM order, which is form-first).
   CSS-only reorder — no .tpl change needed. */
.rhein-contact__inner .rhein-contact__card { order: -1; }
.rhein-contact__inner .rhein-contact__form { order: 0; }

.rhein-contact__sub {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  margin: 0 0 1.5rem;
  color: var(--rhein-espresso);
  position: relative;
  padding-bottom: 1rem;
}
.rhein-contact__sub::after {
  content: '';
  position: absolute; left: 0; bottom: 0;
  width: 40px; height: 1px;
  background: var(--rhein-gold);
}

.rhein-contact__form {
  background: var(--rhein-card);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius-lg);
  padding: clamp(2rem, 4vw, 3.5rem);
}
@media (max-width: 600px) {
  .rhein-contact__form { padding: 1.5rem; }
}

/* ----- Custom contactform widget (Rhein override) ----- */
.rhein-cf__form { margin: 0; }

.rhein-cf__notice {
  padding: 1rem 1.25rem;
  border-radius: var(--rhein-radius);
  margin-bottom: 1.5rem;
  font-size: 0.92rem;
}
.rhein-cf__notice--success { background: #EDF5EE; color: #2E5C36; border: 1px solid #C7DFC9; }
.rhein-cf__notice--error   { background: #F9EDED; color: #6B2A2A; border: 1px solid #E2C7C7; }
.rhein-cf__notice ul { margin: 0; padding: 0; list-style: none; }

.rhein-cf__fields { display: grid; gap: 1.25rem; }

.rhein-cf__field { display: block; }

.rhein-cf__label {
  display: block;
  margin-bottom: 0.55rem;
  font-family: var(--rhein-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rhein-muted);
  font-weight: 500;
}

.rhein-cf__input,
.rhein-cf__select,
.rhein-cf__textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius);
  background-color: #FBF8F1;
  padding: 0.95rem 1.1rem;
  font-family: var(--rhein-sans);
  font-size: 0.95rem;
  color: var(--rhein-espresso);
  line-height: 1.4;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.rhein-cf__input:focus,
.rhein-cf__select:focus,
.rhein-cf__textarea:focus {
  border-color: var(--rhein-gold);
  background-color: #fff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(161,136,90,0.15);
}

.rhein-cf__select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23A1885A' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1.1rem center;
  background-size: 12px 8px;
  padding-right: 2.75rem;
  cursor: pointer;
}

.rhein-cf__textarea {
  min-height: 160px;
  resize: vertical;
  line-height: 1.6;
}

/* File input — single coherent control */
.rhein-cf__file {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem 1rem;
  background: #FBF8F1;
  border: 1px dashed var(--rhein-line);
  border-radius: var(--rhein-radius);
  font-family: var(--rhein-sans);
  font-size: 0.88rem;
  color: var(--rhein-muted);
  cursor: pointer;
}
.rhein-cf__file::file-selector-button,
.rhein-cf__file::-webkit-file-upload-button {
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  border: 1px solid var(--rhein-espresso);
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 0.55rem 1.1rem;
  border-radius: var(--rhein-radius);
  cursor: pointer;
  margin-right: 1rem;
  transition: all .2s ease;
}
.rhein-cf__file::file-selector-button:hover,
.rhein-cf__file::-webkit-file-upload-button:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
}

.rhein-cf__footer { margin-top: 1.75rem; }
.rhein-cf__submit {
  display: inline-block;
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  border: 1px solid var(--rhein-espresso);
  font-family: var(--rhein-sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 1rem 2.5rem;
  border-radius: var(--rhein-radius);
  transition: all .2s ease;
  cursor: pointer;
}
.rhein-cf__submit:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
  color: #fff;
}

.rhein-contact__card {
  background: var(--rhein-ivory);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius-lg);
  padding: clamp(2rem, 4vw, 3.5rem);
}
@media (max-width: 600px) {
  .rhein-contact__card { padding: 1.5rem; }
}

.rhein-contact__cardlead {
  color: var(--rhein-muted);
  font-weight: 300;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

.rhein-contact__address {
  font-family: var(--rhein-serif);
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--rhein-espresso);
  padding: 1.25rem 0;
  border-top: 1px solid var(--rhein-line);
  border-bottom: 1px solid var(--rhein-line);
}
.rhein-contact__address strong {
  font-weight: 600;
  color: var(--rhein-gold);
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-family: var(--rhein-sans);
  display: block;
  margin-bottom: 0.4rem;
}

.rhein-contact__h3 {
  font-family: var(--rhein-sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  margin: 1.75rem 0 0.85rem;
  font-weight: 600;
}

.rhein-contact__hours {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.55rem 1.5rem;
  margin: 0;
  font-family: var(--rhein-sans);
  font-size: 0.95rem;
}
.rhein-contact__hours dt { color: var(--rhein-muted); font-weight: 400; }
.rhein-contact__hours dt em {
  font-family: var(--rhein-serif);
  font-style: italic;
  color: var(--rhein-gold);
  font-size: 0.85rem;
  margin-left: 0.25rem;
  font-weight: 400;
}
.rhein-contact__hours dd { color: var(--rhein-espresso); margin: 0; font-weight: 500; }

.rhein-contact__channels {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rhein-contact__channels li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px dashed var(--rhein-line);
  font-family: var(--rhein-sans);
  font-size: 0.95rem;
}
.rhein-contact__channels li:last-child { border-bottom: 0; }
.rhein-contact__channels span {
  color: var(--rhein-muted);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.rhein-contact__channels a {
  color: var(--rhein-espresso);
  font-weight: 500;
}
.rhein-contact__channels a:hover { color: var(--rhein-gold); }

.rhein-contact__map {
  margin-top: 0.75rem;
}
.rhein-contact__map iframe {
  display: block;
  width: 100%;
}
.rhein-contact__maplink {
  display: inline-block;
  margin-top: 0.85rem;
  font-family: var(--rhein-sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  border-bottom: 1px solid var(--rhein-gold);
  padding-bottom: 2px;
}

/* ----- Default PrestaShop contact form (fallback markup) -----
 * The .rhein-cf__* rules above style the theme's OVERRIDE template. When that
 * override is not active, the core contactform module renders its DEFAULT
 * markup inside .rhein-contact__form:
 *   section.login-form > header + section.form-fields > label > span + control
 *   footer.form-footer > button[name="submitMessage"]
 * (and a teal/cyan file button from the Classic theme). These rules re-skin
 * that default markup to the brand, mirroring the .rhein-cf__ tokens, and are
 * scoped strictly under .rhein-contact__form so nothing else is touched. */

/* The module prints its own H1 ("Send a message") + intro — redundant with the
   parent .rhein-contact__sub ("Nous écrire"). Suppress it for a single title. */
.rhein-contact__form .login-form > header {
  display: none;
}

/* Neutralise Classic's card chrome on the module's wrapper section */
.rhein-contact__form .login-form,
.rhein-contact__form section.login-form {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* Vertical rhythm between fields */
.rhein-contact__form .form-fields {
  display: grid;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  border: 0;
}

/* Each field: uppercase label (span) stacked above its control */
.rhein-contact__form .form-fields > label {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  font-weight: 400;
}
.rhein-contact__form .form-fields > label > span {
  display: block;
  margin-bottom: 0.55rem;
  font-family: var(--rhein-sans);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rhein-muted);
  font-weight: 500;
}

/* Text-like inputs, selects, textarea — matches .rhein-cf__input tokens */
.rhein-contact__form input[type="text"]:not([name="url"]),
.rhein-contact__form input[type="email"],
.rhein-contact__form input[type="tel"],
.rhein-contact__form input[type="search"],
.rhein-contact__form input[type="number"],
.rhein-contact__form select,
.rhein-contact__form textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius);
  background-color: #FBF8F1;
  padding: 0.95rem 1.1rem;
  font-family: var(--rhein-sans);
  font-size: 0.95rem;
  color: var(--rhein-espresso);
  line-height: 1.4;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.rhein-contact__form input[type="text"]:not([name="url"]):focus,
.rhein-contact__form input[type="email"]:focus,
.rhein-contact__form input[type="tel"]:focus,
.rhein-contact__form input[type="search"]:focus,
.rhein-contact__form input[type="number"]:focus,
.rhein-contact__form select:focus,
.rhein-contact__form textarea:focus {
  border-color: var(--rhein-gold);
  background-color: #fff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(161,136,90,0.15);
}

/* Select chevron (same SVG arrow as .rhein-cf__select) */
.rhein-contact__form select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23A1885A' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1.1rem center;
  background-size: 12px 8px;
  padding-right: 2.75rem;
  cursor: pointer;
}

.rhein-contact__form textarea {
  min-height: 160px;
  resize: vertical;
  line-height: 1.6;
}

/* File input — kill the Classic theme's cyan/teal button, brand it brown.
   !important is needed to beat Classic's highly-specific file-button rules. */
.rhein-contact__form input[type="file"] {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem 1rem;
  background: #FBF8F1 !important;
  border: 1px dashed var(--rhein-line) !important;
  border-radius: var(--rhein-radius);
  font-family: var(--rhein-sans);
  font-size: 0.88rem;
  color: var(--rhein-muted);
  cursor: pointer;
}
/* Standard pseudo-element (Chrome 89+, Firefox 82+, Edge, Safari 14.1+) */
.rhein-contact__form input[type="file"]::file-selector-button {
  background: var(--rhein-espresso) !important;
  color: var(--rhein-ivory) !important;
  border: 1px solid var(--rhein-espresso) !important;
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 0.55rem 1.1rem;
  border-radius: var(--rhein-radius);
  cursor: pointer;
  margin-right: 1rem;
  transition: all .2s ease;
}
.rhein-contact__form input[type="file"]::file-selector-button:hover {
  background: var(--rhein-gold) !important;
  border-color: var(--rhein-gold) !important;
}
/* Legacy WebKit pseudo-element — kept in its OWN rule (grouping it with the
   standard one would make some engines drop the whole declaration). */
.rhein-contact__form input[type="file"]::-webkit-file-upload-button {
  background: var(--rhein-espresso) !important;
  color: var(--rhein-ivory) !important;
  border: 1px solid var(--rhein-espresso) !important;
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 0.55rem 1.1rem;
  border-radius: var(--rhein-radius);
  cursor: pointer;
  margin-right: 1rem;
  transition: all .2s ease;
}
.rhein-contact__form input[type="file"]::-webkit-file-upload-button:hover {
  background: var(--rhein-gold) !important;
  border-color: var(--rhein-gold) !important;
}

/* Notifications (success / error) — match .rhein-cf__notice palette */
.rhein-contact__form .notification {
  padding: 1rem 1.25rem;
  border-radius: var(--rhein-radius);
  margin-bottom: 1.5rem;
  font-size: 0.92rem;
}
.rhein-contact__form .notification ul { margin: 0; padding: 0; list-style: none; }
.rhein-contact__form .notification-success { background: #EDF5EE; color: #2E5C36; border: 1px solid #C7DFC9; }
.rhein-contact__form .notification-error   { background: #F9EDED; color: #6B2A2A; border: 1px solid #E2C7C7; }

/* Submit button — espresso → gold on hover (matches .rhein-cf__submit / ENVOYER) */
.rhein-contact__form .form-footer {
  margin: 1.75rem 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}
.rhein-contact__form .form-footer button,
.rhein-contact__form button[name="submitMessage"] {
  display: inline-block;
  width: auto;
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  border: 1px solid var(--rhein-espresso);
  font-family: var(--rhein-sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 1rem 2.5rem;
  border-radius: var(--rhein-radius);
  transition: all .2s ease;
  cursor: pointer;
}
.rhein-contact__form .form-footer button:hover,
.rhein-contact__form button[name="submitMessage"]:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
  color: #fff;
}

/* Mobile: stack tighter and let the submit go full-width */
@media (max-width: 600px) {
  .rhein-contact__form .form-fields { gap: 1.25rem; }
  .rhein-contact__form .form-footer button,
  .rhein-contact__form button[name="submitMessage"] { width: 100%; }
}

/* ---------- Tobacco health warning band (legal) ---------- */
.rhein-health-warning {
  background: #111;
  color: #fff;
  border: 2px solid #fff;
  padding: 1rem 1.5rem;
  margin: 2rem 0;
  font-family: var(--rhein-sans);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
}

/* ====================================================================
   Gallery carousel — multimedia slides (image / video / message)
   Sits between the editorial story and the concierge section.
   ==================================================================== */
.rhein-gallery {
  background: var(--rhein-black);
  padding: var(--rhein-section-y) 0;
  color: var(--rhein-ivory);
  position: relative;
  overflow: hidden;
}
.rhein-gallery .rhein-section-head {
  margin: 0 auto 2.5rem;
  text-align: center;
  max-width: 720px;
  padding: 0 1.5rem;
}
.rhein-gallery .rhein-section-head__eyebrow {
  color: var(--rhein-gold-light);
}
.rhein-gallery .rhein-section-head__title {
  color: var(--rhein-ivory);
}

.rhein-gallery__viewport {
  position: relative;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.rhein-gallery__track {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  transition: transform 0.7s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: transform;
}

.rhein-gallery__slide {
  flex: 0 0 100%;
  min-width: 100%;
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--rhein-radius-lg);
  background: var(--rhein-espresso);
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
@media (max-width: 700px) {
  .rhein-gallery__slide { aspect-ratio: 4 / 5; }
}

.rhein-gallery__media {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.65);
}

.rhein-gallery__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.6);
}

.rhein-gallery__youtube {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
}
/* Lighter overlay for YouTube — preserve readability of YouTube controls
   while keeping our title/caption readable. Also stops at 65% so the YT
   bottom controls (progress bar, fullscreen button) stay clickable. */
.rhein-gallery__overlay--youtube {
  background: linear-gradient(180deg,
    rgba(0,0,0,0.0) 0%,
    rgba(0,0,0,0.0) 35%,
    rgba(0,0,0,0.65) 65%,
    rgba(0,0,0,0.0) 75%,
    rgba(0,0,0,0.0) 100%);
  pointer-events: none;
}
.rhein-gallery__slide--youtube .rhein-gallery__content {
  padding-bottom: 4.5rem; /* leave room for YouTube controls */
}

.rhein-gallery__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(0,0,0,0.05) 0%,
    rgba(0,0,0,0.25) 55%,
    rgba(0,0,0,0.78) 100%);
}

.rhein-gallery__slide--message {
  background: linear-gradient(135deg, var(--rhein-espresso) 0%, var(--rhein-black) 100%);
  align-items: center;
}
.rhein-gallery__slide--message .rhein-gallery__overlay { display: none; }
.rhein-gallery__slide--message .rhein-gallery__content {
  position: relative;
  text-align: center;
  padding: 3rem 2rem;
}

.rhein-gallery__content {
  position: relative;
  z-index: 2;
  padding: 2.5rem 2rem;
  width: 100%;
  max-width: 760px;
  text-align: center;
}

.rhein-gallery__eyebrow {
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--rhein-gold-light);
  display: inline-block;
  margin-bottom: 1rem;
}

.rhein-gallery__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(1.6rem, 3.6vw, 2.8rem);
  line-height: 1.2;
  margin: 0 0 1rem;
  color: var(--rhein-ivory);
}
.rhein-gallery__slide--message .rhein-gallery__title {
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.4rem, 3vw, 2.2rem);
}

.rhein-gallery__caption {
  font-family: var(--rhein-sans);
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.6;
  color: var(--rhein-ivory);
  opacity: 0.88;
  margin: 0;
}

/* Nav arrows */
.rhein-gallery__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(0,0,0,0.45);
  border: 1px solid rgba(255,255,255,0.18);
  color: var(--rhein-ivory);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 5;
  transition: background 0.2s ease, transform 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.rhein-gallery__nav:hover {
  background: rgba(0,0,0,0.7);
  transform: translateY(-50%) scale(1.05);
}
.rhein-gallery__nav--prev { left: 2rem; }
.rhein-gallery__nav--next { right: 2rem; }
@media (max-width: 700px) {
  .rhein-gallery__nav--prev { left: 0.5rem; }
  .rhein-gallery__nav--next { right: 0.5rem; }
  .rhein-gallery__nav { width: 40px; height: 40px; }
}

/* Dots */
.rhein-gallery__dots {
  display: flex;
  gap: 0.6rem;
  justify-content: center;
  margin-top: 1.75rem;
  padding: 0 1.5rem;
}
.rhein-gallery__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255,255,255,0.22);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease;
  -webkit-tap-highlight-color: transparent;
}
.rhein-gallery__dot:hover { background: rgba(255,255,255,0.45); }
.rhein-gallery__dot.is-active {
  background: var(--rhein-gold);
  transform: scale(1.25);
}

@media (prefers-reduced-motion: reduce) {
  .rhein-gallery__track { transition: none; }
}

/* ====================================================================
   "Votre compte" sidebar (ps_customeraccountlinks) — match the other
   rhein-footer column titles exactly (Produits, Notre société).
   ==================================================================== */
#block_myaccount_infos .myaccount-title a,
#block_myaccount_infos .myaccount-title,
#block_myaccount_infos .title .h3,
#block_myaccount_infos > .h3,
#block_myaccount_infos .title {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: #A1885A !important;
  margin: 0 0 1.4rem !important;
  padding: 0 !important;
  display: block;
  position: relative;
}
#block_myaccount_infos .myaccount-title a {
  text-decoration: none !important;
}
#block_myaccount_infos .myaccount-title::after,
#block_myaccount_infos > .h3::after {
  content: "";
  display: block;
  width: 24px;
  height: 1px;
  background: rgba(161, 136, 90, 0.45);
  margin-top: 0.7rem;
}
#block_myaccount_infos .account-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.88rem;
  line-height: 2;
}
#block_myaccount_infos .account-list a {
  color: #d8c9a9;
  text-decoration: none;
  transition: color 0.25s ease, border-bottom-color 0.25s ease;
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
}
#block_myaccount_infos .account-list a:hover,
#block_myaccount_infos .account-list a:focus {
  color: #A1885A;
  border-bottom-color: rgba(161, 136, 90, 0.5);
  text-decoration: none;
}

/* ====================================================================
   Custom social share — replaces ps_sharebuttons defaults
   FB · X · WhatsApp · Email · Copy-link
   ==================================================================== */
.rhein-share {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.5rem 0;
  flex-wrap: wrap;
}
.rhein-share__label {
  font-family: var(--rhein-sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rhein-espresso);
  font-weight: 500;
}
.rhein-share__list {
  display: flex;
  gap: 0.6rem;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}
.rhein-share__item { margin: 0; padding: 0; }
.rhein-share__btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid rgba(161, 136, 90, 0.4);
  color: var(--rhein-espresso);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.2s ease;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  padding: 0;
}
.rhein-share__btn:hover,
.rhein-share__btn:focus-visible {
  background: var(--rhein-gold);
  color: var(--rhein-ivory);
  border-color: var(--rhein-gold);
  transform: translateY(-1px);
  text-decoration: none;
}
.rhein-share__btn:focus { outline: none; }
.rhein-share__btn:focus-visible {
  box-shadow: 0 0 0 3px rgba(161, 136, 90, 0.25);
}

/* Copy-link feedback toast */
.rhein-share__btn--copy { position: relative; overflow: visible; }
.rhein-share__btn-feedback {
  position: absolute;
  top: -2.2rem;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--rhein-espresso);
  color: var(--rhein-ivory);
  padding: 0.35rem 0.7rem;
  border-radius: 4px;
  font-family: var(--rhein-sans);
  font-size: 0.7rem;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.rhein-share__btn--copy.is-copied .rhein-share__btn-feedback {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Hide the original ps_sharebuttons output if it leaks anywhere */
.social-sharing { display: none !important; }

/* =================================================================
 * Rhein 1905 — blockreassurance override
 * Two presentations:
 *   .rhein-reassur--list  (compact, vertical list — product sidebar / cart)
 *   .rhein-reassur--grid  (3–4 columns, ivory band — home / footer)
 * ================================================================= */

.rhein-reassur,
.rhein-reassur * {
  box-sizing: border-box;
}

/* Hide PrestaShop's default styling that comes from blockreassurance.css */
#block-reassurance,
.container-blockreassurance > .blockreassurance {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* ============================================================
 *  COMPACT LIST (product sidebar)
 * ============================================================ */
.rhein-reassur--list {
  margin: 1.75rem 0;
  padding: 1.25rem 1.4rem;
  background: var(--rhein-paper);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius-lg);
}
.rhein-reassur__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rhein-reassur__item {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--rhein-line);
  color: var(--rhein-espresso);
}
.rhein-reassur__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.rhein-reassur__item:first-child {
  padding-top: 0;
}
.rhein-reassur__item--link {
  cursor: pointer;
  transition: transform .15s ease;
}
.rhein-reassur__item--link:hover {
  transform: translateX(2px);
}
.rhein-reassur__item--link:hover .rhein-reassur__icon {
  border-color: var(--rhein-gold);
  color: var(--rhein-gold);
  background: #fff;
}

.rhein-reassur__icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--rhein-gold-light);
  border-radius: 50%;
  color: var(--rhein-gold);
  background: #fff;
  transition: border-color .15s ease, color .15s ease;
}
.rhein-reassur__icon img {
  max-width: 20px;
  max-height: 20px;
  /* Tint user-uploaded dark icons towards the brand gold without
   * relying on SVG color inheritance. Approximates #A1885A. */
  filter: brightness(0) saturate(100%)
          invert(58%) sepia(28%) saturate(440%)
          hue-rotate(2deg) brightness(91%) contrast(86%);
}
.rhein-reassur__icon svg {
  width: 20px;
  height: 20px;
}

.rhein-reassur__body {
  flex: 1 1 auto;
  font-family: var(--rhein-sans);
  font-size: .9rem;
  line-height: 1.45;
  color: var(--rhein-espresso);
}
.rhein-reassur__body strong,
.rhein-reassur__body b {
  display: block;
  font-family: var(--rhein-serif);
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: .005em;
  margin-bottom: .15rem;
  color: var(--rhein-espresso);
}
.rhein-reassur__body p {
  margin: 0;
  color: var(--rhein-muted);
  font-size: .85rem;
}
.rhein-reassur__body a {
  color: var(--rhein-gold-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ============================================================
 *  LARGE GRID (home / footer)
 * ============================================================ */
.rhein-reassur--grid {
  background: var(--rhein-ivory);
  padding: clamp(3rem, 6vw, 5rem) 1rem;
  border-top: 1px solid var(--rhein-line);
  border-bottom: 1px solid var(--rhein-line);
}
.rhein-reassur__inner {
  max-width: var(--rhein-content-max);
  margin: 0 auto;
}
.rhein-reassur__row {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}
@media (min-width: 600px) {
  .rhein-reassur__row { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
  .rhein-reassur__row[data-rhein-cols="3"] { grid-template-columns: repeat(3, 1fr); }
  .rhein-reassur__row[data-rhein-cols="4"] { grid-template-columns: repeat(4, 1fr); }
  .rhein-reassur__row[data-rhein-cols="5"],
  .rhein-reassur__row[data-rhein-cols="6"] { grid-template-columns: repeat(3, 1fr); }
}

.rhein-reassur__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 1.5rem;
  background: var(--rhein-card);
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius-lg);
  text-decoration: none;
  color: inherit;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position: relative;
}
.rhein-reassur__card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--rhein-gold);
  opacity: 0;
  transition: opacity .25s ease;
}
.rhein-reassur__card--link:hover {
  transform: translateY(-3px);
  border-color: var(--rhein-gold-light);
  box-shadow: 0 14px 32px -16px rgba(43, 31, 23, .18);
}
.rhein-reassur__card--link:hover::before {
  opacity: 1;
}

.rhein-reassur__icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border: 1px solid var(--rhein-gold);
  border-radius: 50%;
  margin-bottom: 1.5rem;
  color: var(--rhein-gold);
  background: var(--rhein-paper);
  position: relative;
}
.rhein-reassur__icon-wrap::after {
  content: "";
  position: absolute;
  inset: -6px;
  border: 1px solid var(--rhein-gold-light);
  border-radius: 50%;
  opacity: .35;
}
.rhein-reassur__icon-wrap img {
  max-width: 30px;
  max-height: 30px;
  filter: brightness(0) saturate(100%)
          invert(58%) sepia(28%) saturate(440%)
          hue-rotate(2deg) brightness(91%) contrast(86%);
}
.rhein-reassur__icon-wrap svg {
  width: 30px;
  height: 30px;
}

.rhein-reassur__title {
  font-family: var(--rhein-serif);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .01em;
  color: var(--rhein-espresso);
  margin: 0 0 .65rem;
  line-height: 1.25;
}
.rhein-reassur__desc {
  font-family: var(--rhein-sans);
  font-size: .92rem;
  line-height: 1.55;
  color: var(--rhein-muted);
  margin: 0;
  max-width: 36ch;
}

/* ====================================================================
   Product flags (NOUVEAU / Rupture temporaire / promotions...)
   Override de la taille du parent classic — bandeaux discrets.
   !important necessaire car classic a des regles tres specifiques.
   ==================================================================== */
.products .product-flag,
.product-miniature .product-flag,
.product-flags .product-flag,
.product-flag {
  font-size: .58rem !important;        /* ~9px */
  font-weight: 500 !important;
  letter-spacing: .12em !important;     /* tracking elargi pour effet estampille */
  padding: 3px 9px !important;
  line-height: 1.25 !important;
  text-transform: uppercase;
  min-height: 0 !important;
  max-width: none;
  border-radius: 0 !important;          /* sceau rectangulaire, pas pill e-commerce */
  font-family: var(--rhein-sans);
  border: none !important;
}

/* NOUVEAU — or antique (positif, attire l'oeil noblement) */
.product-flag.new,
.product-flag.online-only {
  background: var(--rhein-gold) !important;
  color: var(--rhein-paper) !important;
}

/* RUPTURE / out of stock — espresso sobre, signale sans crier */
.product-flag.out_of_stock,
.product-flag.out-of-stock {
  background: var(--rhein-espresso) !important;
  color: var(--rhein-paper) !important;
}

/* PROMOTIONS / SOLDES — oxblood (registre oeno-luxe) */
.product-flag.discount,
.product-flag.on-sale,
.product-flag.discount-percentage,
.product-flag.discount-amount {
  background: var(--rhein-oxblood) !important;
  color: var(--rhein-paper) !important;
}
.product-flags {
  gap: 3px !important;
  top: 8px;
  left: 8px;
}

/* ---------- Surface unification (cards, blocks, content) ---------- */
/* Override Classic parent #fff backgrounds with the warm ivory --rhein-card */
.block-categories,
#content {
  background: var(--rhein-card);
  background-color: var(--rhein-card);
  border: 1px solid var(--rhein-line);
  box-shadow: 0 1px 3px rgba(43, 31, 23, 0.06);
}
.card {
  background-color: var(--rhein-card);
  border-color: var(--rhein-line);
}

/* ---------- Product detail page — price treatment ---------- */
/* Scoped to body#product so listings prices are unaffected */
body#product .product-prices {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

body#product .product-prices .current-price,
body#product .product-prices .product-price {
  display: inline-block;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--rhein-gold-light);
}

body#product .product-prices .price,
body#product .product-prices .current-price-value,
body#product .current-price .price {
  font-family: var(--rhein-serif);
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  font-weight: 400;
  color: var(--rhein-espresso);
  letter-spacing: 0.01em;
  line-height: 1;
}

body#product .product-prices .tax-shipping-delivery-label,
body#product .tax-shipping-delivery-label {
  display: inline-block;
  margin-left: 0.6rem;
  font-family: var(--rhein-sans);
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--rhein-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  vertical-align: 0.3em;
  text-decoration: none;
}

/* ================================================================
 * Fiche produit — luxe asiatique (CSS pur, scope body#product)
 * Cible le markup du theme Classic parent.
 * ================================================================ */

/* --- Eyebrow editorial : categorie doree au-dessus du titre --- */
body#product .rhein-eyebrow {
  margin: 0 0 .5rem;
  font-family: var(--rhein-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  line-height: 1;
}
body#product .rhein-eyebrow__sep { color: var(--rhein-gold-light); margin: 0 .15em; }

/* --- Titre : tempere la taille XXL, raffine l'espacement --- */
body#product #main h1,
body#product h1.h1 {
  font-size: clamp(1.8rem, 3.4vw, 2.8rem);
  line-height: 1.08;
  letter-spacing: .005em;
  margin: .1rem 0 .2rem;
}

/* --- Cadre image de couverture : filet, coins, ombre douce --- */
body#product .product-cover {
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius-lg);
  background: #fff;
  overflow: hidden;
  position: relative;
  box-shadow: 0 16px 36px -22px rgba(43, 31, 23, .32);
}
body#product .product-cover img { border-radius: var(--rhein-radius-lg); }
body#product .product-cover .layer {
  background: rgba(43, 31, 23, .04);
  transition: background .25s ease;
}
body#product .product-cover:hover .layer { background: rgba(43, 31, 23, .10); }
body#product .product-cover .layer .zoom-in { color: var(--rhein-gold); }

/* --- Miniatures : etat actif dore --- */
body#product .product-images .thumb {
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius);
  transition: border-color .2s ease;
}
body#product .product-images .thumb:hover { border-color: var(--rhein-gold-light); }
body#product .product-images .thumb.selected,
body#product .product-images .thumb.js-thumb-selected {
  border-color: var(--rhein-gold) !important;
  box-shadow: 0 0 0 1px var(--rhein-gold);
}

/* --- Selecteur de quantite : aligne sur la charte, hauteur 48px --- */
body#product .product-quantity #quantity_wanted {
  height: 48px;
  font-family: var(--rhein-serif);
  font-size: 1.1rem;
  color: var(--rhein-espresso);
  border: 1px solid var(--rhein-line);
  background: #fff;
}
body#product .product-quantity .input-group-btn-vertical > button,
body#product .product-quantity .bootstrap-touchspin-up,
body#product .product-quantity .bootstrap-touchspin-down {
  border-color: var(--rhein-line) !important;
  background: var(--rhein-card) !important;
  color: var(--rhein-havana) !important;
  transition: background .15s ease, color .15s ease;
}
body#product .product-quantity .input-group-btn-vertical > button:hover,
body#product .product-quantity .bootstrap-touchspin-up:hover,
body#product .product-quantity .bootstrap-touchspin-down:hover {
  background: var(--rhein-gold) !important;
  color: #fff !important;
}

/* --- Bouton Ajouter au panier : espresso premium -> or au survol --- */
body#product .btn.add-to-cart,
body#product .product-add-to-cart .add-to-cart {
  height: 48px;
  padding: 0 1.6rem;
  background: var(--rhein-espresso);
  border: 1px solid var(--rhein-espresso);
  color: var(--rhein-ivory);
  font-family: var(--rhein-sans);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .8rem;
  border-radius: var(--rhein-radius);
  box-shadow: none;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
body#product .btn.add-to-cart:hover,
body#product .product-add-to-cart .add-to-cart:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 22px -12px rgba(161, 136, 90, .7);
}
body#product .btn.add-to-cart .material-icons { font-size: 1.1rem; }

/* --- Coeur wishlist a cote du panier --- */
body#product .product-actions .wishlist-button {
  width: 48px; height: 48px;
  border: 1px solid var(--rhein-line);
  border-radius: var(--rhein-radius);
  color: var(--rhein-muted);
  transition: color .2s ease, border-color .2s ease;
}
body#product .product-actions .wishlist-button:hover {
  color: var(--rhein-gold);
  border-color: var(--rhein-gold);
}

/* --- Onglets : editorial a plat, soulignement dore anime --- */
body#product .tabs {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-top: 2.5rem;
}
body#product .tabs .nav-tabs {
  border-bottom: 1px solid var(--rhein-line);
  gap: 1.75rem;
}
body#product .tabs .nav-tabs .nav-item { margin: 0; }
body#product .tabs .nav-tabs .nav-link {
  border: none;
  background: transparent;
  padding: .4rem 0 .85rem;
  margin: 0;
  font-family: var(--rhein-sans);
  font-weight: 600;
  font-size: .8rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--rhein-muted);
  position: relative;
}
body#product .tabs .nav-tabs .nav-link::after {
  content: '';
  position: absolute; left: 0; bottom: -1px;
  width: 100%; height: 2px;
  background: var(--rhein-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
body#product .tabs .nav-tabs .nav-link.active { color: var(--rhein-espresso); }
body#product .tabs .nav-tabs .nav-link.active::after { transform: scaleX(1); }
body#product .tabs .tab-content {
  padding: 1.8rem 0 0;
  font-family: var(--rhein-sans);
  font-size: .95rem;
  color: var(--rhein-espresso);
  line-height: 1.8;
}

/* --- Fil d'Ariane : liens sobres, separateurs dores --- */
body#product .breadcrumb { background: transparent; padding-left: 0; }
body#product .breadcrumb a { color: var(--rhein-muted); }
body#product .breadcrumb a:hover { color: var(--rhein-gold); }
body#product .breadcrumb li:not(:last-child)::after { color: var(--rhein-gold-light); }

/* --- Bloc Authenticite : bandeau de confiance sous le panier --- */
.rhein-authenticity {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin: 1.4rem 0 0;
  padding: .9rem 1.1rem;
  border: 1px solid var(--rhein-gold-light);
  border-radius: var(--rhein-radius-lg);
  background: linear-gradient(180deg, #FBF6EA, #F6EFDD);
}
.rhein-authenticity__seal {
  flex: 0 0 auto;
  color: var(--rhein-gold-dark);
  display: inline-flex;
}
.rhein-authenticity__text {
  font-family: var(--rhein-sans);
  font-size: .82rem;
  line-height: 1.5;
  color: var(--rhein-havana);
}
.rhein-authenticity__text strong {
  display: block;
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .04em;
  color: var(--rhein-gold-dark);
  margin-bottom: .1rem;
}

/* --- Tableau de specs (caracteristiques) : fiche luxe a filets or ---
 * Pret a l'emploi : se remplit des que des "Caracteristiques" sont saisies
 * sur le produit en back-office (Produit > Caracteristiques). */
body#product .product-features { margin-top: 1.5rem; }
body#product .product-features .h6 {
  font-family: var(--rhein-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  margin: 0 0 .8rem;
}
body#product .data-sheet {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0;
}
body#product .data-sheet .name,
body#product .data-sheet .value {
  padding: .65rem .2rem;
  border-bottom: 1px solid var(--rhein-line);
  font-family: var(--rhein-sans);
  font-size: .9rem;
  margin: 0;
}
body#product .data-sheet .name {
  color: var(--rhein-muted);
  font-weight: 400;
  letter-spacing: .02em;
}
body#product .data-sheet .value {
  color: var(--rhein-espresso);
  font-weight: 500;
  text-align: right;
}
@media (max-width: 480px) {
  body#product .data-sheet { grid-template-columns: 1fr; }
  body#product .data-sheet .value { text-align: left; padding-top: 0; border-top: none; }
  body#product .data-sheet .name { border-bottom: none; padding-bottom: .1rem; }
}

/* --- Avis clients (productcomments) : etoiles dorees, cartes sobres --- */
body#product .product-comments,
.product-comments-block { margin-top: 1rem; }
body#product .comments-note,
body#product .comment-author,
body#product .product-comment-list-item .h4 {
  font-family: var(--rhein-serif);
}
/* etoiles en or */
body#product .grade-stars { color: var(--rhein-gold); }
body#product .star,
body#product .grade-stars .material-icons { color: var(--rhein-gold) !important; }
body#product .grade-stars-empty,
body#product .star-empty { color: var(--rhein-line) !important; }
/* carte d'avis */
body#product .comment {
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--rhein-line);
}
body#product .comment-author { font-weight: 600; color: var(--rhein-espresso); }
body#product .comment-date { color: var(--rhein-muted); font-size: .8rem; }
body#product .comment-content { color: var(--rhein-espresso); line-height: 1.7; }
/* boutons (Donner mon avis…) sur la charte */
body#product .btn-comment,
body#product .btn-comment-big {
  background: var(--rhein-espresso);
  border: 1px solid var(--rhein-espresso);
  color: var(--rhein-ivory);
  font-family: var(--rhein-sans);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: .78rem;
  border-radius: var(--rhein-radius);
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
body#product .btn-comment:hover,
body#product .btn-comment-big:hover {
  background: var(--rhein-gold);
  border-color: var(--rhein-gold);
  color: #fff;
}
body#product .btn-comment-inverse {
  background: transparent;
  border: 1px solid var(--rhein-line);
  color: var(--rhein-havana);
}

/* ---------- En-tête de catégorie — alléger le cadre ----------
 * catalog/_partials/category-header.tpl rend un bloc
 *   #js-product-list-header > .block-category.card.card-block
 *     > h1 + .block-category-inner ( #category-description + .category-cover )
 * Le style .card/#content lui donne un gros cadre creme. On retire le cadre
 * (fond/bordure/ombre) et on pose titre + description a plat sur la page —
 * on GARDE le H1 et la description (importants pour le SEO), avec juste un
 * filet de separation discret. Image de couverture reduite, alignee a droite. */
#js-product-list-header .block-category.card,
#js-product-list-header .block-category {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 0 1.25rem !important;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--rhein-line);
}
#js-product-list-header .block-category > h1,
#js-product-list-header .block-category > .h1 {
  margin: 0 0 0.75rem;
}
#js-product-list-header .block-category-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}
#js-product-list-header #category-description {
  color: var(--rhein-muted);
  font-weight: 300;
  line-height: 1.6;
  max-width: 72ch;
}
#js-product-list-header .category-cover { flex: 0 0 auto; margin: 0; }
#js-product-list-header .category-cover img {
  width: 90px;           /* couverture reduite (etait 141px) */
  height: auto;
}
@media (max-width: 600px) {
  #js-product-list-header .block-category-inner { flex-direction: column; gap: 1rem; }
  #js-product-list-header .category-cover img { width: 70px; }
}

/* ---------- Badge conditionnement cigares (vignette) ----------
 * Injecte par rhein.js (setupCigarFormatBadges) juste apres le titre produit.
 * Pilule discrete dans la charte brun/creme. */
/* ---------- Vitrine Sélection — grille 3 colonnes (12 = 3 × 4) ----------
 * Specificite renforcee (#js-product-list.rhein-selection) + !important pour
 * battre les regles .products / #js-product-list .products du theme Classic. */
.rhein-selection .products,
#js-product-list.rhein-selection .products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  float: none !important;
}
/* Neutralise toute largeur/flottement residuels des cartes dans la grille */
.rhein-selection .products > .product,
.rhein-selection .products > .js-product {
  width: auto !important;
  max-width: none !important;
  margin: 0;
  padding: 0;
  flex: none !important;
  float: none !important;
}
@media (max-width: 980px) {
  .rhein-selection .products,
  #js-product-list.rhein-selection .products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .rhein-selection .products,
  #js-product-list.rhein-selection .products { grid-template-columns: 1fr !important; }
}

.rhein-format-badge {
  display: inline-block;
  margin: 0 0 .55rem;
  padding: 0.34rem 0.85rem;
  border: 1px solid var(--rhein-gold);
  border-radius: 999px;
  background: linear-gradient(180deg, #FBF6EA, #F1E6CC);
  font-family: var(--rhein-sans);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rhein-gold-dark);
  line-height: 1;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55);
}

/* ================================================================
 * Page FAQ (module rhein_faq) — accordéon éditorial, charte or/crème
 * ================================================================ */
.rhein-faq {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 4rem) 1.25rem clamp(3rem, 6vw, 5rem);
}
.rhein-faq__head { text-align: center; margin-bottom: clamp(2rem, 4vw, 3rem); }
.rhein-faq__eyebrow {
  display: inline-block;
  font-family: var(--rhein-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--rhein-gold);
  margin-bottom: .8rem;
}
.rhein-faq__title {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  line-height: 1.12;
  color: var(--rhein-espresso);
  margin: 0 0 .9rem;
}
.rhein-faq__intro {
  font-family: var(--rhein-sans);
  font-size: .98rem;
  line-height: 1.7;
  color: var(--rhein-muted);
  max-width: 640px;
  margin: 0 auto;
}
.rhein-faq__item {
  border-bottom: 1px solid var(--rhein-line);
}
.rhein-faq__item:first-child { border-top: 1px solid var(--rhein-line); }
.rhein-faq__q {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem .25rem;
  font-family: var(--rhein-serif);
  font-size: 1.18rem;
  font-weight: 500;
  color: var(--rhein-espresso);
  transition: color .2s ease;
}
.rhein-faq__q::-webkit-details-marker { display: none; }
.rhein-faq__q::after {
  content: '+';
  flex: 0 0 auto;
  font-family: var(--rhein-sans);
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--rhein-gold);
  transition: transform .25s ease;
}
.rhein-faq__item[open] .rhein-faq__q { color: var(--rhein-havana); }
.rhein-faq__item[open] .rhein-faq__q::after { content: '–'; }
.rhein-faq__q:hover { color: var(--rhein-gold); }
.rhein-faq__a {
  padding: 0 .25rem 1.3rem;
  font-family: var(--rhein-sans);
  font-size: .98rem;
  line-height: 1.8;
  color: var(--rhein-espresso);
}
.rhein-faq__a p { margin: 0; }
.rhein-faq__cta {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: 1.6rem;
  border-top: 1px solid var(--rhein-line);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .5rem 1.5rem;
  font-family: var(--rhein-sans);
  font-size: .9rem;
}
.rhein-faq__cta-text { color: var(--rhein-muted); }
.rhein-faq__cta-link { color: var(--rhein-gold-dark); font-weight: 600; }
.rhein-faq__cta-link:hover { color: var(--rhein-gold); }

/* ================================================================
 * Bloc définition / GEO (homepage) — texte factuel citable
 * ================================================================ */
.rhein-geo {
  background: var(--rhein-paper);
  padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem;
}
.rhein-geo__inner {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}
.rhein-geo__lead {
  font-family: var(--rhein-serif);
  font-weight: 500;
  font-size: clamp(1.5rem, 3.2vw, 2.2rem);
  line-height: 1.18;
  color: var(--rhein-espresso);
  margin: 0 0 1.1rem;
}
.rhein-geo__body {
  font-family: var(--rhein-sans);
  font-size: 1rem;
  line-height: 1.8;
  color: var(--rhein-muted);
  margin: 0 auto 1.6rem;
  max-width: 680px;
}
.rhein-geo__facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem .7rem;
}
.rhein-geo__facts li {
  font-family: var(--rhein-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rhein-gold-dark);
  padding: .4rem .85rem;
  border: 1px solid var(--rhein-gold-light);
  border-radius: 999px;
  background: linear-gradient(180deg, #FBF6EA, #F6EFDD);
  line-height: 1;
}
