/* Dodo visual polish — load after existing page and footer widget styles.
   Component-only overrides; retain grids, visibility states and JS hooks. */
:root {
  --dodo-polish-shadow: 0 8px 24px rgba(15, 23, 42, .07);
  --dodo-polish-shadow-hover: 0 12px 30px rgba(15, 23, 42, .11);
  --dodo-polish-font: "Euclid Circular B", "Segoe UI", Arial, sans-serif;
}

/* Replace the legacy serif headings without touching icon font families. */
.main-hero .container .hero-text h1,
.main-hero .container .hero-text h2,
.section-title .title,
.section-title h2,
.section-title h3,
.page-head .container h1,
.inner-page .page-content h2,
.inner-page .page-content h3,
.performance .performance-item h4 {
  font-family: var(--dodo-polish-font);
  letter-spacing: -.025em;
}

.dodo-hero-pro__main {
  border-radius: 20px 20px 0 0;
  box-shadow: var(--dodo-polish-shadow);
}
.dodo-hero-aside-card {
  border-radius: 18px;
  box-shadow: var(--dodo-polish-shadow);
}
.dodo-hero-aside-card:hover { box-shadow: var(--dodo-polish-shadow-hover); }
.dodo-ai-fab,
.cloudn-footer__fab { box-shadow: 0 6px 18px rgba(15, 23, 42, .2); }
body.mobile-nav-open .dodo-ai-fab,
body.mobile-nav-open .cloudn-footer__fab,
body.mobile-nav-open .dodo-cw-stack {
  visibility: hidden;
  pointer-events: none;
}
.pricing-suite .pricing-card,
.linux-hosting-pricing .pricing-card {
  box-shadow: var(--dodo-polish-shadow) !important;
}
.pricing-suite .pricing-card__cta,
.linux-hosting-pricing .pricing-card__cta {
  min-height: 48px;
  border-radius: 12px !important;
  font-size: 14px !important;
  font-weight: 700;
  letter-spacing: .025em !important;
  line-height: 1.3;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .14) !important;
}
.pricing-suite .pricing-card__cta:hover,
.linux-hosting-pricing .pricing-card__cta:hover {
  box-shadow: 0 8px 20px rgba(15, 23, 42, .18) !important;
}
.promo-services .promo-box,
.dbd-srv-pricing-card,
.dbd-srv-mail-card,
.dbd-srv-game-card,
.dbd-host-needdifferent__card {
  box-shadow: var(--dodo-polish-shadow);
}
.promo-services .promo-box:hover {
  box-shadow: var(--dodo-polish-shadow-hover);
  transform: translateY(-3px);
}

/* Mail page has no unique hero class; use its existing SEO heading ID. */
body:has(#mh-seo-intro-title) .main-hero .hero-text h1 {
  font-size: 38px; line-height: 1.18; margin-bottom: 18px;
}
body:has(#mh-seo-intro-title) .main-hero .hero-text h2 {
  font-size: 26px; line-height: 1.28; margin-bottom: 14px;
}
body:has(#mh-seo-intro-title) .main-hero .hero-text p {
  font-size: 17px; line-height: 1.65;
}
.contact-hero-section { padding: 64px 0 48px; }
.contact-hero-subtitle { margin-bottom: 0; line-height: 1.6; }
.contact-map-container { margin-top: 32px; }
.contact-map { height: 320px; margin-bottom: 24px; box-shadow: var(--dodo-polish-shadow); }
.contact-map .contact-map-iframe { height: 320px; }
.contact-section { padding: 40px 0 64px; }
.contact-form-card,
.contact-info-card { padding: 36px; box-shadow: var(--dodo-polish-shadow); }
.dbd-server-seointro { padding: 24px 0 12px; }
.dbd-server-seointro__card { padding: 20px 24px; }
.dbd-server-seointro__text { line-height: 1.65; }

/* Compact desktop tools retain all three labels and existing actions. */
@media (min-width: 821px) {
  .dodo-cw-stack { gap: 8px; }
  .dodo-cw-pill { min-height: 48px; padding: 8px 14px 8px 10px; gap: 8px; }
  .dodo-cw-pill__icon,
  .dodo-cw-pill__icon img,
  .dodo-cw-wheel,
  .dodo-cw-pill--assist .dodo-cw-assist-ic { width: 30px; height: 30px; }
  .dodo-cw-pill__text strong { font-size: 12px; line-height: 1.3; letter-spacing: 0; }
  .dodo-cw-pill__text span { font-size: 10.5px; line-height: 1.35; }
  .dodo-cw-pill { box-shadow: 0 6px 18px rgba(15, 23, 42, .16); }
  .dodo-cw-pill:hover { transform: translateY(-2px); }
}

/* Keep consent above support buttons, and tool dialogs above site chrome. */
#cookieBanner.cookie-banner { z-index: 1000010; }
.dodo-cw-ovl { z-index: 1000020; overflow-y: auto; overscroll-behavior: contain; }
.dodo-cw-ai-pop,
.dodo-cw-pa-box {
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.dodo-ai-panel {
  max-height: min(520px, calc(100vh - 160px));
  max-height: min(520px, calc(100dvh - 160px));
}
@media (min-width: 821px) and (max-height: 760px) {
  .dodo-cw-ovl--ai { padding: 20px; align-items: center; }
}
@media (max-width: 767px) {
  /* IDs deliberately outrank the existing hosting :has() placement rules. */
  body #dodoAiFab {
    left: auto;
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: calc(82px + env(safe-area-inset-bottom, 0px));
  }
  body #dodoAiPanel {
    left: auto;
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: calc(140px + env(safe-area-inset-bottom, 0px));
    width: min(380px, calc(100vw - 32px));
    max-height: calc(100vh - 160px - env(safe-area-inset-bottom, 0px));
    max-height: calc(100dvh - 160px - env(safe-area-inset-bottom, 0px));
  }
  .contact-hero-section { padding: 40px 0 32px; }
  .contact-map-container { margin-top: 24px; }
  .contact-section { padding: 24px 0 40px; }
  .contact-form-card,
  .contact-info-card { padding: 24px; }
  .dbd-server-seointro__card { padding: 18px; }
}
@media (max-width: 480px) {
  body:has(#mh-seo-intro-title) .main-hero .hero-text h1 { font-size: 30px; }
  body:has(#mh-seo-intro-title) .main-hero .hero-text h2 { font-size: 23px; }
}

/* Restore a clear keyboard focus indicator only on the touched controls. */
.dodo-hero-pro__cta:focus-visible,
.dodo-hero-aside-card:focus-visible,
.pricing-card__cta:focus-visible,
.pricing-card__renewal:focus-visible,
.dbd-srv-pricing-card:focus-visible,
.dodo-cw-pill:focus-visible,
.dodo-cw-launcher:focus-visible,
.dodo-cw-ai-close:focus-visible,
.dodo-cw-ai-branch:focus-visible,
.dodo-cw-pa-opt:focus-visible,
.dodo-cw-pa-nav button:focus-visible,
.dodo-ai-fab:focus-visible,
.dodo-ai-panel__close:focus-visible,
.cloudn-footer__fab:focus-visible,
#acw-toolbar-toggle:focus-visible,
.cookie-button:focus-visible {
  outline: 3px solid #2563eb;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .dodo-cw-pill,
  .dodo-cw-pill__icon::before,
  .dodo-cw-pill__text span,
  .dodo-cw-wheel,
  .dodo-cw-pill--assist::before,
  .dodo-cw-ai-pop,
  .dodo-cw-pa-box,
  .pricing-card-frame,
  .dodo-hero-aside-card,
  .dodo-ai-fab,
  .dodo-ai-panel,
  .cloudn-footer__fab,
  .promo-services .promo-box { animation: none !important; transition: none !important; }
  .dodo-cw-pill:hover,
  .promo-services .promo-box:hover,
  .dodo-hero-aside-card:hover,
  .pricing-card-frame:hover,
  .pricing-card-frame:focus-within { transform: none !important; }
}

/* Local proposal only. Load after the existing header/homepage styles.
 * Grounded in home.html and the linked cloudn-topbar.css,
 * homepage-live-stats-band.css, dodo-promo-bar.css and homepage-inline.css.
 * Retains the existing content, responsive visibility and menu behavior.
 * cloudn-header.js calculates mega-menu top from nav.getBoundingClientRect()
 * and observes menuTopFix with ResizeObserver; do not hard-code that offset.
 */

/* Desktop: trim whitespace without changing nav height, logo or link metrics. */
@media (min-width: 992px) {
  .cnb-topbar__inner {
    padding-top: 8px;
    padding-bottom: 8px;
    column-gap: 24px;
    row-gap: 12px;
  }

  .cnb-topbar__links {
    column-gap: 14px;
    row-gap: 10px;
  }

  .dodo-promo-bar__inner {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}

/* Existing upper bands have independent mobile breakpoints (991/767px). */
@media (max-width: 991px) {
  .cnb-topbar__inner {
    padding-top: 6px;
    padding-bottom: 6px;
    gap: 6px;
  }

  .cnb-topbar__group,
  .cnb-topbar__links {
    gap: 6px;
  }

  .cnb-topbar__leftGroup,
  .cnb-topbar__rightGroup {
    padding: 4px 12px;
    gap: 10px;
  }

  /* Keep the phone/contact row comfortably clickable while reducing its box. */
  .cnb-topbar__leftGroup > .cnb-topbar__link {
    min-height: 32px;
    line-height: 1.35;
  }

  /* Keep cart, currency, notification and language controls at current size. */
  .dodo-promo-bar__inner {
    padding-top: 6px;
    padding-bottom: 6px;
    gap: 6px;
  }

  .dodo-promo-bar__content {
    gap: 8px;
  }

  .dodo-promo-bar__right {
    gap: 10px;
  }
}

@media (max-width: 767px) {
  .dodo-live-band__row--stats {
    padding-top: 4px;
    padding-bottom: 4px;
    gap: 4px 8px;
  }

  .dodo-live-band__chips {
    gap: 4px 6px;
  }

  .dodo-live-band__chip {
    padding: 3px 8px;
  }

  .dodo-live-band__row--ticker {
    min-height: 24px;
  }

  .dodo-live-band__marquee-track {
    padding-top: 4px;
    padding-bottom: 4px;
  }
}

/* Override inherited paragraph/link metrics explicitly, not just the parent. */
.news-bar {
  font-size: 16px;
  line-height: 1.5;
  padding: 6px 0;
}

.news-bar .news-content > p,
.news-bar .news-bar-link {
  font-size: inherit;
  line-height: inherit;
}

.news-bar .news-content > p {
  margin: 0;
}

@media (max-width: 600px) {
  .news-bar {
    font-size: 14px;
    line-height: 1.45;
    padding: 5px 0;
  }
}

/* Review at 390px and 1920px after integration. No measured after-heights yet.
 * Verify all topbar controls, full promo copy and countdown, sticky transition,
 * and desktop mega-menu hover bridge. No overflow:hidden or height caps added.
 */
