/*
 * Dr. Snow Elementor Kit presentation layer
 * -------------------------------------------
 * Content, links, prices, headings, images, and layout containers remain
 * editable in Elementor. This stylesheet only supplies the brand-specific
 * responsive grid behavior and decorative details that Elementor Free cannot
 * express reliably across imported sites.
 */

:root {
  --ds-navy: #071c33;
  --ds-navy-2: #0d3158;
  --ds-blue: #0877d0;
  --ds-blue-dark: #075fa6;
  --ds-green: #1d8b55;
  --ds-orange: #e17628;
  --ds-snow: #f3f8fc;
  --ds-ice: #e6f3fb;
  --ds-ink: #112b42;
  --ds-muted: #53697d;
  --ds-line: #d5e1ea;
  --ds-white: #fff;
}

html { scroll-behavior: auto; }
body { overflow-x: hidden; color: var(--ds-ink); }
.elementor img, .elementor svg { max-width: 100%; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ds-section-heading { max-width: 760px; }
.ds-eyebrow p { margin: 0; }
.ds-section { background: var(--ds-white); }
.ds-snow { background: var(--ds-snow); }
.ds-ice { background: var(--ds-ice); }
.elementor .ds-dark { color: var(--ds-white); background-color: #071c33 !important; background-image: linear-gradient(135deg, #06162b, #0d3158) !important; }
.ds-dark a { color: #9ed7ff; }
.ds-centered { text-align: center; align-items: center; }

/* Native Elementor containers become brand grids without locking their content. */
.ds-grid > .e-con-inner,
.ds-grid.e-con-full { display: grid; gap: 22px; align-items: stretch; }
.ds-grid-2 > .e-con-inner,
.ds-grid-2.e-con-full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ds-grid-3 > .e-con-inner,
.ds-grid-3.e-con-full { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-grid-5 > .e-con-inner,
.ds-grid-5.e-con-full { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; }
.ds-two-col > .e-con-inner,
.ds-two-col.e-con-full { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); gap: 64px; align-items: center; }

/* Buttons and interactive focus. */
.elementor-widget-button .elementor-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; }
.elementor-widget-button .elementor-button:hover { filter: brightness(.9); }
.elementor a:focus-visible,
.elementor button:focus-visible,
.elementor [role="button"]:focus-visible { outline: 3px solid #f7b955; outline-offset: 4px; }
.ds-button-row > .e-con-inner,
.ds-button-row.e-con-full { display: flex; flex-flow: row wrap; gap: 12px; }
.ds-button-row.ds-centered > .e-con-inner { justify-content: center; }

/* Global header/footer from Ultimate Addons for Elementor. */
.ds-global-header { position: relative; z-index: 100; color: var(--ds-white); background: var(--ds-navy); border-bottom: 1px solid rgba(255,255,255,.12); }
.ds-global-header > .e-con-inner { min-height: 86px; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; }
.ds-global-header .elementor-widget-image { flex: 0 0 auto; }
.ds-global-header .ds-header-socials-desktop { flex: 0 0 auto; }
.ds-header-socials-mobile { display: none; }
.ds-contact-socials .elementor-social-icon { min-width: 40px; min-height: 40px; color: var(--ds-white); background: var(--ds-navy-2); border: 1px solid rgba(143,210,255,.55); transition: color .16s ease, background-color .16s ease, border-color .16s ease, transform .16s ease; }
.ds-contact-socials .elementor-social-icon:hover,
.ds-contact-socials .elementor-social-icon:focus-visible { color: var(--ds-navy); background: var(--ds-white); border-color: var(--ds-white); transform: translateY(-1px); }
.ds-global-header .elementor-widget-navigation-menu { flex: 1 1 auto; }
.ds-global-header .elementor-widget-dr-snow-navigation { flex: 1 1 auto; min-width: 0; }
.dr-snow-free-nav { position: relative; }
.dr-snow-free-nav__desktop-list,
.dr-snow-free-nav__mobile-list { padding: 0; margin: 0; list-style: none; }
.dr-snow-free-nav__desktop-list { display: flex; align-items: center; justify-content: flex-end; gap: 22px; }
.dr-snow-free-nav__desktop a { color: #dbe9f4; font-size: 14px; font-weight: 800; line-height: 1.3; text-decoration: none; }
.dr-snow-free-nav__desktop a:hover,
.dr-snow-free-nav__desktop a:focus-visible { color: var(--ds-white); }
.dr-snow-free-nav__desktop li:last-child a { display: inline-flex; min-height: 42px; padding: 10px 17px; align-items: center; color: var(--ds-white); background: var(--ds-blue); border-radius: 8px; }
.dr-snow-free-nav__toggle { display: none; width: 48px; height: 48px; padding: 12px; border: 1px solid rgba(143,210,255,.55); border-radius: 8px; color: var(--ds-white); background: var(--ds-navy-2); cursor: pointer; }
.dr-snow-free-nav__toggle span { display: block; width: 22px; height: 2px; margin: 4px auto; background: currentColor; transition: transform .16s ease, opacity .16s ease; }
.dr-snow-free-nav.is-open .dr-snow-free-nav__toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.dr-snow-free-nav.is-open .dr-snow-free-nav__toggle span:nth-child(2) { opacity: 0; }
.dr-snow-free-nav.is-open .dr-snow-free-nav__toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.dr-snow-free-nav__panel[hidden] { display: none !important; }
.dr-snow-free-nav__panel { position: absolute; z-index: 200; top: calc(100% + 15px); right: 0; width: min(420px, calc(100vw - 32px)); max-height: calc(100vh - 104px); overflow-y: auto; color: var(--ds-white); background: var(--ds-navy); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; box-shadow: 0 18px 48px rgba(0,0,0,.28); }
.dr-snow-free-nav__mobile-list { display: grid; }
.dr-snow-free-nav__mobile a { display: flex; min-height: 48px; padding: 13px 20px; align-items: center; color: #dbe9f4; font-weight: 800; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.1); }
.dr-snow-free-nav__mobile a:hover,
.dr-snow-free-nav__mobile a:focus-visible { color: var(--ds-white); background: rgba(143,210,255,.12); }
.dr-snow-free-nav__mobile li:last-child a { color: var(--ds-white); background: var(--ds-blue); }
.dr-snow-free-nav__social-slot { min-height: 1px; }
.ds-global-header .hfe-nav-menu a.hfe-menu-item { color: #dbe9f4; font-weight: 800; }
.ds-global-header .hfe-nav-menu a.hfe-menu-item:hover,
.ds-global-header .hfe-nav-menu a.hfe-menu-item:focus { color: var(--ds-white); }
.ds-global-header .hfe-nav-menu li:last-child a.hfe-menu-item { min-height: 42px; margin-left: 8px; padding: 10px 17px; color: var(--ds-white); background: var(--ds-blue); border-radius: 8px; }
.ds-global-footer { color: var(--ds-white); background: #030c18; }
.ds-footer-grid > .e-con-inner { display: grid; grid-template-columns: 1fr .85fr 1.15fr; gap: 58px; align-items: start; }
.ds-footer-grid > .e-con-inner > .elementor-widget-text-editor:last-child { grid-column: 1 / -1; }
.ds-global-footer a { color: #d7e5f0; text-decoration: underline; text-decoration-color: rgba(255,255,255,.32); text-underline-offset: 3px; }
.ds-footer-socials { margin-top: 14px; }
.ds-footer-socials .elementor-social-icon { min-width: 44px; min-height: 44px; }
.ds-footer-note { padding-top: 23px; border-top: 1px solid rgba(255,255,255,.14); }

/* Home/page heroes. */
.ds-hero { color: var(--ds-white); background: radial-gradient(circle at 78% 15%, #1c5285 0, transparent 30%), linear-gradient(125deg, #06162b, #0a3159); }
.ds-hero > .e-con-inner { min-height: 540px; }
.ds-hero .elementor-heading-title,
.ds-page-hero .elementor-heading-title { line-height: .98; }
.ds-hero .elementor-heading-title em,
.ds-page-hero .elementor-heading-title em { color: #66bef5; font-style: normal; }
.ds-hero-note { padding: 15px 18px; background: rgba(255,255,255,.04); border-left: 4px solid #67c3ff; }
.ds-availability { width: fit-content; max-width: 100%; border: 1px solid #58c88f; border-radius: 999px; background: rgba(29,139,85,.2); }
.ds-availability-text p { margin: 0; letter-spacing: .04em; text-transform: uppercase; }
.ds-logo-frame { max-width: 465px; padding: 20px; background: var(--ds-white); border: 6px solid rgba(255,255,255,.16); border-radius: 22px; box-shadow: 0 28px 70px rgba(0,0,0,.53); }
.ds-logo-frame img { display: block; width: 100%; height: auto; }
.ds-hero-facts .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 14px 22px; }
.ds-page-hero { color: var(--ds-white); background: radial-gradient(circle at 80% 15%, #174a81, transparent 35%), var(--ds-navy); }

/* Pricing. */
.ds-card { height: 100%; padding: 30px 28px; background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 14px; box-shadow: 0 16px 40px rgba(11,41,68,.08); }
.ds-plan { border-top: 6px solid var(--ds-green); }
.ds-plan.ds-blue { border-top-color: var(--ds-blue); }
.ds-plan.ds-orange { border-top-color: var(--ds-orange); }
.ds-membership-label { color: var(--ds-muted); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.ds-inclusion { padding: 13px 14px; color: #173c5d; background: #eef7ff; border-radius: 8px; }
.ds-small { color: var(--ds-muted); }
.ds-price-table { overflow: hidden; background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 15px; box-shadow: 0 16px 40px rgba(11,41,68,.08); }
.ds-price-row > .e-con-inner,
.ds-price-row.e-con-full { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); gap: 0; }
.ds-price-row .elementor-widget { min-width: 0; margin: 0; text-align: center; border-right: 1px solid var(--ds-line); border-bottom: 1px solid var(--ds-line); }
.ds-price-row .elementor-widget:first-child { text-align: left; }
.ds-price-row .elementor-widget:last-child { border-right: 0; }
.ds-price-head { color: var(--ds-white); background: var(--ds-navy); }
.ds-price-ice { background: #f7fbfe; }
.ds-table-note { padding: 20px 28px; }
.ds-notice { color: #57360b; background: #fff8e8; border: 1px solid #edce92; border-radius: 12px; }
.ds-notice a { color: #714400; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }

/* Request service and Jotform. */
.ds-request > .e-con-inner { align-items: start; }
.ds-request-notice { padding: 17px 18px; background: var(--ds-ice); border-left: 4px solid var(--ds-blue); }
.ds-link-copy a { color: var(--ds-blue); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.ds-form-panel { min-width: 0; overflow: hidden; background: var(--ds-white); border: 1px solid var(--ds-line); border-radius: 14px; box-shadow: 0 18px 48px rgba(12,37,62,.09); }
.dr-snow-jotform-frame { display: block; width: 100%; min-height: 1220px; border: 0; background: var(--ds-white); }
.dr-snow-jotform-fallback { margin: 0; padding: 10px 10px 12px; color: var(--ds-muted); font: 12px/1.6 Arial, sans-serif; }
.dr-snow-jotform-fallback a { color: var(--ds-blue); text-decoration: underline; text-underline-offset: 3px; }

/* Process, service information, terms, and service-area pages. */
.ds-step { min-height: 245px; }
.ds-info-card { padding: 27px 25px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.14); border-radius: 11px; }
.ds-service-limitation { background: rgba(255,255,255,.05); border-left: 4px solid #8fd2ff; }
.ds-terms-stack > .e-con-inner { max-width: 920px; }
.ds-terms-stack > .e-con-inner > .e-con { margin-bottom: 2px; }
.ds-term-card .elementor-heading-title { text-transform: none; }
.ds-detail-list p { padding: 13px 0; border-bottom: 1px solid var(--ds-line); }
.ds-location-layout > .e-con-inner { align-items: start; }
.ds-location-card { position: sticky; top: 32px; background: var(--ds-snow); border: 1px solid var(--ds-line); border-radius: 16px; }
.ds-location-note { padding: 18px; background: var(--ds-snow); border-left: 4px solid var(--ds-blue); }
.ds-location-note a { color: var(--ds-blue); font-weight: 800; text-decoration: underline; }
.ds-final-cta { text-align: center; background: var(--ds-white); }
.ds-final-cta > .e-con-inner { max-width: 820px; align-items: center; }

@media (max-width: 1024px) {
  .ds-grid-5 > .e-con-inner,
  .ds-grid-5.e-con-full { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ds-two-col > .e-con-inner,
  .ds-two-col.e-con-full { grid-template-columns: 1fr; gap: 42px; }
  .ds-logo-frame { margin-inline: auto; }
  .ds-global-header > .e-con-inner { min-height: 78px; }
  .ds-header-socials-desktop { display: none; }
  .ds-global-header nav .ds-header-socials-mobile,
  .ds-global-header .dr-snow-free-nav__social-slot .ds-header-socials-mobile { display: block; padding: 16px 20px 20px; border-top: 1px solid rgba(255,255,255,.14); background: var(--ds-navy); }
  .ds-global-header nav .ds-header-socials-mobile .elementor-social-icon,
  .ds-global-header .dr-snow-free-nav__social-slot .ds-header-socials-mobile .elementor-social-icon { min-width: 48px; min-height: 48px; }
  .ds-global-header .elementor-widget-navigation-menu { flex: 0 0 auto; }
  .ds-global-header .elementor-widget-dr-snow-navigation { flex: 0 0 auto; }
  .dr-snow-free-nav__desktop { display: none; }
  .dr-snow-free-nav__toggle { display: block; }
  .ds-global-header nav.hfe-dropdown,
  .ds-global-header .hfe-nav-menu { width: calc(100vw - 48px) !important; max-width: calc(100vw - 48px) !important; }
  .ds-global-header nav.hfe-dropdown { right: 0 !important; left: auto !important; }
  .ds-global-header .hfe-nav-menu li:last-child a.hfe-menu-item { margin-left: 0; border-radius: 0; }
  .ds-footer-grid > .e-con-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 800px) {
  .ds-grid-2 > .e-con-inner,
  .ds-grid-2.e-con-full,
  .ds-grid-3 > .e-con-inner,
  .ds-grid-3.e-con-full,
  .ds-grid-5 > .e-con-inner,
  .ds-grid-5.e-con-full,
  .ds-footer-grid > .e-con-inner { grid-template-columns: 1fr; }
  .ds-global-header > .e-con-inner { min-height: 76px; }
  .ds-logo-frame { width: 100%; padding: 13px; border-width: 4px; border-radius: 15px; }
  .ds-button-row > .e-con-inner > .elementor-widget-button { width: 100%; }
  .ds-button-row .elementor-button { width: 100%; }
  .ds-plan { padding: 27px 22px; }
  .ds-price-table { overflow-x: auto; }
  .ds-location-card { position: static; }
  .dr-snow-jotform-frame { min-height: 1500px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
