/* ==========================================================================
   DALGATE ONLINE — Universal Stylesheet (Directory Design System v2)
   One file for the entire website.
   01 Tokens · 02 Base · 03 Typography · 04 Bootstrap overrides · 05 Layout
   06 Components · 07 Sections · 08 Utilities · 09 Motion · 10 Responsive
   Naming: dg-block, dg-block__element, dg-block--modifier
   ========================================================================== */

/* 01 · TOKENS ------------------------------------------------------------ */
:root {
  /* Brand */
  --dg-primary: #272262;          /* brand indigo */
  --dg-primary-700: #1d1950;      /* dark surfaces */
  --dg-primary-600: #3a3491;      /* hover */
  --dg-primary-100: #e4e3f3;
  --dg-primary-50: #f1f0fa;       /* tint surfaces */
  --dg-gold: #d2ac2c;             /* brand gold — featured, highlights */
  --dg-gold-700: #8a6e14;         /* gold text on light (AA) */
  --dg-gold-50: #fbf6e5;

  /* Neutrals */
  --dg-bg: #f5f6fa;
  --dg-surface: #ffffff;
  --dg-border: #e5e7ef;
  --dg-border-strong: #d3d6e2;
  --dg-text: #14132b;
  --dg-text-2: #3d4058;
  --dg-muted: #6a6e87;

  /* Functional */
  --dg-success: #13804f;
  --dg-success-50: #e8f6ef;
  --dg-danger: #c93b3b;
  --dg-danger-50: #fdeeee;
  --dg-whatsapp: #1f8a52;
  --dg-whatsapp-700: #187043;
  --dg-teal: #2b6f7e;
  --dg-teal-50: #e7f3f5;

  /* Type */
  --dg-font-head: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --dg-font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --dg-fs-hero: clamp(2.2rem, 4.6vw, 3.6rem);
  --dg-fs-h2: clamp(1.6rem, 2.6vw, 2.25rem);
  --dg-fs-h3: 1.125rem;

  /* Space & shape */
  --dg-section: clamp(3.5rem, 6vw, 5.5rem);
  --dg-gutter: clamp(1rem, 2.5vw, 1.5rem);
  --dg-r-sm: 6px;
  --dg-r: 10px;
  --dg-r-lg: 16px;
  --dg-r-pill: 999px;

  /* Elevation */
  --dg-shadow-xs: 0 1px 2px rgba(20, 19, 43, .06);
  --dg-shadow-sm: 0 1px 3px rgba(20, 19, 43, .06), 0 4px 12px rgba(20, 19, 43, .04);
  --dg-shadow: 0 8px 24px -8px rgba(20, 19, 43, .16);
  --dg-shadow-lg: 0 24px 48px -16px rgba(20, 19, 43, .28);

  /* Motion */
  --dg-ease: cubic-bezier(.22, .61, .36, 1);
  --dg-fast: .18s;
  --dg-med: .32s;

  --dg-header-h: 72px;
}

/* 02 · BASE --------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--dg-header-h) + 1rem); }
body {
  margin: 0; background: var(--dg-bg); color: var(--dg-text);
  font-family: var(--dg-font-body); font-size: 1rem; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; display: block; }
a { color: var(--dg-primary); text-decoration: none; transition: color var(--dg-fast) var(--dg-ease); }
a:hover { color: var(--dg-primary-600); }
:focus-visible { outline: 2px solid var(--dg-gold); outline-offset: 2px; border-radius: 3px; }
#main:focus { outline: 0; } /* Step 20: target of the skip link (focus moves here, no ring around the whole page) */
::selection { background: var(--dg-primary-100); }
.dg-skip { position: absolute; left: 1rem; top: -100px; z-index: 2000; background: var(--dg-primary); color: #fff; padding: .7rem 1rem; border-radius: var(--dg-r-sm); }
.dg-skip:focus { top: 1rem; color: #fff; }

/* 03 · TYPOGRAPHY --------------------------------------------------------- */
h1, h2, h3, h4, h5 { font-family: var(--dg-font-head); color: var(--dg-text); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; margin: 0 0 .5em; }
h2 { font-size: var(--dg-fs-h2); }
h3 { font-size: var(--dg-fs-h3); letter-spacing: -.01em; }
p { margin: 0 0 1em; }
.dg-kicker { display: inline-block; font-family: var(--dg-font-head); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dg-gold-700); margin-bottom: .6rem; }
.dg-sub { color: var(--dg-muted); font-size: 1rem; max-width: 40rem; margin: 0; }

/* Honest placeholder for missing data */
.dg-required { display: inline-block; font-family: var(--dg-font-body); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #9b2c2c; background: var(--dg-danger-50); border: 1px dashed #e0a3a3; padding: .15rem .45rem; border-radius: 4px; vertical-align: middle; line-height: 1.5; }

/* 04 · BOOTSTRAP OVERRIDES ------------------------------------------------ */
.container { max-width: 1280px; --bs-gutter-x: calc(var(--dg-gutter) * 2); }
.form-control, .form-select { border: 1px solid var(--dg-border-strong); border-radius: var(--dg-r-sm); padding: .7rem .9rem; font-size: .95rem; color: var(--dg-text); }
.form-control:focus, .form-select:focus { border-color: var(--dg-primary); box-shadow: 0 0 0 3px rgba(39, 34, 98, .12); }
.form-label { font-size: .82rem; font-weight: 600; color: var(--dg-text-2); margin-bottom: .35rem; }

/* 05 · LAYOUT ------------------------------------------------------------- */
.dg-section { padding-block: var(--dg-section); }
.dg-section--white { background: var(--dg-surface); }
.dg-section--tight { padding-block: calc(var(--dg-section) * .6); }
.dg-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2rem; }
.dg-head h2 { margin-bottom: .35rem; }
.dg-head--center { flex-direction: column; align-items: center; text-align: center; }
.dg-head--center .dg-sub { margin-inline: auto; }

/* 06 · COMPONENTS --------------------------------------------------------- */

/* Buttons */
.dg-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 46px; padding: .65rem 1.25rem; border-radius: var(--dg-r-sm);
  font-family: var(--dg-font-head); font-size: .9rem; font-weight: 700; letter-spacing: -.005em;
  border: 1px solid transparent; cursor: pointer; white-space: nowrap;
  background: var(--dg-primary); color: #fff;
  transition: background var(--dg-fast) var(--dg-ease), color var(--dg-fast), border-color var(--dg-fast), box-shadow var(--dg-fast), transform var(--dg-fast);
}
.dg-btn:hover { background: var(--dg-primary-600); color: #fff; box-shadow: var(--dg-shadow-sm); }
.dg-btn:active { transform: translateY(1px); }
.dg-btn svg { width: 18px; height: 18px; flex: none; }
.dg-btn--gold { background: var(--dg-gold); color: var(--dg-primary-700); }
.dg-btn--gold:hover { background: #dcb93f; color: var(--dg-primary-700); }
.dg-btn--outline { background: var(--dg-surface); color: var(--dg-primary); border-color: var(--dg-border-strong); }
.dg-btn--outline:hover { background: var(--dg-primary-50); color: var(--dg-primary); border-color: var(--dg-primary); box-shadow: none; }
.dg-btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .4); }
.dg-btn--ghost-light:hover { background: #fff; color: var(--dg-primary); }
.dg-btn--wa { background: var(--dg-whatsapp); color: #fff; }
.dg-btn--wa:hover { background: var(--dg-whatsapp-700); color: #fff; }
.dg-btn--sm { min-height: 38px; padding: .45rem .9rem; font-size: .82rem; }
.dg-btn--lg { min-height: 54px; padding: .8rem 1.6rem; font-size: 1rem; }
.dg-btn--block { width: 100%; }
.dg-btn--icon { width: 38px; min-height: 38px; padding: 0; }

.dg-link { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--dg-font-head); font-weight: 700; font-size: .9rem; color: var(--dg-primary); }
.dg-link svg { width: 16px; height: 16px; transition: transform var(--dg-fast) var(--dg-ease); }
.dg-link:hover svg { transform: translateX(3px); }

/* Badges & chips */
.dg-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .7rem; font-weight: 700; letter-spacing: .02em; padding: .25rem .55rem; border-radius: var(--dg-r-pill); background: var(--dg-primary-50); color: var(--dg-primary); line-height: 1.3; }
.dg-badge svg { width: 12px; height: 12px; }
.dg-badge--featured { background: var(--dg-gold); color: var(--dg-primary-700); }
.dg-badge--verified { background: var(--dg-success-50); color: var(--dg-success); }
.dg-badge--dark { background: rgba(20, 19, 43, .72); color: #fff; backdrop-filter: blur(4px); }
.dg-chip {
  display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .9rem; border-radius: var(--dg-r-pill);
  border: 1px solid var(--dg-border-strong); background: var(--dg-surface); color: var(--dg-text-2);
  font-size: .84rem; font-weight: 600; cursor: pointer; white-space: nowrap; font-family: inherit;
  transition: all var(--dg-fast) var(--dg-ease);
}
.dg-chip:hover { border-color: var(--dg-primary); color: var(--dg-primary); }
.dg-chip[aria-pressed="true"], .dg-chip[aria-selected="true"] { background: var(--dg-primary); border-color: var(--dg-primary); color: #fff; }
.dg-chip svg { width: 16px; height: 16px; }
.dg-chips { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.dg-chips::-webkit-scrollbar { display: none; }

/* Stars (empty state until real reviews exist) */
.dg-stars { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; color: var(--dg-muted); }
.dg-stars__icons { display: inline-flex; gap: 1px; color: var(--dg-border-strong); }
.dg-stars__icons svg { width: 14px; height: 14px; }
.dg-stars--rated .dg-stars__icons { color: var(--dg-gold); }

/* Media */
.dg-media { position: relative; overflow: hidden; background: var(--dg-primary-100); }
.dg-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--dg-ease); }

/* ---------- Top utility bar ---------- */
.dg-topbar { background: var(--dg-primary-700); color: rgba(255, 255, 255, .78); font-size: .8rem; }
.dg-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 38px; }
.dg-topbar a { color: rgba(255, 255, 255, .85); }
.dg-topbar a:hover { color: var(--dg-gold); }
.dg-topbar__list { display: flex; gap: 1.25rem; align-items: center; list-style: none; margin: 0; padding: 0; }
.dg-topbar__list li { display: inline-flex; align-items: center; gap: .4rem; }
.dg-topbar svg { width: 14px; height: 14px; color: var(--dg-gold); }

/* ---------- Header ---------- */
.dg-header { position: sticky; top: 0; z-index: 1000; background: var(--dg-surface); border-bottom: 1px solid var(--dg-border); transition: box-shadow var(--dg-med) var(--dg-ease); }
.dg-header.is-scrolled { box-shadow: var(--dg-shadow-sm); }
.dg-header__inner { display: flex; align-items: center; gap: 1.5rem; height: var(--dg-header-h); }
.dg-brand { display: inline-flex; align-items: center; gap: .6rem; color: var(--dg-primary); flex: none; }
.dg-brand:hover { color: var(--dg-primary); }
.dg-brand__mark { width: 40px; height: 40px; flex: none; }
.dg-brand__text { display: flex; flex-direction: column; line-height: 1; }
.dg-brand__name { font-family: var(--dg-font-head); font-size: 1.3rem; font-weight: 800; letter-spacing: -.03em; }
.dg-brand__name span { color: var(--dg-gold-700); font-weight: 700; }
.dg-brand__tag { font-size: .66rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--dg-muted); margin-top: .3rem; }

.dg-nav { display: flex; align-items: center; gap: .1rem; list-style: none; margin: 0; padding: 0; }
.dg-nav__link {
  display: inline-flex; align-items: center; gap: .3rem; height: 40px; padding: 0 .8rem; border-radius: var(--dg-r-sm);
  font-family: var(--dg-font-head); font-size: .9rem; font-weight: 600; color: var(--dg-text-2);
  background: none; border: 0; cursor: pointer; white-space: nowrap;
}
.dg-nav__link:hover, .dg-nav__link[aria-expanded="true"] { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-nav__link svg { width: 14px; height: 14px; transition: transform var(--dg-fast); }
.dg-nav__link[aria-expanded="true"] svg.dg-caret { transform: rotate(180deg); }
.dg-nav__link--cat { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-nav__link--cat:hover { background: var(--dg-primary-100); }

/* Compact header search (appears once hero search scrolls away) */
.dg-hsearch { flex: 1; max-width: 420px; position: relative; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: all var(--dg-med) var(--dg-ease); }
.dg-header.is-search .dg-hsearch { opacity: 1; visibility: visible; transform: none; }
.dg-hsearch input { width: 100%; height: 42px; border: 1px solid var(--dg-border-strong); border-radius: var(--dg-r-pill); padding: 0 1rem 0 2.6rem; font-size: .9rem; background: var(--dg-bg); font-family: inherit; }
.dg-hsearch input:focus { outline: none; border-color: var(--dg-primary); background: #fff; box-shadow: 0 0 0 3px rgba(39, 34, 98, .1); }
.dg-hsearch svg { position: absolute; left: .95rem; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: var(--dg-muted); }
.dg-header__actions { display: flex; align-items: center; gap: .6rem; margin-left: auto; }
.dg-burger { display: none; width: 44px; height: 44px; border-radius: var(--dg-r-sm); border: 1px solid var(--dg-border-strong); background: #fff; color: var(--dg-primary); align-items: center; justify-content: center; cursor: pointer; }
.dg-burger svg { width: 22px; height: 22px; }

/* Mega menu (all categories) */
.dg-nav__item { position: static; }
.dg-mega {
  position: absolute; left: 0; right: 0; top: 100%; background: var(--dg-surface);
  border-top: 1px solid var(--dg-border); box-shadow: var(--dg-shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--dg-med) var(--dg-ease), transform var(--dg-med) var(--dg-ease), visibility 0s linear var(--dg-med);
}
.dg-mega.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.dg-mega__inner { display: grid; grid-template-columns: repeat(3, 1fr) 1.1fr; gap: 2rem; padding-block: 2rem; }
.dg-mega h4 { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--dg-muted); margin-bottom: .75rem; }
.dg-mega ul { list-style: none; margin: 0; padding: 0; }
.dg-mega__cat { display: flex; align-items: center; gap: .75rem; padding: .5rem .6rem; margin-inline: -.6rem; border-radius: var(--dg-r-sm); color: var(--dg-text); font-weight: 600; font-size: .92rem; }
.dg-mega__cat:hover { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-mega__cat .dg-icon-tile { width: 36px; height: 36px; border-radius: 8px; }
.dg-mega__cat .dg-icon-tile svg { width: 19px; height: 19px; }
.dg-mega__promo { background: var(--dg-primary); color: rgba(255, 255, 255, .8); border-radius: var(--dg-r); padding: 1.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.dg-mega__promo h3 { color: #fff; font-size: 1.15rem; margin: 0; }
.dg-mega__promo p { font-size: .88rem; margin: 0; }

/* Mobile nav drawer */
.dg-drawer { position: fixed; inset: 0; z-index: 1200; visibility: hidden; transition: visibility 0s linear var(--dg-med); }
.dg-drawer.is-open { visibility: visible; transition-delay: 0s; }
.dg-drawer__scrim { position: absolute; inset: 0; background: rgba(20, 19, 43, .5); opacity: 0; transition: opacity var(--dg-med); }
.dg-drawer.is-open .dg-drawer__scrim { opacity: 1; }
.dg-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(380px, 90vw); background: #fff; display: flex; flex-direction: column; transform: translateX(100%); transition: transform var(--dg-med) var(--dg-ease); }
.dg-drawer.is-open .dg-drawer__panel { transform: none; }
.dg-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid var(--dg-border); }
.dg-drawer__body { padding: .5rem 1.25rem 1rem; overflow-y: auto; flex: 1; }
.dg-drawer__body h4 { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--dg-muted); margin: 1.1rem 0 .6rem; }
.dg-drawer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.dg-drawer__grid a { display: flex; align-items: center; gap: .55rem; padding: .55rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r-sm); font-size: .82rem; font-weight: 600; color: var(--dg-text); line-height: 1.25; }
.dg-drawer__grid .dg-icon-tile { width: 30px; height: 30px; border-radius: 7px; }
.dg-drawer__grid .dg-icon-tile svg { width: 16px; height: 16px; }
.dg-drawer__links { list-style: none; padding: 0; margin: 0; }
.dg-drawer__links a { display: block; padding: .7rem 0; border-bottom: 1px solid var(--dg-border); color: var(--dg-text); font-weight: 600; }
.dg-drawer__foot { padding: 1rem 1.25rem; border-top: 1px solid var(--dg-border); display: grid; gap: .5rem; }
.dg-close { width: 40px; height: 40px; border-radius: var(--dg-r-sm); border: 1px solid var(--dg-border); background: #fff; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--dg-text); }

/* ---------- Icon tile (category icon) ---------- */
.dg-icon-tile { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 52px; height: 52px; border-radius: 12px; background: var(--dg-primary-50); color: var(--dg-primary); transition: background var(--dg-fast), color var(--dg-fast); }
.dg-icon-tile svg { width: 26px; height: 26px; }
.dg-icon-tile--gold { background: var(--dg-gold-50); color: var(--dg-gold-700); }
.dg-icon-tile--teal { background: var(--dg-teal-50); color: var(--dg-teal); }
.dg-icon-tile--red { background: var(--dg-danger-50); color: var(--dg-danger); }

/* ---------- Search panel ---------- */
.dg-search { background: var(--dg-surface); border-radius: var(--dg-r-lg); box-shadow: var(--dg-shadow-lg); padding: .5rem; display: grid; grid-template-columns: 1.6fr 1fr 1fr auto; gap: 0; }
.dg-search__field { position: relative; display: flex; align-items: center; gap: .7rem; padding: .55rem 1rem; border-right: 1px solid var(--dg-border); min-width: 0; }
.dg-search__field:nth-last-child(2) { border-right: 0; }
.dg-search__field > svg { width: 20px; height: 20px; color: var(--dg-gold-700); flex: none; }
.dg-search__field label { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dg-muted); line-height: 1.2; }
.dg-search__field input, .dg-search__field select { width: 100%; border: 0; background: transparent; padding: .1rem 0 0; font-size: .98rem; font-weight: 600; color: var(--dg-text); font-family: inherit; appearance: none; min-width: 0; }
.dg-search__field select { cursor: pointer; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236a6e87' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right center / 14px no-repeat; padding-right: 1.2rem; }
.dg-search__field input::placeholder { color: var(--dg-muted); font-weight: 500; }
.dg-search__field input:focus, .dg-search__field select:focus { outline: none; }
.dg-search__field:focus-within { background: var(--dg-primary-50); border-radius: var(--dg-r); }
.dg-search__field > div { flex: 1; min-width: 0; }
.dg-search__btn { min-height: 58px; padding-inline: 1.75rem; border-radius: var(--dg-r); font-size: 1rem; }

/* ---------- Category card ---------- */
.dg-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)); gap: 1rem; }
.dg-cat {
  position: relative; display: flex; flex-direction: column; gap: .9rem; padding: 1.25rem; height: 100%;
  background: var(--dg-surface); border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg);
  color: var(--dg-text); transition: border-color var(--dg-fast), box-shadow var(--dg-med) var(--dg-ease), transform var(--dg-med) var(--dg-ease);
}
.dg-cat:hover { border-color: var(--dg-primary-100); box-shadow: var(--dg-shadow); transform: translateY(-3px); color: var(--dg-text); }
.dg-cat:hover .dg-icon-tile { background: var(--dg-primary); color: var(--dg-gold); }
.dg-cat__name { font-family: var(--dg-font-head); font-size: 1rem; font-weight: 700; margin: 0; line-height: 1.25; }
.dg-cat__desc { font-size: .8rem; color: var(--dg-muted); margin: .2rem 0 0; line-height: 1.45; }
.dg-cat__more { margin-top: auto; display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; font-weight: 700; color: var(--dg-primary); font-family: var(--dg-font-head); }
.dg-cat__more svg { width: 14px; height: 14px; transition: transform var(--dg-fast); }
.dg-cat:hover .dg-cat__more svg { transform: translateX(3px); }
.dg-cats-group { display: flex; align-items: center; gap: .6rem; margin: 2rem 0 1rem; font-family: var(--dg-font-head); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dg-muted); }
.dg-cats-group::after { content: ""; flex: 1; height: 1px; background: var(--dg-border); }
.dg-cats-group:first-child { margin-top: 0; }

/* ---------- Listing card ---------- */
.dg-listing { display: flex; flex-direction: column; height: 100%; background: var(--dg-surface); border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); overflow: hidden; transition: box-shadow var(--dg-med) var(--dg-ease), transform var(--dg-med) var(--dg-ease); }
.dg-listing:hover { box-shadow: var(--dg-shadow); transform: translateY(-3px); }
.dg-listing:hover .dg-media img { transform: scale(1.04); }
.dg-listing__media { aspect-ratio: 16 / 10; }
.dg-listing__badges { position: absolute; top: .75rem; left: .75rem; display: flex; gap: .35rem; flex-wrap: wrap; }
.dg-listing__save { position: absolute; top: .65rem; right: .65rem; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--dg-text); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--dg-shadow-xs); }
.dg-listing__save svg { width: 17px; height: 17px; }
.dg-listing__save[aria-pressed="true"] { color: var(--dg-danger); }
.dg-listing__save[aria-pressed="true"] svg { fill: currentColor; }
.dg-listing__body { padding: 1rem 1.1rem 1.1rem; display: flex; flex-direction: column; flex: 1; gap: .45rem; }
.dg-listing__cat { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--dg-gold-700); }
.dg-listing__title { font-size: 1.05rem; margin: 0; display: flex; align-items: center; gap: .35rem; }
.dg-listing__title a { color: var(--dg-text); }
.dg-listing__title a:hover { color: var(--dg-primary); }
.dg-listing__title .dg-verified { width: 17px; height: 17px; color: var(--dg-success); flex: none; }
.dg-listing__meta { display: flex; flex-wrap: wrap; gap: .25rem .9rem; font-size: .82rem; color: var(--dg-muted); }
.dg-listing__meta span { display: inline-flex; align-items: center; gap: .3rem; }
.dg-listing__meta svg { width: 14px; height: 14px; }
.dg-listing__tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .15rem; }
.dg-listing__tags span { font-size: .72rem; padding: .18rem .5rem; border-radius: 4px; background: var(--dg-bg); color: var(--dg-text-2); }
.dg-listing__foot { display: grid; grid-template-columns: 1fr 1fr auto; gap: .45rem; margin-top: auto; padding-top: .8rem; border-top: 1px solid var(--dg-border); }
.dg-listing[hidden] { display: none; }

/* Compact listing row */
.dg-row { display: grid; grid-template-columns: 64px 1fr auto; gap: .9rem; align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--dg-border); }
.dg-row:last-child { border-bottom: 0; }
.dg-row .dg-media { width: 64px; height: 64px; border-radius: var(--dg-r); }
.dg-row h3 { font-size: .95rem; margin: 0 0 .15rem; }
.dg-row h3 a { color: var(--dg-text); }
.dg-row h3 a:hover { color: var(--dg-primary); }
.dg-row p { font-size: .8rem; color: var(--dg-muted); margin: 0; }
.dg-panel { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.25rem 1.5rem; height: 100%; }
.dg-panel__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--dg-border); margin-bottom: .25rem; }
.dg-panel__head h3 { margin: 0; font-size: 1.05rem; display: flex; align-items: center; gap: .5rem; }
.dg-panel__head h3 svg { width: 18px; height: 18px; color: var(--dg-gold-700); }

/* Rails (horizontal scroll-snap) */
.dg-rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3rem) / 4); gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .25rem .1rem 1rem; overscroll-behavior-x: contain; }
.dg-rail::-webkit-scrollbar { display: none; }
.dg-rail > * { scroll-snap-align: start; }
.dg-rail-nav { display: flex; gap: .4rem; }
.dg-round-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--dg-border-strong); background: #fff; color: var(--dg-text); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all var(--dg-fast); }
.dg-round-btn:hover:not(:disabled) { background: var(--dg-primary); border-color: var(--dg-primary); color: #fff; }
.dg-round-btn:disabled { opacity: .35; cursor: default; }
.dg-round-btn svg { width: 18px; height: 18px; }

/* Notice bar (sample-data note) */
.dg-note { display: flex; gap: .6rem; align-items: flex-start; padding: .7rem 1rem; border-radius: var(--dg-r); background: var(--dg-gold-50); border: 1px solid #efe1ad; color: #5f4c0e; font-size: .84rem; margin-bottom: 1.25rem; }
.dg-note svg { width: 18px; height: 18px; flex: none; margin-top: .1rem; }

/* Accordion */
.dg-accordion .accordion-item { border: 1px solid var(--dg-border); border-radius: var(--dg-r) !important; margin-bottom: .6rem; overflow: hidden; background: #fff; }
.dg-accordion .accordion-button { font-family: var(--dg-font-head); font-weight: 700; font-size: 1rem; color: var(--dg-text); padding: 1.05rem 1.25rem; background: #fff; box-shadow: none; }
.dg-accordion .accordion-button:not(.collapsed) { color: var(--dg-primary); background: var(--dg-primary-50); }
.dg-accordion .accordion-button:focus-visible { outline: 2px solid var(--dg-gold); outline-offset: -2px; }
.dg-accordion .accordion-body { color: var(--dg-text-2); font-size: .95rem; padding: 1rem 1.25rem 1.25rem; }

/* Modal */
.dg-modal .modal-content { border: 0; border-radius: var(--dg-r-lg); }
.dg-modal .modal-header { border-bottom: 1px solid var(--dg-border); padding: 1.25rem 1.5rem; }
.dg-modal .modal-title { font-size: 1.25rem; margin: 0; }
.dg-modal .modal-body { padding: 1.5rem; }

/* Mobile bottom navigation */
.dg-bottomnav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; display: none; grid-template-columns: repeat(5, 1fr); background: #fff; border-top: 1px solid var(--dg-border); box-shadow: 0 -4px 16px rgba(20, 19, 43, .06); padding-bottom: env(safe-area-inset-bottom); }
.dg-bottomnav a, .dg-bottomnav button { display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .55rem .2rem .5rem; font-size: .68rem; font-weight: 600; color: var(--dg-muted); background: none; border: 0; font-family: inherit; cursor: pointer; }
.dg-bottomnav svg { width: 22px; height: 22px; }
.dg-bottomnav .is-current { color: var(--dg-primary); }
.dg-bottomnav .dg-bottomnav__wa { color: var(--dg-whatsapp); }

/* ---------- Footer ---------- */
.dg-footer { background: var(--dg-primary-700); color: rgba(255, 255, 255, .7); font-size: .9rem; }
.dg-footer__cta { border-bottom: 1px solid rgba(255, 255, 255, .1); padding-block: 2rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
.dg-footer__cta h3 { color: #fff; font-size: 1.25rem; margin: 0; }
.dg-footer__cta p { margin: .2rem 0 0; }
.dg-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1.3fr; gap: 2.5rem; padding-block: 3rem; }
.dg-footer .dg-brand, .dg-footer .dg-brand:hover { color: #fff; }
.dg-footer .dg-brand__name span { color: var(--dg-gold); }
.dg-footer .dg-brand__tag { color: rgba(255, 255, 255, .55); }
.dg-footer__about p { margin-top: 1rem; }
.dg-footer h4 { color: #fff; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 1rem; }
.dg-footer ul { list-style: none; margin: 0; padding: 0; }
.dg-footer li { margin-bottom: .5rem; }
.dg-footer a { color: rgba(255, 255, 255, .72); }
.dg-footer a:hover { color: var(--dg-gold); }
.dg-footer__contact li { display: flex; gap: .6rem; }
.dg-footer__contact svg { width: 16px; height: 16px; color: var(--dg-gold); flex: none; margin-top: .2rem; }
.dg-social { display: flex; gap: .5rem; margin-top: 1.25rem; }
.dg-social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, .08); display: inline-flex; align-items: center; justify-content: center; }
.dg-social a:hover { background: var(--dg-gold); color: var(--dg-primary-700); }
.dg-social svg { width: 16px; height: 16px; }
.dg-footer__seo { border-top: 1px solid rgba(255, 255, 255, .1); padding-block: 1.5rem; font-size: .82rem; line-height: 2; }
.dg-footer__seo strong { color: #fff; margin-right: .5rem; }
.dg-footer__seo a { margin-right: .9rem; display: inline-block; }
.dg-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); padding-block: 1.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; font-size: .8rem; }

/* 07 · SECTIONS ----------------------------------------------------------- */

/* Hero */
.dg-hero { position: relative; color: #fff; padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(3rem, 6vw, 4.5rem); isolation: isolate; overflow: hidden; background: var(--dg-primary-700); }
.dg-hero__bg { position: absolute; inset: 0; z-index: -2; }
.dg-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.dg-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(29, 25, 80, .8) 0%, rgba(29, 25, 80, .62) 50%, rgba(29, 25, 80, .9) 100%); }
.dg-hero__content { max-width: 920px; margin: 0 auto; text-align: center; }
.dg-hero__eyebrow { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .85rem; border-radius: var(--dg-r-pill); background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .18); font-size: .8rem; font-weight: 600; margin-bottom: 1.25rem; }
.dg-hero__eyebrow svg { width: 14px; height: 14px; color: var(--dg-gold); }
.dg-hero h1 { font-size: var(--dg-fs-hero); color: #fff; font-weight: 800; letter-spacing: -.035em; line-height: 1.08; margin-bottom: 1rem; }
.dg-hero h1 span { color: var(--dg-gold); }
.dg-hero__sub { font-size: clamp(1rem, 1.4vw, 1.15rem); color: rgba(255, 255, 255, .82); max-width: 640px; margin: 0 auto 2rem; }
.dg-hero__search { max-width: 1040px; margin: 0 auto; text-align: left; }
.dg-hero__popular { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; margin-top: 1.25rem; font-size: .85rem; }
.dg-hero__popular > span { color: rgba(255, 255, 255, .7); margin-right: .25rem; }
.dg-hero__popular a { padding: .3rem .8rem; border-radius: var(--dg-r-pill); background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); color: #fff; font-weight: 500; }
.dg-hero__popular a:hover { background: #fff; color: var(--dg-primary); }
.dg-hero__trust { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 2rem; margin-top: 2.25rem; font-size: .88rem; color: rgba(255, 255, 255, .85); }
.dg-hero__trust span { display: inline-flex; align-items: center; gap: .45rem; }
.dg-hero__trust svg { width: 18px; height: 18px; color: var(--dg-gold); }

/* Quick category strip under hero */
.dg-quick { background: var(--dg-surface); border-bottom: 1px solid var(--dg-border); }
.dg-quick__list { display: flex; justify-content: space-between; gap: .25rem; overflow-x: auto; scrollbar-width: none; list-style: none; margin: 0; padding: .6rem 0; }
.dg-quick__list::-webkit-scrollbar { display: none; }
.dg-quick__list a { display: flex; flex-direction: column; align-items: center; gap: .4rem; min-width: 86px; padding: .6rem .4rem; border-radius: var(--dg-r); font-size: .76rem; font-weight: 600; color: var(--dg-text-2); text-align: center; line-height: 1.2; }
.dg-quick__list a:hover { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-quick__list .dg-icon-tile { width: 44px; height: 44px; border-radius: 50%; }
.dg-quick__list .dg-icon-tile svg { width: 22px; height: 22px; }

/* Areas */
.dg-areas { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 1rem; }
.dg-areas > :first-child, .dg-areas > :last-child { grid-column: span 2; }
.dg-area { position: relative; display: block; border-radius: var(--dg-r-lg); overflow: hidden; color: #fff; isolation: isolate; }
.dg-area .dg-media { position: absolute; inset: 0; z-index: -2; }
.dg-area::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 19, 43, 0) 35%, rgba(20, 19, 43, .82)); }
.dg-area:hover { color: #fff; }
.dg-area:hover img { transform: scale(1.05); }
.dg-area__body { position: absolute; left: 1.1rem; right: 1.1rem; bottom: 1rem; display: flex; justify-content: space-between; align-items: flex-end; gap: .75rem; }
.dg-area h3 { color: #fff; font-size: 1.15rem; margin: 0; }
.dg-area p { margin: .15rem 0 0; font-size: .8rem; color: rgba(255, 255, 255, .8); }
.dg-area__go { width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .95); color: var(--dg-primary); display: inline-flex; align-items: center; justify-content: center; flex: none; transition: transform var(--dg-fast); }
.dg-area__go svg { width: 16px; height: 16px; }
.dg-area:hover .dg-area__go { transform: rotate(-45deg); }

/* Essentials */
.dg-essentials { background: var(--dg-primary); border-radius: var(--dg-r-lg); padding: clamp(1.75rem, 4vw, 2.75rem); color: rgba(255, 255, 255, .8); display: grid; grid-template-columns: 1fr 1.5fr; gap: 2.5rem; align-items: center; position: relative; overflow: hidden; }
.dg-essentials::after { content: ""; position: absolute; right: -90px; top: -90px; width: 280px; height: 280px; border-radius: 50%; border: 44px solid rgba(210, 172, 44, .1); pointer-events: none; }
.dg-essentials h2 { color: #fff; }
.dg-essentials .dg-kicker { color: var(--dg-gold); }
.dg-essentials__links { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; position: relative; z-index: 1; }
.dg-ess { display: flex; align-items: center; gap: .9rem; padding: 1rem; border-radius: var(--dg-r); background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); color: #fff; transition: background var(--dg-fast); }
.dg-ess:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.dg-ess .dg-icon-tile { background: rgba(255, 255, 255, .1); color: var(--dg-gold); width: 46px; height: 46px; }
.dg-ess strong { display: block; font-family: var(--dg-font-head); font-size: .98rem; }
.dg-ess span { font-size: .8rem; color: rgba(255, 255, 255, .65); }
.dg-emergency { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.dg-emergency a { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .9rem; border-radius: var(--dg-r-pill); background: #fff; color: var(--dg-danger); font-weight: 700; font-size: .85rem; }
.dg-emergency a svg { width: 16px; height: 16px; }
.dg-emergency a span { color: var(--dg-text-2); font-weight: 500; }

/* Map explorer */
.dg-explorer { display: grid; grid-template-columns: 360px 1fr; height: 540px; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); overflow: hidden; }
.dg-explorer__side { display: flex; flex-direction: column; border-right: 1px solid var(--dg-border); min-height: 0; }
.dg-explorer__filters { padding: 1rem; border-bottom: 1px solid var(--dg-border); }
.dg-explorer__filters .dg-chips { flex-wrap: wrap; }
.dg-explorer__list { list-style: none; margin: 0; padding: 0 1rem; overflow-y: auto; flex: 1; }
.dg-explorer__list li { display: flex; gap: .75rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid var(--dg-border); font-size: .9rem; }
.dg-explorer__list li[hidden] { display: none; }
.dg-explorer__list .dg-icon-tile { width: 36px; height: 36px; border-radius: 8px; }
.dg-explorer__list .dg-icon-tile svg { width: 18px; height: 18px; }
.dg-explorer__list strong { display: block; font-size: .9rem; font-weight: 600; }
.dg-explorer__list small { color: var(--dg-muted); font-size: .78rem; }
.dg-explorer__map { position: relative; background: var(--dg-primary-50); }
.dg-explorer__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dg-explorer__ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; text-align: center; padding: 2rem;
  background-color: var(--dg-primary-50);
  background-image: repeating-linear-gradient(0deg, transparent 0 39px, rgba(39, 34, 98, .06) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(39, 34, 98, .06) 39px 40px); }
.dg-explorer__ph svg { width: 40px; height: 40px; color: var(--dg-primary); }
.dg-explorer__ph h3 { margin: 0; }

/* How it works */
.dg-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; counter-reset: s; }
.dg-step { position: relative; padding: 1.75rem; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); counter-increment: s; }
.dg-step::before { content: counter(s, decimal-leading-zero); position: absolute; top: 1.25rem; right: 1.5rem; font-family: var(--dg-font-head); font-size: 2.6rem; font-weight: 800; color: var(--dg-primary-50); line-height: 1; }
.dg-step .dg-icon-tile { margin-bottom: 1.1rem; }
.dg-step h3 { font-size: 1.1rem; }
.dg-step p { color: var(--dg-muted); font-size: .92rem; margin: 0; }

/* Attractions */
.dg-attr { position: relative; display: block; border-radius: var(--dg-r-lg); overflow: hidden; aspect-ratio: 4 / 5; color: #fff; isolation: isolate; }
.dg-attr .dg-media { position: absolute; inset: 0; z-index: -2; }
.dg-attr::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 40%, rgba(20, 19, 43, .85)); }
.dg-attr:hover { color: #fff; }
.dg-attr:hover img { transform: scale(1.05); }
.dg-attr__body { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; }
.dg-attr__body h3 { color: #fff; font-size: 1.1rem; margin: .4rem 0 .15rem; }
.dg-attr__body p { font-size: .8rem; margin: 0; color: rgba(255, 255, 255, .8); }

/* Value props */
.dg-values { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); }
.dg-value { padding: 1.75rem 1.5rem; display: flex; gap: 1rem; align-items: flex-start; }
.dg-value + .dg-value { border-left: 1px solid var(--dg-border); }
.dg-value .dg-icon-tile { width: 44px; height: 44px; border-radius: 10px; }
.dg-value .dg-icon-tile svg { width: 22px; height: 22px; }
.dg-value h3 { font-size: 1rem; margin: 0 0 .25rem; }
.dg-value p { font-size: .85rem; color: var(--dg-muted); margin: 0; }

/* Plans */
.dg-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; align-items: stretch; }
.dg-plan { position: relative; display: flex; flex-direction: column; padding: 2rem 1.75rem; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); }
.dg-plan--featured { border: 2px solid var(--dg-primary); box-shadow: var(--dg-shadow); }
.dg-plan__flag { position: absolute; top: -12px; left: 1.75rem; }
.dg-plan h3 { font-size: 1.15rem; margin-bottom: .25rem; }
.dg-plans-title { font-size: 1.6rem; margin-bottom: .5rem; }
.dg-plan__price { font-family: var(--dg-font-head); font-size: 2rem; font-weight: 800; color: var(--dg-text); margin: .5rem 0 .25rem; letter-spacing: -.03em; }
.dg-plan__price small { font-size: .85rem; font-weight: 600; color: var(--dg-muted); letter-spacing: 0; }
.dg-plan > p { color: var(--dg-muted); font-size: .9rem; }
.dg-plan ul { list-style: none; padding: 0; margin: 1rem 0 1.75rem; display: grid; gap: .6rem; }
.dg-plan li { display: flex; gap: .6rem; font-size: .9rem; color: var(--dg-text-2); }
.dg-plan li svg { width: 18px; height: 18px; color: var(--dg-success); flex: none; margin-top: .15rem; }
.dg-plan .dg-btn { margin-top: auto; }

/* Guides */
.dg-guide { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); overflow: hidden; color: var(--dg-text); transition: box-shadow var(--dg-med), transform var(--dg-med); }
.dg-guide:hover { box-shadow: var(--dg-shadow); transform: translateY(-3px); color: var(--dg-text); }
.dg-guide:hover img { transform: scale(1.04); }
.dg-guide .dg-media { aspect-ratio: 16 / 9; }
.dg-guide__body { padding: 1.25rem; }
.dg-guide__body small { font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dg-gold-700); }
.dg-guide__body h3 { font-size: 1.05rem; margin: .4rem 0; }
.dg-guide__body p { font-size: .88rem; color: var(--dg-muted); margin: 0; }

/* Business CTA */
.dg-biz { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: center; }
.dg-biz__media { position: relative; border-radius: var(--dg-r-lg); overflow: hidden; aspect-ratio: 1; }
.dg-biz__media .dg-media { position: absolute; inset: 0; }
.dg-biz__card { position: absolute; left: 1.25rem; bottom: 1.25rem; right: 1.25rem; background: #fff; border-radius: var(--dg-r); padding: 1rem 1.1rem; box-shadow: var(--dg-shadow); display: flex; align-items: center; gap: .9rem; }
.dg-biz__card strong { display: block; font-family: var(--dg-font-head); font-size: .95rem; }
.dg-biz__card span { font-size: .8rem; color: var(--dg-muted); }
.dg-checklist { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.5rem; }
.dg-checklist li { display: flex; gap: .65rem; font-size: .93rem; color: var(--dg-text-2); }
.dg-checklist svg { width: 20px; height: 20px; color: var(--dg-success); flex: none; }

/* FAQ layout */
.dg-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; }
.dg-faq__help { margin-top: 1.5rem; padding: 1.25rem; border-radius: var(--dg-r-lg); background: #fff; border: 1px solid var(--dg-border); }
.dg-faq__help strong { font-family: var(--dg-font-head); display: block; margin-bottom: .25rem; }
.dg-faq__help p { font-size: .88rem; color: var(--dg-muted); margin-bottom: .9rem; }

/* 08 · UTILITIES ---------------------------------------------------------- */
.dg-muted { color: var(--dg-muted) !important; }

/* 09 · MOTION ------------------------------------------------------------- */
.dg-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--dg-ease), transform .6s var(--dg-ease); transition-delay: var(--d, 0s); }
.dg-reveal.is-in { opacity: 1; transform: none; }
.no-js .dg-reveal { opacity: 1; transform: none; }
@keyframes dg-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.dg-fade-in { animation: dg-fade .35s var(--dg-ease); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .dg-reveal { opacity: 1; transform: none; }
}

/* 10 · RESPONSIVE --------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .dg-nav, .dg-hsearch { display: none; }
  .dg-burger { display: inline-flex; }
  .dg-rail { grid-auto-columns: calc((100% - 2rem) / 3); }
  .dg-footer__grid { grid-template-columns: repeat(3, 1fr); }
  .dg-footer__about { grid-column: 1 / -1; }
  .dg-values { grid-template-columns: repeat(2, 1fr); }
  .dg-value:nth-child(3) { border-left: 0; }
  .dg-value:nth-child(n+3) { border-top: 1px solid var(--dg-border); }
}
@media (max-width: 991.98px) {
  .dg-search { grid-template-columns: 1fr 1fr; }
  .dg-search__field:first-child { grid-column: 1 / -1; border-right: 0; border-bottom: 1px solid var(--dg-border); }
  .dg-search__field:nth-child(2) { border-right: 1px solid var(--dg-border); }
  .dg-search__btn { grid-column: 1 / -1; margin-top: .4rem; }
  .dg-rail { grid-auto-columns: calc((100% - 1rem) / 2); }
  .dg-essentials, .dg-biz, .dg-faq { grid-template-columns: 1fr; }
  .dg-explorer { grid-template-columns: 1fr; height: auto; }
  .dg-explorer__side { border-right: 0; border-bottom: 1px solid var(--dg-border); }
  .dg-explorer__list { max-height: 260px; }
  .dg-explorer__map { height: 380px; }
  .dg-plans, .dg-steps { grid-template-columns: 1fr; }
  .dg-areas { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
  .dg-areas > :first-child, .dg-areas > :last-child { grid-column: 1 / -1; }
  .dg-biz__media { aspect-ratio: 4 / 3; }
}
@media (max-width: 767.98px) {
  :root { --dg-header-h: 64px; }
  body { padding-bottom: 64px; }
  .dg-bottomnav { display: grid; }
  .dg-topbar__hide-sm { display: none !important; }
  .dg-header__actions .dg-btn { display: none; }
  .dg-brand__tag { display: none; }
  .dg-hero__content { text-align: left; }
  .dg-hero__sub { margin-inline: 0; }
  .dg-hero__popular, .dg-hero__trust { justify-content: flex-start; }
  .dg-hero__trust { gap: .6rem 1.25rem; font-size: .82rem; }
  .dg-search { grid-template-columns: 1fr; }
  .dg-search__field { border-right: 0 !important; border-bottom: 1px solid var(--dg-border); }
  .dg-search__field:nth-child(3) { border-bottom: 0; }
  .dg-quick__list { justify-content: flex-start; }
  .dg-cats { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
  .dg-cat { padding: 1rem; gap: .7rem; }
  .dg-cat__desc { display: none; }
  .dg-icon-tile { width: 44px; height: 44px; }
  .dg-icon-tile svg { width: 22px; height: 22px; }
  .dg-rail { grid-auto-columns: 82%; margin-inline: calc(var(--dg-gutter) * -1); padding-inline: var(--dg-gutter); scroll-padding-inline: var(--dg-gutter); }
  .dg-areas { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; gap: .75rem; }
  .dg-area h3 { font-size: 1rem; }
  .dg-area p { display: none; }
  .dg-essentials__links { grid-template-columns: 1fr; }
  .dg-values { grid-template-columns: 1fr; }
  .dg-value + .dg-value { border-left: 0; border-top: 1px solid var(--dg-border); }
  .dg-checklist { grid-template-columns: 1fr; }
  .dg-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .dg-footer__contact-col { grid-column: 1 / -1; }
  .dg-head .dg-rail-nav { display: none; }
  .container .row { --bs-gutter-x: 1.5rem; }
}

/* ---------- Account: Login / Register + user menu ---------- */
/* Guest is the default; the server adds .is-auth to <body> for logged-in users. */
.dg-auth { display: flex; align-items: center; }
.dg-auth--user, .dg-auth--user-block { display: none; }
.is-auth .dg-auth--guest, .is-auth .dg-auth--guest-block { display: none; }
.is-auth .dg-auth--user { display: flex; }
.is-auth .dg-auth--user-block { display: block; }
.dg-auth__login { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--dg-font-head); font-size: .9rem; font-weight: 600; color: var(--dg-text-2); padding: .45rem .35rem; border-radius: var(--dg-r-sm); }
.dg-auth__login:hover { color: var(--dg-primary); }
.dg-auth__login svg { width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--dg-primary-50); color: var(--dg-primary); box-sizing: content-box; }
.dg-auth__sep { color: var(--dg-border-strong); margin: 0 .1rem; }

.dg-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--dg-primary); color: var(--dg-gold); display: inline-flex; align-items: center; justify-content: center; font-family: var(--dg-font-head); font-size: .78rem; font-weight: 800; flex: none; }
.dg-avatar--lg { width: 44px; height: 44px; font-size: .95rem; }
.dg-usermenu { position: relative; }
.dg-usermenu__btn { display: inline-flex; align-items: center; gap: .5rem; padding: .25rem .6rem .25rem .25rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r-pill); background: #fff; cursor: pointer; font-family: var(--dg-font-head); font-weight: 600; font-size: .88rem; color: var(--dg-text); }
.dg-usermenu__btn:hover, .dg-usermenu__btn[aria-expanded="true"] { border-color: var(--dg-primary-100); background: var(--dg-primary-50); }
.dg-usermenu__btn .dg-caret { width: 14px; height: 14px; color: var(--dg-muted); transition: transform var(--dg-fast); }
.dg-usermenu__btn[aria-expanded="true"] .dg-caret { transform: rotate(180deg); }
.dg-usermenu__panel { position: absolute; right: 0; top: calc(100% + 10px); width: 280px; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); box-shadow: var(--dg-shadow-lg); padding: .5rem; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity var(--dg-fast), transform var(--dg-fast), visibility 0s linear var(--dg-fast); z-index: 1001; }
.dg-usermenu__panel.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.dg-usermenu__head { display: flex; align-items: center; gap: .75rem; padding: .6rem .6rem .8rem; }
.dg-usermenu__head strong { display: block; font-family: var(--dg-font-head); font-size: .95rem; line-height: 1.2; }
.dg-usermenu__head small { color: var(--dg-muted); font-size: .78rem; }
.dg-usermenu__panel ul { list-style: none; margin: 0; padding: .25rem 0; border-top: 1px solid var(--dg-border); }
.dg-usermenu__panel a { display: flex; align-items: center; gap: .65rem; padding: .55rem .6rem; border-radius: var(--dg-r-sm); color: var(--dg-text-2); font-size: .88rem; font-weight: 500; }
.dg-usermenu__panel a:hover { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-usermenu__panel a svg { width: 17px; height: 17px; color: var(--dg-muted); }
.dg-usermenu__panel a:hover svg { color: var(--dg-primary); }
.dg-usermenu__label { padding: .6rem .6rem .2rem; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--dg-gold-700); border-top: 1px solid var(--dg-border); }
.dg-usermenu__label + ul { border-top: 0; }
.dg-usermenu__foot a[href="/logout"] { color: var(--dg-danger); }
.dg-usermenu__foot a[href="/logout"] svg { color: var(--dg-danger); }

.dg-drawer__account { margin: .75rem 0 .25rem; padding: 1rem; border-radius: var(--dg-r); background: var(--dg-primary-50); }
.dg-drawer__account p { font-size: .85rem; color: var(--dg-text-2); margin-bottom: .75rem; }
.dg-drawer__account-btns { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.dg-drawer__account .dg-usermenu__head { padding: 0; }

@media (max-width: 1199.98px) {
  .dg-usermenu__name { display: none; }
}
@media (max-width: 767.98px) {
  .dg-auth--guest .dg-auth__login span, .dg-auth__sep, .dg-auth--guest .dg-auth__login + .dg-auth__sep + .dg-auth__login { display: none; }
  .dg-usermenu__panel { position: fixed; left: .75rem; right: .75rem; width: auto; top: calc(var(--dg-header-h) + 46px); }
}

/* ==========================================================================
   AUTH PAGES (login / register) — reuse tokens, buttons, header, forms
   ========================================================================== */

.dg-authwrap { min-height: calc(100svh - var(--dg-header-h) - 38px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.dg-authmain { display: flex; align-items: center; justify-content: center; padding: clamp(2rem, 5vw, 4rem) var(--dg-gutter); }
.dg-authcard { width: 100%; max-width: 460px; }
.dg-authcard__head { margin-bottom: 1.75rem; }
.dg-authcard__head h1 { font-size: clamp(1.7rem, 2.6vw, 2.1rem); font-weight: 800; letter-spacing: -.03em; margin-bottom: .4rem; }
.dg-authcard__head p { color: var(--dg-muted); margin: 0; }
.dg-back { display: inline-flex; align-items: center; gap: .35rem; font-size: .85rem; font-weight: 600; color: var(--dg-muted); margin-bottom: 1.5rem; }
.dg-back svg { width: 15px; height: 15px; transform: rotate(180deg); }
.dg-back:hover { color: var(--dg-primary); }

/* Segmented tabs */
.dg-seg { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; padding: .3rem; background: var(--dg-primary-50); border-radius: var(--dg-r); margin-bottom: 1.5rem; }
.dg-seg button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 42px; border: 0; border-radius: 8px; background: transparent; font-family: var(--dg-font-head); font-weight: 700; font-size: .88rem; color: var(--dg-muted); cursor: pointer; transition: background var(--dg-fast), color var(--dg-fast), box-shadow var(--dg-fast); }
.dg-seg button svg { width: 17px; height: 17px; }
.dg-seg button[aria-selected="true"] { background: #fff; color: var(--dg-primary); box-shadow: var(--dg-shadow-xs); }
[role="tabpanel"][hidden] { display: none !important; }

/* Fields */
.dg-field { margin-bottom: 1.1rem; }
.dg-field .form-label { display: flex; justify-content: space-between; align-items: baseline; }
.dg-field .form-label small { font-weight: 500; color: var(--dg-muted); }
.dg-field .form-control, .dg-field .form-select { min-height: 50px; }
.dg-field .invalid-feedback { font-size: .8rem; }
.dg-inputgroup { display: flex; align-items: stretch; border: 1px solid var(--dg-border-strong); border-radius: var(--dg-r-sm); background: #fff; transition: border-color var(--dg-fast), box-shadow var(--dg-fast); }
.dg-inputgroup:focus-within { border-color: var(--dg-primary); box-shadow: 0 0 0 3px rgba(39, 34, 98, .12); }
.dg-inputgroup__pre { display: inline-flex; align-items: center; gap: .35rem; padding: 0 .85rem; border-right: 1px solid var(--dg-border); font-weight: 600; color: var(--dg-text-2); font-size: .95rem; background: var(--dg-bg); border-radius: var(--dg-r-sm) 0 0 var(--dg-r-sm); }
.dg-inputgroup .form-control { border: 0; box-shadow: none !important; min-height: 50px; }
.dg-inputgroup__btn { display: inline-flex; align-items: center; justify-content: center; width: 48px; border: 0; background: none; color: var(--dg-muted); cursor: pointer; border-radius: 0 var(--dg-r-sm) var(--dg-r-sm) 0; }
.dg-inputgroup__btn:hover { color: var(--dg-primary); }
.dg-inputgroup__btn svg { width: 19px; height: 19px; }
.was-validated .dg-inputgroup:has(:invalid) { border-color: var(--dg-danger); }
.was-validated .dg-inputgroup:has(:invalid) ~ .invalid-feedback { display: block; }
.dg-hint { font-size: .8rem; color: var(--dg-muted); margin-top: .35rem; }
.dg-row-between { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; font-size: .88rem; }
.form-check-input:checked { background-color: var(--dg-primary); border-color: var(--dg-primary); }
.form-check-input:focus { box-shadow: 0 0 0 3px rgba(39, 34, 98, .15); border-color: var(--dg-primary); }
.form-check-label { font-size: .88rem; color: var(--dg-text-2); }

/* OTP boxes */
.dg-otp { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; margin-bottom: .75rem; }
.dg-otp input { width: 100%; height: 56px; text-align: center; font-family: var(--dg-font-head); font-size: 1.4rem; font-weight: 700; border: 1px solid var(--dg-border-strong); border-radius: var(--dg-r-sm); color: var(--dg-text); background: #fff; }
.dg-otp input:focus { outline: none; border-color: var(--dg-primary); box-shadow: 0 0 0 3px rgba(39, 34, 98, .12); }
.dg-otp.is-invalid input { border-color: var(--dg-danger); }
.dg-otp-meta { display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .85rem; color: var(--dg-muted); margin-bottom: 1.25rem; }
.dg-textbtn { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--dg-primary); cursor: pointer; }
.dg-textbtn:disabled { color: var(--dg-muted); font-weight: 500; cursor: default; }
.dg-otp-sent { display: flex; gap: .6rem; align-items: flex-start; padding: .75rem .9rem; border-radius: var(--dg-r); background: var(--dg-success-50); color: #0e5c39; font-size: .86rem; margin-bottom: 1rem; }
.dg-otp-sent svg { width: 18px; height: 18px; flex: none; margin-top: .1rem; }
[data-step][hidden] { display: none !important; }

/* Divider + social */
.dg-divider { display: flex; align-items: center; gap: .75rem; margin: 1.5rem 0; font-size: .8rem; color: var(--dg-muted); }
.dg-divider::before, .dg-divider::after { content: ""; flex: 1; height: 1px; background: var(--dg-border); }
.dg-btn--social { background: #fff; color: var(--dg-text); border-color: var(--dg-border-strong); }
.dg-btn--social:hover { background: var(--dg-bg); color: var(--dg-text); box-shadow: none; }
.dg-authalt { text-align: center; margin-top: 1.75rem; font-size: .92rem; color: var(--dg-muted); }
.dg-authalt a { font-weight: 700; }
.dg-legal { font-size: .78rem; color: var(--dg-muted); text-align: center; margin-top: 1rem; }
.dg-formstatus { font-size: .86rem; margin-top: .75rem; min-height: 1.2em; }
.dg-formstatus.is-ok { color: var(--dg-success); }
.dg-formstatus.is-err { color: var(--dg-danger); }

/* Account-type cards */
.dg-typecards { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-bottom: 1.5rem; }
.dg-typecard { position: relative; }
.dg-typecard input { position: absolute; opacity: 0; pointer-events: none; }
.dg-typecard label { display: flex; flex-direction: column; gap: .6rem; height: 100%; padding: 1rem; border: 1.5px solid var(--dg-border-strong); border-radius: var(--dg-r); cursor: pointer; background: #fff; transition: border-color var(--dg-fast), background var(--dg-fast), box-shadow var(--dg-fast); }
.dg-typecard label strong { font-family: var(--dg-font-head); font-size: .95rem; color: var(--dg-text); }
.dg-typecard label span { font-size: .78rem; color: var(--dg-muted); line-height: 1.4; }
.dg-typecard .dg-icon-tile { width: 40px; height: 40px; border-radius: 10px; }
.dg-typecard .dg-icon-tile svg { width: 20px; height: 20px; }
.dg-typecard input:checked + label { border-color: var(--dg-primary); background: var(--dg-primary-50); box-shadow: 0 0 0 3px rgba(39, 34, 98, .08); }
.dg-typecard input:checked + label::after { content: ""; position: absolute; top: .75rem; right: .75rem; width: 20px; height: 20px; border-radius: 50%; background: var(--dg-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; }
.dg-typecard input:focus-visible + label { outline: 2px solid var(--dg-gold); outline-offset: 2px; }
.dg-bizfields { padding: 1rem 1rem .1rem; border-radius: var(--dg-r); background: var(--dg-gold-50); border: 1px solid #efe1ad; margin-bottom: 1.1rem; }
.dg-bizfields[hidden] { display: none; }
.dg-bizfields__title { display: flex; align-items: center; gap: .45rem; font-family: var(--dg-font-head); font-weight: 700; font-size: .85rem; color: var(--dg-gold-700); margin-bottom: .75rem; }
.dg-bizfields__title svg { width: 17px; height: 17px; }

/* Password strength */
.dg-strength { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; margin-top: .5rem; }
.dg-strength span { height: 4px; border-radius: 4px; background: var(--dg-border); transition: background var(--dg-fast); }
.dg-strength[data-level="1"] span:nth-child(-n+1) { background: var(--dg-danger); }
.dg-strength[data-level="2"] span:nth-child(-n+2) { background: #d98b2b; }
.dg-strength[data-level="3"] span:nth-child(-n+3) { background: var(--dg-gold); }
.dg-strength[data-level="4"] span { background: var(--dg-success); }

/* Brand side panel */
.dg-authside { position: relative; overflow: hidden; background: var(--dg-primary); color: rgba(255, 255, 255, .82); display: flex; align-items: flex-end; padding: clamp(2rem, 4vw, 3.5rem); isolation: isolate; }
.dg-authside__bg { position: absolute; inset: 0; z-index: -2; }
.dg-authside__bg img { width: 100%; height: 100%; object-fit: cover; }
.dg-authside::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(29, 25, 80, .55) 0%, rgba(29, 25, 80, .85) 55%, rgba(29, 25, 80, .97) 100%); }
.dg-authside__inner { max-width: 520px; }
.dg-authside h2 { color: #fff; font-size: clamp(1.6rem, 2.4vw, 2.1rem); font-weight: 800; letter-spacing: -.03em; margin-bottom: .75rem; }
.dg-authside h2 span { color: var(--dg-gold); }
.dg-authside__lead { font-size: 1rem; margin-bottom: 1.75rem; }
.dg-perks { list-style: none; padding: 0; margin: 0; display: grid; gap: .9rem; }
.dg-perks li { display: flex; gap: .9rem; align-items: flex-start; }
.dg-perks .dg-icon-tile { width: 40px; height: 40px; border-radius: 10px; background: rgba(255, 255, 255, .1); color: var(--dg-gold); }
.dg-perks .dg-icon-tile svg { width: 20px; height: 20px; }
.dg-perks strong { display: block; color: #fff; font-family: var(--dg-font-head); font-size: .95rem; }
.dg-perks span { font-size: .85rem; }
.dg-authside__foot { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .15); font-size: .85rem; }
.dg-authside__foot span { display: inline-flex; align-items: center; gap: .4rem; }
.dg-authside__foot svg { width: 16px; height: 16px; color: var(--dg-gold); }


@media (max-width: 991.98px) {
  .dg-authwrap { grid-template-columns: 1fr; }
  .dg-authside { order: 2; align-items: flex-start; }
}
@media (max-width: 767.98px) {
    .dg-authmain { align-items: flex-start; padding-top: 1.5rem; }
  .dg-otp { gap: .4rem; }
  .dg-otp input { height: 50px; font-size: 1.25rem; }
  .dg-typecards { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .dg-typecard label { padding: .85rem; }
    }
/* Auth refinements */
.dg-inputgroup .form-control { background-image: none !important; padding-right: .9rem; }
@media (min-width: 992px) {
  .dg-authside { align-items: center; }
  .dg-authside__inner { position: sticky; top: calc(var(--dg-header-h) + 2rem); }
}
@media (max-width: 767.98px) {
  .dg-authside { display: none; }
}

/* Auth card on full-site layout */
.dg-authmain { background: var(--dg-bg); }
.dg-authcard { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: clamp(1.5rem, 3.5vw, 2.5rem); box-shadow: var(--dg-shadow-sm); }
.dg-authcard .dg-back { margin-bottom: 1.1rem; }
@media (max-width: 767.98px) {
  .dg-authmain { padding: 1rem var(--dg-gutter) 2rem; }
  .dg-authcard { padding: 1.35rem; }
}
.dg-hsearch { min-width: 150px; }

/* ==========================================================================
   CATEGORY / LISTING ARCHIVE PAGE
   ========================================================================== */
.dg-crumbs { font-size: .82rem; color: var(--dg-muted); }
.dg-crumbs ol { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; margin: 0; padding: 0; }
.dg-crumbs li { display: inline-flex; align-items: center; gap: .35rem; }
.dg-crumbs li + li::before { content: "/"; color: var(--dg-border-strong); }
.dg-crumbs a { color: var(--dg-muted); }
.dg-crumbs a:hover { color: var(--dg-primary); }
.dg-crumbs [aria-current] { color: var(--dg-text); font-weight: 600; }

/* Category header */
.dg-cathead { background: #fff; border-bottom: 1px solid var(--dg-border); padding: 1.5rem 0 1.25rem; }
.dg-cathead__row { display: flex; align-items: center; gap: 1.1rem; margin-top: .9rem; }
.dg-cathead__row .dg-icon-tile { width: 60px; height: 60px; border-radius: 14px; }
.dg-cathead__row .dg-icon-tile svg { width: 30px; height: 30px; }
.dg-cathead h1 { font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-weight: 800; letter-spacing: -.03em; margin: 0 0 .2rem; }
.dg-cathead p { margin: 0; color: var(--dg-muted); font-size: .95rem; }
.dg-cathead__search { margin-top: 1.25rem; display: grid; grid-template-columns: 1fr auto; gap: .5rem; max-width: 760px; }
.dg-cathead__search .dg-inputgroup { min-height: 50px; }
.dg-cathead__search .dg-inputgroup__pre { background: #fff; border-right: 0; color: var(--dg-muted); }
.dg-cathead__search .dg-inputgroup__pre svg { width: 18px; height: 18px; }
.dg-subcats { margin-top: 1rem; }

/* Mobile app bar (sticky under header on phones) */
.dg-appbar { display: none; }

/* Layout */
.dg-archive { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1.75rem; align-items: start; padding-block: 1.75rem 3.5rem; }
.dg-filters { position: sticky; top: calc(var(--dg-header-h) + 1rem); background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); max-height: calc(100vh - var(--dg-header-h) - 2rem); display: flex; flex-direction: column; }
.dg-filters__head { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.15rem; border-bottom: 1px solid var(--dg-border); }
.dg-filters__head h2 { font-size: 1rem; margin: 0; display: flex; align-items: center; gap: .45rem; }
.dg-filters__head h2 svg { width: 18px; height: 18px; color: var(--dg-gold-700); }
.dg-filters__body { padding: .25rem 1.15rem 1rem; overflow-y: auto; }
.dg-fgroup { border-bottom: 1px solid var(--dg-border); padding: 1rem 0; }
.dg-fgroup:last-child { border-bottom: 0; }
.dg-fgroup legend, .dg-fgroup__title { font-family: var(--dg-font-head); font-size: .85rem; font-weight: 700; color: var(--dg-text); margin-bottom: .6rem; float: none; width: auto; padding: 0; }
.dg-fgroup .form-check { margin-bottom: .45rem; display: flex; align-items: center; gap: .55rem; padding-left: 0; }
.dg-fgroup .form-check-input { margin: 0; float: none; width: 1.1em; height: 1.1em; flex: none; }
.dg-fgroup .form-check-label { flex: 1; display: flex; justify-content: space-between; cursor: pointer; }
.dg-fgroup .form-switch { padding-left: 0; }
.dg-fgroup .form-switch .form-check-input { width: 2.1em; }
.dg-filters__foot { display: none; }

/* Results toolbar */
.dg-results__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; margin-bottom: 1rem; }
.dg-results__count { font-size: .95rem; color: var(--dg-text-2); margin: 0; }
.dg-results__count strong { color: var(--dg-text); font-family: var(--dg-font-head); }
.dg-results__tools { display: flex; align-items: center; gap: .5rem; }
.dg-sort { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--dg-muted); }
.dg-sort .form-select { min-height: 40px; padding: .4rem 2rem .4rem .75rem; font-size: .88rem; font-weight: 600; width: auto; }
.dg-viewtoggle { display: inline-flex; padding: .2rem; background: var(--dg-primary-50); border-radius: var(--dg-r-sm); }
.dg-viewtoggle button { width: 36px; height: 34px; border: 0; border-radius: 5px; background: transparent; color: var(--dg-muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.dg-viewtoggle button svg { width: 18px; height: 18px; }
.dg-viewtoggle button[aria-pressed="true"] { background: #fff; color: var(--dg-primary); box-shadow: var(--dg-shadow-xs); }
.dg-active { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.dg-active:empty { display: none; }
.dg-active button { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .4rem .3rem .75rem; border-radius: var(--dg-r-pill); border: 1px solid var(--dg-primary-100); background: var(--dg-primary-50); color: var(--dg-primary); font-size: .8rem; font-weight: 600; cursor: pointer; }
.dg-active button span { width: 18px; height: 18px; border-radius: 50%; background: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .9rem; line-height: 1; }
.dg-active .dg-active__clear { background: none; border-color: transparent; color: var(--dg-danger); padding-right: .6rem; }

/* Grid / list views */
.dg-results__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.dg-results.is-list .dg-results__grid { grid-template-columns: 1fr; }
.dg-results.is-list .dg-listing { flex-direction: row; }
.dg-results.is-list .dg-listing__media { aspect-ratio: auto; width: 280px; flex: none; min-height: 210px; }
.dg-results.is-list .dg-listing__foot { grid-template-columns: auto auto auto; justify-content: start; }
.dg-results__map { display: none; height: 560px; border-radius: var(--dg-r-lg); overflow: hidden; border: 1px solid var(--dg-border); background: var(--dg-primary-50); position: relative; }
.dg-results__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dg-results.is-map .dg-results__map { display: block; }
.dg-results.is-map .dg-results__grid, .dg-results.is-map .dg-pager { display: none; }
.dg-empty { display: none; text-align: center; padding: 3rem 1rem; background: #fff; border: 1px dashed var(--dg-border-strong); border-radius: var(--dg-r-lg); }
.dg-empty.is-shown { display: block; }
.dg-empty svg { width: 42px; height: 42px; color: var(--dg-muted); margin: 0 auto .75rem; }
.dg-empty h3 { margin-bottom: .35rem; }
.dg-empty p { color: var(--dg-muted); }

/* In-feed promo */
.dg-promo { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; border-radius: var(--dg-r-lg); background: var(--dg-primary); color: rgba(255, 255, 255, .8); }
.dg-promo strong { display: block; color: #fff; font-family: var(--dg-font-head); font-size: 1.05rem; }
.dg-promo span { font-size: .88rem; }
.dg-results.is-filtered .dg-promo { display: none; }

/* Pagination */
.dg-pager { display: flex; justify-content: center; margin-top: 2rem; }
.dg-pager ul { display: flex; gap: .35rem; list-style: none; margin: 0; padding: 0; }
.dg-pager a, .dg-pager span { min-width: 42px; height: 42px; padding: 0 .75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--dg-r-sm); border: 1px solid var(--dg-border-strong); background: #fff; color: var(--dg-text-2); font-weight: 600; font-size: .9rem; }
.dg-pager a:hover { border-color: var(--dg-primary); color: var(--dg-primary); }
.dg-pager [aria-current] { background: var(--dg-primary); border-color: var(--dg-primary); color: #fff; }
.dg-pager svg { width: 16px; height: 16px; }

/* Below-results content */
.dg-related { display: flex; flex-wrap: wrap; gap: .5rem; }
.dg-related a { display: inline-flex; align-items: center; gap: .55rem; padding: .45rem .9rem .45rem .45rem; border-radius: var(--dg-r-pill); background: #fff; border: 1px solid var(--dg-border); color: var(--dg-text); font-weight: 600; font-size: .86rem; }
.dg-related a:hover { border-color: var(--dg-primary); color: var(--dg-primary); }
.dg-related .dg-icon-tile { width: 30px; height: 30px; border-radius: 50%; }
.dg-related .dg-icon-tile svg { width: 16px; height: 16px; }
.dg-prose { max-width: 820px; color: var(--dg-text-2); }
.dg-prose h2 { font-size: 1.4rem; margin-top: 0; }
.dg-prose h3 { font-size: 1.05rem; margin-top: 1.5rem; }
.dg-prose ul { padding-left: 1.2rem; }
.dg-prose li { margin-bottom: .35rem; }

/* Bottom sheet (mobile filters) */
.dg-sheet-scrim { position: fixed; inset: 0; background: rgba(20, 19, 43, .5); z-index: 1250; opacity: 0; visibility: hidden; transition: opacity var(--dg-med), visibility 0s linear var(--dg-med); }
.dg-sheet-scrim.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }

@media (max-width: 1199.98px) {
  .dg-archive { grid-template-columns: 250px minmax(0, 1fr); gap: 1.25rem; }
  .dg-results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  .dg-archive { grid-template-columns: minmax(0, 1fr); padding-top: 1rem; }
  /* Filters become an app-style bottom sheet */
  .dg-filters {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 1300; max-height: 86vh; border-radius: 20px 20px 0 0; border: 0;
    transform: translateY(105%); visibility: hidden; transition: transform var(--dg-med) var(--dg-ease), visibility 0s linear var(--dg-med);
    box-shadow: 0 -12px 40px rgba(20, 19, 43, .25);
  }
  .dg-filters.is-open { transform: none; visibility: visible; transition-delay: 0s; }
  .dg-filters::before { content: ""; width: 42px; height: 5px; border-radius: 5px; background: var(--dg-border-strong); margin: .6rem auto 0; flex: none; }
  .dg-filters__foot { display: grid; grid-template-columns: 1fr 1.6fr; gap: .6rem; padding: .85rem 1.15rem calc(.85rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--dg-border); }
  .dg-results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  /* App bar replaces the big category header on phones */
  .dg-topbar { display: none; }
  .dg-appbar { --dg-appbar-h: 62px; height: var(--dg-appbar-h); display: flex; align-items: center; gap: .5rem; position: sticky; top: var(--dg-header-h); z-index: 900; background: #fff; border-bottom: 1px solid var(--dg-border); padding: .5rem var(--dg-gutter); }
  .dg-appbar__back, .dg-appbar__icon { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--dg-bg); color: var(--dg-text); display: inline-flex; align-items: center; justify-content: center; flex: none; }
  .dg-appbar__back svg { width: 18px; height: 18px; transform: rotate(180deg); }
  .dg-appbar__icon svg { width: 18px; height: 18px; }
  .dg-appbar__title { flex: 1; min-width: 0; }
  .dg-appbar__title strong { display: block; font-family: var(--dg-font-head); font-size: 1.02rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .dg-appbar__title small { color: var(--dg-muted); font-size: .75rem; }
  .dg-cathead { padding: .9rem 0 .75rem; }
  .dg-cathead .dg-crumbs { display: none; }
  /* Step 20: hidden on phones (the app bar shows the title) but still read by screen readers, so the page keeps its h1 */
  .dg-cathead__row { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .dg-cathead__search { margin-top: 0; grid-template-columns: 1fr; }
  .dg-cathead__search .dg-btn { display: none; }
  .dg-subcats { margin-top: .75rem; }
  /* Sticky chip toolbar */
  .dg-results__bar { position: sticky; top: calc(var(--dg-header-h) + 62px); z-index: 800; background: var(--dg-bg); margin: 0 calc(var(--dg-gutter) * -1) .75rem; padding: .6rem var(--dg-gutter); border-bottom: 1px solid var(--dg-border); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .dg-results__bar::-webkit-scrollbar { display: none; }
  .dg-results__count { display: none; }
  .dg-results__tools { flex: none; }
  .dg-sort span { display: none; }
  .dg-results__grid { grid-template-columns: 1fr; gap: .85rem; }
  .dg-results.is-list .dg-listing { flex-direction: row; }
  .dg-results.is-list .dg-listing__media { width: 112px; min-height: 0; }
  .dg-results.is-list .dg-listing__tags, .dg-results.is-list .dg-stars, .dg-results.is-list .dg-listing__badges .dg-badge--verified { display: none; }
  .dg-results.is-list .dg-listing__body { padding: .75rem; gap: .3rem; }
  .dg-results.is-list .dg-listing__foot { grid-template-columns: 1fr 1fr; padding-top: .55rem; }
  .dg-results.is-list .dg-listing__foot .dg-btn--icon { display: none; }
  .dg-results__map { height: calc(100svh - var(--dg-header-h) - 190px); }
  .dg-pager a.dg-pager__num:not([aria-current]), .dg-pager span.dg-pager__gap { display: none; }
}
@media (min-width: 992px) { .dg-filter-open { display: none !important; } }
.dg-nav__link[aria-current="page"] { color: var(--dg-primary); background: var(--dg-primary-50); }

/* Archive refinements */
.dg-fgroup legend { line-height: 1.3; margin-bottom: .55rem; }
.dg-fgroup .form-check { min-height: 0; }
@media (max-width: 767.98px) {
  .dg-results.is-list .dg-listing__badges { display: none; }
  .dg-results.is-list .dg-listing__save { width: 30px; height: 30px; top: .45rem; right: .45rem; }
  .dg-results.is-list .dg-listing__save svg { width: 15px; height: 15px; }
}

/* ==========================================================================
   LISTING DETAIL PAGE
   ========================================================================== */
.dg-detail-top { background: #fff; padding: 1.25rem 0 0; }
.dg-gallery { position: relative; display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 210px 210px; gap: .5rem; margin-top: 1rem; border-radius: var(--dg-r-lg); overflow: hidden; }
.dg-gallery > button { position: relative; padding: 0; border: 0; background: var(--dg-primary-100); cursor: zoom-in; overflow: hidden; }
.dg-gallery > button:first-child { grid-row: span 2; }
.dg-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--dg-ease); }
.dg-gallery > button:hover img { transform: scale(1.04); }
.dg-gallery__all { position: absolute; right: 1rem; bottom: 1rem; z-index: 2; }
.dg-gallery__count { display: none; }
.dg-gallery__overlay { display: none; }

.dg-dhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 1rem 2rem; padding: 1.5rem 0 1.25rem; }
.dg-dhead h1 { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; letter-spacing: -.03em; margin: .35rem 0 .5rem; }
.dg-dhead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.1rem; font-size: .9rem; color: var(--dg-muted); }
.dg-dhead__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.dg-dhead__meta svg { width: 16px; height: 16px; color: var(--dg-gold-700); }
.dg-dhead__actions { display: flex; gap: .5rem; }
.dg-dhead__actions .dg-btn[aria-pressed="true"] { color: var(--dg-danger); border-color: #f0b8b8; background: var(--dg-danger-50); }
.dg-dhead__actions .dg-btn[aria-pressed="true"] svg { fill: currentColor; }

/* Section tabs (sticky) */
.dg-dtabs { position: sticky; top: var(--dg-header-h); z-index: 850; background: #fff; border-bottom: 1px solid var(--dg-border); }
.dg-dtabs ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.dg-dtabs ul::-webkit-scrollbar { display: none; }
.dg-dtabs a { position: relative; display: block; padding: .95rem .9rem; font-family: var(--dg-font-head); font-weight: 600; font-size: .9rem; color: var(--dg-muted); white-space: nowrap; }
.dg-dtabs a::after { content: ""; position: absolute; left: .9rem; right: .9rem; bottom: -1px; height: 2px; background: var(--dg-primary); transform: scaleX(0); transition: transform var(--dg-fast); }
.dg-dtabs a:hover, .dg-dtabs a.is-active { color: var(--dg-primary); }
.dg-dtabs a.is-active::after { transform: scaleX(1); }

.dg-dlayout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 2rem; align-items: start; padding-block: 2rem 3.5rem; }
.dg-dblock { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.5rem 1.6rem; margin-bottom: 1.25rem; scroll-margin-top: calc(var(--dg-header-h) + 70px); }
.dg-dblock > h2 { font-size: 1.2rem; margin-bottom: 1rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.dg-dblock p { color: var(--dg-text-2); }
.dg-facts2 { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 1rem; }
.dg-fact2 { display: flex; gap: .7rem; align-items: flex-start; padding: .9rem; border-radius: var(--dg-r); background: var(--dg-bg); }
.dg-fact2 .dg-icon-tile { width: 38px; height: 38px; border-radius: 9px; background: #fff; }
.dg-fact2 .dg-icon-tile svg { width: 19px; height: 19px; }
.dg-fact2 small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--dg-muted); }
.dg-fact2 strong { display: block; font-family: var(--dg-font-head); font-size: .95rem; color: var(--dg-text); line-height: 1.3; margin-top: .1rem; }
.dg-fact2 em { font-style: normal; display: block; font-size: .76rem; color: var(--dg-muted); margin-top: .15rem; }
.dg-dl { display: grid; grid-template-columns: 180px 1fr; gap: 0; margin: 0; }
.dg-dl dt, .dg-dl dd { padding: .75rem 0; border-bottom: 1px solid var(--dg-border); margin: 0; font-size: .92rem; }
.dg-dl dt { color: var(--dg-muted); font-weight: 500; }
.dg-dl dd { color: var(--dg-text); font-weight: 500; }
.dg-dl dd a { word-break: break-word; }
.dg-dl > :nth-last-child(-n+2) { border-bottom: 0; }
.dg-emptybox { display: flex; gap: 1rem; align-items: center; padding: 1.1rem; border: 1px dashed var(--dg-border-strong); border-radius: var(--dg-r); background: var(--dg-bg); }
.dg-emptybox .dg-icon-tile { background: #fff; }
.dg-emptybox p { margin: 0; font-size: .9rem; }
.dg-emptybox strong { display: block; font-family: var(--dg-font-head); color: var(--dg-text); }
.dg-dmap { position: relative; height: 300px; border-radius: var(--dg-r); overflow: hidden; background: var(--dg-primary-50); margin-top: 1rem; }
.dg-dmap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dg-dmap .dg-explorer__ph { position: absolute; }
.dg-sourcebox { font-size: .84rem; color: var(--dg-muted); display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; align-items: center; }
.dg-sourcebox a { font-weight: 600; }

/* Contact card */
.dg-contact { position: sticky; top: calc(var(--dg-header-h) + 70px); background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); box-shadow: var(--dg-shadow-sm); overflow: hidden; }
.dg-contact__head { padding: 1.25rem 1.4rem; border-bottom: 1px solid var(--dg-border); }
.dg-contact__head h2 { font-size: 1.05rem; margin: 0 0 .2rem; }
.dg-contact__head p { margin: 0; font-size: .84rem; color: var(--dg-muted); }
.dg-contact__btns { display: grid; gap: .5rem; padding: 1.1rem 1.4rem; }
.dg-contact__phone { display: flex; justify-content: space-between; align-items: center; font-size: .86rem; color: var(--dg-muted); padding: 0 1.4rem 1rem; }
.dg-contact__phone strong { color: var(--dg-text); font-family: var(--dg-font-head); }
.dg-contact__form { padding: 1.1rem 1.4rem 1.4rem; border-top: 1px solid var(--dg-border); background: var(--dg-bg); }
.dg-contact__form h3 { font-size: .95rem; margin-bottom: .75rem; }
.dg-contact__form .dg-field { margin-bottom: .7rem; }
.dg-contact__form .form-control, .dg-contact__form .form-select { min-height: 44px; font-size: .9rem; }
.dg-contact__form .dg-inputgroup .form-control { min-height: 44px; }
.dg-contact__foot { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1.4rem; border-top: 1px solid var(--dg-border); font-size: .82rem; }
.dg-claim { margin-top: 1rem; padding: 1.1rem 1.25rem; border-radius: var(--dg-r-lg); background: var(--dg-gold-50); border: 1px solid #efe1ad; display: flex; gap: .85rem; align-items: flex-start; }
.dg-claim strong { display: block; font-family: var(--dg-font-head); font-size: .95rem; }
.dg-claim p { margin: .15rem 0 .5rem; font-size: .85rem; color: #5f4c0e; }

/* Lightbox */
.dg-lightbox .modal-content { background: #0e0d1f; border: 0; border-radius: 0; }
.dg-lightbox .modal-header { border: 0; color: #fff; }
.dg-lightbox .modal-title { color: #fff; font-size: 1rem; }
.dg-lightbox .btn-close { filter: invert(1); }
.dg-lightbox .carousel-item img { max-height: 78vh; width: auto; max-width: 100%; margin: 0 auto; object-fit: contain; }
.dg-lightbox__count { color: rgba(255, 255, 255, .7); font-size: .85rem; text-align: center; padding: .5rem 0 1rem; }

/* Mobile action bar (replaces the tab bar on detail pages) */
.dg-actionbar2 { display: none; }

@media (max-width: 991.98px) {
  .dg-dlayout { grid-template-columns: minmax(0, 1fr); }
  .dg-contact { position: static; }
  .dg-facts2 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767.98px) {
  .dg-detailpage .dg-appbar, .dg-detailpage .dg-detail-top .dg-crumbs { display: none; }
  .dg-detail-top { padding-top: 0; }
  .dg-detail-top > .container { padding-inline: 0; }
  /* Swipeable full-bleed gallery */
  .dg-gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 0; margin-top: 0; gap: 0; height: 290px; }
  .dg-gallery::-webkit-scrollbar { display: none; }
  .dg-gallery > button { flex: 0 0 100%; scroll-snap-align: start; height: 100%; cursor: pointer; }
  .dg-gallery__all { display: none; }
  .dg-gallery-wrap { position: relative; }
  .dg-gallery__count { display: inline-flex; position: absolute; right: .9rem; bottom: .9rem; z-index: 3; padding: .25rem .6rem; border-radius: var(--dg-r-pill); background: rgba(20, 19, 43, .7); color: #fff; font-size: .75rem; font-weight: 600; }
  .dg-gallery__overlay { display: flex; position: absolute; left: .75rem; right: .75rem; top: .75rem; z-index: 3; justify-content: space-between; pointer-events: none; }
  .dg-gallery__overlay > * { pointer-events: auto; }
  .dg-gallery__overlay .dg-roundbtn { width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .94); color: var(--dg-text); display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--dg-shadow-sm); }
  .dg-gallery__overlay .dg-roundbtn svg { width: 18px; height: 18px; }
  .dg-gallery__overlay .dg-roundbtn--back svg { transform: rotate(180deg); }
  .dg-gallery__overlay .dg-roundbtn[aria-pressed="true"] { color: var(--dg-danger); }
  .dg-gallery__overlay .dg-roundbtn[aria-pressed="true"] svg { fill: currentColor; }
  .dg-gallery__overlay > div { display: flex; gap: .5rem; }
  .dg-dhead { padding: 1.1rem var(--dg-gutter) 1rem; margin: -18px 0 0; position: relative; z-index: 4; background: #fff; border-radius: 18px 18px 0 0; }
  .dg-dhead__actions { display: none; }
  .dg-dtabs { top: var(--dg-header-h); }
  .dg-dlayout { padding-top: 1rem; gap: 0; }
  .dg-dblock { padding: 1.15rem; border-radius: var(--dg-r); }
  .dg-facts2 { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .dg-fact2 { padding: .7rem; }
  .dg-dl { grid-template-columns: 1fr; }
  .dg-dl dt { padding-bottom: 0; border-bottom: 0; font-size: .78rem; }
  .dg-dl dd { padding-top: .15rem; }
  .dg-contact__btns, .dg-contact__phone { display: none; }
  .dg-detailpage .dg-bottomnav { display: none; }
  .dg-actionbar2 { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: .5rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; padding: .6rem var(--dg-gutter) calc(.6rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--dg-border); box-shadow: 0 -6px 18px rgba(20, 19, 43, .08); }
  .dg-actionbar2 .dg-btn { min-height: 46px; padding-inline: .5rem; }
  body.dg-detailpage { padding-bottom: 72px; }
}
/* Toast */
.dg-toast { position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom)); transform: translate(-50%, 20px); z-index: 2000; padding: .65rem 1.1rem; border-radius: var(--dg-r-pill); background: var(--dg-text); color: #fff; font-size: .86rem; font-weight: 600; box-shadow: var(--dg-shadow-lg); opacity: 0; pointer-events: none; transition: opacity var(--dg-fast), transform var(--dg-fast); max-width: calc(100vw - 2rem); }
.dg-toast.is-shown { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 768px) { .dg-toast { bottom: 2rem; } }
.dg-gallery-wrap { position: relative; }
.dg-dhead__meta .dg-stars__icons svg { color: var(--dg-border-strong); width: 14px; height: 14px; }
.dg-dhead__meta .dg-stars--rated .dg-stars__icons svg { color: var(--dg-gold); }
#enquire, #contact { scroll-margin-top: calc(var(--dg-header-h) + 64px); }
@media (max-width: 767.98px) {
  .dg-dhead { margin: -18px calc(var(--dg-gutter) * -1) 0; }
  .dg-fact2 em { font-size: .72rem; }
}

/* ==========================================================================
   ACCOUNT / DASHBOARD
   ========================================================================== */
.dg-dash { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 1.75rem; align-items: start; padding-block: 2rem 3.5rem; }
.dg-dside { position: sticky; top: calc(var(--dg-header-h) + 1rem); background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); overflow: hidden; }
.dg-dprofile { display: flex; align-items: center; gap: .85rem; padding: 1.25rem; border-bottom: 1px solid var(--dg-border); }
.dg-dprofile strong { display: block; font-family: var(--dg-font-head); font-size: 1rem; line-height: 1.25; }
.dg-dprofile small { display: block; color: var(--dg-muted); font-size: .8rem; word-break: break-all; }
.dg-dnav { list-style: none; margin: 0; padding: .5rem; }
.dg-dnav a { display: flex; align-items: center; gap: .7rem; padding: .7rem .75rem; border-radius: var(--dg-r-sm); color: var(--dg-text-2); font-weight: 600; font-size: .92rem; }
.dg-dnav a svg { width: 19px; height: 19px; color: var(--dg-muted); flex: none; }
.dg-dnav a .dg-dnav__count { margin-left: auto; font-size: .72rem; font-weight: 700; background: var(--dg-bg); color: var(--dg-muted); border-radius: var(--dg-r-pill); padding: .1rem .5rem; }
.dg-dnav a:hover { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-dnav a.is-active { background: var(--dg-primary); color: #fff; }
.dg-dnav a.is-active svg { color: var(--dg-gold); }
.dg-dnav a.is-active .dg-dnav__count { background: rgba(255, 255, 255, .15); color: #fff; }
.dg-dnav__sep { height: 1px; background: var(--dg-border); margin: .4rem .5rem; }
.dg-dnav a.dg-dnav__logout { color: var(--dg-danger); }
.dg-dnav a.dg-dnav__logout svg { color: var(--dg-danger); }
.dg-dside__biz { margin: .5rem; padding: 1rem; border-radius: var(--dg-r); background: var(--dg-gold-50); border: 1px solid #efe1ad; font-size: .84rem; color: #5f4c0e; }
.dg-dside__biz strong { display: block; color: var(--dg-text); font-family: var(--dg-font-head); font-size: .92rem; margin-bottom: .2rem; }

.dg-dpanel[hidden] { display: none !important; }
.dg-dpanel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .75rem 1rem; margin-bottom: 1.25rem; }
.dg-dpanel__head h1, .dg-dpanel__head h2 { font-size: clamp(1.4rem, 2.4vw, 1.75rem); font-weight: 800; letter-spacing: -.02em; margin: 0; }
.dg-dpanel__head p { margin: .25rem 0 0; color: var(--dg-muted); }
.dg-mback { display: none; }

.dg-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.25rem; }
.dg-stat { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.2rem; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); color: var(--dg-text); }
.dg-stat:hover { border-color: var(--dg-primary-100); box-shadow: var(--dg-shadow-sm); color: var(--dg-text); }
.dg-stat strong { display: block; font-family: var(--dg-font-head); font-size: 1.6rem; line-height: 1; }
.dg-stat span { font-size: .84rem; color: var(--dg-muted); }
.dg-card { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.35rem 1.5rem; margin-bottom: 1.25rem; }
.dg-card > h2, .dg-card > h3 { font-size: 1.08rem; margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }

.dg-saved { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.dg-saved .dg-listing { flex-direction: row; }
.dg-saved .dg-listing__media { aspect-ratio: auto; width: 150px; flex: none; }
.dg-saved .dg-listing__body { gap: .3rem; }
.dg-saved .dg-listing__foot { grid-template-columns: 1fr 1fr; }

.dg-enq { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--dg-border); }
.dg-enq:last-child { border-bottom: 0; }
.dg-enq .dg-media { width: 56px; height: 56px; border-radius: var(--dg-r); }
.dg-enq h3 { font-size: .98rem; margin: 0 0 .15rem; }
.dg-enq h3 a { color: var(--dg-text); }
.dg-enq p { margin: 0; font-size: .84rem; color: var(--dg-muted); }
.dg-enq__side { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; font-size: .78rem; color: var(--dg-muted); }
.dg-status { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: var(--dg-r-pill); background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.dg-status--sent { background: var(--dg-gold-50); color: var(--dg-gold-700); }
.dg-status--replied { background: var(--dg-success-50); color: var(--dg-success); }

.dg-emptystate { text-align: center; padding: 2.5rem 1rem; }
.dg-emptystate .dg-icon-tile { margin: 0 auto 1rem; width: 60px; height: 60px; border-radius: 16px; }
.dg-emptystate h3 { font-size: 1.1rem; margin-bottom: .35rem; }
.dg-emptystate p { color: var(--dg-muted); max-width: 26rem; margin: 0 auto 1.1rem; }
.dg-sample { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dg-muted); background: var(--dg-bg); border-radius: 4px; padding: .15rem .4rem; }

.dg-settings .dg-field { margin-bottom: 1rem; }
.dg-switchrow { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--dg-border); }
.dg-switchrow:last-child { border-bottom: 0; }
.dg-switchrow strong { display: block; font-size: .92rem; font-family: var(--dg-font-head); }
.dg-switchrow span { font-size: .82rem; color: var(--dg-muted); }
.dg-switchrow .form-check-input { width: 2.4em; height: 1.3em; margin: 0; float: none; cursor: pointer; }
.dg-danger-zone { border-color: #f1c4c4; }
.dg-danger-zone h3 { color: var(--dg-danger); }

/* Mobile app account screen */
.dg-mprofile, .dg-mmenu { display: none; }
@media (max-width: 991.98px) {
  .dg-dash { grid-template-columns: minmax(0, 1fr); }
  .dg-dside { display: none; }
  .dg-saved { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .dg-dash { padding-top: 0; gap: 0; }
  .dg-dashpage .dg-dash > div { min-width: 0; }
  /* Home of the account = profile + menu (app style) */
  .dg-dashpage.is-dash-home .dg-mprofile, .dg-dashpage.is-dash-home .dg-mmenu { display: block; }
  .dg-dashpage.is-dash-home [data-dpanel="overview"] .dg-dpanel__head { display: none; }
  .dg-mprofile { margin: 0 calc(var(--dg-gutter) * -1) 1rem; padding: 1.5rem var(--dg-gutter) 1.25rem; background: var(--dg-primary); color: rgba(255, 255, 255, .8); }
  .dg-mprofile .dg-avatar { width: 56px; height: 56px; font-size: 1.1rem; background: #fff; color: var(--dg-primary); }
  .dg-mprofile__row { display: flex; align-items: center; gap: .9rem; }
  .dg-mprofile strong { display: block; color: #fff; font-family: var(--dg-font-head); font-size: 1.15rem; }
  .dg-mprofile small { font-size: .82rem; }
  .dg-mprofile__edit { margin-left: auto; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
  .dg-mprofile__edit svg { width: 18px; height: 18px; }
  .dg-mmenu { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); margin-bottom: 1rem; overflow: hidden; }
  .dg-mmenu ul { list-style: none; margin: 0; padding: 0; }
  .dg-mmenu a { display: flex; align-items: center; gap: .85rem; padding: .95rem 1rem; color: var(--dg-text); font-weight: 600; border-bottom: 1px solid var(--dg-border); }
  .dg-mmenu li:last-child a { border-bottom: 0; }
  .dg-mmenu a .dg-icon-tile { width: 38px; height: 38px; border-radius: 10px; }
  .dg-mmenu a .dg-icon-tile svg { width: 19px; height: 19px; }
  .dg-mmenu a .dg-mmenu__end { margin-left: auto; display: inline-flex; align-items: center; gap: .5rem; color: var(--dg-muted); font-size: .8rem; font-weight: 600; }
  .dg-mmenu a .dg-mmenu__end svg { width: 16px; height: 16px; }
  .dg-mmenu a.dg-dnav__logout { color: var(--dg-danger); }
  .dg-mmenu__label { padding: .75rem 1rem .4rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dg-muted); background: var(--dg-bg); }
  /* Section screens get an app bar with back */
  .dg-dashpage:not(.is-dash-home) .dg-mback { display: flex; align-items: center; gap: .6rem; position: sticky; top: var(--dg-header-h); z-index: 800; margin: 0 calc(var(--dg-gutter) * -1) 1rem; padding: .55rem var(--dg-gutter); background: #fff; border-bottom: 1px solid var(--dg-border); }
  .dg-mback a { width: 40px; height: 40px; border-radius: 50%; background: var(--dg-bg); color: var(--dg-text); display: inline-flex; align-items: center; justify-content: center; }
  .dg-mback a svg { width: 18px; height: 18px; transform: rotate(180deg); }
  .dg-mback strong { font-family: var(--dg-font-head); font-size: 1.05rem; }
  .dg-dashpage:not(.is-dash-home) .dg-dpanel__head h1, .dg-dashpage:not(.is-dash-home) .dg-dpanel__head h2 { font-size: 1.25rem; }
  .dg-stats { grid-template-columns: repeat(3, 1fr); gap: .5rem; }
  .dg-stat { flex-direction: column; align-items: flex-start; gap: .4rem; padding: .85rem; }
  .dg-stat .dg-icon-tile { width: 34px; height: 34px; border-radius: 9px; }
  .dg-stat .dg-icon-tile svg { width: 17px; height: 17px; }
  .dg-stat strong { font-size: 1.3rem; }
  .dg-stat span { font-size: .74rem; }
  .dg-saved .dg-listing__media { width: 112px; }
  .dg-saved .dg-listing__tags, .dg-saved .dg-stars { display: none; }
  .dg-saved .dg-listing__body { padding: .75rem; }
  .dg-enq { grid-template-columns: 48px minmax(0, 1fr); }
  .dg-enq .dg-media { width: 48px; height: 48px; }
  .dg-enq__side { grid-column: 2; flex-direction: row; justify-content: space-between; align-items: center; text-align: left; }
  .dg-card { padding: 1.1rem; }
}
@media (max-width: 767.98px) {
  /* app bar already shows the section title */
  .dg-dashpage:not(.is-dash-home) .dg-dpanel__head h2 { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .dg-dashpage:not(.is-dash-home) .dg-dpanel__head { margin-bottom: .85rem; }
  .dg-dashpage:not(.is-dash-home) .dg-dpanel__head p { margin: 0; font-size: .88rem; }
}

/* ==========================================================================
   BUSINESS DASHBOARD
   ========================================================================== */
:root { --dg-chart: #4b45a6; --dg-chart-grid: #eceef4; }
.dg-stats--4 { grid-template-columns: repeat(4, 1fr); }
.dg-stat__delta { display: block; font-size: .74rem; color: var(--dg-muted); margin-top: .15rem; }

/* Bar chart (single series, HTML) */
.dg-chart__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.dg-chart__head h2 { font-size: 1.08rem; margin: 0; }
.dg-chart__head p { margin: .15rem 0 0; font-size: .84rem; color: var(--dg-muted); }
.dg-seg--sm { margin: 0; padding: .2rem; }
.dg-seg--sm button { min-height: 34px; padding: 0 .8rem; font-size: .8rem; }
.dg-seg--3 { grid-template-columns: repeat(3, auto); }
.dg-chart { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .5rem; }
.dg-chart__y { position: relative; height: 200px; font-size: .72rem; color: var(--dg-muted); }
.dg-chart__y span { position: absolute; right: 0; transform: translateY(50%); }
.dg-chart__plot { position: relative; height: 200px; border-bottom: 1px solid var(--dg-border-strong); }
.dg-chart__grid { position: absolute; left: 0; right: 0; height: 1px; background: var(--dg-chart-grid); }
.dg-chart__bars { position: absolute; inset: 0; display: flex; align-items: flex-end; gap: 2px; }
.dg-chart__bar { flex: 1; display: flex; align-items: flex-end; justify-content: center; height: 100%; padding: 0; border: 0; background: transparent; cursor: default; }
.dg-chart__bar i { display: block; width: 100%; max-width: 18px; background: var(--dg-chart); border-radius: 4px 4px 0 0; min-height: 2px; transition: background var(--dg-fast); }
.dg-chart__bar:hover i, .dg-chart__bar:focus-visible i { background: var(--dg-primary); }
.dg-chart__bar:focus-visible { outline: 2px solid var(--dg-gold); outline-offset: 1px; border-radius: 3px; }
.dg-chart__x { grid-column: 2; display: flex; justify-content: space-between; font-size: .72rem; color: var(--dg-muted); padding-top: .4rem; }
.dg-chart__tip { position: absolute; z-index: 5; pointer-events: none; transform: translate(-50%, -100%); margin-top: -8px; padding: .4rem .6rem; border-radius: var(--dg-r-sm); background: var(--dg-text); color: #fff; font-size: .78rem; white-space: nowrap; box-shadow: var(--dg-shadow); opacity: 0; transition: opacity var(--dg-fast); }
.dg-chart__tip strong { font-family: var(--dg-font-head); }
.dg-chart__tip.is-shown { opacity: 1; }
.dg-chart__table { margin-top: 1rem; font-size: .85rem; }
.dg-chart__table summary { cursor: pointer; font-weight: 600; color: var(--dg-primary); }
.dg-chart__table table { width: 100%; margin-top: .6rem; border-collapse: collapse; }
.dg-chart__table th, .dg-chart__table td { padding: .35rem .5rem; border-bottom: 1px solid var(--dg-border); text-align: left; }
.dg-chart__table td:last-child, .dg-chart__table th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.dg-chart__tablewrap { max-height: 240px; overflow-y: auto; }

/* Listing health */
.dg-meter { height: 8px; border-radius: 8px; background: var(--dg-bg); overflow: hidden; }
.dg-meter span { display: block; height: 100%; border-radius: 8px; background: var(--dg-success); }
.dg-meter--warn span { background: var(--dg-gold); }
.dg-health__row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .5rem; font-size: .9rem; }
.dg-health__row strong { font-family: var(--dg-font-head); font-size: 1.3rem; }
.dg-todo { list-style: none; padding: 0; margin: 1rem 0 0; }
.dg-todo li { display: flex; align-items: center; gap: .7rem; padding: .65rem 0; border-top: 1px solid var(--dg-border); font-size: .9rem; }
.dg-todo li svg { width: 18px; height: 18px; flex: none; }
.dg-todo li.is-done { color: var(--dg-muted); }
.dg-todo li.is-done svg { color: var(--dg-success); }
.dg-todo li:not(.is-done) svg { color: var(--dg-border-strong); }
.dg-todo li a { margin-left: auto; font-size: .82rem; font-weight: 700; }

/* My listings */
.dg-mylisting { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 1.1rem; align-items: center; }
.dg-mylisting .dg-media { width: 120px; height: 90px; border-radius: var(--dg-r); }
.dg-mylisting h3 { font-size: 1.05rem; margin: .25rem 0 .35rem; }
.dg-mylisting__meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .82rem; color: var(--dg-muted); margin-bottom: .6rem; }
.dg-mylisting__actions { display: flex; flex-direction: column; gap: .4rem; }
.dg-addcard { display: flex; align-items: center; justify-content: center; gap: .6rem; padding: 1.25rem; border: 1.5px dashed var(--dg-border-strong); border-radius: var(--dg-r-lg); color: var(--dg-primary); font-weight: 700; font-family: var(--dg-font-head); background: #fff; }
.dg-addcard:hover { border-color: var(--dg-primary); background: var(--dg-primary-50); }
.dg-addcard svg { width: 20px; height: 20px; }
.dg-status--live { background: var(--dg-success-50); color: var(--dg-success); }
.dg-status--warn { background: var(--dg-gold-50); color: var(--dg-gold-700); }

/* Leads */
.dg-lead { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 1rem; align-items: start; padding: 1.1rem 0; border-bottom: 1px solid var(--dg-border); }
.dg-lead:last-child { border-bottom: 0; }
.dg-lead[hidden] { display: none; }
.dg-lead .dg-avatar { width: 44px; height: 44px; background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-lead h3 { font-size: .98rem; margin: 0 0 .15rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.dg-lead__meta { font-size: .82rem; color: var(--dg-muted); margin-bottom: .4rem; }
.dg-lead__msg { font-size: .9rem; color: var(--dg-text-2); margin: 0; }
.dg-lead__actions { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; }
.dg-status--new { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-status--done { background: var(--dg-bg); color: var(--dg-muted); }

@media (max-width: 1199.98px) { .dg-stats--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767.98px) {
  .dg-stats--4 { grid-template-columns: repeat(2, 1fr); }
  .dg-chart__y, .dg-chart__plot { height: 160px; }
  .dg-mylisting { grid-template-columns: 84px minmax(0, 1fr); }
  .dg-mylisting .dg-media { width: 84px; height: 84px; }
  .dg-mylisting__actions { grid-column: 1 / -1; flex-direction: row; }
  .dg-mylisting__actions .dg-btn { flex: 1; }
  .dg-lead { grid-template-columns: 40px minmax(0, 1fr); }
  .dg-lead .dg-avatar { width: 40px; height: 40px; }
  .dg-lead__actions { grid-column: 1 / -1; justify-content: stretch; }
  .dg-lead__actions .dg-btn { flex: 1; }
  .dg-plans { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ADD / CLAIM LISTING (multi-step)
   ========================================================================== */
.dg-addhead { background: #fff; border-bottom: 1px solid var(--dg-border); padding: 1.5rem 0 1.25rem; }
.dg-addhead h1 { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; letter-spacing: -.03em; margin: .6rem 0 .25rem; }
.dg-addhead p { margin: 0; color: var(--dg-muted); }
.dg-addhead .dg-seg { max-width: 420px; margin: 1.1rem 0 0; }
.dg-wizard { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1.75rem; align-items: start; padding-block: 2rem 3.5rem; }
.dg-steps-nav { position: sticky; top: calc(var(--dg-header-h) + 1rem); background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: .75rem; list-style: none; margin: 0; counter-reset: st; }
.dg-steps-nav li { counter-increment: st; }
.dg-steps-nav button { display: flex; align-items: center; gap: .75rem; width: 100%; padding: .7rem .6rem; border: 0; border-radius: var(--dg-r-sm); background: transparent; text-align: left; font-family: var(--dg-font-head); font-weight: 600; font-size: .9rem; color: var(--dg-muted); cursor: pointer; }
.dg-steps-nav button::before { content: counter(st); flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--dg-border-strong); display: inline-flex; align-items: center; justify-content: center; font-size: .82rem; }
.dg-steps-nav button[disabled] { cursor: default; }
.dg-steps-nav li.is-current button { color: var(--dg-primary); background: var(--dg-primary-50); }
.dg-steps-nav li.is-current button::before { border-color: var(--dg-primary); background: var(--dg-primary); color: #fff; }
.dg-steps-nav li.is-done button { color: var(--dg-text); }
.dg-steps-nav li.is-done button::before { content: "✓"; border-color: var(--dg-success); background: var(--dg-success); color: #fff; }
.dg-steps-nav small { display: block; font-family: var(--dg-font-body); font-weight: 500; font-size: .74rem; color: var(--dg-muted); }
.dg-wstep { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: clamp(1.25rem, 3vw, 2rem); }
.dg-wstep[hidden] { display: none; }
.dg-wstep__head { margin-bottom: 1.25rem; }
.dg-wstep__head small { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dg-gold-700); }
.dg-wstep__head h2 { font-size: 1.35rem; margin: .25rem 0 .2rem; }
.dg-wstep__head p { margin: 0; color: var(--dg-muted); font-size: .92rem; }
.dg-wnav { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--dg-border); }
.dg-wprogress { display: none; }

/* Category picker */
.dg-catpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; border: 0; padding: 0; margin: 0; }
.dg-catpick input { position: absolute; opacity: 0; pointer-events: none; }
.dg-catpick label { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; height: 100%; padding: .9rem; border: 1.5px solid var(--dg-border-strong); border-radius: var(--dg-r); cursor: pointer; font-family: var(--dg-font-head); font-weight: 700; font-size: .9rem; transition: border-color var(--dg-fast), background var(--dg-fast); }
.dg-catpick label:hover { border-color: var(--dg-primary-100); background: var(--dg-primary-50); }
.dg-catpick .dg-icon-tile { width: 40px; height: 40px; border-radius: 10px; }
.dg-catpick .dg-icon-tile svg { width: 20px; height: 20px; }
.dg-catpick input:checked + label { border-color: var(--dg-primary); background: var(--dg-primary-50); box-shadow: 0 0 0 3px rgba(39, 34, 98, .08); }
.dg-catpick input:checked + label::after { content: ""; position: absolute; top: .6rem; right: .6rem; width: 20px; height: 20px; border-radius: 50%; background: var(--dg-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat; }
.dg-catpick input:focus-visible + label { outline: 2px solid var(--dg-gold); outline-offset: 2px; }
.dg-catpick-err { display: none; color: var(--dg-danger); font-size: .85rem; margin-top: .6rem; }
.was-validated .dg-catpick:has(:invalid) ~ .dg-catpick-err { display: block; }

/* Category-specific field groups */
.dg-catfields[hidden] { display: none; }
.dg-catfields__title { display: flex; align-items: center; gap: .55rem; font-family: var(--dg-font-head); font-weight: 700; font-size: .95rem; margin: 1.5rem 0 .9rem; padding-top: 1.25rem; border-top: 1px solid var(--dg-border); }
.dg-catfields__title .dg-icon-tile { width: 32px; height: 32px; border-radius: 8px; }
.dg-catfields__title .dg-icon-tile svg { width: 17px; height: 17px; }
.dg-checkgrid { display: flex; flex-wrap: wrap; gap: .45rem; }
.dg-checkgrid input { position: absolute; opacity: 0; pointer-events: none; }
.dg-checkgrid label { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .85rem; border-radius: var(--dg-r-pill); border: 1px solid var(--dg-border-strong); background: #fff; font-size: .85rem; font-weight: 600; color: var(--dg-text-2); cursor: pointer; }
.dg-checkgrid input:checked + label { background: var(--dg-primary); border-color: var(--dg-primary); color: #fff; }
.dg-checkgrid input:focus-visible + label { outline: 2px solid var(--dg-gold); outline-offset: 2px; }
.dg-field__legend { font-size: .82rem; font-weight: 600; color: var(--dg-text-2); margin-bottom: .45rem; display: block; }
fieldset.dg-field { border: 0; padding: 0; min-width: 0; }
.dg-counter { font-size: .75rem; color: var(--dg-muted); text-align: right; margin-top: .25rem; }

/* Hours */
.dg-hours { width: 100%; border-collapse: collapse; }
.dg-hours th, .dg-hours td { padding: .45rem .35rem; border-bottom: 1px solid var(--dg-border); font-size: .9rem; vertical-align: middle; }
.dg-hours th { font-weight: 600; width: 64px; text-align: left; }
.dg-hours input[type="time"] { min-height: 40px; padding: .35rem .5rem; font-size: .88rem; }
.dg-hours tr.is-closed input[type="time"] { opacity: .35; pointer-events: none; }
.dg-hours[hidden] { display: none; }

/* Photos */
.dg-drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: 2rem 1rem; border: 2px dashed var(--dg-border-strong); border-radius: var(--dg-r-lg); background: var(--dg-bg); text-align: center; cursor: pointer; transition: border-color var(--dg-fast), background var(--dg-fast); }
.dg-drop:hover, .dg-drop.is-over { border-color: var(--dg-primary); background: var(--dg-primary-50); }
.dg-drop svg { width: 36px; height: 36px; color: var(--dg-primary); }
.dg-drop strong { font-family: var(--dg-font-head); }
.dg-drop span { font-size: .84rem; color: var(--dg-muted); }
.dg-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .6rem; margin-top: 1rem; }
.dg-thumb { position: relative; aspect-ratio: 1; border-radius: var(--dg-r); overflow: hidden; background: var(--dg-primary-50); }
.dg-thumb img { width: 100%; height: 100%; object-fit: cover; }
.dg-thumb button { position: absolute; top: .35rem; right: .35rem; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(20, 19, 43, .75); color: #fff; font-size: 1rem; line-height: 1; cursor: pointer; }
.dg-thumb span { position: absolute; left: .35rem; bottom: .35rem; font-size: .66rem; font-weight: 700; padding: .1rem .4rem; border-radius: 4px; background: var(--dg-gold); color: var(--dg-primary-700); }

/* Review */
.dg-summary { display: grid; grid-template-columns: 170px 1fr; margin: 0 0 1.25rem; }
.dg-summary dt, .dg-summary dd { padding: .6rem 0; border-bottom: 1px solid var(--dg-border); margin: 0; font-size: .9rem; }
.dg-summary dt { color: var(--dg-muted); }
.dg-summary dd { font-weight: 500; word-break: break-word; }
.dg-summary dd button { font-size: .8rem; }
.dg-done { text-align: center; padding: 2.5rem 1rem; }
.dg-done .dg-icon-tile { width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 1rem; background: var(--dg-success-50); color: var(--dg-success); }
.dg-done .dg-icon-tile svg { width: 36px; height: 36px; }
.dg-done[hidden] { display: none; }

/* Claim */
.dg-claimlist { list-style: none; padding: 0; margin: 1rem 0 0; border: 1px solid var(--dg-border); border-radius: var(--dg-r); max-height: 320px; overflow-y: auto; }
.dg-claimlist li[hidden] { display: none; }
.dg-claimlist label { display: flex; align-items: center; gap: .8rem; padding: .8rem 1rem; border-bottom: 1px solid var(--dg-border); cursor: pointer; }
.dg-claimlist li:last-child label { border-bottom: 0; }
.dg-claimlist input { flex: none; }
.dg-claimlist strong { display: block; font-size: .92rem; }
.dg-claimlist small { color: var(--dg-muted); font-size: .8rem; }
.dg-claimlist input:checked ~ div strong { color: var(--dg-primary); }
[data-mode-panel][hidden] { display: none; }

@media (max-width: 991.98px) {
  .dg-wizard { grid-template-columns: minmax(0, 1fr); }
  .dg-steps-nav { display: none; }
  .dg-wprogress { display: block; margin-bottom: 1rem; }
  .dg-wprogress__bar { height: 6px; border-radius: 6px; background: var(--dg-border); overflow: hidden; }
  .dg-wprogress__bar span { display: block; height: 100%; background: var(--dg-primary); border-radius: 6px; transition: width var(--dg-med) var(--dg-ease); }
  .dg-wprogress p { display: flex; justify-content: space-between; margin: 0 0 .4rem; font-size: .82rem; color: var(--dg-muted); }
  .dg-wprogress p strong { color: var(--dg-text); font-family: var(--dg-font-head); }
}
@media (max-width: 767.98px) {
  .dg-addpage .dg-bottomnav { display: none; }
  body.dg-addpage { padding-bottom: 78px; }
  .dg-addhead { padding: 1rem 0; }
  .dg-addhead .dg-crumbs { display: none; }
  .dg-addhead h1 { margin-top: 0; font-size: 1.35rem; }
  .dg-wizard { padding-top: 1rem; }
  .dg-wstep { padding: 1.1rem; border-radius: var(--dg-r); }
  .dg-catpick { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .dg-catpick label { padding: .75rem; font-size: .85rem; }
  .dg-wnav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; margin: 0; padding: .65rem var(--dg-gutter) calc(.65rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--dg-border); box-shadow: 0 -6px 18px rgba(20, 19, 43, .08); }
  .dg-wnav .dg-btn { flex: 1; min-height: 48px; }
  .dg-wnav [data-wprev][hidden] { display: none; }
  .dg-summary { grid-template-columns: 1fr; }
  .dg-summary dt { padding-bottom: 0; border-bottom: 0; font-size: .78rem; }
  .dg-hours th { width: 48px; }
}
.dg-steps-nav button { display: grid; grid-template-columns: 30px 1fr; column-gap: .75rem; align-items: center; }
.dg-steps-nav button::before { grid-row: span 2; }
.dg-steps-nav small { grid-column: 2; }
/* Only flag problems — no green ticks on valid fields */
.was-validated .form-control:valid, .was-validated .form-select:valid { border-color: var(--dg-border-strong); background-image: none; padding-right: .9rem; }
.was-validated .form-select:valid { background-image: var(--bs-form-select-bg-img); padding-right: 2.25rem; }
.was-validated .form-control:valid:focus, .was-validated .form-select:valid:focus { border-color: var(--dg-primary); box-shadow: 0 0 0 3px rgba(39, 34, 98, .12); }
.was-validated .form-check-input:valid ~ .form-check-label { color: var(--dg-text-2); }
.was-validated .form-check-input:valid { border-color: var(--bs-border-color); }
.was-validated .form-check-input:valid:checked { background-color: var(--dg-primary); border-color: var(--dg-primary); }
.dg-inputgroup__pre svg { width: 18px; height: 18px; color: var(--dg-muted); }
.dg-steps-nav button { row-gap: .05rem; }

.dg-actionbar2.dg-actionbar2--2 { grid-template-columns: 1fr 1fr; }
.dg-fact2 > div { min-width: 0; }
.dg-fact2 strong, .dg-fact2 em, .dg-dl dd { overflow-wrap: anywhere; }

/* ==========================================================================
   Search page
   ========================================================================== */
.dg-ssearch { margin-top: 1.25rem; display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: .5rem; }
.dg-ssearch .dg-inputgroup, .dg-ssearch .form-select { min-height: 50px; }
.dg-ssearch .dg-inputgroup__pre { background: #fff; border-right: 0; color: var(--dg-muted); }
.dg-ssearch .dg-inputgroup__pre svg, .dg-ssearch .dg-btn svg { width: 18px; height: 18px; }
.dg-ssearch .dg-btn { min-height: 50px; padding-inline: 1.4rem; }
.dg-chip__n { font-size: .74rem; font-weight: 700; color: var(--dg-muted); background: var(--dg-bg); border-radius: var(--dg-r-pill); padding: .05rem .45rem; }
.dg-chip[aria-pressed="true"] .dg-chip__n { background: rgba(255, 255, 255, .18); color: #fff; }
.dg-ssuggest { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; margin-bottom: 1rem; background: #fff; border: 1px solid var(--dg-border); border-left: 4px solid var(--dg-gold); border-radius: var(--dg-r-lg); color: var(--dg-text); text-decoration: none; }
.dg-ssuggest:hover { border-color: var(--dg-primary); color: var(--dg-text); }
.dg-ssuggest > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dg-ssuggest small { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--dg-gold-700); font-weight: 700; }
.dg-ssuggest strong { font-family: var(--dg-font-head); font-size: 1.05rem; }
.dg-ssuggest em { font-style: normal; font-size: .85rem; color: var(--dg-muted); }
.dg-ssuggest > svg { width: 18px; height: 18px; color: var(--dg-primary); flex: none; }
.dg-sresults { padding-top: 1.25rem; padding-bottom: 2rem; }
@media (max-width: 991.98px) {
  .dg-ssearch { grid-template-columns: 1fr 1fr; }
  .dg-ssearch__q { grid-column: 1 / -1; }
  .dg-ssearch .dg-btn { grid-column: 1 / -1; }
}
@media (max-width: 767.98px) {
  .dg-searchpage .dg-ssearch { margin-top: 0; }
  .dg-searchpage .dg-ssearch .dg-btn { display: none; }
  .dg-searchpage .dg-ssearch .form-select, .dg-searchpage .dg-ssearch .dg-inputgroup { min-height: 46px; }
  .dg-searchpage .dg-results__bar { top: calc(var(--dg-header-h) + 62px); }
  .dg-searchpage .dg-results__count { display: block; flex: 1; min-width: 0; margin: 0; font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
.dg-empty .dg-btn svg { width: 18px; height: 18px; margin: 0; color: currentColor; }

/* ==========================================================================
   Categories page (/categories)
   ========================================================================== */
.dg-catdir-wrap { padding-top: 1.5rem; padding-bottom: 2.5rem; }
.dg-catdir__group { scroll-margin-top: calc(var(--dg-header-h) + 1rem); }
.dg-catdir__group + .dg-catdir__group { margin-top: 1.75rem; }
.dg-catdir { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.dg-catdir__card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); box-shadow: var(--dg-shadow-sm, 0 1px 2px rgba(20, 19, 43, .05)); transition: border-color var(--dg-fast) var(--dg-ease), box-shadow var(--dg-fast) var(--dg-ease); }
.dg-catdir__card:hover { border-color: var(--dg-primary); box-shadow: 0 10px 24px rgba(39, 34, 98, .08); }
.dg-catdir__head { display: flex; align-items: center; gap: .85rem; padding: 1.1rem 1.1rem .85rem; color: var(--dg-text); text-decoration: none; }
.dg-catdir__head:hover { color: var(--dg-text); }
.dg-catdir__head .dg-icon-tile { width: 48px; height: 48px; border-radius: 12px; flex: none; }
.dg-catdir__head .dg-icon-tile svg { width: 24px; height: 24px; }
.dg-catdir__title { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dg-catdir__title h3 { font-size: 1.05rem; margin: 0; }
.dg-catdir__title span { font-size: .84rem; color: var(--dg-muted); }
.dg-catdir__count { display: flex; flex-direction: column; align-items: flex-end; font-size: .72rem; color: var(--dg-muted); line-height: 1.1; }
.dg-catdir__count strong { font-family: var(--dg-font-head); font-size: 1.35rem; color: var(--dg-primary); }
.dg-catdir__peek { list-style: none; margin: 0 1.1rem; padding: .7rem 0; border-top: 1px solid var(--dg-border); display: grid; gap: .35rem; flex: 1; }
.dg-catdir__peek a { display: block; font-size: .88rem; color: var(--dg-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dg-catdir__peek a::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--dg-gold); margin-right: .5rem; vertical-align: middle; }
.dg-catdir__peek a:hover { color: var(--dg-primary); }
.dg-catdir__foot { display: flex; align-items: center; gap: .6rem; padding: .75rem 1.1rem; border-top: 1px solid var(--dg-border); background: var(--dg-bg); border-radius: 0 0 var(--dg-r-lg) var(--dg-r-lg); }
.dg-catdir__foot .dg-link { font-size: .88rem; }
.dg-catdir__small { font-size: .72rem; font-weight: 700; color: var(--dg-gold-700); background: rgba(210, 172, 44, .14); border-radius: var(--dg-r-pill); padding: .15rem .55rem; }
.dg-catdir__add { margin-left: auto; display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; font-weight: 600; color: var(--dg-muted); }
.dg-catdir__add svg { width: 14px; height: 14px; }
.dg-catdir__add:hover { color: var(--dg-primary); }
.dg-catdir-help { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.dg-catdir-help__item { display: flex; align-items: flex-start; gap: .8rem; flex-wrap: wrap; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1rem 1.1rem; }
.dg-catdir-help__item > div { flex: 1; min-width: 160px; }
.dg-catdir-help__item p { margin: .15rem 0 0; font-size: .86rem; color: var(--dg-muted); }
.dg-catdir-help__item p a { font-weight: 700; color: var(--dg-text); }
.dg-catdir-help__item--red { border-color: rgba(200, 40, 40, .25); }
.dg-catdir-help__item .dg-btn { align-self: center; }
@media (max-width: 991.98px) {
  .dg-catdir { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dg-catdir-help { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .dg-catdir-wrap { padding-top: 1rem; }
  .dg-catdir { grid-template-columns: 1fr; gap: .75rem; }
  .dg-catdir__head { padding: .9rem .95rem .7rem; }
  .dg-catdir__peek { margin: 0 .95rem; }
  .dg-catdir__foot { padding: .65rem .95rem; }
  .dg-catdirpage .dg-subcats { display: none; }
}
.dg-catdir__peek { align-content: start; }
.dg-catdir__foot { white-space: nowrap; }

/* ==========================================================================
   Contact page (/contact, /report)
   ========================================================================== */
.dg-qcontacts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: 1.25rem; }
.dg-qcontact { display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); background: #fff; color: var(--dg-text); text-decoration: none; transition: border-color var(--dg-fast) var(--dg-ease); }
.dg-qcontact:hover { border-color: var(--dg-primary); color: var(--dg-text); }
.dg-qcontact .dg-icon-tile { flex: none; }
.dg-qcontact > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.dg-qcontact small { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--dg-muted); font-weight: 700; }
.dg-qcontact strong { font-family: var(--dg-font-head); font-size: 1rem; overflow-wrap: anywhere; }
.dg-qcontact em { font-style: normal; font-size: .8rem; color: var(--dg-muted); }
.dg-qcontact > svg { width: 16px; height: 16px; color: var(--dg-primary); flex: none; }
.dg-qcontact--wa .dg-icon-tile { background: #e3f5ea; color: #1b7f43; }
.dg-contact-wrap { padding-top: 1.5rem; padding-bottom: 2.5rem; }
.dg-contact-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.dg-contact-grid .dg-dblock h2 { font-size: 1.15rem; display: flex; align-items: center; gap: .5rem; }
.dg-contact-grid .dg-dblock h2 svg { width: 20px; height: 20px; }
.dg-cform .dg-field { margin-bottom: 1rem; }
.dg-cform .dg-btn--lg svg { width: 18px; height: 18px; }
.dg-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dg-helplist { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.dg-helplist a, .dg-helplist button { width: 100%; display: flex; align-items: center; gap: .75rem; padding: .7rem .8rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r); background: #fff; color: var(--dg-text); text-align: left; font: inherit; cursor: pointer; text-decoration: none; }
.dg-helplist a:hover, .dg-helplist button:hover { border-color: var(--dg-primary); color: var(--dg-text); }
.dg-helplist svg { width: 20px; height: 20px; color: var(--dg-primary); flex: none; }
.dg-helplist span { display: flex; flex-direction: column; min-width: 0; }
.dg-helplist strong { font-size: .92rem; }
.dg-helplist small { font-size: .8rem; color: var(--dg-muted); }
.dg-dl--tight { grid-template-columns: 70px 1fr; }
.dg-dl--tight dt, .dg-dl--tight dd { padding: .5rem 0; }
.dg-dblock--red { border-color: rgba(200, 40, 40, .25); }
.dg-dblock--red h2 svg { color: #c62828; }
.dg-dblock--red a { color: var(--dg-text); }
.dg-contact-faq { margin-top: 1rem; }
.dg-contact-faq h2 { font-size: 1.3rem; }
@media (max-width: 991.98px) {
  .dg-contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .dg-contactpage .dg-cathead .dg-crumbs { display: none; }
  .dg-contactpage .dg-cathead__row { display: block; } /* Step 20: stays visually hidden (rule above), still read by screen readers */
  .dg-qcontacts { grid-template-columns: 1fr; margin-top: 0; gap: .5rem; }
  .dg-qcontact { padding: .7rem .85rem; }
  .dg-contact-wrap { padding-top: 1rem; }
  .dg-contactpage .dg-dblock { padding: 1.1rem 1rem; }
}
.dg-contact-grid .dg-dblock h2 { justify-content: flex-start; }

/* ==========================================================================
   About page (/about)
   ========================================================================== */
.dg-ahero { background: #fff; border-bottom: 1px solid var(--dg-border); padding: 1.5rem 0 2.5rem; }
.dg-ahero__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 2.5rem; align-items: center; margin-top: 1.5rem; }
.dg-ahero h1 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); font-weight: 800; letter-spacing: -.03em; margin: .4rem 0 .8rem; }
.dg-ahero__lead { font-size: 1.08rem; color: var(--dg-text-2); max-width: 560px; margin-bottom: 1.4rem; }
.dg-astats { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.dg-astat { background: var(--dg-bg); border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.1rem 1.15rem; display: flex; flex-direction: column; }
.dg-astat strong { font-family: var(--dg-font-head); font-size: 2rem; font-weight: 800; color: var(--dg-primary); line-height: 1.1; }
.dg-astat span { font-weight: 600; color: var(--dg-text); }
.dg-astat small { color: var(--dg-muted); font-size: .8rem; margin-top: .15rem; }
.dg-asources { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: 1rem; }
.dg-asources li { display: flex; gap: .9rem; }
.dg-asources li > span { width: 32px; height: 32px; border-radius: 50%; background: var(--dg-primary); color: #fff; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.dg-asources p { margin: .15rem 0 0; color: var(--dg-muted); font-size: .92rem; }
.dg-alabels { grid-template-columns: 140px 1fr; }
.dg-alabels dt { display: flex; align-items: flex-start; }
.dg-alabels .dg-badge svg { width: 12px; height: 12px; }
.dg-badge--soft { background: var(--dg-gold-50); color: var(--dg-gold-700); }
.dg-xlist { grid-template-columns: 1fr; }
.dg-x { width: 20px; height: 20px; border-radius: 50%; background: #fdecec; color: #c62828; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; line-height: 1; }
.dg-astory__img { border-radius: var(--dg-r-lg); overflow: hidden; aspect-ratio: 4 / 3; }
.dg-astory__img img { width: 100%; height: 100%; object-fit: cover; }
.dg-acta { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; flex-wrap: wrap; background: var(--dg-primary); color: #fff; border-radius: var(--dg-r-lg); padding: 1.6rem 1.8rem; }
.dg-acta h2 { color: #fff; font-size: 1.35rem; margin: 0 0 .2rem; }
.dg-acta p { margin: 0; color: rgba(255, 255, 255, .78); }
@media (max-width: 991.98px) {
  .dg-ahero__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}
@media (max-width: 767.98px) {
  .dg-ahero { padding: 1rem 0 1.5rem; }
  .dg-ahero .dg-crumbs { display: none; }
  .dg-ahero__grid { margin-top: 0; }
  .dg-astat { padding: .85rem; }
  .dg-astat strong { font-size: 1.6rem; }
  .dg-alabels { grid-template-columns: 1fr; }
  .dg-alabels dt { border-bottom: 0; padding-bottom: 0; }
  .dg-acta { padding: 1.25rem; }
}

/* ==========================================================================
   Legal pages (/privacy, /terms)
   ========================================================================== */
.dg-legal__tabs { display: inline-flex; gap: .25rem; margin-top: 1.1rem; padding: .25rem; background: var(--dg-bg); border: 1px solid var(--dg-border); border-radius: var(--dg-r-pill); }
.dg-legal__tabs a { padding: .4rem 1rem; border-radius: var(--dg-r-pill); font-size: .86rem; font-weight: 600; color: var(--dg-text-2); }
.dg-legal__tabs a[aria-current="page"] { background: var(--dg-primary); color: #fff; }
div.dg-legal { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 2rem; align-items: start; padding: 1.75rem 0 3rem; }
.dg-legal__toc { position: sticky; top: calc(var(--dg-header-h) + 1rem); }
.dg-legal__toc details { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: .9rem 1rem; }
.dg-legal__toc summary { font-weight: 700; font-family: var(--dg-font-head); cursor: pointer; list-style: none; }
.dg-legal__toc summary::-webkit-details-marker { display: none; }
.dg-legal__toc ol { list-style: none; margin: .6rem 0 0; padding: 0; display: grid; gap: .1rem; counter-reset: toc; }
.dg-legal__toc li { counter-increment: toc; }
.dg-legal__toc a { display: block; padding: .35rem .6rem; border-radius: var(--dg-r); font-size: .86rem; color: var(--dg-text-2); border-left: 2px solid transparent; }
.dg-legal__toc a::before { content: counter(toc) ". "; color: var(--dg-muted); }
.dg-legal__toc a:hover { background: var(--dg-bg); color: var(--dg-primary); }
.dg-legal__toc a.is-active { background: var(--dg-primary-50); color: var(--dg-primary); border-left-color: var(--dg-primary); font-weight: 600; }
.dg-legal__body { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.75rem 2rem; max-width: 820px; }
.dg-legal__sec { scroll-margin-top: calc(var(--dg-header-h) + 1rem); padding: 1.25rem 0; border-top: 1px solid var(--dg-border); }
.dg-legal__sec:first-of-type { border-top: 0; padding-top: .25rem; }
.dg-legal__sec h2 { font-size: 1.2rem; display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; }
.dg-legal__sec h2 span { width: 28px; height: 28px; border-radius: 50%; background: var(--dg-primary-50); color: var(--dg-primary); font-size: .85rem; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.dg-legal__sec h3 { font-size: 1rem; margin: 1rem 0 .4rem; }
.dg-legal__sec p, .dg-legal__sec li { color: var(--dg-text-2); font-size: .95rem; line-height: 1.7; }
.dg-legal__sec ul { padding-left: 1.2rem; margin-bottom: .5rem; }
.dg-legal__sec li { margin-bottom: .35rem; }
.dg-legal__summary { list-style: none; padding: 0 !important; display: grid; gap: .5rem; }
.dg-legal__summary li { background: var(--dg-bg); border-radius: var(--dg-r); padding: .6rem .85rem; margin: 0 !important; }
.dg-legal__end { border-top: 1px solid var(--dg-border); padding-top: 1rem; color: var(--dg-muted); font-size: .9rem; }
.dg-legal__end p { margin: 0; }
@media (max-width: 991.98px) {
  div.dg-legal { grid-template-columns: 1fr; gap: 1rem; padding-top: 1rem; }
  .dg-legal__toc { position: sticky; top: calc(var(--dg-header-h) + 62px); z-index: 700; }
  .dg-legal__toc details { box-shadow: var(--dg-shadow-sm); }
  .dg-legal__toc summary { display: flex; justify-content: space-between; align-items: center; }
  .dg-legal__toc summary::after { content: "▾"; color: var(--dg-muted); }
  .dg-legal__toc details[open] summary::after { content: "▴"; }
  .dg-legal__toc ol { max-height: 55vh; overflow-y: auto; }
}
@media (max-width: 767.98px) {
  .dg-legalpage .dg-cathead { padding: .75rem 0; }
  .dg-legal__tabs { margin-top: 0; display: flex; }
  .dg-legal__tabs a { flex: 1; text-align: center; }
  .dg-legal__body { padding: 1.1rem 1rem; }
  .dg-legal__sec h2 { font-size: 1.08rem; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .dg-legal__toc { top: calc(var(--dg-header-h) + .5rem); }
}
@media (max-width: 767.98px) {
  .dg-legalpage .dg-cathead__row { display: flex; margin: 0 0 .75rem; position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; } /* shown on legal pages (Step 20 keeps it as before) */
  .dg-legalpage .dg-cathead__row .dg-icon-tile { display: none; }
  .dg-legalpage .dg-cathead h1 { font-size: 1.4rem; }
}
div.dg-legal, .dg-legal__toc, .dg-legal__body { text-align: left; }

/* ==========================================================================
   404 + HTML sitemap
   ========================================================================== */
.dg-nf { padding: 3rem 0 4rem; }
.dg-nf__card { max-width: 760px; margin: 0 auto; text-align: center; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 2.5rem 2rem; }
.dg-nf__code { font-family: var(--dg-font-head); font-size: clamp(4rem, 12vw, 7rem); font-weight: 800; line-height: 1; letter-spacing: -.04em; background: linear-gradient(135deg, var(--dg-primary), #4b45a6 60%, var(--dg-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.dg-nf h1 { font-size: clamp(1.4rem, 3vw, 1.9rem); margin: .6rem 0 .4rem; }
.dg-nf p { color: var(--dg-muted); overflow-wrap: anywhere; }
.dg-nf__search { display: grid; grid-template-columns: 1fr auto; gap: .5rem; max-width: 560px; margin: 1.25rem auto; text-align: left; }
.dg-nf__search .dg-inputgroup, .dg-nf__search .dg-btn { min-height: 50px; }
.dg-nf__search .dg-inputgroup__pre { background: #fff; border-right: 0; color: var(--dg-muted); }
.dg-nf__search .dg-inputgroup__pre svg { width: 18px; height: 18px; }
.dg-nf__cats { justify-content: center; margin: 1.25rem 0; }
.dg-nf__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; border-top: 1px solid var(--dg-border); padding-top: 1.25rem; }
.dg-nf__links svg { width: 16px; height: 16px; }
.dg-smap { padding-block: 1.5rem 3rem; }
.dg-smap__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.dg-smap h2.dg-cats-group { margin-top: .5rem; }
.dg-smap .dg-dblock h2 { font-size: 1.05rem; }
.dg-smap ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.dg-smap ul a { color: var(--dg-text-2); font-size: .92rem; }
.dg-smap ul a:hover { color: var(--dg-primary); }
.dg-smap__cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; align-items: start; }
.dg-smap__cat { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: .8rem .9rem; }
.dg-smap__cathead { display: flex; align-items: center; gap: .6rem; color: var(--dg-text); font-weight: 700; }
.dg-smap__cathead .dg-icon-tile { width: 34px; height: 34px; border-radius: 10px; }
.dg-smap__cathead .dg-icon-tile svg { width: 18px; height: 18px; }
.dg-smap__cathead > span:not(.dg-icon-tile) { flex: 1; }
.dg-smap__cathead .dg-icon-tile { flex: none; }
.dg-smap__cathead em { font-style: normal; font-size: .78rem; color: var(--dg-muted); background: var(--dg-bg); border-radius: var(--dg-r-pill); padding: .1rem .5rem; }
.dg-smap__cat details { margin-top: .5rem; }
.dg-smap__cat summary { font-size: .84rem; color: var(--dg-primary); font-weight: 600; cursor: pointer; }
.dg-smap__cat details ul { margin-top: .5rem; padding-left: .4rem; border-left: 2px solid var(--dg-border); }
.dg-smap__cat details ul a { font-size: .86rem; padding-left: .5rem; display: block; }
@media (max-width: 991.98px) {
  .dg-smap__cols, .dg-smap__cats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767.98px) {
  .dg-nf { padding: 1.25rem 0 2.5rem; }
  .dg-nf__card { padding: 1.75rem 1.1rem; }
  .dg-nf__search { grid-template-columns: 1fr; }
  .dg-smap { padding-top: 1rem; }
  .dg-smap__cols, .dg-smap__cats { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Guides (/guides, /guides/{slug})
   ========================================================================== */
.dg-guides { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.dg-guides-wrap { padding-block: 1.5rem 3rem; }
.dg-guide__body .dg-link { display: inline-flex; font-size: .88rem; }
.dg-ghead { background: #fff; border-bottom: 1px solid var(--dg-border); padding: 1.5rem 0 2rem; }
.dg-ghead .dg-kicker { margin-top: 1.25rem; display: inline-block; }
.dg-ghead h1 { font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 800; letter-spacing: -.03em; max-width: 860px; margin: .35rem 0 .7rem; }
.dg-ghead__lead { font-size: 1.08rem; color: var(--dg-text-2); max-width: 760px; }
.dg-ghead__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .85rem; color: var(--dg-muted); margin: .9rem 0 1.4rem; }
.dg-ghead__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.dg-ghead__meta svg { width: 16px; height: 16px; }
.dg-ghead__img { aspect-ratio: 21 / 8; border-radius: var(--dg-r-lg); overflow: hidden; }
.dg-ghead__img img { width: 100%; height: 100%; object-fit: cover; }
.dg-guide-sec { scroll-margin-top: calc(var(--dg-header-h) + 1rem); padding: 1.25rem 0; border-top: 1px solid var(--dg-border); }
.dg-guide-sec:first-child { border-top: 0; padding-top: 0; }
.dg-guide-sec h2 { font-size: 1.3rem; margin-bottom: .7rem; }
.dg-guide-sec p, .dg-guide-sec li { color: var(--dg-text-2); font-size: 1rem; line-height: 1.75; }
.dg-guide-sec ul { padding-left: 1.2rem; }
.dg-guide-sec li { margin-bottom: .35rem; }
.dg-guide-sec .dg-note { margin: 1rem 0; }
.dg-cite { font-size: .7em; margin-left: .1rem; }
.dg-cite a { color: var(--dg-gold-700); font-weight: 700; text-decoration: none; }
.dg-guide-sources ol { padding-left: 1.2rem; }
.dg-guide-sources li { font-size: .88rem; scroll-margin-top: calc(var(--dg-header-h) + 1rem); }
.dg-guide-sources li:target { background: var(--dg-gold-50); border-radius: 6px; }
.dg-table-wrap { overflow-x: auto; margin: .75rem 0 1rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r); }
.dg-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.dg-table th, .dg-table td { padding: .7rem 1rem; text-align: left; border-bottom: 1px solid var(--dg-border); }
.dg-table thead th { background: var(--dg-bg); font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--dg-muted); }
.dg-table tbody tr:last-child td { border-bottom: 0; }
.dg-table td:last-child { font-weight: 700; color: var(--dg-primary); white-space: nowrap; }
@media (max-width: 991.98px) {
  .dg-guides { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767.98px) {
  .dg-guides { grid-template-columns: 1fr; gap: .85rem; }
  .dg-guides-wrap { padding-top: 1rem; }
  .dg-ghead { padding: 1rem 0 1.25rem; }
  .dg-ghead .dg-crumbs { display: none; }
  .dg-ghead .dg-kicker { margin-top: 0; }
  .dg-ghead__img { aspect-ratio: 16 / 9; }
  .dg-guide-sec p, .dg-guide-sec li { font-size: .96rem; }
}
.dg-catdir-help--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 991.98px) { .dg-catdir-help--2 { grid-template-columns: 1fr; } }

/* ==========================================================================
   Area pages (/area/{slug})
   ========================================================================== */
.dg-areahead__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 2rem; align-items: center; margin-top: 1rem; }
.dg-areahead h1 { margin-top: .35rem; }
.dg-areahead__lead { font-size: 1.02rem; color: var(--dg-text-2); margin: .4rem 0 0; }
.dg-areahead__img { aspect-ratio: 16 / 9; border-radius: var(--dg-r-lg); overflow: hidden; }
.dg-areahead__img img { width: 100%; height: 100%; object-fit: cover; }
.dg-areawrap { padding-block: 1.5rem 2.5rem; }
.dg-areasec { scroll-margin-top: calc(var(--dg-header-h) + 1rem); margin-bottom: 2rem; }
.dg-areasec__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.dg-areasec__head h2 { display: flex; align-items: center; gap: .6rem; font-size: 1.2rem; margin: 0; }
.dg-areasec__head h2 .dg-icon-tile { width: 36px; height: 36px; border-radius: 10px; }
.dg-areasec__head h2 .dg-icon-tile svg { width: 18px; height: 18px; }
.dg-areasec__head h2 > span:last-child { font-size: .8rem; font-weight: 700; color: var(--dg-muted); background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-pill); padding: .05rem .55rem; }
.dg-areasec__head .dg-link { font-size: .88rem; white-space: nowrap; }
@media (max-width: 991.98px) {
  .dg-areahead__grid { grid-template-columns: 1fr; gap: 1rem; }
  .dg-areahead__img { aspect-ratio: 21 / 9; }
}
@media (max-width: 767.98px) {
  .dg-areapage .dg-areahead .dg-crumbs { display: none; }
  .dg-areahead__grid { margin-top: 0; }
  .dg-areahead__img { display: none; }
  .dg-areawrap { padding-top: 1rem; }
  .dg-areasec__head h2 { font-size: 1.05rem; }
}
@media (max-width: 767.98px) {
  .dg-arealist .dg-listing { flex-direction: row; }
  .dg-arealist .dg-listing__media { width: 112px; min-height: 0; aspect-ratio: auto; flex: none; }
  .dg-arealist .dg-listing__tags, .dg-arealist .dg-stars, .dg-arealist .dg-listing__badges { display: none; }
  .dg-arealist .dg-listing__body { padding: .75rem; gap: .3rem; }
  .dg-arealist .dg-listing__foot { grid-template-columns: 1fr 1fr; padding-top: .55rem; }
  .dg-arealist .dg-listing__foot .dg-btn--icon { display: none; }
}

/* ==========================================================================
   Plans page (/plans)
   ========================================================================== */
.dg-planshead { padding-bottom: 2rem; }
.dg-planshead .dg-kicker { display: inline-block; margin-top: 1rem; }
.dg-planshead h1 { font-size: clamp(1.8rem, 3.6vw, 2.6rem); margin: .35rem 0 .6rem; }
.dg-planshead__lead { max-width: 640px; margin: 0 auto .75rem !important; font-size: 1.02rem; color: var(--dg-text-2) !important; }
.dg-planswrap { padding-block: 2rem 3rem; }
.dg-plan.is-picked { outline: 3px solid var(--dg-gold); outline-offset: 2px; }
.dg-plan__price .dg-required { font-size: .7rem; vertical-align: middle; }
.dg-plans__points { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem; }
.dg-plans__points li { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; color: var(--dg-text-2); }
.dg-plans__points svg { width: 18px; height: 18px; color: var(--dg-success); }
.dg-cmp-wrap h2, .dg-plans-grid h2 { font-size: 1.2rem; }
.dg-cmp th[scope="row"] { font-weight: 500; color: var(--dg-text-2); }
.dg-cmp thead th:not(:first-child), .dg-cmp td { text-align: center; }
.dg-cmp td:last-child { font-weight: 400; color: inherit; white-space: normal; }
.dg-cmp td { font-size: .9rem; }
.dg-cmp .dg-cmp__group th { background: var(--dg-bg); font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--dg-muted); font-weight: 700; }
.dg-cmp .dg-cmp__price td, .dg-cmp .dg-cmp__price th { font-weight: 700; }
.dg-cmp .is-picked { background: rgba(210, 172, 44, .1); }
.dg-cmp thead th.is-picked { color: var(--dg-gold-700); }
.dg-tick { display: inline-flex; justify-content: center; vertical-align: middle; }
.dg-tick svg { width: 20px; height: 20px; color: var(--dg-success); }
.dg-cmp-no { color: var(--dg-border-strong); font-weight: 700; }
.dg-plans-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.dg-plans-grid .dg-btn--lg svg { width: 18px; height: 18px; }
@media (max-width: 991.98px) {
  .dg-plans-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .dg-planspage .dg-cathead .dg-crumbs { display: none; }
  .dg-planswrap { padding-top: 1.25rem; }
  .dg-plans__points { justify-content: flex-start; flex-direction: column; }
  .dg-cmp th, .dg-cmp td { padding: .55rem .5rem; font-size: .82rem; }
  .dg-cmp th[scope="row"] { min-width: 130px; }
  .dg-planspage .dg-dblock { padding: 1.1rem 1rem; }
}
@media (min-width: 768px) { .dg-cmp { table-layout: fixed; } .dg-cmp thead th:first-child { width: 40%; } }
/* Plans grid adapts to however many plans are active */
.dg-plans--n1 { grid-template-columns: minmax(0, 420px); justify-content: center; }
.dg-plans--n2 { grid-template-columns: repeat(2, minmax(0, 380px)); justify-content: center; }
.dg-plans--n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dg-plans--n5, .dg-plans--n6 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.dg-plan__price small { font-size: .85rem; font-weight: 600; color: var(--dg-muted); letter-spacing: 0; }
.dg-plans__fine { text-align: center; font-size: .82rem; color: var(--dg-muted); margin: 1rem 0 0; }
.dg-ordersum { border: 1px solid var(--dg-border); border-radius: var(--dg-r); background: var(--dg-bg); padding: .75rem 1rem; margin: .5rem 0 1rem; display: grid; gap: .35rem; }
.dg-ordersum > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .92rem; }
.dg-ordersum span { color: var(--dg-muted); }
.dg-ordersum__total { border-top: 1px dashed var(--dg-border-strong); padding-top: .45rem; margin-top: .15rem; }
.dg-ordersum__total strong { font-family: var(--dg-font-head); font-size: 1.25rem; color: var(--dg-primary); }
.dg-paynote { display: flex; align-items: center; gap: .4rem; justify-content: center; font-size: .8rem; color: var(--dg-muted); margin: .65rem 0 0; text-align: center; }
.dg-paynote svg { width: 14px; height: 14px; color: var(--dg-success); flex: none; }
.dg-btn.is-loading { opacity: .75; pointer-events: none; }
.dg-btn.is-loading svg { animation: dg-spin 1s linear infinite; }
@keyframes dg-spin { to { transform: rotate(360deg); } }
@media (max-width: 1199.98px) { .dg-plans--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .dg-plans--n1, .dg-plans--n2, .dg-plans--n4, .dg-plans--n5, .dg-plans--n6 { grid-template-columns: 1fr; } }

/* ==========================================================================
   Admin: manage plans (/admin/plans)
   ========================================================================== */
.dg-adminpage { background: var(--dg-bg); }
.dg-dcard { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.25rem; }
.dg-ap__tablecard { padding: 0; overflow: hidden; }
.dg-ap__tablecard .dg-table-wrap { margin: 0; border: 0; border-radius: 0; }
.dg-ap__table td, .dg-ap__table th { vertical-align: middle; }
.dg-ap__table td:last-child { font-weight: 400; color: inherit; }
.dg-ap__order { width: 44px; white-space: nowrap; }
.dg-ap__mv { display: block; border: 0; background: none; color: var(--dg-muted); font-size: .65rem; line-height: 1; padding: .2rem .35rem; cursor: pointer; border-radius: 4px; }
.dg-ap__mv:hover { background: var(--dg-bg); color: var(--dg-primary); }
.dg-ap__mv:disabled { opacity: .3; cursor: default; }
.dg-ap__plan strong { display: block; font-family: var(--dg-font-head); }
.dg-ap__plan small { color: var(--dg-muted); font-size: .78rem; }
.dg-ap__plan [data-col="tags"] { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; }
.dg-ap__plan [data-col="tags"] .dg-badge svg { width: 11px; height: 11px; }
.dg-ap__actions { white-space: nowrap; text-align: right !important; }
.dg-ap__actions .dg-btn + .dg-btn { margin-left: .3rem; }
.dg-ap__del:hover { border-color: #c62828; color: #c62828; }
.dg-ap__table tr.is-off td { opacity: .55; }
.dg-ap__table tr.is-off td:nth-child(6) { opacity: 1; }
.dg-ap__table tr.is-new { animation: dg-flash 1.6s ease; }
@keyframes dg-flash { from { background: rgba(210, 172, 44, .25); } to { background: transparent; } }
.dg-ap__sidenote { padding: 0 1rem 1rem; margin: 0; font-size: .75rem; }
.dg-ap__editor { margin-top: 1.5rem; scroll-margin-top: calc(var(--dg-header-h) + 1rem); }
.dg-ap__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.dg-ap__preview { position: sticky; top: calc(var(--dg-header-h) + 1rem); }
.dg-ap__preview .dg-plan { margin-top: .5rem; }
.dg-ap__preview .dg-plan [data-pv="cta"] { pointer-events: none; }
.dg-ap__feats { display: grid; gap: .4rem; }
.dg-ap__feat { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 170px); align-items: center; gap: .6rem; padding: .45rem .6rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r); }
.dg-ap__feat label { font-size: .9rem; display: flex; flex-direction: column; cursor: pointer; }
.dg-ap__feat label small { font-size: .72rem; color: var(--dg-muted); }
.dg-ap__feat .form-check-input { margin: 0; }
@media (max-width: 1199.98px) {
  .dg-ap__grid { grid-template-columns: minmax(0, 1fr); }
  .dg-ap__preview { position: static; order: -1; max-width: 360px; }
}
@media (max-width: 991.98px) {
  .dg-adminpage .dg-dash { grid-template-columns: minmax(0, 1fr); }
  .dg-adminpage .dg-dside { display: none; }
}
@media (max-width: 767.98px) {
  .dg-adminpage .dg-dash { padding-top: 1rem; }
  .dg-adminpage .dg-dpanel__head .dg-btn { display: none; }
  /* table → stacked cards */
  .dg-ap__table thead { display: none; }
  .dg-ap__table, .dg-ap__table tbody, .dg-ap__table tr, .dg-ap__table td { display: block; width: 100%; }
  .dg-ap__table tr { position: relative; padding: .85rem 1rem .85rem 2.6rem; border-bottom: 1px solid var(--dg-border); }
  .dg-ap__table td { border: 0; padding: .15rem 0; text-align: left !important; }
  .dg-ap__table td[data-label] { display: flex; justify-content: space-between; font-size: .88rem; }
  .dg-ap__table td[data-label]::before { content: attr(data-label); color: var(--dg-muted); }
  .dg-ap__order { position: absolute; left: .4rem; top: .8rem; width: auto; }
  .dg-ap__actions { padding-top: .6rem !important; display: flex !important; gap: .35rem; }
  .dg-ap__actions .dg-btn { flex: 1; }
  .dg-ap__actions .dg-btn + .dg-btn { margin-left: 0; }
  .dg-ap__feat { grid-template-columns: auto minmax(0, 1fr); }
  .dg-ap__feat input[data-feat-note] { grid-column: 2; }
  .dg-ap__preview { max-width: none; }
}

/* Business dashboard: current plan + payments */
.dg-plancur { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 1rem 1.5rem; align-items: center; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.dg-plancur__main { display: flex; align-items: center; gap: .8rem; }
.dg-plancur__main > div { display: flex; flex-direction: column; }
.dg-plancur__main small { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--dg-muted); font-weight: 700; }
.dg-plancur__main strong { font-family: var(--dg-font-head); font-size: 1.15rem; display: flex; align-items: center; gap: .5rem; }
.dg-plancur__main span:not(.dg-badge):not(.dg-icon-tile) { font-size: .85rem; color: var(--dg-muted); }
.dg-plancur__track { height: 8px; border-radius: 99px; background: var(--dg-bg); overflow: hidden; border: 1px solid var(--dg-border); }
.dg-plancur__track span { display: block; height: 100%; background: linear-gradient(90deg, var(--dg-gold), #e3c35a); }
.dg-plancur__bar small { display: block; margin-top: .35rem; font-size: .8rem; color: var(--dg-muted); }
.dg-plancur .dg-btn svg { width: 16px; height: 16px; }
.dg-paytable__empty { text-align: center !important; color: var(--dg-muted) !important; font-weight: 400 !important; padding: 1.25rem !important; }
@media (max-width: 767.98px) {
  .dg-plancur { grid-template-columns: 1fr; }
  .dg-plancur .dg-btn { justify-self: start; }
}
/* Add listing: plan cards */
.dg-plancards { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin-bottom: .5rem; }
.dg-plancard label { gap: .3rem; padding-right: 2.4rem; }
.dg-plancard label strong { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.dg-plancard__price { font-family: var(--dg-font-head); font-size: 1.3rem; color: var(--dg-primary); }
.dg-plancard__price small { font-size: .78rem; color: var(--dg-muted); font-weight: 600; }
legend.dg-catfields__title { float: none; width: 100%; font-size: .95rem; }

/* Payment result (/payment) */
.dg-pay { padding: 3rem 0 4rem; }
.dg-pay__card { max-width: 620px; margin: 0 auto; text-align: center; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 2.25rem 2rem; }
.dg-pay__icon { width: 64px; height: 64px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.dg-pay__icon svg { width: 30px; height: 30px; }
.dg-pay__icon--ok { background: var(--dg-success-50); color: var(--dg-success); }
.dg-pay__icon--err { background: #fdecec; color: #c62828; }
.dg-pay__title { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: .4rem; }
.dg-pay__lead { color: var(--dg-text-2); }
.dg-pay__dl { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: 1.25rem 0; text-align: left; }
.dg-pay__dl > div { background: var(--dg-bg); border-radius: var(--dg-r); padding: .65rem .85rem; }
.dg-pay__dl dt { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--dg-muted); font-weight: 700; }
.dg-pay__dl dd { margin: .1rem 0 0; font-weight: 700; font-family: var(--dg-font-head); overflow-wrap: anywhere; }
.dg-pay__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: 1.25rem; }
.dg-pay__actions .dg-btn svg { width: 16px; height: 16px; }
.dg-pay__foot { display: flex; align-items: center; justify-content: center; gap: .4rem; font-size: .82rem; color: var(--dg-muted); margin-top: 1.25rem; }
.dg-pay__foot svg { width: 14px; height: 14px; color: var(--dg-success); }
@media (max-width: 767.98px) {
  .dg-pay { padding: 1.25rem 0 2.5rem; }
  .dg-pay__card { padding: 1.5rem 1.1rem; }
  .dg-pay__dl { grid-template-columns: 1fr; }
  .dg-pay__actions .dg-btn { flex: 1 1 100%; }
}
.dg-ap__grid > * { min-width: 0; }
.dg-btn--danger { color: var(--dg-danger); border-color: #f1c4c4; }
.dg-btn--danger:hover { background: var(--dg-danger); border-color: var(--dg-danger); color: #fff; }
.dg-btn--danger-solid { background: var(--dg-danger); border-color: var(--dg-danger); color: #fff; }
.dg-btn--danger-solid:hover { background: #a61d1d; border-color: #a61d1d; color: #fff; }
.dg-modal .modal-header, .dg-modal .modal-footer { border-color: var(--dg-border); }
.dg-modal .modal-title { font-family: var(--dg-font-head); }
.dg-authcard__icon { width: 48px; height: 48px; border-radius: 12px; margin-bottom: .9rem; }
.dg-authcard__icon svg { width: 24px; height: 24px; }

/* Business › Get verified */
.dg-vstatus { display: flex; align-items: center; gap: .85rem; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1rem 1.15rem; margin-bottom: 1rem; }
.dg-vstatus > div { display: flex; flex-direction: column; }
.dg-vstatus small { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--dg-muted); font-weight: 700; }
.dg-vstatus strong { font-family: var(--dg-font-head); font-size: 1.1rem; }
.dg-vstatus span:not(.dg-icon-tile) { font-size: .86rem; color: var(--dg-muted); }
.dg-vstatus.is-pending { border-color: var(--dg-gold); background: var(--dg-gold-50); }
.dg-vsteps { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.dg-vsteps li { display: flex; gap: .6rem; align-items: flex-start; padding: .75rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r); background: #fff; }
.dg-vsteps li > span { width: 26px; height: 26px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; background: var(--dg-bg); color: var(--dg-muted); }
.dg-vsteps li > div { display: flex; flex-direction: column; min-width: 0; }
.dg-vsteps strong { font-size: .9rem; }
.dg-vsteps small { font-size: .78rem; color: var(--dg-muted); }
.dg-vsteps li.is-done > span { background: var(--dg-success); color: #fff; }
.dg-vsteps li.is-current { border-color: var(--dg-primary); box-shadow: 0 0 0 3px rgba(39, 34, 98, .06); }
.dg-vsteps li.is-current > span { background: var(--dg-primary); color: #fff; }
.dg-vform .dg-btn svg { width: 16px; height: 16px; }
@media (max-width: 991.98px) { .dg-vsteps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .dg-vsteps { grid-template-columns: 1fr; } }

/* ==========================================================================
   Step 17 — shown only when switched on in the admin (Leads → Forms & consent)
   ========================================================================== */
.dg-cookie { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 1080; max-width: 560px; margin: 0 auto; background: #fff; color: var(--dg-text); border: 1px solid rgba(39, 34, 98, .12); border-radius: 14px; box-shadow: 0 10px 30px rgba(20, 18, 50, .18); padding: 12px 14px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: .88rem; }
.dg-cookie[hidden] { display: none; }
.dg-cookie p { margin: 0; flex: 1 1 240px; }
.dg-cookie__btns { display: flex; gap: 8px; margin-left: auto; }
@media (max-width: 991.98px) { .dg-cookie { bottom: 76px; } }
.dg-wafloat { position: fixed; right: 16px; bottom: 16px; z-index: 1070; width: 54px; height: 54px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(0, 0, 0, .2); }
.dg-wafloat svg { width: 28px; height: 28px; fill: currentColor; }
.dg-wafloat:hover, .dg-wafloat:focus-visible { color: #fff; transform: translateY(-2px); }
@media (max-width: 991.98px) { .dg-wafloat { display: none; } } /* phones already have WhatsApp in the bottom bar */
.dg-consent .form-check-label { font-size: .85rem; line-height: 1.45; }

/* ==================== Reviews (Step 17B-2b — shown only when switched on) ==================== */
.dg-ratepick { display: inline-flex; flex-direction: row-reverse; gap: .25rem; }
.dg-ratepick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dg-ratepick label { cursor: pointer; color: var(--dg-border-strong); line-height: 0; }
.dg-ratepick label svg { width: 30px; height: 30px; }
.dg-ratepick input:checked ~ label, .dg-ratepick label:hover, .dg-ratepick label:hover ~ label { color: var(--dg-gold); }
.dg-ratepick input:focus-visible + label { outline: 2px solid var(--dg-primary, #272262); outline-offset: 2px; border-radius: 4px; }
.was-validated .dg-ratepick input:invalid ~ label { color: #e5a3a3; }
.was-validated fieldset:has(.dg-ratepick input:invalid) > .invalid-feedback { display: block; }
.dg-reviews .dg-lead + .dg-lead { margin-top: .25rem; }
a.dg-stars { text-decoration: none; }

/* UPI QR payment (Google Pay, PhonePe, Paytm …) — shown only when switched on in Admin → Settings → Payments */
.dg-paymethod { border: 1px solid var(--dg-border); border-radius: var(--dg-r); background: var(--dg-bg); padding: .65rem 1rem; margin: .25rem 0 1rem; }
.dg-paymethod legend { float: none; width: auto; font-size: .92rem; margin-bottom: .35rem; }
.dg-paymethod .form-check { margin-bottom: .4rem; }
.dg-upi { border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: 1.25rem; text-align: center; }
.dg-upi__title { font-family: var(--dg-font-head); font-size: 1.15rem; color: var(--dg-primary); margin: 0 0 .4rem; }
.dg-upi__qr { width: 100%; max-width: 260px; margin: .75rem auto; background: #fff; padding: .5rem; border: 1px solid var(--dg-border); border-radius: var(--dg-r); }
.dg-upi__qr svg { display: block; width: 100%; height: auto; }
.dg-upi__app { margin: .25rem 0 .75rem; }
.dg-upi__dl { display: grid; gap: .35rem; text-align: left; border: 1px solid var(--dg-border); border-radius: var(--dg-r); background: var(--dg-bg); padding: .65rem 1rem; margin: 0 0 1rem; }
.dg-upi__dl > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .92rem; }
.dg-upi__dl dt { color: var(--dg-muted); font-weight: 400; }
.dg-upi__dl dd { margin: 0; font-weight: 600; text-align: right; word-break: break-all; }
.dg-upi__copy { border: 1px solid var(--dg-border); background: #fff; border-radius: 999px; font-size: .75rem; padding: .05rem .6rem; margin-left: .35rem; color: var(--dg-primary); }
.dg-upi .dg-cform { text-align: left; }

/* Header main menu with dropdowns (Website → Header switch): same panel design as "All categories".
   The header holds 7 menu titles, so the header search becomes a search button that opens on click, and the
   titles use slightly tighter spacing — everything stays inside the page container at every desktop width. */
.dg-mega__inner--c4 { grid-template-columns: repeat(4, 1fr) 1.1fr; }
.dg-mega__inner--c5 { grid-template-columns: repeat(5, 1fr) 1fr; }
.dg-nav--mega { flex: 0 1 auto; min-width: 0; }
.dg-nav--mega > li { flex: none; }
.dg-nav--mega .dg-nav__link { padding: 0 .55rem; }
.dg-nav--mega .dg-nav__link svg { flex: none; }
.dg-header--mega .dg-header__inner { gap: 1rem; }
.dg-header--mega .dg-hsearch { flex: 0 0 42px; max-width: 42px; min-width: 42px; margin-left: auto; }
.dg-header--mega .dg-header__actions { margin-left: 0; }
.dg-header--mega .dg-hsearch input { padding: 0; cursor: pointer; color: transparent; }
.dg-header--mega .dg-hsearch input::placeholder { color: transparent; }
.dg-header--mega .dg-hsearch:focus-within input { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: min(440px, 60vw); z-index: 5; padding: 0 1rem 0 2.6rem; color: inherit; cursor: text; box-shadow: var(--dg-shadow); }
.dg-header--mega .dg-hsearch:focus-within input::placeholder { color: var(--dg-muted); }
.dg-header--mega .dg-hsearch:focus-within svg { left: auto; right: calc(min(440px, 60vw) - 2.1rem); z-index: 6; }
.dg-header--mega .dg-hsearch svg { pointer-events: none; }
@media (max-width: 1299.98px) { .dg-nav--mega .dg-nav__link { padding: 0 .4rem; font-size: .86rem; } .dg-header--mega .dg-header__inner { gap: .6rem; } }

/* Voice search (Website → Header switch): microphone button inside search boxes; hidden where the browser lacks speech recognition */
.dg-voice { flex: none; align-self: center; width: 40px; height: 40px; margin-right: .3rem; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; color: var(--dg-primary); cursor: pointer; transition: background var(--dg-fast), color var(--dg-fast); }
.dg-voice[hidden] { display: none; }
.dg-voice:hover { background: var(--dg-primary-50); }
.dg-voice:focus-visible { outline: 2px solid var(--dg-gold); outline-offset: 2px; }
.dg-voice svg { width: 20px; height: 20px; }
.dg-voice.is-listening { background: var(--dg-danger); color: #fff; animation: dg-voice-pulse 1.2s ease-out infinite; }
.dg-search__field .dg-voice { margin-right: -.4rem; }
@keyframes dg-voice-pulse { 0% { box-shadow: 0 0 0 0 rgba(201, 59, 59, .45); } 70% { box-shadow: 0 0 0 10px rgba(201, 59, 59, 0); } 100% { box-shadow: 0 0 0 0 rgba(201, 59, 59, 0); } }
@media (prefers-reduced-motion: reduce) { .dg-voice.is-listening { animation: none; } }

/* ==================== TRAVEL WITH US (own travel packages) ==================== */
.dg-chip[aria-current="true"] { background: var(--dg-primary); border-color: var(--dg-primary); color: #fff; }
.dg-pkgresults { padding: 1.25rem 0 .5rem; }
.dg-pkgresults .dg-results__tools { margin: 0; }
.dg-pkgcard .dg-listing__media { background: var(--dg-primary-50); }
.dg-pkgcard__incl { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .55rem; font-size: .8rem; color: var(--dg-text-2); }
.dg-pkgcard__incl span { display: inline-flex; align-items: center; gap: .3rem; }
.dg-pkgcard__incl svg { width: 15px; height: 15px; color: var(--dg-success); flex: none; }
.dg-listing__foot.dg-pkgcard__foot { grid-template-columns: 1fr auto; align-items: center; }
.dg-pkgprice { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .35rem; line-height: 1.2; }
.dg-pkgprice small { font-size: .72rem; color: var(--dg-muted); }
.dg-pkgprice strong { font-family: var(--dg-font-head); font-size: 1.1rem; color: var(--dg-text); }
.dg-pkgprice .dg-pkgprice__ask { font-size: .9rem; color: var(--dg-text-2); }
.dg-pkgprice--big { padding: 1rem 1.4rem 0; }
.dg-pkgprice--big strong { font-size: 1.6rem; }
.dg-contact > .dg-pkgsmall { padding: .35rem 1.4rem 1rem; margin: 0; }
.dg-pkgsmall { font-size: .82rem; }
.dg-pkgsub { font-size: 1rem; margin: 1.25rem 0 .5rem; }
.dg-pkgincl { margin-bottom: 1rem; }
.dg-pkgincl .dg-fact2 { align-items: center; }
.dg-pkgx { margin: 0; padding-left: 1.1rem; color: var(--dg-text-2); font-size: .93rem; }
.dg-pkgx li + li { margin-top: .3rem; }
.dg-pkgdays { list-style: none; margin: 0; padding: 0; position: relative; }
.dg-pkgdays li { display: grid; grid-template-columns: 4.5rem 1fr; gap: 1rem; padding: 0 0 1.1rem; position: relative; }
.dg-pkgdays li::before { content: ""; position: absolute; left: 2.25rem; top: 1.9rem; bottom: 0; border-left: 2px dashed var(--dg-border-strong); }
.dg-pkgdays li:last-child { padding-bottom: 0; }
.dg-pkgdays li:last-child::before { display: none; }
.dg-pkgdays__n { display: inline-flex; align-items: center; justify-content: center; height: 1.9rem; border-radius: var(--dg-r-pill); background: var(--dg-primary); color: #fff; font-family: var(--dg-font-head); font-size: .78rem; font-weight: 700; position: relative; }
.dg-pkgdays h3 { font-size: 1rem; margin: .3rem 0 .3rem; }
.dg-pkgdays p { margin: 0; font-size: .93rem; color: var(--dg-text-2); }
.dg-pkghotel { border: 0; padding: 0; margin: 0 0 .9rem; }
.dg-pkghotel .form-check { margin-bottom: .25rem; font-size: .93rem; }
.dg-pkgestimate { font-size: .85rem; margin: .35rem 0 0; min-height: 1.2em; }
.dg-pkgnotice { font-size: .8rem; margin: .5rem 0 0; }
.dg-pkgcustom { display: grid; grid-template-columns: 1fr minmax(0, 520px); gap: 2rem; align-items: start; background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--dg-shadow-sm); }
.dg-pkgcustom__text h2 { font-size: 1.5rem; margin: .8rem 0 .5rem; }
.dg-pkgcustom__text p { color: var(--dg-text-2); }
.dg-pkgterms { font-size: .85rem; }
.dg-contact.dg-pkgcustom__form { position: static; box-shadow: none; }
.dg-pkgcustom__form .dg-contact__form { border-top: 0; }
.dg-gallery--n1 { grid-template-columns: 1fr; grid-template-rows: 420px; }
.dg-gallery--n2 { grid-template-columns: 2fr 1fr; }
.dg-gallery--n2 > button:last-child, .dg-gallery--n4 > button:last-child { grid-row: span 2; }
.dg-gallery--n3 { grid-template-columns: 2fr 1fr; }
@media (max-width: 991.98px) {
  .dg-pkgcustom { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
        .dg-gallery--n1, .dg-gallery--n2, .dg-gallery--n3, .dg-gallery--n4 { grid-template-rows: none; }
  .dg-gallery--n2 > button:last-child, .dg-gallery--n4 > button:last-child { grid-row: auto; }
  .dg-pkgdays li { grid-template-columns: 1fr; gap: .4rem; }
  .dg-pkgdays li::before { display: none; }
  .dg-pkgdays__n { justify-self: start; padding: 0 .8rem; }
  .dg-results__bar .dg-results__tools { width: 100%; }
}
@media (max-width: 575.98px) {
  .dg-pkgpage .dg-facts2 { grid-template-columns: 1fr; }
  .dg-pkgpage .dg-checklist { grid-template-columns: 1fr; }
}
/* Travel With Us: filters in a vertical sidebar on the left (same place as the category pages), results on the right */
.dg-pkglayout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1.75rem; align-items: start; padding-block: 1.25rem .5rem; }
.dg-pkglayout .dg-pkgresults { padding: 0; }
.dg-pkglayout .dg-results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dg-pkgside { position: sticky; top: calc(var(--dg-header-h) + 1rem); order: -1; }
.dg-pkgside__box { background: #fff; border: 1px solid var(--dg-border); border-radius: var(--dg-r-lg); }
.dg-pkgside__head { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.15rem; border-bottom: 1px solid var(--dg-border); list-style: none; pointer-events: none; }
.dg-pkgside__head::-webkit-details-marker { display: none; }
.dg-pkgside__head h2 { font-size: 1rem; margin: 0; display: flex; align-items: center; gap: .45rem; }
.dg-pkgside__head h2 svg { width: 18px; height: 18px; color: var(--dg-gold-700); }
.dg-pkgside__chev { display: none; width: 18px; height: 18px; transition: transform var(--dg-med) var(--dg-ease); }
.dg-pkgside__body { padding: 0 1.15rem 1rem; }
.dg-pkgopts { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.dg-pkgopt { display: flex; align-items: center; gap: .55rem; padding: .32rem .4rem; margin: 0 -.4rem; border-radius: var(--dg-r-sm); color: var(--dg-text-2); font-size: .9rem; text-decoration: none; }
.dg-pkgopt:hover { background: var(--dg-primary-50); color: var(--dg-primary); }
.dg-pkgopt__label { flex: 1; min-width: 0; }
.dg-pkgopt .dg-muted { font-size: .8rem; }
.dg-pkgopt__dot { width: 1.05em; height: 1.05em; border-radius: 50%; border: 1.5px solid var(--dg-border-strong); flex: none; background: #fff; }
.dg-pkgopt[aria-current="true"] { color: var(--dg-primary); font-weight: 600; }
.dg-pkgopt[aria-current="true"] .dg-pkgopt__dot { border: 5px solid var(--dg-primary); }
.dg-pkgopt.is-empty { opacity: .55; }
@media (max-width: 1199.98px) {
  .dg-pkglayout { grid-template-columns: 250px minmax(0, 1fr); gap: 1.25rem; }
}
@media (max-width: 991.98px) {
  .dg-pkglayout { grid-template-columns: minmax(0, 1fr); padding-top: 1rem; }
  .dg-pkgside { position: static; order: -1; }
  .dg-pkgside__head { pointer-events: auto; cursor: pointer; border-bottom: 0; }
  .dg-pkgside__box[open] .dg-pkgside__head { border-bottom: 1px solid var(--dg-border); }
  .dg-pkgside__chev { display: block; }
  .dg-pkgside__box[open] .dg-pkgside__chev { transform: rotate(180deg); }
  .dg-pkgside__body { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.25rem; }
  .dg-pkgside__body > .dg-btn { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
  .dg-pkglayout .dg-results__grid { grid-template-columns: 1fr; }
  .dg-pkgside__body { grid-template-columns: 1fr; }
}
/* Footer columns that follow the header dropdown menu, when an admin sets up more or fewer than 3 */
.dg-footer__grid--c1 { grid-template-columns: 1.5fr 1fr 1.3fr; }
.dg-footer__grid--c2 { grid-template-columns: 1.5fr 1fr 1fr 1.3fr; }
.dg-footer__grid--c4 { grid-template-columns: 1.4fr repeat(4, 1fr) 1.3fr; gap: 2rem; }
.dg-footer__grid--c5 { grid-template-columns: 1.3fr repeat(5, 1fr) 1.2fr; gap: 1.5rem; }
@media (max-width: 1199.98px) { .dg-footer__grid[class*="dg-footer__grid--c"] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767.98px) { .dg-footer__grid[class*="dg-footer__grid--c"] { grid-template-columns: 1fr 1fr; } }

/* Footer logo uploaded separately (Website → Footer) */
.dg-footer__logo img { display: block; height: auto; max-height: 56px; width: auto; max-width: 240px; }

/* Floating WhatsApp button: style + animation (Leads → Forms & consent) */
.dg-wafloat--pill { width: auto; height: auto; border-radius: 999px; padding: 6px 24px 6px 6px; display: flex; align-items: center; gap: 12px; text-decoration: none;
  background: linear-gradient(135deg, #0b6e35 0%, #12854a 55%, #0b6a52 100%); border: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 10px 28px rgba(7, 70, 38, .35); }
.dg-wafloat__icon { position: relative; width: 50px; height: 50px; border-radius: 50%; background: #25d366; display: grid; place-items: center; flex: none;
  box-shadow: 0 0 0 5px rgba(255, 255, 255, .1), inset 0 -3px 6px rgba(0, 0, 0, .12); }
.dg-wafloat--pill .dg-wafloat__icon svg { width: 27px; height: 27px; fill: #fff; position: relative; z-index: 1; }
.dg-wafloat__text { display: flex; flex-direction: column; line-height: 1.1; color: #fff; white-space: nowrap; }
.dg-wafloat__text small { font-size: .82rem; font-weight: 500; opacity: .92; }
.dg-wafloat__text strong { font-family: var(--dg-font-head); font-size: 1.3rem; font-weight: 800; letter-spacing: .01em; }
.dg-wafloat--pill:hover, .dg-wafloat--pill:focus-visible { color: #fff; filter: brightness(1.06); }
/* pulse rings: around the round button, or around the icon circle of the pill */
.dg-wafloat--round.dg-wafloat--pulse::before, .dg-wafloat--round.dg-wafloat--pulse::after, .dg-wafloat--round.dg-wafloat--both::before, .dg-wafloat--round.dg-wafloat--both::after,
.dg-wafloat--pill.dg-wafloat--pulse .dg-wafloat__icon::before, .dg-wafloat--pill.dg-wafloat--pulse .dg-wafloat__icon::after, .dg-wafloat--pill.dg-wafloat--both .dg-wafloat__icon::before, .dg-wafloat--pill.dg-wafloat--both .dg-wafloat__icon::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%; background: #25d366; z-index: -1; opacity: .55;
  animation: dg-wa-ring 2.4s cubic-bezier(.2, .6, .35, 1) infinite;
}
.dg-wafloat--pill .dg-wafloat__icon::before, .dg-wafloat--pill .dg-wafloat__icon::after { z-index: 0; background: rgba(255, 255, 255, .55); }
.dg-wafloat--pulse::after, .dg-wafloat--both::after, .dg-wafloat--pulse .dg-wafloat__icon::after, .dg-wafloat--both .dg-wafloat__icon::after { animation-delay: 1.2s; }
.dg-wafloat--bounce, .dg-wafloat--both { animation: dg-wa-bounce 4s ease-in-out 2s infinite; }
.dg-wafloat:hover, .dg-wafloat:hover *, .dg-wafloat:hover ::before, .dg-wafloat:hover ::after, .dg-wafloat:hover::before, .dg-wafloat:hover::after,
.dg-wafloat:focus-visible, .dg-wafloat:focus-visible ::before, .dg-wafloat:focus-visible ::after { animation-play-state: paused; }
@keyframes dg-wa-ring { 0% { transform: scale(1); opacity: .55; } 80%, 100% { transform: scale(1.75); opacity: 0; } }
@keyframes dg-wa-bounce {
  0%, 76%, 100% { transform: translateY(0) rotate(0); }
  80% { transform: translateY(-8px) rotate(-3deg); }
  84% { transform: translateY(0) rotate(2deg); }
  88% { transform: translateY(-4px) rotate(-1deg); }
  92% { transform: translateY(0) rotate(0); }
}
@media (prefers-reduced-motion: reduce) {
  .dg-wafloat, .dg-wafloat::before, .dg-wafloat::after, .dg-wafloat__icon::before, .dg-wafloat__icon::after { animation: none !important; }
  .dg-wafloat::before, .dg-wafloat::after, .dg-wafloat__icon::before, .dg-wafloat__icon::after { display: none; }
}
@media (max-width: 991.98px) { .dg-wafloat.dg-wafloat--pill { display: none; } } /* same as the round button: phones have WhatsApp in the bottom bar */
.dg-placechips { flex-wrap: wrap; overflow: visible; }
