@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ===== Global font: Plus Jakarta Sans (cleaner, lighter, great on mobile) ===== */
.elementor-16, .elementor-16 .elementor-widget,
.elementor-16 h1, .elementor-16 h2, .elementor-16 h3, .elementor-16 h4, .elementor-16 h5, .elementor-16 h6,
.elementor-16 p, .elementor-16 a, .elementor-16 span, .elementor-16 div, .elementor-16 button, .elementor-16 input, .elementor-16 select, .elementor-16 textarea,
.dh-book, .dh-book * {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* Hide theme default page title */
.page-header{ display:none !important; }

/* Motion flourishes not exposed by free Elementor */
@keyframes dhFloat{ 0%,100%{ transform: translateY(0px); } 50%{ transform: translateY(-14px); } }
@keyframes dhPulse{ 0%,100%{ transform: scale(1); opacity:.55; } 50%{ transform: scale(1.25); opacity:.15; } }

#dh-hero-circle{ animation: dhFloat 6s ease-in-out infinite; }
#dh-hero-badges .elementor-widget-icon-box{ animation: dhFloat 6s ease-in-out infinite; }
#dh-hero-badges .elementor-widget-icon-box:nth-child(2){ animation-delay: 1s; }
#dh-hero-badges .elementor-widget-icon-box:nth-child(3){ animation-delay: 2s; }

#dh-locations-grid .elementor-icon{ position: relative; }
#dh-locations-grid .elementor-icon:after{
  content:''; position:absolute; inset:-8px; border-radius:50%; background:rgba(255,255,255,.5);
  animation: dhPulse 2.2s ease-out infinite; z-index:-1;
}

/* Card hover lift */
#dh-services-grid > .e-con,
#dh-why-grid > .e-con,
#dh-awards-row > .e-con,
#dh-locations-grid > .e-con {
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease;
}
#dh-services-grid > .e-con:hover,
#dh-why-grid > .e-con:hover,
#dh-awards-row > .e-con:hover,
#dh-locations-grid > .e-con:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 44px rgba(11,99,246,.16) !important;
}

/* Scroll-reveal entrance for native sections */
@keyframes dhReveal{ from{ opacity:0; transform: translateY(26px); } to{ opacity:1; transform: translateY(0); } }
#dh-services-grid > .e-con,
#dh-why-grid > .e-con,
#dh-locations-grid > .e-con,
#dh-awards-row > .e-con{ animation: dhReveal .7s cubic-bezier(.2,.8,.2,1) both; }

/* ===== Tablet ===== */
@media(max-width: 1024px){
  #dh-hero-inner{ flex-direction: column !important; text-align:center; }
  #dh-hero-left, #dh-hero-right{ width:100% !important; align-items:center !important; text-align:center; }
  #dh-hero-left .elementor-widget-text-editor{ max-width:560px; margin-left:auto; margin-right:auto; }
  #dh-services-grid > .e-con, #dh-why-grid > .e-con { width: 46% !important; }
  #dh-locations-grid > .e-con { width: 46% !important; }
}

/* ===== Mobile ===== */
@media(max-width: 720px){
  #dh-hero{ padding-top:48px !important; padding-bottom:44px !important; position:relative; overflow:hidden; }
  #dh-services-grid > .e-con,
  #dh-why-grid > .e-con,
  #dh-awards-row > .e-con,
  #dh-locations-grid > .e-con { width: 100% !important; }
  #dh-hero-left .elementor-button{ width:100%; justify-content:center; }

  /* Lighter type scale on mobile so it doesn't feel heavy */
  .elementor-16 .elementor-heading-title{ letter-spacing:-0.01em !important; }
  #dh-hero-left h1.elementor-heading-title{ font-size:34px !important; font-weight:700 !important; line-height:1.15 !important; }
  .elementor-16 h2.elementor-heading-title{ font-size:27px !important; font-weight:700 !important; }
  .elementor-16 h3.elementor-heading-title{ font-weight:700 !important; }
  .elementor-16 .elementor-heading-title[class]{ font-weight:700 !important; }

  /* ===== Hero tooth circle -> soft background watermark on mobile ===== */
  #dh-hero-right{ position:absolute !important; inset:0; width:100% !important; height:100%; margin:0 !important; pointer-events:none; z-index:0; }
  #dh-hero-left{ position:relative; z-index:2; }
  #dh-hero-circle{
    position:absolute !important;
    top:-40px; right:-70px;
    width:240px !important; min-height:240px !important;
    background:none !important; box-shadow:none !important;
    opacity:0.10; animation:none !important;
  }
  #dh-hero-circle .elementor-icon{ color:#0B63F6 !important; }
  #dh-hero-circle .elementor-icon i, #dh-hero-circle .elementor-icon svg{ font-size:240px !important; width:240px !important; height:240px !important; fill:#0B63F6 !important; }
  /* Hide the floating award badge cards on mobile (they clutter) */
  #dh-hero-badges{ display:none !important; }
}

/* Tap targets */
.elementor-button{ min-height:44px; }