/* Module autonome : aucune règle ne modifie les dialogues ou boutons du reste du site. */
.by-announcement-strip[hidden], .by-announcements [hidden] { display: none !important; }
.by-announcement-strip { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px clamp(24px, 5vw, 80px); color: #513b2b; background: #f1e4d5; border-bottom: 1px solid #d8c2a8; }
.by-announcement-strip__eyebrow { font: 600 9px/1.6 Manrope, sans-serif; letter-spacing: .22em; }
.by-announcement-strip p { margin: 5px 0 0; color: #513b2b; font: 500 14px/1.6 Manrope, sans-serif; }
.by-announcement-strip button { flex-shrink: 0; border: 0; border-bottom: 1px solid #98744d; padding: 10px 0; background: transparent; color: #513b2b; font: 600 11px/1.5 Manrope, sans-serif; cursor: pointer; }
.by-announcement-strip button span { margin-left: 24px; }
.home-account-bar .by-loyalty-open { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.home-account-bar .by-loyalty-open:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
dialog.by-announcements { box-sizing: border-box; width: min(980px, calc(100vw - 48px)); max-width: none; max-height: min(850px, calc(100dvh - 48px)); padding: 0; border: 1px solid #d4b99a; border-radius: 3px; overflow: auto; background: #fffaf3; color: #493424; box-shadow: 0 24px 100px #20140f4d; }
dialog.by-announcements::backdrop { background: #211711a6; backdrop-filter: blur(4px); }
.by-announcements__head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 24px; background: #fffaf3; border-bottom: 1px solid #e7d7c6; }
.by-announcements__brand { font: 500 25px/1.2 'Cormorant Garamond', serif; color: #59402a; }
.by-announcements__brand em { font: 400 12px/1.4 Manrope, sans-serif; color: #7b6450; }
.by-announcements__close { display: grid; place-items: center; flex-shrink: 0; width: 40px; height: 40px; border: 1px solid #cdb397; border-radius: 50%; padding: 0; color: #59402a; background: transparent; font: 300 29px/1 Arial, sans-serif; cursor: pointer; }
.by-announcements__tabs { display: flex; gap: 24px; padding: 0 26px; background: #fffaf3; border-bottom: 1px solid #e7d7c6; }
.by-announcements__tabs button { border: 0; border-bottom: 2px solid transparent; padding: 16px 0 13px; color: #796653; background: transparent; font: 600 11px/1.5 Manrope, sans-serif; cursor: pointer; }
.by-announcements__tabs button[aria-selected="true"] { color: #624221; border-bottom-color: #97703f; }
.by-announcements__panel { display: grid; grid-template-columns: .95fr 1.05fr; outline: none; }
.by-announcements__visual { display: flex; align-items: center; justify-content: center; min-width: 0; background: #f0dfd0; }
.by-announcements__visual a { display: block; width: 100%; }
.by-announcements__visual img { display: block; width: 100%; height: auto; max-height: 630px; object-fit: contain; }
.by-announcements__loyalty-art { display: grid; place-items: center; min-width: 0; padding: 42px 30px; background: radial-gradient(ellipse at 10% 10%, #fff8e9, transparent 60%), linear-gradient(145deg, #e9d3b8, #e9d8c6 50%, #d0af84); }
.by-announcements__loyalty-card { width: 100%; padding: 34px 20px 24px; box-sizing: border-box; border: 1px solid #a37a49; outline: 1px solid #a37a4970; outline-offset: -9px; border-radius: 8px; background: linear-gradient(140deg, #fffbf4e6, #f7ebd8e6); color: #72502d; text-align: center; box-shadow: 0 15px 40px #69462424; transform: rotate(-3deg); }
.by-announcements__loyalty-card .by-announcements__card-brand { margin: 0; color: #614427; font: 500 34px/1.2 'Cormorant Garamond', serif; }
.by-announcements__loyalty-card .by-announcements__card-kicker { margin: 10px 0 22px; color: #816440; font: 600 8px/1.6 Manrope, sans-serif; letter-spacing: .19em; }
.by-announcements__card-star { display: block; font: 400 32px/1 'Cormorant Garamond', serif; }
.by-announcements__loyalty-card .by-announcements__card-amount { margin: 4px 0 0; color: #946c38; font: 500 100px/1.15 'Cormorant Garamond', serif; letter-spacing: -.04em; }
.by-announcements__card-amount span { font-size: 58px; }
.by-announcements__loyalty-card .by-announcements__card-caption { margin: 5px 0 25px; color: #72502d; font: 400 16px/1.7 'Cormorant Garamond', serif; }
.by-announcements__card-caption strong { font-weight: 600; font-size: 23px; }
.by-announcements__loyalty-card .by-announcements__card-footer { margin: 0; padding-top: 18px; border-top: 1px solid #cfb791; color: #816440; font: 600 8px/1.7 Manrope, sans-serif; letter-spacing: .1em; }
.by-announcements__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(24px, 3vw, 44px); }
.by-announcements__copy p { color: #654c36; }
.by-announcements__copy .by-announcements__eyebrow { margin: 0 0 20px; font: 600 9px/1.7 Manrope, sans-serif; letter-spacing: .18em; color: #916c42; }
.by-announcements__copy h2 { margin: 0 0 12px; color: #493424; font: 500 clamp(32px, 3.1vw, 43px)/1.04 'Cormorant Garamond', serif; letter-spacing: -.025em; }
.by-announcements__copy h2 em { font-weight: 400; color: #8d6544; }
.by-announcements__copy .by-announcements__reward { margin: 8px 0 4px; color: #9c7139; font: 500 74px/1 'Cormorant Garamond', serif; letter-spacing: -.05em; }
.by-announcements__reward span { font-size: 50px; }
.by-announcements__reward--loyalty span { font-size: 28px; letter-spacing: -.02em; }
.by-announcements__copy .by-announcements__intro { margin: 12px 0; font: 400 14px/1.7 Manrope, sans-serif; }
.by-announcements__copy .by-announcements__date { margin: 9px 0; font: 600 11px/1.8 Manrope, sans-serif; color: #76512c; }
.by-announcements__copy .by-announcements__families, .by-announcements__copy .by-announcements__contest-note { margin: 10px 0 20px; font: 400 12px/1.8 Manrope, sans-serif; }
.by-announcements__cta { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 20px; border: 1px solid #725131; background: #725131; color: #fffaf3 !important; text-decoration: none; font: 600 11px/1.6 Manrope, sans-serif; transition: background .2s; }
.by-announcements__cta:hover { background: #513a25; }
.by-announcements__copy .by-announcements__terms { margin: 16px 0 0; color: #796653; font: 400 10px/1.8 Manrope, sans-serif; }
.by-announcements button:focus-visible, .by-announcements a:focus-visible, .by-announcements__panel:focus-visible, .by-announcement-strip button:focus-visible { outline: 2px solid #947044; outline-offset: 4px; }
@media (max-width: 700px) {
  .by-announcement-strip { align-items: flex-start; flex-direction: column; gap: 6px; padding: 22px 24px; }
  .by-announcement-strip p { font-size: 12px; }
  dialog.by-announcements { width: calc(100vw - 24px); max-height: calc(100dvh - 32px); }
  .by-announcements__head { padding: 10px 16px; }
  .by-announcements__brand { font-size: 23px; }
  .by-announcements__brand em { display: none; }
  .by-announcements__tabs { padding: 0 16px; gap: 12px; }
  .by-announcements__tabs button { flex: 1; min-width: 0; font-size: 10px; padding-top: 13px; text-align: left; }
  .by-announcements__panel { display: flex; flex-direction: column; }
  .by-announcements__copy { order: -1; padding: 25px 24px; }
  .by-announcements__copy .by-announcements__eyebrow { margin-bottom: 13px; font-size: 8px; }
  .by-announcements__copy h2 { font-size: 35px; }
  .by-announcements__copy .by-announcements__reward { font-size: 59px; margin-top: 3px; }
  .by-announcements__copy .by-announcements__intro { font-size: 12px; margin: 9px 0; }
  .by-announcements__copy .by-announcements__date { font-size: 10px; }
  .by-announcements__copy .by-announcements__families { margin: 5px 0 16px; }
  .by-announcements__visual { padding: 0 24px 24px; background: #fffaf3; }
  .by-announcements__visual img { max-height: none; }
  .by-announcements__loyalty-art { padding: 24px 36px 36px; }
  .by-announcements__loyalty-card { max-width: 360px; padding-top: 26px; }
}
@media (prefers-reduced-motion: reduce) { .by-announcements__cta { transition: none; } }
