/*
 * DMG child theme — design layer on top of Neve + Elementor.
 * Follows the DMG design system: white space, one red, Geist, pill buttons, flat tiles, quiet motion.
 * It changes how things look, never your content or your photos.
 *
 * 1. Tokens            5. Buttons & links       9. Blog
 * 2. Font              6. Pricing tables       10. Motion (with main.js)
 * 3. Type              7. Images & cards       11. Fixes carried over from the old site
 * 4. Header            8. Forms                12. Cards on your pages
 *                                              14. Logo strips 15. Phone menu 16. Team 17. Folder tabs 18. Home full width 19. Banners 20. Footer 21. Testimonials 22. Service cards 23. Intros & panels 24. GPS rows 25. Contact (13 stays last)
 *                                              13. Reduced motion
 */

/* 1. Tokens ------------------------------------------------------------------------------------------------ */
:root {
  --dmg-surface: #ffffff;
  --dmg-surface-alt: #f5f5f7;
  --dmg-glass: rgba(255, 255, 255, 0.72);
  --dmg-line: #d2d2d7;
  --dmg-line-soft: #e8e8ed;
  --dmg-line-strong: #86868b;
  --dmg-ink: #231f20;
  --dmg-ink-muted: #6d6e71;
  --dmg-red: #ed1c24;          /* logo red: large type, stat numbers */
  --dmg-action: #d0141c;       /* button fill (white label passes 5.5:1) */
  --dmg-action-hover: #b01017;
  --dmg-red-text: #c4121a;     /* red links and small red text */
  --dmg-red-soft: #fdecec;
  --dmg-focus: #0066cc;
  --dmg-font: "Geist", -apple-system, "SF Pro Display", "Helvetica Neue", system-ui, sans-serif;
  --dmg-radius-sm: 8px;
  --dmg-radius-md: 12px;
  --dmg-radius-lg: 20px;
  --dmg-radius-xl: 28px;
  --dmg-radius-pill: 980px;
  --dmg-ease: cubic-bezier(0.22, 0.61, 0.36, 1);

  /* Neve's own colour and font settings, pointed at the DMG palette */
  --nv-primary-accent: var(--dmg-red-text);
  --nv-secondary-accent: var(--dmg-red-text);
  --nv-text-color: var(--dmg-ink);
  --nv-light-bg: var(--dmg-surface-alt);
  --nv-fallback-ff: var(--dmg-font);
  --bodyfontfamily: var(--dmg-font);
  --headingsfontfamily: var(--dmg-font);
}
/* Elementor's factory Global Colours (blue headings, green buttons, two greys) → the DMG palette, on every page */
body[class*="elementor-kit-"] {
  --e-global-color-primary: var(--dmg-ink) !important;
  --e-global-color-secondary: var(--dmg-ink-muted) !important;
  --e-global-color-text: var(--dmg-ink-muted) !important;
  --e-global-color-accent: var(--dmg-action) !important;
}

/* 2. Font (Geist, one variable file, 100–900) --------------------------------------------------------------- */
@font-face {
  font-family: "Geist";
  src: url("../fonts/Geist-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* One family everywhere. Icons (Font Awesome, Elementor, ElementsKit) keep their own font. */
body,
body :is(h1, h2, h3, h4, h5, h6, p, a, li, dt, dd, blockquote, figcaption, label, legend, button, input, select, textarea, td, th, strong, b, em, small, time, cite, q, div, span):not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab):not([class*="eicon"]):not([class^="icon"]):not([class*=" icon-"]):not(.icon):not([class*="dashicons"]) {
  font-family: var(--dmg-font) !important;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1;
}

/* 3. Type ---------------------------------------------------------------------------------------------------- */
/* Display type: weight 600, tight tracking, as in the design system. Sizes stay as set in Elementor. */
h1, h2, h3,
:is(h1, h2, h3).elementor-heading-title,
.premium-dual-header-first-header,
.elementor-image-box-title {
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}
h4, h5, h6, .elementor-heading-title { letter-spacing: -0.01em; }
.elementor-heading-title { text-wrap: balance; }
.elementor-widget-text-editor p,
.nv-content-wrap p { text-wrap: pretty; }
::selection { background: var(--dmg-red-soft); color: var(--dmg-ink); }

/* Numbers set in a heading (10M+, 500+, 26,000) line up while they count */
.elementor-heading-title.dmg-stat { font-variant-numeric: tabular-nums; }

/* 4. Header: glass bar, calm links, smaller when you scroll ------------------------------------------------ */
#tahefobu-header,
#tahefobu-header > .elementor,
#tahefobu-header .elementor-top-section,
#tahefobu-header .e-con.e-parent {
  transition: background-color 0.4s var(--dmg-ease), box-shadow 0.4s var(--dmg-ease), padding 0.4s var(--dmg-ease), min-height 0.4s var(--dmg-ease);
}
html.dmg-scrolled #tahefobu-header .elementor-top-section,
html.dmg-scrolled #tahefobu-header .e-con.e-parent {
  background-color: var(--dmg-glass) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  box-shadow: 0 1px 0 var(--dmg-line) !important;
}
#tahefobu-header .elementor-widget-image img,
#tahefobu-header .elementor-widget-theme-site-logo img {
  max-height: 90px;
  width: auto;
  transition: max-height 0.4s var(--dmg-ease), margin 0.4s var(--dmg-ease);
}
html.dmg-scrolled #tahefobu-header .elementor-widget-image img,
html.dmg-scrolled #tahefobu-header .elementor-widget-theme-site-logo img { max-height: 56px; }
html.dmg-scrolled #tahefobu-header .elementor-widget-image > .elementor-widget-container { margin-top: 4px !important; }

#tahefobu-header .tahefobu-nav-menu .tahefobu-menu-item {
  color: var(--dmg-ink-muted) !important;
  font-size: 15px !important;
  letter-spacing: -0.005em;
  transition: color 0.2s ease !important;
}
#tahefobu-header .tahefobu-nav-menu .tahefobu-menu-item:hover,
#tahefobu-header .tahefobu-nav-menu .current-menu-item > .tahefobu-menu-item,
#tahefobu-header .tahefobu-nav-menu .tahefobu-menu-item.tahefobu-active-item {
  color: var(--dmg-ink) !important;
}
#tahefobu-header .tahefobu-nav-menu .current-menu-item > .tahefobu-menu-item { font-weight: 600; }
#tahefobu-header .tahefobu-nav-menu .tahefobu-menu-item::before,
#tahefobu-header .tahefobu-nav-menu .tahefobu-menu-item::after { display: none !important; }
/* dropdowns: a white card that fades in */
#tahefobu-header .sub-menu,
#tahefobu-header .tahefobu-sub-menu {
  border-radius: var(--dmg-radius-md) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid var(--dmg-line) !important;
  overflow: hidden;
}
#tahefobu-header .sub-menu a,
#tahefobu-header .tahefobu-sub-menu a { color: var(--dmg-ink) !important; }
#tahefobu-header .sub-menu a:hover,
#tahefobu-header .tahefobu-sub-menu a:hover { background: var(--dmg-surface-alt) !important; color: var(--dmg-ink) !important; }
/* the page you are on: the same light grey, a little bolder (the header template painted it dark blue) */
#tahefobu-header .tahefobu-sub-menu a.tahefobu-active-menu-item,
#tahefobu-header .tahefobu-sub-menu .current-menu-item > a {
  background: var(--dmg-surface-alt) !important;
  color: var(--dmg-ink) !important;
  font-weight: 600 !important;
}
#tahefobu-header .tahefobu-mobile-toggle:hover { border-color: var(--dmg-line) !important; }
#tahefobu-header .tahefobu-mobile-toggle:hover .tahefobu-mobile-toggle-text { color: var(--dmg-ink) !important; }

/* 5. Buttons & links ---------------------------------------------------------------------------------------- */
.elementor-button,
.premium-pricing-price-button,
.wp-block-button__link,
.button,
button[type="submit"],
input[type="submit"],
.nv-comment-form input[type="submit"] {
  border-radius: var(--dmg-radius-pill) !important;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s var(--dmg-ease) !important;
}
.elementor-button { font-weight: 500 !important; letter-spacing: -0.01em; }
.elementor-button:active,
.premium-pricing-price-button:active { transform: scale(0.98); }

/* links inside text: red, underline on hover */
.elementor-widget-text-editor a:not(.elementor-button),
.nv-content-wrap a:not(.button):not(.wp-block-button__link) {
  color: var(--dmg-red-text);
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.elementor-widget-text-editor a:not(.elementor-button):hover,
.nv-content-wrap a:not(.button):not(.wp-block-button__link):hover { text-decoration: underline; }

/* one focus ring everywhere (blue, so it never reads as brand or error) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.elementor-button:focus-visible {
  outline: 2px solid var(--dmg-focus) !important;
  outline-offset: 2px !important;
}

/* 6. Pricing tables (Premium Addons): flat grey tiles, red price, one red pill button -------------------------- */
.premium-pricing-table {
  background-color: var(--dmg-surface-alt) !important;
  border: 0 !important;
  border-radius: var(--dmg-radius-lg) !important;
  box-shadow: none !important;
  transition: transform 0.5s var(--dmg-ease);
}
@media (hover: hover) {
  .premium-pricing-table:hover { transform: translateY(-4px); }
}
.premium-pricing-table .premium-pricing-table-title { color: var(--dmg-ink) !important; letter-spacing: -0.015em; }
.premium-pricing-price-currency,
.premium-pricing-price-value {
  color: var(--dmg-red) !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em;
}
.premium-pricing-price-button {
  background-color: var(--dmg-action) !important;
  border-color: var(--dmg-action) !important;
  color: #ffffff !important;
}
.premium-pricing-price-button:hover {
  background-color: var(--dmg-action-hover) !important;
  border-color: var(--dmg-action-hover) !important;
  color: #ffffff !important;
}
.premium-pricing-list .premium-pricing-list-item { color: var(--dmg-ink) !important; }

/* 7. Images & cards ---------------------------------------------------------------------------------------- */
/* rounded photos in page content (not the logo, not client-logo sliders or galleries) */
.elementor-widget-image img,
.elementor-widget-image-box .elementor-image-box-img img,
.elementor-widget-video .elementor-wrapper {
  border-radius: var(--dmg-radius-lg);
}
#tahefobu-header img,
footer img,
.elementor-location-footer img,
[data-elementor-type="footer"] img { border-radius: 0 !important; }

.elementor-widget-image-box .elementor-image-box-img { overflow: hidden; border-radius: var(--dmg-radius-lg); }
.elementor-widget-image-box .elementor-image-box-img img { transition: transform 0.8s var(--dmg-ease); }
@media (hover: hover) {
  .elementor-widget-image-box:hover .elementor-image-box-img img { transform: scale(1.03); }
}

/* blog cards (Premium Addons blog grid on /blog/): flat, rounded, gentle zoom on hover */
.premium-blog-post-outer-container .premium-blog-post-container {
  border-radius: var(--dmg-radius-lg) !important;
  overflow: hidden;
  box-shadow: none !important;
  background: var(--dmg-surface-alt) !important;
}
.premium-blog-thumbnail-container img { transition: transform 0.8s var(--dmg-ease) !important; }
@media (hover: hover) {
  .premium-blog-post-container:hover .premium-blog-thumbnail-container img { transform: scale(1.03); }
}
.premium-blog-entry-title a { color: var(--dmg-ink) !important; }
.premium-blog-entry-title a:hover { color: var(--dmg-red-text) !important; }

/* testimonials: calm, larger quote text */
.premium-testimonial-text-wrapper,
.ekit-testimonial-wrapper .elementskit-commentor-content p,
.elementskit-testimonial-slider .elementskit-commentor-content p {
  color: var(--dmg-ink) !important;
  line-height: 1.5 !important;
}

/* accordions (FAQ): hairlines instead of boxes, smooth open */
.elementor-accordion .elementor-accordion-item { border-color: var(--dmg-line) !important; }
.elementor-accordion .elementor-tab-title { transition: color 0.2s ease; }
.elementor-accordion .elementor-tab-title.elementor-active,
.elementor-accordion .elementor-tab-title:hover { color: var(--dmg-ink) !important; }

/* 8. Forms ----------------------------------------------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="search"], input[type="number"], textarea, select {
  border-radius: var(--dmg-radius-md);
  border-color: var(--dmg-line-strong);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* 9. Blog posts (Neve single post) -------------------------------------------------------------------------- */
.single-post .nv-content-wrap { font-size: 17px; line-height: 1.6; color: var(--dmg-ink); }
.single-post .nv-content-wrap p,
.single-post .nv-content-wrap li { font-size: 17px; line-height: 1.6; }
.single-post .nv-content-wrap h1,
.single-post .nv-content-wrap h2 { font-size: 32px; line-height: 1.15; margin-top: 1.4em; }
.single-post .nv-content-wrap h3 { font-size: 24px; line-height: 1.25; margin-top: 1.3em; }
.single-post .nv-content-wrap img { border-radius: var(--dmg-radius-lg); }
.single-post .entry-title { letter-spacing: -0.025em; font-weight: 600; }
.nv-meta-list, .nv-meta-list a { color: var(--dmg-ink-muted); }

/* 10. Motion (see dmg.js) ------------------------------------------------------------------------------------ */
/* Content fades up 20px over 700ms as it enters the screen, one item after another. */
.dmg-reveal {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
}
.dmg-reveal.dmg-in {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s var(--dmg-ease), transform 0.7s var(--dmg-ease);
  transition-delay: var(--dmg-delay, 0ms);
}
/* Headings appear word by word: each word rises out of a soft blur, 70ms after the one before. */
.dmg-split .dmg-word {
  display: inline-block;
  opacity: 0;
  transform: translate3d(0, 0.4em, 0);
  filter: blur(8px);
}
.dmg-split.dmg-words-in .dmg-word {
  opacity: 1;
  transform: none;
  filter: blur(0);
  transition: opacity 0.7s var(--dmg-ease), transform 0.7s var(--dmg-ease), filter 0.7s var(--dmg-ease);
  transition-delay: calc(var(--i, 0) * 70ms);
}
/* The page's first section (its banner) waits for the script, so nothing flashes before it animates.
   If the script never runs, everything shows after 2.5 seconds anyway. */
@keyframes dmg-show { to { opacity: 1; transform: none; } }
.dmg-js [data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-heading-title:not(.dmg-ready),
.dmg-js [data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-widget:not(.elementor-widget-heading):not(.dmg-shown) {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  animation: dmg-show 0s linear 2.5s forwards;
}
.dmg-js [data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-heading-title:not(.dmg-ready) { transform: none; }
.dmg-shown {
  transition: opacity 0.7s var(--dmg-ease), transform 0.7s var(--dmg-ease);
  transition-delay: var(--dmg-delay, 0ms);
}
html { scroll-behavior: smooth; }

/* 11. Fixes carried over from the old site's "Additional CSS" ------------------------------------------------ */
/* no sideways scrolling on phones (clip keeps the sticky header working) */
html, body { max-width: 100%; overflow-x: clip; }
@media (max-width: 1024px) {
  .elementor-section, .elementor-container, .elementor-column, .elementor-widget-wrap { max-width: 100%; }
  .elementor-section { left: auto !important; right: auto !important; }
}
/* header menu dropdowns may overflow their column */
#tahefobu-header .elementor-section,
#tahefobu-header .elementor-container,
#tahefobu-header .elementor-widget-wrap { overflow: visible !important; }
/* logo height */
@media (max-width: 768px) {
  #tahefobu-header .elementor-widget-image img { max-height: 60px; }
}
/* no scroll-to-top button */
.hfe-scroll-to-top-wrap, .hfe-scroll-to-top-button { display: none !important; }
/* floating ElementsKit buttons hidden on phones (the testimonials stay visible) */
@media (max-width: 767px) {
  .ekit-float-btn, .ekit-floating { display: none !important; }
}
/* Elementor tabs stay horizontal on phones: add the CSS class "mobile-tabs-horizontal" to the Tabs widget */
@media (max-width: 767px) {
  .mobile-tabs-horizontal .elementor-tabs-wrapper { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; gap: 8px; }
  .mobile-tabs-horizontal .elementor-tab-title { flex: 0 0 auto !important; white-space: nowrap !important; border: 1px solid var(--dmg-line); border-radius: var(--dmg-radius-sm); padding: 10px 12px !important; }
  .mobile-tabs-horizontal .elementor-tab-mobile-title { display: none !important; }
  .mobile-tabs-horizontal .elementor-tabs-content-wrapper { display: block !important; }
}
/* client logo grid on phones: add the CSS class "client-grid" to the section */
@media (max-width: 767px) {
  .client-grid { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; gap: 12px !important; }
  .client-grid img { width: 45% !important; height: auto !important; object-fit: contain !important; }
}

/* 12. Cards on your pages: the white cards with a pink glow become flat grey tiles (design system: "flat and quiet").
       Listed by Elementor element id (ids stay the same when the content is imported). ------------------------ */
.elementor-element-6814a66 > .elementor-widget-wrap, .elementor-element-d1cbdcd > .elementor-widget-wrap, .elementor-element-271f933 > .elementor-widget-wrap, .elementor-element-e61c30f > .elementor-widget-wrap,
.elementor-element-c45a1c3 > .elementor-widget-wrap, .elementor-element-64195e4 > .elementor-widget-wrap, .elementor-element-63156c2 > .elementor-widget-wrap, .elementor-element-1f919c9 > .elementor-widget-wrap,
.elementor-element-55018df > .elementor-widget-wrap, .elementor-element-6532460f > .elementor-widget-wrap, .elementor-element-433729b7 > .elementor-widget-wrap, .elementor-element-8619f60 > .elementor-widget-wrap,
.elementor-element-e6274ba > .elementor-widget-wrap, .elementor-element-0ff1e19 > .elementor-widget-wrap, .elementor-element-906c4e7 > .elementor-widget-wrap, .elementor-element-d1f594b > .elementor-widget-wrap,
.elementor-element-c36d5b9 > .elementor-widget-wrap, .elementor-element-418331e > .elementor-widget-wrap, .elementor-element-dd1e2a6 > .elementor-widget-wrap, .elementor-element-91c7c86 > .elementor-widget-wrap,
.elementor-element-f826692 > .elementor-widget-wrap, .elementor-element-ce2267a > .elementor-widget-wrap, .elementor-element-97ff275 > .elementor-widget-wrap, .elementor-element-4c79f81 > .elementor-widget-wrap,
.elementor-element-bf5d3e1 > .elementor-widget-wrap, .elementor-element-09ed80b > .elementor-widget-wrap, .elementor-element-276f2b8 > .elementor-widget-wrap, .elementor-element-d3d1ec3 > .elementor-widget-wrap,
.elementor-element-17c0b9c > .elementor-widget-wrap, .elementor-element-9912056 > .elementor-widget-wrap, .elementor-element-6675348 > .elementor-widget-wrap, .elementor-element-3c33008 > .elementor-widget-wrap,
.elementor-element-e992627 > .elementor-widget-wrap, .elementor-element-0456d87 > .elementor-widget-wrap, .elementor-element-c906e68 > .elementor-widget-wrap, .elementor-element-92af70b > .elementor-widget-wrap,
.elementor-element-aaec812 > .elementor-widget-wrap, .elementor-element-ced7406 > .elementor-widget-wrap, .elementor-element-0f8125c > .elementor-widget-wrap, .elementor-element-4eb6c59 > .elementor-widget-wrap,
.elementor-element-36c94fa > .elementor-widget-wrap, .elementor-element-6dc6a5a > .elementor-widget-wrap, .elementor-element-ebae5f5 > .elementor-widget-wrap, .elementor-element-fd54e5d > .elementor-widget-wrap,
.elementor-element-b0343a2 > .elementor-widget-wrap, .elementor-element-2023fb0 > .elementor-widget-wrap, .elementor-element-963af60 > .elementor-widget-wrap, .elementor-element-e97c14a > .elementor-widget-wrap,
.elementor-element-bed0d72 > .elementor-widget-wrap, .elementor-element-d84e3fb > .elementor-widget-wrap, .elementor-element-ce1e5cc > .elementor-widget-wrap, .elementor-element-c7e1f38 > .elementor-widget-wrap,
.elementor-element-39a0231 > .elementor-widget-wrap, .elementor-element-98d106b > .elementor-widget-wrap, .elementor-element-b759165 > .elementor-widget-wrap, .elementor-element-82bb158 > .elementor-widget-wrap,
.elementor-element-69630ee > .elementor-widget-wrap, .elementor-element-b55743f > .elementor-widget-wrap, .elementor-element-8c8154f > .elementor-widget-wrap, .elementor-element-542faed > .elementor-widget-wrap,
.elementor-element-ba8b3c2 > .elementor-widget-wrap, .elementor-element-689290d > .elementor-widget-wrap, .elementor-element-8df7d0b > .elementor-widget-wrap, .elementor-element-b68b09d > .elementor-widget-wrap,
.elementor-element-421e584 > .elementor-widget-wrap, .elementor-element-ec30040 > .elementor-widget-wrap, .elementor-element-58ca482 > .elementor-widget-wrap, .elementor-element-c90f7b9 > .elementor-widget-wrap,
.elementor-element-85309d1 > .elementor-widget-wrap, .elementor-element-61849d2 > .elementor-widget-wrap, .elementor-element-1beb588 > .elementor-widget-wrap, .elementor-element-7e71f1b > .elementor-widget-wrap,
.elementor-element-612ea1e > .elementor-widget-wrap, .elementor-element-39e461a > .elementor-widget-wrap, .elementor-element-77142a5 > .elementor-widget-wrap, .elementor-element-d32d301 > .elementor-widget-wrap,
.elementor-element-9d46905 > .elementor-widget-wrap, .elementor-element-154b0a9 > .elementor-widget-wrap, .elementor-element-57bc1ce > .elementor-widget-wrap, .elementor-element-d8e8a7e > .elementor-widget-wrap,
.elementor-element-bd582c6 > .elementor-widget-wrap, .elementor-element-963364a > .elementor-widget-wrap, .elementor-element-b3884c0 > .elementor-widget-wrap, .elementor-element-b6401d0 > .elementor-widget-wrap,
.elementor-element-8473752 > .elementor-widget-wrap, .elementor-element-f989bf7 > .elementor-widget-wrap, .elementor-element-38adf53 > .elementor-widget-wrap, .elementor-element-e76ef2d > .elementor-widget-wrap,
.elementor-element-b1e77b4 > .elementor-widget-wrap, .elementor-element-d946e5f > .elementor-widget-wrap, .elementor-element-ce47570 > .elementor-widget-wrap, .elementor-element-13f7bdb > .elementor-widget-wrap,
.elementor-element-823a574 > .elementor-widget-wrap, .elementor-element-d06f871 > .elementor-widget-wrap, .elementor-element-83f1ced > .elementor-widget-wrap, .elementor-element-7d62a73 > .elementor-widget-wrap,
.elementor-element-fcad29c > .elementor-widget-wrap, .elementor-element-4013ced > .elementor-widget-wrap, .elementor-element-bcf2848 > .elementor-widget-wrap, .elementor-element-69b4313 > .elementor-widget-wrap,
.elementor-element-2721921 > .elementor-widget-wrap, .elementor-element-ee256f3 > .elementor-widget-wrap, .elementor-element-549d185 > .elementor-widget-wrap, .elementor-element-e406dc2 > .elementor-widget-wrap,
.elementor-element-2856742 > .elementor-widget-wrap, .elementor-element-5aa6277 > .elementor-widget-wrap, .elementor-element-bcc50ac > .elementor-widget-wrap, .elementor-element-a7f905a > .elementor-widget-wrap,
.elementor-element-c76d4fc > .elementor-widget-wrap {
  background-color: var(--dmg-surface-alt) !important;
  box-shadow: none !important;
  border-radius: var(--dmg-radius-lg) !important;
  transition: background-color 0.3s ease;
}
/* FAQ accordions: hairlines, no shadow */
.elementor-widget-accordion > .elementor-widget-container { box-shadow: none !important; }

/* 14. Logo strips: one slow, continuous scroll (built by dmg.js) ------------------------------------------- */
/* The client-logo carousels on Home, About and GPS Flyer Distribution, plus any widget given the CSS class
   "dmg-marquee". Logos glide at a steady pace with soft edges, stop under the pointer, and stand still for
   people who ask their device for less motion. Speed: 100 px/s, or a class like "dmg-speed-150" (see dmg.js). */
.dmg-marquee-on {
  --dmg-marquee-height: 104px;
  --dmg-marquee-gap: 32px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.dmg-marquee__track {
  display: flex;
  width: max-content;
  animation: dmg-marquee var(--dmg-marquee-duration, 90s) linear infinite;
  animation-play-state: paused;
  will-change: transform;
}
.dmg-marquee-ready .dmg-marquee__track { animation-play-state: running; }
.dmg-marquee-ready:hover .dmg-marquee__track,
.dmg-marquee-ready:focus-within .dmg-marquee__track,
.dmg-marquee-ready.dmg-marquee-away .dmg-marquee__track { animation-play-state: paused; }
.dmg-marquee-on .dmg-marquee__list {   /* beats Neve's 30px list margins */
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--dmg-marquee-gap);
  margin: 0;
  padding: 0 var(--dmg-marquee-gap) 0 0;
  list-style: none;
}
.dmg-marquee-on .dmg-marquee__item { flex: none; margin: 0; padding: 0; }
.dmg-marquee__item a { display: block; }
.dmg-marquee__item img {
  display: block;
  width: auto;
  max-width: none;
  height: var(--dmg-marquee-height);
  object-fit: contain;
  border-radius: 0 !important;
}
@keyframes dmg-marquee { to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 767px) {
  .dmg-marquee-on { --dmg-marquee-height: 72px; --dmg-marquee-gap: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .dmg-marquee__track { animation: none !important; width: auto; }
  .dmg-marquee-on .dmg-marquee__list { flex: 1 1 100%; flex-wrap: wrap; justify-content: center; row-gap: 16px; padding-right: 0; }
  .dmg-marquee__list[aria-hidden="true"], .dmg-marquee__item[aria-hidden="true"] { display: none; }
  .dmg-marquee-on { -webkit-mask-image: none; mask-image: none; }
}

/* 15. Phone menu: the header's own menu button and list --------------------------------------------------- */
/* The old site hid the header menu on phones and used the "WP Mobile Menu" plugin instead. The header's own menu
   (☰ button, list, Services drop-down) does the same job without an extra plugin, in DMG colours. */
@media (max-width: 767px) {
  #tahefobu-header .elementor-element-b994036.elementor-hidden-mobile { display: block !important; }
  #tahefobu-header .tahefobu-mobile-toggle { cursor: pointer; }
  #tahefobu-header .tahefobu-mobile-toggle-line { background-color: var(--dmg-ink) !important; border-radius: 2px; }
  #tahefobu-header .tahefobu-mobile-nav-menu {
    margin-top: 24px !important;   /* opens below the logo */
    border-radius: var(--dmg-radius-md);
    overflow: hidden;
    background: var(--dmg-surface) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.14) !important;
  }
  #tahefobu-header .tahefobu-mobile-nav-menu a {
    color: var(--dmg-ink) !important;
    background: transparent !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
    padding: 14px 20px !important;
    border-bottom-color: var(--dmg-line) !important;
  }
  #tahefobu-header .tahefobu-mobile-nav-menu .tahefobu-mobile-sub-menu a {
    color: var(--dmg-ink-muted) !important;
    font-size: 15px !important;
    padding: 12px 20px !important;
  }
  #tahefobu-header .tahefobu-mobile-nav-menu a.tahefobu-active-menu-item,
  #tahefobu-header .tahefobu-mobile-nav-menu .current-menu-item > a {
    color: var(--dmg-red-text) !important;
    background: var(--dmg-surface-alt) !important;
    font-weight: 600 !important;
  }
}

/* 16. Team: names in one quiet card (About page; paste core-team-section.html into an Elementor HTML widget) -- */
/* The block always fills its row, whichever column it was dropped into and whatever width it was given there
   (on About it sits in the old 12%-wide "Core Team" column, stretched with a custom width: 3,503px on phones).
   The ids cover browsers without :has(). The old row's small decorative icon column is hidden. */
.elementor-section:has(.dmg-team) > .elementor-container { flex-wrap: wrap; }
.elementor-column:has(.dmg-team),
.elementor-element-b1adb5a { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.elementor-widget:has(.dmg-team),
.elementor-element-1fffb61 { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.elementor-section:has(.dmg-team) > .elementor-container > .elementor-column:not(:has(.dmg-team)),
.elementor-element-73df31b { display: none !important; }
.dmg-team { max-width: 1120px; margin: 0 auto; padding: 16px 0; text-align: center; }
.dmg-team .dmg-team__eyebrow {
  display: inline-block;
  margin: 0 0 16px;
  padding: 6px 14px;
  font-size: 13px;
  line-height: 1.3;
  font-weight: 500;
  color: var(--dmg-ink);
  background: var(--dmg-surface-alt);
  border-radius: var(--dmg-radius-pill);
}
.dmg-team .dmg-team__title {
  margin: 0 0 12px;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.1;
  color: var(--dmg-ink);
}
.dmg-team .dmg-team__lede {
  max-width: 640px;
  margin: 0 auto 40px;
  font-size: 17px;
  line-height: 1.5;
  color: var(--dmg-ink-muted);
}
.dmg-team .dmg-team__frame {   /* the red shows only as the band under the white card */
  overflow: hidden;
  background: var(--dmg-action);
  border-radius: var(--dmg-radius-xl);
}
.dmg-team .dmg-team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
  padding: 8px 32px;
  list-style: none;
  background: var(--dmg-surface);
  border: 1px solid var(--dmg-action);
  border-radius: var(--dmg-radius-xl);
}
.dmg-team .dmg-team__grid li {
  position: relative;
  margin: 0;
  padding: 32px 16px;
  list-style: none;
  text-align: center;
}
.dmg-team .dmg-team__name {
  display: block;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--dmg-ink);
}
.dmg-team .dmg-team__role {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--dmg-ink-muted);
}
.dmg-team .dmg-team__band {
  display: block;
  padding: 14px 24px;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  color: #fff !important;
  text-decoration: none !important;
  transition: background-color 0.2s ease;
}
.dmg-team .dmg-team__band:hover { background: var(--dmg-action-hover); }
.dmg-team .dmg-team__band:focus-visible { outline: 2px solid #fff !important; outline-offset: -6px !important; }
/* fine dividers: between the people in a row, and between rows */
@media (min-width: 1025px) {
  .dmg-team .dmg-team__grid li:nth-child(n+5) { border-top: 1px solid var(--dmg-line); }
  .dmg-team .dmg-team__grid li:not(:nth-child(4n+1))::before {
    content: "";
    position: absolute;
    top: 30%;
    bottom: 30%;
    left: 0;
    width: 1px;
    background: var(--dmg-line);
  }
}
@media (max-width: 1024px) {
  .dmg-team .dmg-team__grid { grid-template-columns: repeat(2, 1fr); padding: 4px 16px; }
  .dmg-team .dmg-team__grid li { padding: 24px 12px; }
  .dmg-team .dmg-team__grid li:nth-child(n+3) { border-top: 1px solid var(--dmg-line); }
  .dmg-team .dmg-team__grid li:nth-child(2n)::before {
    content: "";
    position: absolute;
    top: 28%;
    bottom: 28%;
    left: 0;
    width: 1px;
    background: var(--dmg-line);
  }
  .dmg-team .dmg-team__lede { margin-bottom: 28px; }
}
@media (max-width: 480px) {
  .dmg-team .dmg-team__grid { padding: 4px 8px; }
  .dmg-team .dmg-team__grid li { padding: 20px 6px; }
  .dmg-team .dmg-team__name { font-size: 15px; }
  .dmg-team .dmg-team__role { font-size: 13px; }
  .dmg-team .dmg-team__frame, .dmg-team .dmg-team__grid { border-radius: var(--dmg-radius-lg); }
}

/* 17. Folder tabs: the client gallery's category filter as file tabs on a white panel (built by dmg.js) -------- */
/* Our Clients gallery (Premium Addons, element 69923e4) or any gallery widget given the CSS class "dmg-folder-tabs".
   Grey tabs in one row that scrolls sideways; the chosen tab turns white, joins the white panel and slides to the
   next one. Premium Addons still does the filtering. */
:is(.dmg-ftabs, .elementor-element-69923e4) {
  --dmg-ftabs-panel: #ffffff;
  --dmg-ftabs-tab: #dcdce0;
  --dmg-ftabs-tab-hover: #d0d0d5;
  --dmg-ftabs-text: #3a3a3c;   /* 8.6:1 on the grey tab */
  --dmg-ftabs-bg: #ebebeb;     /* the section behind the tabs, for the arrow fades */
}
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-img-gallery-filter { position: relative; margin: 0 !important; padding: 0 !important; }
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-img-gallery-filter .premium-gallery-cats-container {
  position: relative;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  gap: 8px;
  margin: 0 !important;
  padding: 12px 0 0 !important;
  overflow-x: auto;
  overflow-y: hidden;
  list-style: none;
  scrollbar-width: none;
  scroll-behavior: smooth;
}
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container::-webkit-scrollbar { display: none; }
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li {
  position: relative;
  z-index: 1;
  flex: none;
  margin: 0 !important;
  padding: 0 0 8px !important;
  list-style: none;
}
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li > a.category {
  display: block;
  margin: 0 !important;
  padding: 10px 18px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  white-space: nowrap;
  color: var(--dmg-ftabs-text) !important;
  background: var(--dmg-ftabs-tab) !important;
  border: 0 !important;
  border-radius: 12px !important;
  box-shadow: none;
  transition: background-color 0.35s ease, color 0.35s ease;
}
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li > a.category:hover {
  background: var(--dmg-ftabs-tab-hover) !important;
}
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li > a.category.active {
  color: var(--dmg-ink) !important;
  font-weight: 600 !important;
  background: transparent !important;
}
/* the light tab that joins the panel and slides between tabs */
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li.dmg-ftabs__slider {
  position: absolute;
  top: 12px;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 0;
  padding: 0 !important;
  background: var(--dmg-ftabs-panel);
  border-radius: 14px 14px 0 0;
  pointer-events: none;
  transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), width 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
:is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-container {
  padding: 20px 0 !important;   /* top and bottom only: the gallery lays out its columns on the full width */
  background: var(--dmg-ftabs-panel);
  border-radius: 24px;
  transition: border-radius 0.3s ease;
}
.dmg-ftabs.dmg-ftabs--first .premium-gallery-container { border-top-left-radius: 0; }
.dmg-ftabs.dmg-ftabs--last .premium-gallery-container { border-top-right-radius: 0; }
/* arrows when there are more tabs to either side */
:is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs__arrow {
  position: absolute;
  top: 12px;
  z-index: 2;
  display: none;
  align-items: center;
  width: 56px;
  height: 38px;
  padding: 0;
  border: 0;
  cursor: pointer;
  color: var(--dmg-ink);
  font-size: 22px;
  line-height: 1;
}
:is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs__arrow span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
:is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs__arrow--prev { left: 0; justify-content: flex-start; background: linear-gradient(90deg, var(--dmg-ftabs-bg) 45%, transparent); }
:is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs__arrow--next { right: 0; justify-content: flex-end; background: linear-gradient(270deg, var(--dmg-ftabs-bg) 45%, transparent); }
:is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs--start .dmg-ftabs__arrow--prev,
:is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs--more .dmg-ftabs__arrow--next { display: flex; }
@media (max-width: 767px) {
  :is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li > a.category { padding: 9px 14px !important; font-size: 13px !important; }
  :is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-container { padding: 10px 0 !important; border-radius: 18px; }
  :is(.dmg-ftabs, .elementor-element-69923e4) .dmg-ftabs__arrow { display: none !important; }   /* phones swipe */
}
@media (prefers-reduced-motion: reduce) {
  :is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container { scroll-behavior: auto; }
  :is(.dmg-ftabs, .elementor-element-69923e4) .premium-gallery-cats-container > li.dmg-ftabs__slider { transition: none; }
}

/* Our Clients gallery: the page's own settings squashed every logo to 1px tall on phones and showed one
   800px logo per row on tablets (same on the old site). Logos keep their shape; tablets get 4 per row. */
@media (max-width: 767px) {
  .elementor-element-69923e4 .pa-gallery-img-container img { height: auto !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-69923e4 .premium-gallery-item { width: 25% !important; }
}

/* 18. Home page full width ----------------------------------------------------------------------------------- */
/* Home uses Elementor's "Theme" layout, so Neve's 1,170px box held the hero in. Without the box, the hero
   runs edge to edge; the other sections are "boxed" in Elementor and still centre their content at 1,140px. */
body.home.page-template-elementor_theme .neve-main > .single-page-container { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
body.home.page-template-elementor_theme .neve-main > .single-page-container > .row { margin-left: 0 !important; margin-right: 0 !important; }
body.home.page-template-elementor_theme .nv-single-page-wrap { padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 1199px) {   /* keep text off the screen edges where the theme's box used to do it */
  body.home.page-template-elementor_theme .elementor-section-boxed > .elementor-container { padding-left: 15px; padding-right: 15px; }
}

/* 19. Banners: the words sit in the middle of the picture ---------------------------------------------------- */
/* Measured page by page (Home, About, Blog, Contact, the service pages ...): trailing paragraph margins and
   uneven padding had left the words up to 23px above the middle. Only the words move; the pictures and banner
   heights stay as they are. Generated by gen_hero_css.py from hero-offsets.json. */
@media (min-width: 1025px) {
  .elementor-element-0afe423 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(19px); }   /* / */
  .elementor-element-e0a6da2 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(23px); }   /* /about/ */
  .elementor-element-6735b7a > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(23px); }   /* /blog/ */
  .elementor-element-44853e5 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /brand-activation-islamabad/ */
  .elementor-element-5175adc > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /brand-identity-islamabad/ */
  .elementor-element-5415add2 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(7px); }   /* /contact/ */
  .elementor-element-5092b70 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /directory-listing-islamabad/ */
  .elementor-element-947a0c7 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /google-my-business-islamabad/ */
  .elementor-element-4dd7de8 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /graphic-designing-islamabad/ */
  .elementor-element-7df3ea5 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(7px); }   /* /news-reports/ */
  .elementor-element-e2ed91 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(7px); }   /* /our-services/ */
  .elementor-element-40e1f84 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /outdoor-advertising-islamabad/ */
  .elementor-element-b057348 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /performance-marketing-islamabad/ */
  .elementor-element-233f97e > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /printing-services-islamabad/ */
  .elementor-element-73572b6 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /search-engine-optimization-islamabad/ */
  .elementor-element-85fc37e > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /social-media-marketing-islamabad/ */
  .elementor-element-6a12d0c > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /ui-ux-designs-islamabad/ */
  .elementor-element-b0fc54f > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /website-design-islamabad/ */
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-0afe423 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(19px); }   /* / */
  .elementor-element-e0a6da2 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(23px); }   /* /about/ */
  .elementor-element-6735b7a > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(23px); }   /* /blog/ */
  .elementor-element-44853e5 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /brand-activation-islamabad/ */
  .elementor-element-5175adc > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /brand-identity-islamabad/ */
  .elementor-element-5415add2 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(22px); }   /* /contact/ */
  .elementor-element-5092b70 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /directory-listing-islamabad/ */
  .elementor-element-947a0c7 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /google-my-business-islamabad/ */
  .elementor-element-4dd7de8 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /graphic-designing-islamabad/ */
  .elementor-element-7df3ea5 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(6px); }   /* /news-reports/ */
  .elementor-element-e2ed91 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(22px); }   /* /our-services/ */
  .elementor-element-40e1f84 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /outdoor-advertising-islamabad/ */
  .elementor-element-b057348 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /performance-marketing-islamabad/ */
  .elementor-element-233f97e > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /printing-services-islamabad/ */
  .elementor-element-73572b6 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /search-engine-optimization-islamabad/ */
  .elementor-element-85fc37e > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /social-media-marketing-islamabad/ */
  .elementor-element-6a12d0c > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /ui-ux-designs-islamabad/ */
  .elementor-element-b0fc54f > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(4px); }   /* /website-design-islamabad/ */
}
@media (max-width: 767px) {
  .elementor-element-0afe423 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(3px); }   /* / */
  .elementor-element-e0a6da2 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(23px); }   /* /about/ */
  .elementor-element-6735b7a > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(23px); }   /* /blog/ */
  .elementor-element-5415add2 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(14px); }   /* /contact/ */
  .elementor-element-7df3ea5 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(6px); }   /* /news-reports/ */
  .elementor-element-e2ed91 > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: translateY(14px); }   /* /our-services/ */
}

/* 20. Footer: colours and alignment as on directmarketing.pk (paste dmg-footer.html into the footer template's HTML
       widget): dark #222, white text, a short red line under each title, red social circles. ---------------------- */
.elementor-section:has(.dmg-footer),
.e-con:has(.dmg-footer) {
  background: #222222 !important;
  border-top: 0;
  padding: 0 !important;
  margin: 0 !important;
}
.elementor-section:has(.dmg-footer) .elementor-background-overlay { display: none !important; }
.elementor-column:has(.dmg-footer) > .elementor-widget-wrap { padding: 0 !important; }
.dmg-footer { padding: 70px 20px 28px; color: #fff; text-align: left; }
.dmg-footer__top {
  display: grid;
  grid-template-columns: 1fr 1fr 1.4fr;
  gap: 40px;
  max-width: 1120px;
  margin: 0 auto;
}
.dmg-footer .dmg-footer__brand p {
  max-width: 300px;
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: #bdbdbd;
}
.dmg-footer .dmg-footer__brand { display: none !important; }   /* no logo-and-line block (also gone from dmg-footer.html) */
.dmg-footer li:has(> a[href*="/news-reports"]) { display: none !important; }   /* no News & Reports link (also gone from dmg-footer.html) */
.dmg-footer .dmg-footer__logo { display: inline-block; padding: 10px 14px; background: #fff; border-radius: 10px; }   /* the full-colour logo on a white tile */
.dmg-footer .dmg-footer__logo img { display: block; width: 150px; height: auto; border-radius: 0 !important; }
.dmg-footer .dmg-footer__label {
  margin: 0 0 16px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
}
.dmg-footer .dmg-footer__label::after { content: ""; display: block; width: 50%; margin-top: 12px; border-top: 2px solid var(--dmg-red); }
.dmg-footer ul { margin: 0 !important; padding: 0 !important; list-style: none; }
.dmg-footer li { margin: 0 0 10px !important; padding: 0; list-style: none; }
.dmg-footer a {
  font-size: 14px;
  line-height: 1.5;
  color: #fff !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}
.dmg-footer a:hover { color: var(--dmg-red-text) !important; }
.dmg-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: 1120px;
  margin: 48px auto 0;
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.dmg-footer .dmg-footer__bottom p { margin: 0; font-size: 13px; color: #bdbdbd; }
.dmg-footer .dmg-footer__bottom p a { margin-left: 12px; font-size: 13px; color: #bdbdbd !important; text-decoration: underline !important; text-underline-offset: 3px; }
.dmg-footer .dmg-footer__social { display: flex; gap: 10px; }
.dmg-footer .dmg-footer__social li { margin: 0 !important; }
.dmg-footer .dmg-footer__social a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; color: #fff !important; background: var(--dmg-red); border-radius: 50%; transition: background-color 0.2s ease; }
.dmg-footer .dmg-footer__social a:hover { color: #fff !important; background: var(--dmg-action-hover); }
.dmg-footer .dmg-footer__social svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 1024px) {
  .dmg-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
}
@media (max-width: 600px) {
  .dmg-footer { padding: 48px 20px 24px; }
  .dmg-footer__top { grid-template-columns: 1fr 1fr; gap: 28px 20px; }   /* Services and Company side by side */
  .dmg-footer__brand, .dmg-footer__contact { grid-column: 1 / -1; }
  .dmg-footer li { margin: 0 0 2px !important; }
  .dmg-footer .dmg-footer__top a { display: inline-block; padding: 7px 0; }   /* easier to tap */
  .dmg-footer__bottom { flex-direction: column; align-items: flex-start; }
  .dmg-footer .dmg-footer__bottom p a { display: block; margin: 8px 0 0; }
}
@media (max-width: 767px) {
  .dmg-footer .dmg-footer__social { width: 100%; justify-content: center; }   /* as on the old site's phone footer */
}

/* 21. Testimonials: client quotes in a bento of cards (Home; paste dmg-testimonials.html into an HTML widget) --- */
.elementor-section:has(.dmg-tq) > .elementor-container { flex-wrap: wrap; }
.elementor-column:has(.dmg-tq),
.elementor-widget:has(.dmg-tq) { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.dmg-tq {
  max-width: 1120px;
  margin: 0 auto;
  padding: 72px 32px 32px;
  text-align: left;
  background: var(--dmg-surface-alt);
  border-radius: var(--dmg-radius-xl);
}
.dmg-tq .dmg-tq__head { margin-bottom: 40px; text-align: center; }
.dmg-tq .dmg-tq__eyebrow {   /* small label with two red corner marks */
  position: relative;
  display: inline-block;
  margin: 0 0 18px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--dmg-ink);
}
.dmg-tq .dmg-tq__eyebrow::before,
.dmg-tq .dmg-tq__eyebrow::after { content: ""; position: absolute; width: 8px; height: 8px; border: 0 solid var(--dmg-red); }
.dmg-tq .dmg-tq__eyebrow::before { left: 0; bottom: 0; border-left-width: 2px; border-bottom-width: 2px; }
.dmg-tq .dmg-tq__eyebrow::after { right: 0; top: 0; border-right-width: 2px; border-top-width: 2px; }
.dmg-tq .dmg-tq__title { margin: 0; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; color: var(--dmg-ink); }
.dmg-tq .dmg-tq__title .dmg-tq__sub { display: block; color: var(--dmg-ink-muted); }
.dmg-tq .dmg-tq__lede { max-width: 560px; margin: 16px auto 0; font-size: 16px; line-height: 1.5; color: var(--dmg-ink-muted); }
.dmg-tq .dmg-tq__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.dmg-tq .dmg-tq__card {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 28px;
  background: var(--dmg-surface);
  border-radius: var(--dmg-radius-lg);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 12px 32px rgba(0, 0, 0, 0.05);
}
.dmg-tq .dmg-tq__card--big { grid-column: 1 / 3; grid-row: 1 / 3; }
.dmg-tq .dmg-tq__card--wide { grid-column: 3 / 5; }
.dmg-tq .dmg-tq__card--small { grid-column: 3 / 4; }
.dmg-tq .dmg-tq__card--dark { grid-column: 4 / 5; }   /* white like the other cards (it was dark) */
/* each card leads with the brand: its logo in a small white tile, then its name in bold; a short line under it on the two big cards */
.dmg-tq .dmg-tq__brand {
  margin: 0;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: var(--dmg-ink);
}
.dmg-tq .dmg-tq__brand--md { font-size: 28px; letter-spacing: -0.02em; }
.dmg-tq .dmg-tq__brand--sm { margin-bottom: 12px; font-size: 18px; letter-spacing: -0.01em; line-height: 1.2; }
.dmg-tq .dmg-tq__top { display: flex; align-items: center; gap: 18px; }
.dmg-tq .dmg-tq__top .dmg-tq__brand { min-width: 0; margin: 0; }
.dmg-tq .dmg-tq__logo {
  flex: none;
  width: 80px;
  height: 80px;
  padding: 6px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--dmg-line);
  border-radius: 20px !important;
}
.dmg-tq .dmg-tq__card--wide .dmg-tq__logo { width: 64px; height: 64px; padding: 5px; border-radius: 16px !important; }
.dmg-tq .dmg-tq__card--small .dmg-tq__top,
.dmg-tq .dmg-tq__slide .dmg-tq__top { gap: 12px; margin-bottom: 16px; }
.dmg-tq .dmg-tq__card--small .dmg-tq__logo,
.dmg-tq .dmg-tq__slide .dmg-tq__logo { width: 52px; height: 52px; padding: 4px; border-radius: 14px !important; }
.dmg-tq .dmg-tq__logo--text { display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; color: var(--dmg-ink); }
/* the two narrow cards: when a name no longer fits beside its logo (desktop windows about 1025–1060px wide), the logo sits above it */
.dmg-tq .dmg-tq__card--small,
.dmg-tq .dmg-tq__card--dark { container-type: inline-size; }
@container (max-width: 182px) {
  .dmg-tq .dmg-tq__top { flex-direction: column; align-items: flex-start; }
}
.dmg-tq .dmg-tq__note { margin: 10px 0 0; font-size: 16px; line-height: 1.4; color: var(--dmg-ink); }
/* the first version's big number ("2 years", "Live"), kept so an older pasted block still looks right */
.dmg-tq .dmg-tq__metric { margin: 0 0 4px; }
.dmg-tq .dmg-tq__metric strong { display: block; font-size: 56px; font-weight: 600; line-height: 1; letter-spacing: -0.03em; color: var(--dmg-ink); }
.dmg-tq .dmg-tq__metric span { display: block; margin-top: 10px; font-size: 17px; line-height: 1.3; color: var(--dmg-ink); }
.dmg-tq .dmg-tq__metric--inline { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.dmg-tq .dmg-tq__metric--inline strong { font-size: 32px; }
.dmg-tq .dmg-tq__metric--inline span { margin: 0; font-size: 16px; }
.dmg-tq .dmg-tq__mark { display: block; width: 18px; height: 14px; margin: 20px 0 10px; fill: var(--dmg-red); }
.dmg-tq .dmg-tq__card--small .dmg-tq__mark,
.dmg-tq .dmg-tq__slide .dmg-tq__mark { margin-top: 0; }
.dmg-tq blockquote {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 15px;
  font-style: normal !important;
  line-height: 1.6;
  color: var(--dmg-ink-muted);
  background: none !important;
  quotes: none;
}
.dmg-tq blockquote::before, .dmg-tq blockquote::after { content: none !important; }
.dmg-tq blockquote p { margin: 0 !important; font-size: inherit; font-style: normal !important; line-height: inherit; color: inherit; }
.dmg-tq .dmg-tq__card--big blockquote { font-size: 17px; }
.dmg-tq .dmg-tq__who { display: flex; align-items: center; gap: 12px; margin: auto 0 0; padding-top: 24px; }
.dmg-tq .dmg-tq__who img,
.dmg-tq .dmg-tq__badge {
  flex: none;
  width: 44px;
  height: 44px;
  padding: 4px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--dmg-line);
  border-radius: 50% !important;
}
.dmg-tq .dmg-tq__badge { display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: var(--dmg-ink); }
.dmg-tq .dmg-tq__who strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--dmg-ink); }
.dmg-tq .dmg-tq__who small { display: block; font-size: 12px; line-height: 1.3; color: var(--dmg-ink-muted); }
/* the dark card: quotes stacked in one spot, one shown at a time (dmg.js turns them every 5 seconds) */
.dmg-tq .dmg-tq__rotator { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; }
.dmg-tq .dmg-tq__slide {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}
.dmg-tq .dmg-tq__slide.is-active { opacity: 1; visibility: visible; transition: opacity 0.6s ease 0.15s, visibility 0s; }
.dmg-tq .dmg-tq__dots { grid-area: 2 / 1; display: flex; gap: 8px; margin-top: 20px; }
.dmg-tq .dmg-tq__dots button {
  width: 8px;
  height: 8px;
  min-height: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(0, 0, 0, 0.18) !important;
  cursor: pointer;
  transition: background-color 0.3s ease, width 0.3s ease;
}
.dmg-tq .dmg-tq__dots button[aria-current="true"] { width: 22px; border-radius: 4px !important; background: var(--dmg-ink) !important; }
/* closing line, set like the section title, with the button to the clients page under it */
.dmg-tq .dmg-tq__foot { display: flex; flex-direction: column; align-items: center; gap: 24px; margin-top: 56px; padding-bottom: 16px; text-align: center; }
.dmg-tq .dmg-tq__foot p {
  margin: 0;
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-wrap: balance;
  color: var(--dmg-ink);
}
.dmg-tq .dmg-tq__all {   /* the site's one red pill button */
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  font-size: 15px;
  font-weight: 500;
  color: #fff !important;
  text-decoration: none !important;
  background: var(--dmg-action);
  border-radius: var(--dmg-radius-pill);
  box-shadow: none;
  transition: background-color 0.2s ease, transform 0.2s var(--dmg-ease);
}
.dmg-tq .dmg-tq__all:hover { background: var(--dmg-action-hover); }
.dmg-tq .dmg-tq__all:active { transform: scale(0.98); }
/* cards come in one after another as the section scrolls in (classes set by dmg.js) */
.dmg-tq.dmg-tq--wait .dmg-tq__card { opacity: 0; transform: translate3d(0, 24px, 0); }
.dmg-tq.dmg-tq--wait.dmg-tq--in .dmg-tq__card {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s var(--dmg-ease), transform 0.7s var(--dmg-ease);
  transition-delay: calc(var(--k, 0) * 110ms);
}
@media (max-width: 1024px) {
  .dmg-tq .dmg-tq__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dmg-tq .dmg-tq__card--big, .dmg-tq .dmg-tq__card--wide { grid-column: 1 / -1; grid-row: auto; }
  .dmg-tq .dmg-tq__card--small { grid-column: 1 / 2; }
  .dmg-tq .dmg-tq__card--dark { grid-column: 2 / 3; }
}
@media (max-width: 640px) {
  .dmg-tq { padding: 48px 16px 24px; border-radius: var(--dmg-radius-lg); }
  .dmg-tq .dmg-tq__grid { grid-template-columns: minmax(0, 1fr); }
  .dmg-tq .dmg-tq__card--small, .dmg-tq .dmg-tq__card--dark { grid-column: 1 / -1; }
  .dmg-tq .dmg-tq__card { padding: 24px; }
  .dmg-tq .dmg-tq__brand { font-size: 30px; }
  .dmg-tq .dmg-tq__brand--md { font-size: 24px; }
  .dmg-tq .dmg-tq__brand--sm { font-size: 18px; }
  .dmg-tq .dmg-tq__top { gap: 14px; }
  .dmg-tq .dmg-tq__card--big .dmg-tq__logo { width: 68px; height: 68px; padding: 5px; border-radius: 18px !important; }
  .dmg-tq .dmg-tq__card--wide .dmg-tq__logo { width: 56px; height: 56px; border-radius: 14px !important; }
  .dmg-tq .dmg-tq__foot { margin-top: 40px; gap: 20px; }
}
/* the block from theme 1.0.17 on: two columns of wide cards, each only as tall as its words (no empty space);
   left Cheezious then Bahria Town, right Punjab Cash & Carry then the dark card. Phones and tablets: one card under another. */
.dmg-tq .dmg-tq__grid--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dmg-tq .dmg-tq__col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.dmg-tq .dmg-tq__col > .dmg-tq__card:last-child { flex: 1 1 auto; }   /* both columns end on the same line */
@media (max-width: 1024px) {
  .dmg-tq .dmg-tq__grid--cols { grid-template-columns: minmax(0, 1fr); }
  .dmg-tq .dmg-tq__grid--cols .dmg-tq__col { display: contents; }
  .dmg-tq .dmg-tq__grid--cols .dmg-tq__card { grid-column: 1 / -1; grid-row: auto; }
  .dmg-tq .dmg-tq__grid--cols .dmg-tq__card--big { order: 1; }
  .dmg-tq .dmg-tq__grid--cols .dmg-tq__card--wide { order: 2; }
  .dmg-tq .dmg-tq__grid--cols .dmg-tq__card--small { order: 3; }
  .dmg-tq .dmg-tq__grid--cols .dmg-tq__card--dark { order: 4; }
}
/* the block from theme 1.0.32 on: five still cards (no turning card). Cheezious and Punjab Cash & Carry on top,
   Bahria Town, Interwood and Nayatel below; one under another on tablets and phones. */
.dmg-tq .dmg-tq__grid--five { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.dmg-tq .dmg-tq__grid--five > .dmg-tq__card { grid-row: auto; }
.dmg-tq .dmg-tq__grid--five > .dmg-tq__card--big { grid-column: 1 / 8; }    /* a little wider: its longer quote and Punjab's end level */
.dmg-tq .dmg-tq__grid--five > .dmg-tq__card--wide { grid-column: 8 / 13; }
.dmg-tq .dmg-tq__grid--five > .dmg-tq__card--small { grid-column: span 4; }
@media (max-width: 1024px) {
  .dmg-tq .dmg-tq__grid--five { grid-template-columns: minmax(0, 1fr); }
  .dmg-tq .dmg-tq__grid--five > .dmg-tq__card { grid-column: 1 / -1 !important; }
}
@media (max-width: 359px) {   /* the smallest phones: brand names stay inside their cards */
  .dmg-tq .dmg-tq__brand { font-size: 26px; }
  .dmg-tq .dmg-tq__brand--md { font-size: 22px; }
  .dmg-tq .dmg-tq__brand--sm { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .dmg-tq .dmg-tq__slide { transition: none; }
}

/* 22. Service cards: white cards with a hairline, the icon in a small grey circle, a title and one grey line.
       Every Elementor column that holds an Image Box (Home, Our Services, About, the service pages, and any you add).
       A button in the card ("Learn More", "See Packages", "Call For Pricing") becomes a quiet link, and the whole card opens it. */
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) {
  position: relative;
  align-content: flex-start;
  padding: 32px 24px 28px !important;
  background-color: var(--dmg-surface) !important;
  border: 1px solid var(--dmg-line-soft);
  border-radius: 16px !important;
  box-shadow: none !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}
@media (hover: hover) {
  [data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box):hover {
    border-color: var(--dmg-line);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06) !important;
  }
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box,
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box > .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box .elementor-image-box-wrapper { text-align: center !important; }
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box .elementor-image-box-img {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 64px !important;
  height: 64px;
  margin: 0 auto 18px !important;
  background: var(--dmg-surface-alt);
  border-radius: 50% !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box .elementor-image-box-img img {
  width: 34px !important;
  height: 34px !important;
  object-fit: contain;
  border-radius: 0 !important;
  transform: none !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box .elementor-image-box-title {
  margin: 0 0 8px !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
  color: var(--dmg-ink) !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap > .elementor-widget-image-box .elementor-image-box-description {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--dmg-ink-muted) !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) > .elementor-widget-button {
  position: static !important;   /* lets the link below cover the whole card */
  margin: 16px 0 0 !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) > .elementor-widget-button :is(.elementor-widget-container, .elementor-button-wrapper) { position: static !important; }
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) > .elementor-widget-button .elementor-button {
  min-height: 0;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--dmg-ink) !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) > .elementor-widget-button .elementor-button::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 16px;
}
[data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) > .elementor-widget-button .elementor-button-text::after {
  content: "\2192";
  display: inline-block;
  margin-left: 6px;
  transition: transform 0.25s var(--dmg-ease);
}
@media (hover: hover) {
  [data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box):hover > .elementor-widget-button .elementor-button { color: var(--dmg-red-text) !important; }
  [data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box):hover > .elementor-widget-button .elementor-button-text::after { transform: translateX(3px); }
}
@media (max-width: 767px) {
  [data-elementor-type="wp-page"] .elementor-column > .elementor-widget-wrap:has(> .elementor-widget-image-box) { padding: 28px 20px 24px !important; }
}

/* 23. Section intros and grey panels (classes set by dmg.js; nothing changes inside the Elementor editor) ---------
       Intro: the heading on the left, its paragraph on the right. Panel: a group of service cards and its intro in one
       rounded light-grey box. Big grey boxes built in Elementor get the same rounder corners. */
.dmg-intro {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: clamp(32px, 6vw, 96px);
  align-items: start;
}
.dmg-intro > :is(.elementor-element, .dmg-intro__titles) { grid-column: 1 / -1; min-width: 0; }
.dmg-intro > .dmg-intro__title { grid-column: 1; margin: 0 !important; }
.dmg-intro .dmg-intro__heading { width: 100%; margin: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.dmg-intro .dmg-intro__heading + .dmg-intro__heading { margin-top: 14px !important; }
.dmg-intro .dmg-intro__heading + .dmg-intro__heading .elementor-heading-title { color: var(--dmg-ink-muted) !important; }   /* a second line under the title: grey */
.dmg-intro > .dmg-intro__text { grid-column: 2; margin: 0 !important; padding-top: 6px; }
.dmg-intro > .dmg-intro__text:last-child { margin-bottom: 32px !important; }   /* the cards are in the next section */
.dmg-intro > .dmg-intro__text + .elementor-element { margin-top: 48px !important; }
.dmg-intro .dmg-intro__heading .elementor-heading-title { text-align: left !important; }
.dmg-intro .dmg-intro__text,
.dmg-intro .dmg-intro__text :is(p, div, span) { text-align: left !important; }
.dmg-intro .dmg-intro__text { color: var(--dmg-ink-muted); }
.dmg-intro-moved { display: none !important; }

[data-elementor-type="wp-page"] .dmg-panel {
  width: calc(100% - 32px) !important;
  max-width: 1280px;
  margin-right: auto !important;
  margin-left: auto !important;
  padding-right: 24px !important;
  padding-left: 24px !important;
  background-color: var(--dmg-surface-alt) !important;
}
[data-elementor-type="wp-page"] .dmg-panel.elementor-section-stretched { left: auto !important; }
[data-elementor-type="wp-page"] .dmg-panel:not(.dmg-panel--first) { margin-top: 0 !important; }
[data-elementor-type="wp-page"] .dmg-panel:not(.dmg-panel--last) { margin-bottom: 0 !important; }
[data-elementor-type="wp-page"] .dmg-panel--first {
  margin-top: 40px !important;
  padding-top: 72px !important;
  border-top-left-radius: 40px;
  border-top-right-radius: 40px;
}
[data-elementor-type="wp-page"] .dmg-panel--last {
  margin-bottom: 40px !important;
  padding-bottom: 72px !important;
  border-bottom-right-radius: 40px;
  border-bottom-left-radius: 40px;
}
.dmg-panel-wrap { border-radius: 32px !important; }
@media (max-width: 767px) {
  .dmg-intro { grid-template-columns: minmax(0, 1fr); }
  .dmg-intro > :is(.elementor-element, .dmg-intro__titles) { grid-column: 1 !important; grid-row: auto !important; }
  .dmg-intro > .dmg-intro__text { padding-top: 12px; }
  .dmg-intro .dmg-intro__heading .elementor-heading-title,
  .dmg-intro .dmg-intro__text,
  .dmg-intro .dmg-intro__text :is(p, div, span) { text-align: center !important; }   /* heading and paragraph centred on phones */
  .dmg-intro > .dmg-intro__text + .elementor-element { margin-top: 32px !important; }
  [data-elementor-type="wp-page"] .dmg-panel { width: calc(100% - 16px) !important; padding-right: 6px !important; padding-left: 6px !important; }
  [data-elementor-type="wp-page"] .dmg-panel--first { margin-top: 24px !important; padding-top: 44px !important; border-top-left-radius: 28px; border-top-right-radius: 28px; }
  [data-elementor-type="wp-page"] .dmg-panel--last { margin-bottom: 24px !important; padding-bottom: 44px !important; border-bottom-right-radius: 28px; border-bottom-left-radius: 28px; }
  .dmg-panel-wrap { border-radius: 24px !important; }
}

/* 24. GPS Flyer Distribution: the four photo + text rows take turns (photo left, right, left, right), clean text -- */
.elementor-element-bcb64cc .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { color: var(--dmg-ink-muted) !important; }
.elementor-element-bcb64cc .elementor-widget-heading:has(+ .elementor-inner-section) { margin-bottom: 56px !important; }
.elementor-element-bcb64cc .elementor-inner-section { margin-bottom: 72px; }
.elementor-element-bcb64cc .elementor-inner-section:last-child { margin-bottom: 0; }
.elementor-element-bcb64cc .elementor-inner-section > .elementor-container { align-items: center; }
.elementor-element-bcb64cc .elementor-inner-section .elementor-column:has(.elementor-widget-text-editor) > .elementor-widget-wrap { align-content: center; }
.elementor-element-bcb64cc .elementor-inner-section .elementor-heading-title {
  font-size: 28px !important;
  line-height: 1.2 !important;
  text-align: left !important;
  color: var(--dmg-ink) !important;
}
.elementor-element-bcb64cc .elementor-inner-section .elementor-widget-heading { margin-bottom: 14px !important; }
.elementor-element-bcb64cc .elementor-inner-section .elementor-widget-text-editor,
.elementor-element-bcb64cc .elementor-inner-section .elementor-widget-text-editor :is(p, span, div) {
  font-size: 16px !important;
  line-height: 1.7 !important;
  text-align: left !important;
  color: var(--dmg-ink-muted) !important;
}
@media (min-width: 768px) {
  .elementor-element-dfa6948 > .elementor-container,
  .elementor-element-9dc0654 > .elementor-container { flex-direction: row-reverse; }
  .elementor-element-bcb64cc .elementor-inner-section .elementor-column:has(.elementor-widget-text-editor) > .elementor-widget-wrap { padding: 0 0 0 56px !important; }
  :is(.elementor-element-dfa6948, .elementor-element-9dc0654) .elementor-column:has(.elementor-widget-text-editor) > .elementor-widget-wrap { padding: 0 56px 0 0 !important; }
}
@media (max-width: 767px) {
  .elementor-element-bcb64cc .elementor-inner-section { margin-bottom: 48px; }
  .elementor-element-bcb64cc .elementor-inner-section .elementor-column:has(.elementor-widget-text-editor) > .elementor-widget-wrap { padding: 24px 4px 0 !important; }
  .elementor-element-bcb64cc .elementor-inner-section .elementor-heading-title { font-size: 22px !important; }
}

/* 25. Contact page: intro, ways to reach us, offices in a grey panel, follow us (paste dmg-contact.html into an
       HTML widget); the Google map below it becomes a rounded, inset card ------------------------------------ */
.elementor-section:has(.dmg-contact) > .elementor-container { flex-wrap: wrap; }
.elementor-column:has(.dmg-contact),
.elementor-widget:has(.dmg-contact) { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.dmg-contact { max-width: 1120px; margin: 0 auto; padding: 64px 0 24px; text-align: left; }
.dmg-contact ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.dmg-contact li { margin: 0 !important; }
.dmg-contact .dmg-contact__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: clamp(32px, 6vw, 96px);
  align-items: start;
  margin-bottom: 48px;
}
.dmg-contact .dmg-contact__title {
  margin: 0;
  font-size: clamp(30px, 3.4vw, 40px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--dmg-ink);
}
.dmg-contact .dmg-contact__sub { display: block; color: var(--dmg-ink-muted); }
.dmg-contact .dmg-contact__lede { margin: 0; padding-top: 6px; font-size: 16px; line-height: 1.7; color: var(--dmg-ink-muted); }
.dmg-contact .dmg-contact__ways { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.dmg-contact .dmg-contact__way,
.dmg-contact .dmg-contact__office {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
  padding: 28px 24px;
  background: var(--dmg-surface);
  border: 1px solid var(--dmg-line-soft);
  border-radius: 16px;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.dmg-contact .dmg-contact__way { gap: 4px; color: inherit; text-decoration: none !important; }
.dmg-contact .dmg-contact__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
  background: var(--dmg-surface-alt);
  border-radius: 50%;
}
.dmg-contact .dmg-contact__icon svg { width: 24px; height: 24px; fill: none; stroke: var(--dmg-red); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dmg-contact .dmg-contact__label { font-size: 13px; line-height: 1.4; color: var(--dmg-ink-muted); }
.dmg-contact .dmg-contact__value { font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--dmg-ink); overflow-wrap: anywhere; transition: color 0.2s ease; }
@media (hover: hover) {
  .dmg-contact .dmg-contact__way:hover,
  .dmg-contact .dmg-contact__office:hover { border-color: var(--dmg-line); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06); }
  .dmg-contact .dmg-contact__way:hover .dmg-contact__value { color: var(--dmg-red-text); }
}
.dmg-contact .dmg-contact__panel { margin-top: 72px; padding: 72px clamp(20px, 5vw, 64px) 48px; background: var(--dmg-surface-alt); border-radius: 40px; }
.dmg-contact .dmg-contact__intro--panel { margin-bottom: 40px; }
.dmg-contact .dmg-contact__offices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.dmg-contact .dmg-contact__office h3 { margin: 0 0 8px; font-size: 17px; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; color: var(--dmg-ink); }
.dmg-contact .dmg-contact__office p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--dmg-ink-muted); }
.dmg-contact .dmg-contact__office .dmg-contact__links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: auto; padding-top: 18px; }
.dmg-contact .dmg-contact__links a { font-size: 14px; font-weight: 500; color: var(--dmg-ink) !important; text-decoration: none !important; transition: color 0.2s ease; }
.dmg-contact .dmg-contact__links a:hover { color: var(--dmg-red-text) !important; }
.dmg-contact .dmg-contact__social {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--dmg-line);
}
.dmg-contact .dmg-contact__social p { margin: 0; font-size: 14px; font-weight: 500; color: var(--dmg-ink); }
.dmg-contact .dmg-contact__social ul { display: flex; gap: 10px; }
.dmg-contact .dmg-contact__social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  color: var(--dmg-ink) !important;
  background: var(--dmg-surface);
  border: 1px solid var(--dmg-line-soft);
  border-radius: 50%;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.dmg-contact .dmg-contact__social a:hover { color: var(--dmg-red-text) !important; border-color: var(--dmg-line); }
.dmg-contact .dmg-contact__social svg { width: 18px; height: 18px; fill: currentColor; }
/* the Google map under it */
.elementor-element-54d54f7 {
  width: calc(100% - 32px) !important;
  max-width: 1120px;
  margin: 24px auto 96px !important;
  overflow: hidden;
  border-radius: 28px;
}
.elementor-element-54d54f7 > .elementor-container { max-width: none !important; }
.elementor-element-54d54f7 :is(.elementor-column, .elementor-widget-wrap) { padding: 0 !important; }
.elementor-element-54d54f7 iframe { display: block; }
@media (max-width: 1024px) {
  .dmg-contact { padding-top: 64px; }
  .dmg-contact .dmg-contact__ways { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dmg-contact .dmg-contact__offices { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .dmg-contact { padding: 48px 0 8px; }
  .dmg-contact .dmg-contact__intro { grid-template-columns: minmax(0, 1fr); margin-bottom: 32px; }
  .dmg-contact .dmg-contact__lede { padding-top: 12px; }
  .dmg-contact :is(.dmg-contact__title, .dmg-contact__lede) { text-align: center; }
  .dmg-contact .dmg-contact__ways { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .dmg-contact .dmg-contact__way {   /* icon beside the words */
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-content: center;
    column-gap: 16px;
    row-gap: 2px;
    padding: 18px 20px;
  }
  .dmg-contact .dmg-contact__way .dmg-contact__icon { grid-row: 1 / span 2; margin: 0; }
  .dmg-contact .dmg-contact__way .dmg-contact__label { align-self: end; }
  .dmg-contact .dmg-contact__way .dmg-contact__value { align-self: start; }
  .dmg-contact .dmg-contact__panel { margin-top: 48px; padding: 44px 16px 32px; border-radius: 28px; }
  .dmg-contact .dmg-contact__social { flex-direction: column; align-items: flex-start; }
  .elementor-element-54d54f7 { width: calc(100% - 16px) !important; margin: 16px auto 64px !important; border-radius: 20px; }
}

/* 26. Small content helpers (set by dmg.js) ------------------------------------------------------------------ */
.dmg-nowrap { white-space: nowrap; }   /* e.g. "Punjab / Cash & Carry" breaks only before "Cash" */
.dmg-blog-fallback { display: block; width: 100%; height: auto; aspect-ratio: 930 / 620; object-fit: cover; }   /* blog card photo for posts without a featured image */

/* 27. Blog page: light banner with topic pills, "Latest posts", calm cards three across ---------------------------
   From the reference the owner sent on 7 Nov. Only on the Blog page (page 2108); other post grids keep section 7.
   The cards restyle straight away; the pills, the heading, "N min read" and the byline are added by dmg.js. */

/* the banner: no photo, a soft grey with a fine grain that fades to white, dark words in the middle */
body.page-id-2108 .elementor-element.elementor-element-6735b7a {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0) 45%, #ffffff 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.137 0 0 0 0 0.122 0 0 0 0 0.125 0.3 0 0 0 -0.11'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"),
    linear-gradient(180deg, #f3f3f5 0%, #f8f8fa 100%) !important;
  padding: clamp(56px, 7.5vw, 104px) 20px clamp(48px, 6vw, 88px) !important;
  margin: 0 !important;
}
body.page-id-2108 .elementor-element-6735b7a > :is(.elementor-background-overlay, .elementor-motion-effects-container) { display: none !important; }
/* the words were nudged down to sit in the middle of the photo (section 19); the light banner doesn't need it */
body.page-id-2108 .elementor-element-6735b7a > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget { transform: none; }
body.page-id-2108 .elementor-element-6735b7a .elementor-heading-title {
  color: var(--dmg-ink) !important;
  font-size: clamp(44px, 7vw, 72px) !important;
  line-height: 1.04 !important;
  font-weight: 600 !important;
  letter-spacing: -0.035em !important;
}
body.page-id-2108 .elementor-element-6735b7a .elementor-widget-text-editor { margin: 16px 0 0 !important; }
body.page-id-2108 .elementor-element-6735b7a .elementor-widget-text-editor,
body.page-id-2108 .elementor-element-6735b7a .elementor-widget-text-editor :is(p, span) {
  color: var(--dmg-ink-muted) !important;
  font-size: clamp(16px, 1.6vw, 18px) !important;
  line-height: 1.5 !important;
}
body.page-id-2108 .elementor-element-6735b7a .elementor-widget-text-editor p:last-child { margin-bottom: 0 !important; }

/* topic pills under the intro: white, hairline, the chosen one dark */
@keyframes dmg-chips-in { from { opacity: 0; transform: translate3d(0, 12px, 0); } }
.dmg-blog-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 820px;
  margin: 32px auto 0;
  animation: dmg-chips-in 0.7s var(--dmg-ease) 0.6s both;
}
.dmg-blog-chip {
  -webkit-appearance: none;
  appearance: none;
  min-height: 38px;
  margin: 0 !important;
  padding: 9px 15px !important;
  font: 500 14px/1.2 var(--dmg-font) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--dmg-ink) !important;
  background: var(--dmg-surface) !important;
  border: 1px solid var(--dmg-line) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
  cursor: pointer;
  transition: background-color 0.2s var(--dmg-ease), border-color 0.2s var(--dmg-ease), color 0.2s var(--dmg-ease);
}
.dmg-blog-chip:hover { border-color: var(--dmg-line-strong) !important; background: var(--dmg-surface) !important; color: var(--dmg-ink) !important; }
.dmg-blog-chip[aria-pressed="true"] { background: var(--dmg-ink) !important; border-color: var(--dmg-ink) !important; color: #ffffff !important; }
.dmg-blog-chip:focus-visible { outline: 2px solid var(--dmg-focus) !important; outline-offset: 2px !important; }

/* the posts section: "Latest posts" on the left, then the grid */
body.page-id-2108 .elementor-element-2a6ddf8 { padding: clamp(32px, 4vw, 56px) 0 clamp(64px, 8vw, 112px) !important; margin: 0 !important; }
.dmg-blog-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
  margin: 0 0 clamp(24px, 3.5vw, 40px);
  scroll-margin-top: 120px;
}
.dmg-blog-head__title {
  margin: 0 !important;
  color: var(--dmg-ink) !important;
  font-size: clamp(28px, 4vw, 40px) !important;
  line-height: 1.1 !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em !important;
}
.dmg-blog-head__count { color: var(--dmg-ink-muted); font-size: 15px; }
.dmg-blog-head__all {
  -webkit-appearance: none;
  appearance: none;
  margin: 0 0 0 auto !important;
  padding: 6px 0 !important;
  font: 500 15px/1.2 var(--dmg-font) !important;
  color: var(--dmg-red-text) !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.dmg-blog-head__all[hidden] { display: none !important; }

/* the grid: three across, two on tablets, one on phones (the plugin's widths and forced heights are switched off) */
body.page-id-2108 .premium-blog-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 24px;
  margin: 0 !important;
  height: auto !important;
}
body.page-id-2108 .premium-blog-wrap > .premium-blog-post-outer-container {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  left: auto !important;
  top: auto !important;
}
body.page-id-2108 .premium-blog-wrap > .premium-blog-post-outer-container.dmg-blog-hide { display: none !important; }

/* a card: light grey with a hairline, the photo inset with rounded corners, the whole card opens the post */
body.page-id-2108 .premium-blog-post-container {
  position: relative;
  display: flex !important;
  flex-direction: column;
  height: 100%;
  padding: 8px !important;
  background: var(--dmg-surface-alt) !important;
  border: 1px solid var(--dmg-line-soft) !important;
  border-radius: var(--dmg-radius-lg) !important;
  box-shadow: none !important;
  overflow: hidden;
  transition: border-color 0.3s var(--dmg-ease);
}
@media (hover: hover) {
  body.page-id-2108 .premium-blog-post-container:hover { border-color: var(--dmg-line) !important; }
}
body.page-id-2108 .premium-blog-post-container:has(.premium-blog-entry-title a:focus-visible) { outline: 2px solid var(--dmg-focus); outline-offset: 3px; }
body.page-id-2108 .premium-blog-thumb-effect-wrapper {
  position: relative;
  flex: none;
  height: auto !important;
  border-radius: 14px;
  overflow: hidden;
  isolation: isolate;
}
body.page-id-2108 .premium-blog-thumbnail-container { height: auto !important; }
body.page-id-2108 .premium-blog-thumbnail-container img {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 2;
  object-fit: cover !important;
}
body.page-id-2108 .premium-blog-effect-container { display: none !important; }

/* the words: date · read time, title, three lines of intro, then the byline at the bottom */
body.page-id-2108 .premium-blog-content-wrapper {
  display: flex !important;
  flex-direction: column;
  flex: 1 1 auto;
  position: static !important;
  top: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 16px 10px 8px !important;
  background: none !important;
  box-shadow: none !important;
  text-align: start !important;
}
body.page-id-2108 .premium-blog-inner-container { display: contents !important; }
body.page-id-2108 .premium-blog-entry-meta {
  order: 1;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 8px;
  margin: 0 0 10px !important;
  color: var(--dmg-ink) !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}
body.page-id-2108 .premium-blog-entry-meta :is(.premium-blog-meta-separator, i) { display: none !important; }
body.page-id-2108 .premium-blog-entry-meta :is(.premium-blog-post-time, span) { color: inherit !important; font-size: inherit !important; }
.dmg-blog-read::before { content: "\2022"; margin-right: 8px; }
body.page-id-2108 .premium-blog-entry-title {
  order: 2;
  margin: 0 0 8px !important;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
body.page-id-2108 :is(.premium-blog-entry-title, .premium-blog-entry-title a) {
  color: var(--dmg-ink) !important;
  font-size: 20px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
}
body.page-id-2108 .premium-blog-entry-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: var(--dmg-radius-lg); }
body.page-id-2108 .premium-blog-entry-title a:focus-visible { outline: none; }
body.page-id-2108 .premium-blog-content-inner-wrapper { order: 3; margin: 0 !important; padding: 0 !important; }
body.page-id-2108 .premium-blog-post-content {
  margin: 0 !important;
  color: var(--dmg-ink-muted) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.dmg-blog-by {
  order: 4;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: auto 0 0 !important;
  padding-top: 18px;
  color: var(--dmg-ink);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}
.dmg-blog-by img { flex: none; width: 36px; height: 36px; border-radius: 10px; }

@media (max-width: 1024px) {
  body.page-id-2108 .premium-blog-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
}
@media (max-width: 640px) {
  body.page-id-2108 .premium-blog-wrap { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  body.page-id-2108 :is(.premium-blog-entry-title, .premium-blog-entry-title a) { font-size: 19px !important; }
  .dmg-blog-chips { gap: 8px; margin-top: 24px; }
  .dmg-blog-chip { min-height: 36px; padding: 8px 12px !important; font-size: 13px !important; }
  .dmg-blog-head { scroll-margin-top: 90px; }
}

/* 13. Reduced motion: no movement for people who ask their device for less ---------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .dmg-reveal { opacity: 1 !important; transform: none !important; }
  .dmg-js [data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-heading-title,
  .dmg-js [data-elementor-type="wp-page"] > .elementor-section:first-child .elementor-widget,
  .dmg-split .dmg-word { opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
