/* Dreams Macao · trade catalogue page (design option 3). Layout and look live here; content lives in the Elementor widgets. */
:root {
  --dm-paper: #FFFFFF;
  --dm-panel: #F2F4F3;
  --dm-teal: #0E4D5C;
  --dm-teal-2: #0B3C48;
  --dm-teal-soft: #E1EEF0;
  --dm-sun: #F3B53F;
  --dm-sun-soft: #FFF1D2;
  --dm-ink: #1A1D1F;
  --dm-ink-2: #555D61;
  --dm-line: #D6DCDD;
  --dm-cond: "Barlow Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --dm-sans: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --dm-gutter: max(16px, env(safe-area-inset-left, 0px));
  --dm-gutter-r: max(16px, env(safe-area-inset-right, 0px));
}
body { background: var(--dm-paper); color: var(--dm-ink); font-family: var(--dm-sans); font-size: 1.04rem; line-height: 1.55; }
body ::selection { background: var(--dm-sun); color: var(--dm-ink); }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
a { color: inherit; text-underline-offset: .2em; }
a:hover { color: inherit; }
:focus-visible { outline: 2px solid var(--dm-teal); outline-offset: 3px; }

/* Shared wrappers */
.e-con.dm-wrap { width: 100%; max-width: 1300px; margin-inline: auto; padding-left: var(--dm-gutter); padding-right: var(--dm-gutter-r); --padding-left: var(--dm-gutter); --padding-right: var(--dm-gutter-r); }
body .e-con, .e-con.dm-band, .e-con.dm-foot { --gap: 0px; --row-gap: 0px; --column-gap: 0px; }
body .elementor-widget:not(:last-child) { margin-block-end: 0; }
body p:last-child { margin-bottom: 0; }
body h1, body h2, body h3,
body .elementor-heading-title { font-family: var(--dm-cond); text-transform: uppercase; letter-spacing: .01em; line-height: .95; margin: 0; text-wrap: balance; color: var(--dm-ink); }

/* Buttons */
.dm-btn .elementor-button, .dm-coupon .elementor-button {
  font-family: var(--dm-cond); font-weight: 700; font-size: 1.08rem; letter-spacing: .06em; text-transform: uppercase;
  padding: 13px 22px; border-radius: 2px; background: var(--dm-sun); color: var(--dm-ink); border: 0; fill: var(--dm-ink);
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s;
}
.dm-btn .elementor-button:hover, .dm-coupon .elementor-button:hover { background: var(--dm-sun); color: var(--dm-ink); transform: translateY(-1px); box-shadow: 0 8px 18px -10px rgba(0,0,0,.45); }
.dm-btn-teal .elementor-button, .dm-coupon .elementor-button { background: var(--dm-teal); color: #fff; }
.dm-btn-teal .elementor-button:hover, .dm-coupon .elementor-button:hover { background: var(--dm-teal-2); color: #fff; }

/* Header band */
.e-con.dm-band { background: var(--dm-teal-2); color: #fff; z-index: 50; }
.e-con.dm-band > .e-con.dm-wrap { display: flex; flex-direction: row; align-items: center; gap: 24px; min-height: 60px; }
.dm-region { font-family: var(--dm-cond); font-weight: 700; font-size: 1.05rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; color: #fff; }
.dm-region p { margin: 0; }
.dm-region span { opacity: .65; font-weight: 500; }
.dm-nav { margin-left: auto; }
.dm-nav .elementor-nav-menu--main .elementor-item {
  font-family: var(--dm-cond); font-weight: 600; font-size: .98rem; letter-spacing: .06em; text-transform: uppercase;
  color: #fff; padding: 8px 12px; border-radius: 2px; opacity: .88;
}
.dm-nav .elementor-nav-menu--main .elementor-item:hover, .dm-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #fff; opacity: 1; background: rgba(255,255,255,.12); }
.dm-nav .elementor-nav-menu--main .elementor-item::before, .dm-nav .elementor-nav-menu--main .elementor-item::after { display: none; }
.dm-nav .elementor-menu-toggle { color: #fff; background: transparent; border-radius: 2px; }
.dm-nav .elementor-nav-menu--dropdown { background: var(--dm-teal-2); }
.dm-nav .elementor-nav-menu--dropdown a { color: #fff; font-family: var(--dm-cond); text-transform: uppercase; letter-spacing: .06em; }
.dm-nav .elementor-nav-menu--dropdown a:hover { background: rgba(255,255,255,.12); color: #fff; }
.dm-band .dm-btn .elementor-button { padding: 10px 16px; font-size: .98rem; white-space: nowrap; }
@media (max-width: 1024px) { .dm-band .dm-btn { display: none; } }
@media (max-width: 480px) { .dm-region span { display: none; } }

/* Thumb-index tab */
.dm-tab-html { position: static; }
.dm-tab {
  position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 40;
  background: var(--dm-teal); color: #fff; writing-mode: vertical-rl;
  font-family: var(--dm-cond); font-weight: 700; letter-spacing: .18em; text-transform: uppercase; font-size: .9rem;
  padding: 22px 9px; border-radius: 4px 0 0 4px;
}
@media (max-width: 900px) { .dm-tab { display: none; } }

/* Spread: photo + property column */
.e-con.dm-spread { display: grid !important; grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr); gap: 28px !important; padding-block: 28px 40px; align-items: stretch; }
@media (max-width: 960px) { .e-con.dm-spread { grid-template-columns: minmax(0, 1fr); } }
.e-con.dm-hero { position: relative; border-radius: 2px; min-width: 0; }
.dm-gallery { width: 100%; }
.dm-gallery .elementor-main-swiper { border-radius: 2px; overflow: hidden; }
.dm-gallery .elementor-thumbnails-swiper { margin-top: 8px; }
.dm-gallery .elementor-thumbnails-swiper .swiper-slide { opacity: .55; border: 3px solid transparent; border-radius: 2px; cursor: pointer; transition: opacity .2s, border-color .2s; }
.dm-gallery .elementor-thumbnails-swiper .swiper-slide:hover { opacity: .85; }
.dm-gallery .elementor-thumbnails-swiper .swiper-slide-active, .dm-gallery .elementor-thumbnails-swiper .swiper-slide-thumb-active { opacity: 1; border-color: var(--dm-sun); }
.dm-gallery .elementor-swiper-button { color: #fff; background: rgba(11,60,72,.55); width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-size: 18px; }
.dm-gallery .elementor-swiper-button svg { fill: #fff; width: 18px; height: 18px; }
.dm-flash {
  position: absolute !important; right: 22px; top: 22px; width: 132px !important; height: 132px; border-radius: 50%;
  background: var(--dm-sun); color: var(--dm-ink); display: grid; place-content: center; text-align: center;
  box-shadow: 0 10px 24px -12px rgba(0,0,0,.5); transform: rotate(-8deg); z-index: 2;
}
.dm-flash p { margin: 0; line-height: 1.1; }
.dm-flash b { display: block; font-family: var(--dm-cond); font-weight: 800; font-size: 1.5rem; line-height: .9; text-transform: uppercase; }
.dm-flash span { display: block; font-size: .74rem; font-weight: 600; padding-inline: 14px; margin-top: 4px; }
@media (max-width: 560px) { .dm-flash { width: 104px !important; height: 104px; right: 14px; top: 14px; } .dm-flash b { font-size: 1.2rem; } }
.dm-photo-credit { position: absolute !important; left: 12px; bottom: 10px; z-index: 2; width: auto !important; }
.dm-photo-credit p { margin: 0; background: rgba(255,255,255,.9); color: var(--dm-ink); font-size: .78rem; font-weight: 600; padding: 4px 9px; border-radius: 2px; }

.e-con.dm-prop { display: flex; flex-direction: column; gap: 18px !important; }
.dm-logo img { width: 190px; height: auto; }
.dm-where .elementor-heading-title { font-family: var(--dm-cond); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--dm-teal); font-size: 1rem; line-height: 1.2; }
.dm-h1 .elementor-heading-title { font-size: clamp(2.8rem, 2rem + 3vw, 4.6rem); font-weight: 800; letter-spacing: -0.005em; }
.dm-h1 .elementor-heading-title span { display: block; font-weight: 600; color: var(--dm-ink-2); font-size: .5em; letter-spacing: .04em; margin-top: 8px; }
.dm-parts table { width: 100%; border-collapse: collapse; margin: 0; border-top: 2px solid var(--dm-ink); font-variant-numeric: tabular-nums; }
.dm-parts th, .dm-parts td { text-align: left; padding: 9px 12px 9px 0; border: 0; border-bottom: 1px solid var(--dm-line); vertical-align: baseline; background: none; }
.dm-parts th { font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .95rem; color: var(--dm-ink-2); width: 9.5rem; }
.dm-parts td { font-weight: 600; }
body table tbody > tr:nth-child(odd) > td, body table tbody > tr:nth-child(odd) > th, body table tbody tr:hover > td, body table tbody tr:hover > th { background: none; }
.e-con.dm-rates { background: var(--dm-teal); color: #fff; padding: 20px 20px 22px !important; display: flex; flex-direction: column; gap: 10px !important; border-radius: 2px; }
.dm-rates .dm-label .elementor-heading-title { font-family: var(--dm-cond); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .95rem; color: rgba(255,255,255,.8); line-height: 1.2; }
.dm-rates .dm-big .elementor-heading-title { font-weight: 800; font-size: 2.1rem; line-height: 1; color: #fff; }
.dm-rates .elementor-widget-text-editor { color: rgba(255,255,255,.92); font-size: .94rem; }
.dm-rates .dm-btn { align-self: flex-start; }

/* Facilities key */
.e-con.dm-legend-band { background: var(--dm-panel); border-block: 1px solid var(--dm-line); }
.dm-legend { display: flex; flex-wrap: wrap; gap: 6px 4px; align-items: center; padding-block: 14px; }
.dm-legend .k { font-family: var(--dm-cond); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .9rem; color: var(--dm-ink-2); margin-right: 10px; }
.dm-legend button {
  display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 1px solid transparent; border-radius: 999px;
  padding: 6px 12px 6px 8px; font: 500 .92rem var(--dm-sans); color: var(--dm-ink); cursor: pointer; transition: background .2s, border-color .2s; text-transform: none; letter-spacing: 0;
}
.dm-legend button:hover, .dm-legend button[aria-pressed="true"] { background: var(--dm-paper); border-color: var(--dm-teal); color: var(--dm-ink); }
.dm-legend .ico { width: 26px; height: 26px; flex: none; color: var(--dm-teal); }
.dm-legend .ico .bg { fill: var(--dm-teal-soft); stroke: none; }

/* Hotel copy */
.e-con.dm-copy { display: grid !important; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px !important; padding-block: 48px 64px; align-items: start; }
@media (max-width: 960px) { .e-con.dm-copy { grid-template-columns: minmax(0, 1fr); } }
.dm-intro { font-size: 1.22rem; line-height: 1.5; margin: 0 0 18px; break-inside: avoid-column; }
.dm-cols .elementor-text-editor, .dm-cols.elementor-widget-text-editor { columns: 2 300px; column-gap: 36px; column-rule: 1px solid var(--dm-line); }
.dm-cols p { margin: 0 0 14px; break-inside: avoid-column; }
.dm-cols p b, .dm-cols p strong { font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 1.1rem; color: var(--dm-teal); margin-right: 4px; }
.dm-cols mark { background: transparent; color: inherit; border-radius: 2px; padding: 0; transition: background .2s, box-shadow .2s; }
.dm-cols mark.lit { background: var(--dm-sun-soft); box-shadow: 0 0 0 3px var(--dm-sun-soft); }
.dm-src, .dm-src p { font-size: .82rem; color: var(--dm-ink-2); }
.e-con.dm-aside { display: flex; flex-direction: column; gap: 18px !important; }
.dm-love { background: var(--dm-sun); color: var(--dm-ink); padding: 26px 24px 24px; border-radius: 2px; }
.dm-love h2 { font-family: var(--dm-cond); font-size: 2rem; font-weight: 800; text-transform: uppercase; margin: 0 0 14px; line-height: .95; }
.dm-love ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dm-love li { position: relative; padding-left: 28px; font-weight: 500; line-height: 1.4; }
.dm-love li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M3 9.5l4 4 8-9' fill='none' stroke='%231A1D1F' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat; }
.dm-box { border: 1px solid var(--dm-line); border-radius: 2px; }
.dm-box h3 { font-family: var(--dm-cond); font-size: 1.15rem; text-transform: uppercase; letter-spacing: .06em; padding: 12px 16px; background: var(--dm-panel); border-bottom: 1px solid var(--dm-line); margin: 0; }
.dm-box table { width: 100%; border-collapse: collapse; margin: 0; font-variant-numeric: tabular-nums; }
.dm-box td { padding: 9px 16px; border: 0; border-bottom: 1px solid var(--dm-line); background: none; }
.dm-box tr:last-child td { border-bottom: 0; }
.dm-box td:last-child { text-align: right; font-family: var(--dm-cond); font-weight: 700; font-size: 1.15rem; color: var(--dm-teal); white-space: nowrap; }
.dm-box p { margin: 0; padding: 10px 16px 12px; font-size: .82rem; color: var(--dm-ink-2); }
.dm-aside-img img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 2px; }

/* Rooms */
.e-con.dm-rooms { display: grid !important; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px !important; padding-block: 0 72px; align-items: start; }
@media (max-width: 960px) { .e-con.dm-rooms { grid-template-columns: minmax(0, 1fr); } }
.e-con.dm-rooms-main { display: flex; flex-direction: column; gap: 14px !important; }
.dm-h2 .elementor-heading-title { font-size: clamp(2.2rem, 1.6rem + 2vw, 3.4rem); font-weight: 800; }
.dm-lead { color: var(--dm-ink-2); max-width: 60ch; }
.dm-roomtable table { width: 100%; border-collapse: collapse; margin: 0; font-variant-numeric: tabular-nums; border-top: 2px solid var(--dm-ink); }
.dm-roomtable th, .dm-roomtable td { text-align: left; padding: 8px 10px 8px 0; border: 0; border-bottom: 1px solid var(--dm-line); background: none; font-size: .97rem; }
.dm-roomtable thead th { font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .9rem; color: var(--dm-ink-2); }
.dm-roomtable td:last-child, .dm-roomtable th:last-child { text-align: right; padding-right: 0; }
.dm-roomtable td:last-child { font-family: var(--dm-cond); font-weight: 700; font-size: 1.1rem; color: var(--dm-teal); }
.dm-roomtable tr.pc td:first-child::after { content: "PC"; display: inline-block; margin-left: 8px; font: 700 .7rem var(--dm-sans); letter-spacing: .06em; color: var(--dm-ink); background: var(--dm-sun); border-radius: 2px; padding: 1px 5px; vertical-align: 2px; }
.dm-roomtable tfoot td { font-weight: 700; border-bottom: 0; border-top: 2px solid var(--dm-ink); }
.dm-rooms-img img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.dm-caption, .dm-caption p { font-size: .84rem; color: var(--dm-ink-2); margin-top: 8px; }

/* Secrets Macao: coming soon */
.e-con.dm-secrets-band { background: var(--dm-teal-2); color: #fff; }
.e-con.dm-secrets { padding-block: 64px 72px; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 40px !important; align-items: start; }
@media (max-width: 960px) { .e-con.dm-secrets { grid-template-columns: minmax(0, 1fr); } }
.e-con.dm-secrets-text { display: flex; flex-direction: column; gap: 16px !important; }
.dm-secrets .dm-flag .elementor-heading-title { display: inline-block; font-family: var(--dm-cond); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .95rem; color: var(--dm-ink); background: var(--dm-sun); padding: 4px 10px; border-radius: 2px; line-height: 1.2; }
.dm-secrets .dm-h2 .elementor-heading-title { color: #fff; }
.dm-secrets .elementor-widget-text-editor { color: rgba(255,255,255,.88); }
.dm-secrets .dm-btn { align-self: flex-start; }
.e-con.dm-renders { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; }
.dm-renders img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.dm-secrets .dm-caption, .dm-secrets .dm-caption p { color: rgba(255,255,255,.72); }

/* Trade resources */
.e-con.dm-res { padding-block: 64px; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 40px !important; align-items: start; }
@media (max-width: 960px) { .e-con.dm-res { grid-template-columns: minmax(0, 1fr); } }
.e-con.dm-res-text { display: flex; flex-direction: column; gap: 14px !important; }
.dm-downloads ul { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--dm-ink); }
.dm-downloads li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--dm-line); }
.dm-downloads li strong { font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 1.15rem; }
.dm-downloads li small { grid-column: 1; color: var(--dm-ink-2); font-size: .9rem; }
.dm-downloads li em { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-style: normal; font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .9rem; color: var(--dm-ink-2); border: 1px solid var(--dm-line); border-radius: 2px; padding: 4px 10px; white-space: nowrap; }
.dm-downloads li a.dl { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .95rem; background: var(--dm-sun); color: var(--dm-ink); border-radius: 2px; padding: 8px 14px; text-decoration: none; white-space: nowrap; }

/* Contact + order coupon */
.e-con.dm-contact-band { background: var(--dm-panel); border-top: 1px solid var(--dm-line); }
.e-con.dm-contact { display: grid !important; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 48px !important; padding-block: 64px 80px; align-items: start; }
@media (max-width: 960px) { .e-con.dm-contact { grid-template-columns: minmax(0, 1fr); } }
.e-con.dm-who { display: flex; flex-direction: column; gap: 18px !important; }
.dm-office img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; border-radius: 2px; }
.dm-about p { margin: 0 0 12px; max-width: 60ch; }
.dm-svc table { width: 100%; border-collapse: collapse; margin: 0; border-top: 2px solid var(--dm-ink); }
.dm-svc th, .dm-svc td { text-align: left; padding: 11px 12px 11px 0; border: 0; border-bottom: 1px solid var(--dm-line); background: none; vertical-align: baseline; }
.dm-svc th { font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--dm-teal); width: 11rem; }
.dm-svc td { color: var(--dm-ink-2); }
.dm-reach { background: var(--dm-paper); border: 1px solid var(--dm-line); border-radius: 2px; padding: 16px; }
.dm-reach p { margin: 0; }
.dm-reach .lbl { font-size: .86rem; color: var(--dm-ink-2); }
.dm-reach .tel { font-family: var(--dm-cond); font-weight: 700; font-size: 1.8rem; letter-spacing: .02em; text-decoration: none; font-variant-numeric: tabular-nums; }
@media (max-width: 520px) { .dm-svc th, .dm-parts th { display: block; width: auto; padding-bottom: 0; border-bottom: 0; } .dm-svc td, .dm-parts td { display: block; padding-top: 2px; } }

.e-con.dm-coupon { background: var(--dm-paper); border: 2px dashed var(--dm-ink); border-radius: 4px; padding: 26px !important; position: relative; display: flex; flex-direction: column; gap: 6px !important; }
.e-con.dm-coupon::before { content: ""; position: absolute; top: -14px; left: 26px; width: 26px; height: 26px; background: var(--dm-panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%231A1D1F' stroke-width='1.6'%3E%3Ccircle cx='6' cy='7' r='3'/%3E%3Ccircle cx='6' cy='17' r='3'/%3E%3Cpath d='M8.5 8.5L20 18M8.5 15.5L20 6'/%3E%3C/g%3E%3C/svg%3E") center / 20px no-repeat; }
.dm-coupon .dm-h3 .elementor-heading-title { font-size: 1.7rem; font-weight: 800; }
.dm-coupon .dm-lead { margin-bottom: 12px; }
.dm-coupon .elementor-field-group { margin-bottom: 12px; }
.dm-coupon .elementor-field-label { font-family: var(--dm-cond); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: .86rem; color: var(--dm-ink-2); }
.dm-coupon .elementor-field-textual { border: 1px solid var(--dm-ink); border-radius: 2px; background: #fff; color: var(--dm-ink); font-family: var(--dm-sans); font-size: 1rem; padding: 10px 12px; }
.dm-coupon .elementor-field-textual:focus { border-color: var(--dm-teal); box-shadow: 0 0 0 3px var(--dm-teal-soft); background: var(--dm-sun-soft); outline: none; }
.dm-coupon .elementor-field-type-checkbox .elementor-field-subgroup { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.dm-coupon .elementor-field-type-checkbox .elementor-field-option { display: flex; gap: 10px; align-items: center; padding: 14px 12px; border: 1px solid var(--dm-line); border-radius: 2px; background: #fff; margin: 0; }
.dm-coupon .elementor-field-type-checkbox .elementor-field-option:has(input:checked) { border-color: var(--dm-teal); background: var(--dm-teal-soft); }
.dm-coupon .elementor-field-type-checkbox input { width: 18px; height: 18px; accent-color: var(--dm-teal); margin: 0; }
.dm-coupon .elementor-field-type-checkbox label { font-weight: 500; }
@media (max-width: 560px) { .dm-coupon .elementor-field-type-checkbox .elementor-field-subgroup { grid-template-columns: minmax(0, 1fr); } }
.dm-coupon .elementor-message { font-weight: 600; }

/* Footer */
.e-con.dm-foot { background: var(--dm-teal-2); color: #C9DCE0; font-size: .86rem; }
.e-con.dm-foot > .e-con.dm-wrap { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 18px 40px !important; align-items: center; padding-block: 32px 40px; }
@media (max-width: 760px) { .e-con.dm-foot > .e-con.dm-wrap { grid-template-columns: minmax(0, 1fr); } }
.dm-foot p { margin: 0 0 6px; }
.dm-foot b { font-family: var(--dm-cond); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #fff; font-size: 1rem; }
.dm-foot a { color: #fff; }
.dm-foot-links ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.dm-foot-links a { font-weight: 600; text-decoration: none; }
.dm-foot-links a:hover { text-decoration: underline; }

/* Fixes after first render */
.dm-coupon .elementor-form .elementor-button[type="submit"] { background-color: var(--dm-teal) !important; color: #fff !important; }
.dm-coupon .elementor-form .elementor-button[type="submit"]:hover { background-color: var(--dm-teal-2) !important; }
.dm-gallery .elementor-swiper-button { display: flex !important; align-items: center; justify-content: center; padding: 0; }
.dm-gallery .elementor-swiper-button svg { margin: 0; flex: none; }
.dm-gallery .elementor-swiper-button-prev svg { transform: translateX(-1px); }
.dm-gallery .elementor-swiper-button-next svg { transform: translateX(1px); }

/* Whitespace pass: balance column heights */
/* Hotel: copy across the full width in 3 columns, then a row of three equal pieces */
.e-con.dm-copy { grid-template-columns: minmax(0, 1fr) !important; gap: 32px !important; }
.dm-cols .elementor-text-editor, .dm-cols.elementor-widget-text-editor { columns: 3 260px; }
.e-con.dm-trio { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px !important; align-items: stretch; }
@media (max-width: 960px) { .e-con.dm-trio { grid-template-columns: minmax(0, 1fr); } }
.dm-trio .dm-love { height: 100%; }
.e-con.dm-trio-photo { display: flex; flex-direction: column; gap: 0 !important; min-height: 260px; }
.dm-trio-photo .dm-aside-img { flex: 1; display: flex; }
.dm-trio-photo .dm-aside-img img { height: 100%; min-height: 240px; aspect-ratio: auto; object-fit: cover; }
.dm-trio .dm-box { height: 100%; background: var(--dm-paper); }

/* Rooms: photo and key figures stay in view while the table scrolls */
@media (min-width: 961px) { .e-con.dm-rooms-side { position: sticky; top: 92px; } }
.dm-stats ul { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--dm-ink); }
.dm-stats li { display: grid; gap: 2px; padding: 14px 12px 14px 0; border-bottom: 1px solid var(--dm-line); }
.dm-stats li:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--dm-line); }
.dm-stats strong { font-family: var(--dm-cond); font-weight: 800; font-size: 2.4rem; line-height: 1; color: var(--dm-teal); font-variant-numeric: tabular-nums; }
.dm-stats span { font-size: .9rem; color: var(--dm-ink-2); }

/* Contact: keep the order form in view next to the longer About column */
@media (min-width: 961px) { .e-con.dm-coupon { position: sticky; top: 92px; } }

/* Footer and dark bands: text widgets inherit the band colour, not the global ink */
.dm-foot .elementor-widget-text-editor, .dm-foot .elementor-widget-text-editor p { color: #C9DCE0; }
.dm-foot .elementor-widget-text-editor a { color: #fff; }
.dm-band .elementor-widget-text-editor, .dm-secrets-band .elementor-widget-text-editor { color: inherit; }

/* Contact: office photo beside the About text instead of above it */
@media (min-width: 700px) {
  .e-con.dm-who { display: grid !important; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: 18px 24px !important; align-items: start; }
  .dm-who > .dm-h2, .dm-who > .dm-svc, .dm-who > .dm-reach { grid-column: 1 / -1; }
  .dm-who > .dm-office { grid-column: 1; }
  .dm-who > .dm-about { grid-column: 2; }
  .dm-office img { aspect-ratio: 3 / 4; object-position: 50% 25%; }
  .dm-about p { font-size: .98rem; }
}

/* Hero carousel like the proposal: thumbnails sit on the photo, bottom left */
.dm-gallery { position: relative; }
.dm-gallery .elementor-thumbnails-swiper { position: absolute !important; left: 16px; bottom: 16px; width: min(330px, 62%); margin: 0 !important; z-index: 3; overflow: hidden !important; }
.dm-gallery .elementor-thumbnails-swiper .swiper-slide { opacity: .8; border: 3px solid #fff; border-radius: 2px; box-shadow: 0 6px 14px -8px rgba(0,0,0,.6); }
.dm-gallery .elementor-thumbnails-swiper .swiper-slide:hover { opacity: 1; }
.dm-gallery .elementor-thumbnails-swiper .swiper-slide-active,
.dm-gallery .elementor-thumbnails-swiper .swiper-slide-thumb-active { opacity: 1; border-color: var(--dm-sun); }
@media (max-width: 560px) { .dm-gallery .elementor-thumbnails-swiper { left: 10px; bottom: 10px; width: 60%; } }
.dm-hero .dm-photo-credit { position: absolute !important; left: auto; right: 14px; bottom: 16px; z-index: 4; width: auto !important; }
.dm-hero .dm-photo-credit p { background: rgba(11,60,72,.72); color: #fff; font-size: .74rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 4px 9px; border-radius: 2px; }

/* Third-party plugins */
/* WhatsApp for WordPress: floating button size */
.wa__btn_popup .wa__btn_popup_icon {
    width: 50px;
    height: 50px;
}

/* Contact: "Commercial representation of" + Dreams logo, under the contact heading */
.e-con.dm-rep { display: flex !important; flex-direction: row; align-items: center; gap: 18px !important; padding-block: 4px 16px !important; border-bottom: 1px solid var(--dm-line); }
.dm-who > .dm-rep { grid-column: 1 / -1; }
.dm-rep-label p { margin: 0; font-family: var(--dm-cond); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; font-size: .9rem; color: var(--dm-ink-2); }
.dm-rep-logo { width: auto !important; }
.dm-rep-logo img { width: 150px; height: auto; display: block; }
@media (max-width: 520px) { .e-con.dm-rep { flex-direction: column; align-items: flex-start; gap: 8px !important; } }
.e-con.dm-rep > .dm-rep-logo { flex: 0 0 150px; width: 150px !important; max-width: 150px; }
.dm-rep-logo img { width: 150px !important; max-width: none; }
/* "Renderings" label pinned to the photo's top-left corner at every width */
.dm-hero .dm-photo-credit { top: 14px; left: 14px; right: auto; bottom: auto; }

/* Hero carousel: photos open the lightbox gallery on click */
.dm-gallery .elementor-main-swiper a { cursor: zoom-in; }
