.xmb-announcements {
    --xmb-brown: #5a3928;
    --xmb-cream: #fff7ee;
    --xmb-gold: #f4c66b;
    padding: .8rem 0 1.15rem;
}

body.landing-home-page #quienes-somos { padding-bottom: 1rem; }
body.landing-home-page .xmb-announcements + #services { padding-top: 1.5rem; }

.xmb-announcements-heading,
.xmb-announcement-grid {
    width: min(1520px, 100%);
    margin-inline: auto;
}

.xmb-announcements-heading { margin-bottom: .75rem; }
.xmb-announcements-heading span { color: #c28b45; font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.xmb-announcements-heading h2 { margin: .25rem 0 0; color: var(--xmb-brown); font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.8rem, 3vw, 2.65rem); line-height: 1.05; }
.xmb-announcement-grid { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.xmb-announcement-grid.has-multiple { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.xmb-announcement-banner {
    position: relative;
    min-height: 330px;
    border-radius: 1.15rem;
    overflow: hidden;
    color: #fff;
    background: #38261d;
    isolation: isolate;
}

.xmb-announcement-banner-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.xmb-announcement-banner-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(26, 15, 10, .9) 0%, rgba(38, 22, 14, .7) 43%, rgba(24, 14, 10, .16) 78%), linear-gradient(0deg, rgba(16, 9, 6, .28), transparent 60%); }
.xmb-announcement-banner.is-ended .xmb-announcement-banner-image { filter: saturate(.62); }
.xmb-announcement-banner-content { min-height: inherit; width: min(670px, 68%); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.7rem, 3.4vw, 3.25rem); }
.xmb-announcement-grid.has-multiple .xmb-announcement-banner { min-height: 360px; }
.xmb-announcement-grid.has-multiple .xmb-announcement-banner-overlay { background: linear-gradient(90deg, rgba(26, 15, 10, .92) 0%, rgba(38, 22, 14, .72) 58%, rgba(24, 14, 10, .25) 100%), linear-gradient(0deg, rgba(16, 9, 6, .3), transparent 60%); }
.xmb-announcement-grid.has-multiple .xmb-announcement-banner-content { width: 100%; padding: clamp(1.45rem, 2.5vw, 2.35rem); }
.xmb-announcement-grid.has-multiple .xmb-announcement-banner-content h2 { font-size: clamp(1.75rem, 2.4vw, 2.5rem); }
.xmb-announcement-grid.has-multiple .xmb-announcement-banner-content > p { font-size: .9rem; }
.xmb-announcement-badges { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.xmb-announcement-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .38rem .68rem; border: 1px solid rgba(255,255,255,.5); border-radius: 2rem; background: rgba(35, 24, 17, .42); backdrop-filter: blur(8px); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.xmb-announcement-date { font-size: .74rem; font-weight: 700; opacity: .9; }
.xmb-announcement-banner-content h2 { max-width: 650px; margin: .72rem 0 .45rem; color: #fff; font-family: "Playfair Display", Georgia, serif; font-size: clamp(2.15rem, 3.4vw, 3.45rem); line-height: 1; letter-spacing: -.03em; text-wrap: balance; }
.xmb-announcement-banner-content > p { max-width: 650px; margin: 0 0 .65rem; color: rgba(255,255,255,.94); font-size: clamp(.9rem, 1.1vw, 1.02rem); line-height: 1.45; }
.xmb-announcement-price { display: flex; align-items: baseline; gap: .5rem; margin: 0 0 .55rem; }
.xmb-announcement-price del { color: rgba(255,255,255,.62); font-size: .9rem; }
.xmb-announcement-price strong { font-size: clamp(1.3rem, 1.8vw, 1.7rem); }
.xmb-announcement-price span { font-size: .73rem; font-weight: 800; letter-spacing: .1em; }
.xmb-announcement-cta { display: inline-flex; align-items: center; gap: .55rem; margin-top: .1rem; padding: .7rem 1rem; border-radius: .62rem; background: #fff; color: var(--xmb-brown); font-size: .82rem; font-weight: 800; text-decoration: none; box-shadow: 0 .7rem 1.6rem rgba(0,0,0,.18); transition: transform .2s ease, box-shadow .2s ease; }
.xmb-announcement-cta:hover { color: var(--xmb-brown); transform: translateY(-2px); box-shadow: 0 .9rem 2rem rgba(0,0,0,.24); }
.xmb-announcement-cta.is-disabled { color: #6d625c; background: #ece8e5; cursor: not-allowed; box-shadow: none; }

.xmb-announcement-countdown { display: flex; gap: .35rem; margin-bottom: .65rem; }
.xmb-announcement-countdown > div { min-width: 51px; padding: .42rem .45rem; border: 1px solid rgba(255,255,255,.28); border-radius: .55rem; background: rgba(20,12,8,.38); backdrop-filter: blur(8px); text-align: center; }
.xmb-announcement-countdown strong, .xmb-announcement-countdown span { display: block; }
.xmb-announcement-countdown strong { font-size: .95rem; line-height: 1; }
.xmb-announcement-countdown span { margin-top: .25rem; font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .78; }

.xmb-announcement-popup { --xmb-brown: #5a3928; position: fixed; inset: 0; z-index: 10050; display: grid; place-items: center; padding: clamp(.75rem, 2vw, 1.5rem); visibility: hidden; opacity: 0; transition: opacity .28s ease, visibility .28s; }
.xmb-announcement-popup.is-visible { visibility: visible; opacity: 1; }
.xmb-announcement-popup-backdrop { position: absolute; inset: 0; background: rgba(36, 23, 16, .62); backdrop-filter: blur(7px); }
.xmb-announcement-popup-dialog { position: relative; width: min(680px, calc(100vw - 2rem)) !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; max-height: min(500px, calc(100dvh - 2rem)) !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: 40% 60%; overflow: hidden !important; border-radius: 1rem; background: #fff; color: var(--xmb-brown); box-shadow: 0 2rem 5rem rgba(22, 13, 8, .35); transform: translateY(18px) scale(.98); transition: transform .3s ease; }
.xmb-announcement-popup.is-visible .xmb-announcement-popup-dialog { transform: none; }
.xmb-announcement-popup-close { position: absolute; z-index: 2; top: .6rem; right: .6rem; width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #f6eee8; color: var(--xmb-brown); }
.xmb-announcement-popup-media { position: relative; min-height: 360px; max-height: 500px; overflow: hidden; }
.xmb-announcement-popup-media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.xmb-announcement-popup-price { position: absolute; left: .8rem; bottom: .8rem; padding: .55rem .7rem; border-radius: .5rem; background: rgba(45,27,18,.8); color: #fff; font-size: .86rem; font-weight: 800; backdrop-filter: blur(8px); }
.xmb-announcement-popup-copy { display: flex; min-width: 0; max-height: min(500px, calc(100dvh - 2rem)); flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(1.25rem, 2.5vw, 1.9rem); overflow-y: auto; }
.xmb-announcement-popup-eyebrow { color: #c58c44; font-size: .73rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.xmb-announcement-popup-copy h2 { margin: .42rem 0 .58rem; color: var(--xmb-brown); font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.65rem, 2.5vw, 2.15rem); line-height: 1; letter-spacing: -.025em; text-wrap: balance; }
.xmb-announcement-popup-copy > p { margin-bottom: .65rem; color: #7a6254; font-size: .86rem; line-height: 1.42; }
.xmb-announcement-popup-saving { margin: -.35rem 0 .75rem; color: #a38370; font-size: .84rem; }
.xmb-announcement-countdown.is-popup > div { min-width: 44px; padding: .38rem .32rem; color: var(--xmb-brown); border-color: #ead9cc; background: #fbf4ef; }
.xmb-announcement-popup-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; margin-top: .25rem; }
.xmb-announcement-popup-primary { display: inline-flex; padding: .72rem .95rem; border-radius: .6rem; background: var(--xmb-brown); color: #fff; font-size: .82rem; font-weight: 800; text-decoration: none; }
.xmb-announcement-popup-primary:hover { color: #fff; background: #42281c; }
.xmb-announcement-popup-primary.is-disabled { color: #766a64; background: #e9e4e0; cursor: not-allowed; }
.xmb-announcement-popup-later { padding: .7rem .8rem; border: 0; background: transparent; color: #80614f; font-weight: 700; }
body.xmb-popup-open { overflow: hidden; }

@media (max-width: 767.98px) {
    body.landing-home-page #quienes-somos { padding-bottom: .65rem; }
    body.landing-home-page .xmb-announcements + #services { padding-top: 1rem; }
    .xmb-announcements { padding: .6rem 0 .9rem; }
    .xmb-announcement-grid.has-multiple { grid-template-columns: 1fr; }
    .xmb-announcement-banner { min-height: 440px; }
    .xmb-announcement-banner-overlay { background: linear-gradient(0deg, rgba(25,14,9,.94) 0%, rgba(25,14,9,.72) 55%, rgba(25,14,9,.2) 100%); }
    .xmb-announcement-banner-content { width: 100%; min-height: inherit; justify-content: flex-end; padding: 1.35rem 1.15rem 3rem; }
    .xmb-announcement-banner-content h2 { font-size: clamp(2rem, 9.5vw, 2.8rem); }
    .xmb-announcement-banner-content > p { font-size: .88rem; }
    .xmb-announcement-countdown > div { min-width: 51px; padding: .5rem .4rem; }
    .xmb-announcement-popup-dialog { width: min(420px, calc(100vw - 1.5rem)) !important; max-height: calc(100dvh - 1.5rem) !important; grid-template-columns: 1fr; overflow-y: auto !important; }
    .xmb-announcement-popup-media { min-height: 145px; height: 155px; max-height: 155px; }
    .xmb-announcement-popup-copy { max-height: none; padding: 1rem; overflow: visible; }
    .xmb-announcement-popup-copy h2 { font-size: clamp(1.55rem, 7.6vw, 2rem); }
    .xmb-announcement-popup-copy > p { font-size: .82rem; line-height: 1.4; }
    .xmb-announcement-countdown.is-popup > div { min-width: 46px; padding: .4rem .3rem; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .xmb-announcement-grid.has-multiple { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .xmb-announcement-banner, .xmb-announcement-popup, .xmb-announcement-popup-dialog { transition: none; }
}
