/* Mobile-first overrides for mirrored Divi site */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html, body {
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

/* Kill page-level horizontal scroll from fixed header / coverflow / arrows */
#page-container,
#et-boc,
#et-main-area,
#main-content,
.et-l,
.et_builder_inner_content {
  max-width: 100%;
  overflow-x: clip;
}

/* Fixed header: never use left:50% + translateX(-50%) (causes sideways scroll) */
.et_pb_section_0_tb_header,
.et_pb_section.et_pb_section_0_tb_header {
  width: 100% !important;
  max-width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  transform: none !important;
}

/* Contain coverflow overflow at the module only (keep page from scrolling sideways) */
.dsm_image_carousel,
.dsm_image_carousel .et_pb_module_inner {
  max-width: 100%;
  overflow: hidden;
  position: relative;
}

/* Let Swiper manage its own clipping; don't break 3D coverflow */
.dsm_image_carousel .swiper-container {
  overflow: hidden;
  max-width: 100%;
}

.dsm_image_carousel .swiper-button-prev,
.dsm_image_carousel .swiper-arrow-button.swiper-button-prev {
  left: 8px !important;
  right: auto !important;
}

.dsm_image_carousel .swiper-button-next,
.dsm_image_carousel .swiper-arrow-button.swiper-button-next {
  right: 8px !important;
  left: auto !important;
}

img, video, svg, canvas {
  max-width: 100%;
  height: auto;
}

/* Global img max-width breaks Swiper slide width calculation */
.dsm_image_carousel .swiper-slide img,
.swiper-slide img {
  max-width: none;
  width: 100%;
  height: auto;
  display: block;
}

iframe, embed, object {
  max-width: 100%;
}

table {
  display: block;
  width: 100% !important;
  max-width: 100%;
  overflow-x: auto;
}

/* Keep fixed header full-bleed on small screens */
@media (max-width: 980px) {
  .et_pb_section_0_tb_header,
  .et_pb_section.et_pb_section_0_tb_header {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
  }

  .et_pb_row_0_tb_header,
  .et_pb_row.et_pb_row_0_tb_header {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Logo shouldn't overflow (+50% size) */
  .et_pb_image_0_tb_header,
  .et_pb_image_0_tb_header img,
  .et_pb_menu__logo img,
  header img.site-logo {
    max-width: min(96px, 27vw) !important;
    max-height: 96px !important;
    height: auto !important;
    width: auto !important;
    background: transparent !important;
  }

  .et_pb_image_0_tb_header {
    background: transparent !important;
    width: auto !important;
  }

  /* Comfortable page gutters */
  .et_pb_row,
  .et_pb_row_inner,
  .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .et_pb_column {
    margin-bottom: 1rem;
  }

  /* Text readability */
  body, .et_pb_text, .et_pb_text_inner, p, li {
    word-wrap: break-word;
    overflow-wrap: anywhere;
  }

  h1, .et_pb_text h1 { font-size: clamp(1.6rem, 7vw, 2.2rem) !important; line-height: 1.2 !important; }
  h2, .et_pb_text h2 { font-size: clamp(1.35rem, 6vw, 1.8rem) !important; line-height: 1.25 !important; }
  h3, .et_pb_text h3 { font-size: clamp(1.15rem, 5vw, 1.45rem) !important; line-height: 1.3 !important; }

  /* Buttons full-width friendly */
  .et_pb_button,
  .et_pb_button_module_wrapper .et_pb_button {
    max-width: 100%;
    white-space: normal !important;
    text-align: center;
  }

  /* Mobile nav usability */
  .et_mobile_nav_menu {
    display: block !important;
  }

  .mobile_menu_bar {
    min-width: 44px;
    min-height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }

  .et_mobile_menu {
    max-height: min(70vh, 520px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .et_mobile_menu li a {
    padding: 14px 16px !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
  }

  

  /* Sections / modules shouldn't force horizontal scroll */
  .et_pb_section,
  .et_pb_row,
  .et_pb_module,
  .et_pb_with_border {
    max-width: 100vw;
  }

  .et_pb_gallery .et_pb_gallery_item,
  .et_pb_gallery_grid .et_pb_gallery_item {
    width: 50% !important;
  }

  /* Forms */
  input, select, textarea, button {
    max-width: 100%;
    font-size: 16px !important; /* prevents iOS zoom on focus */
  }

  /* Maps / embeds */
  iframe {
    width: 100% !important;
  }

  /* Reduce huge paddings that waste mobile space */
  .et_pb_section {
    background-size: cover !important;
    background-position: center center !important;
  }
}

@media (max-width: 767px) {
  .et_pb_gallery .et_pb_gallery_item,
  .et_pb_gallery_grid .et_pb_gallery_item {
    width: 100% !important;
  }

  .et_pb_column {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Stacking safety for specialty columns */
  .et_pb_row .et_pb_column.et-last-child,
  .et_pb_row .et_pb_column:last-child {
    margin-bottom: 0 !important;
  }

  .et_pb_text_inner,
  .et_pb_blurb_description,
  .et_pb_pricing_content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 479px) {
  .et_pb_row,
  .et_pb_row_inner,
  .container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .et_pb_image_0_tb_header img,
  header img {
    max-width: min(195px, 72vw) !important;
  }
}

/* Safer preloader on small screens */
.dipi_preloader_wrapper_outer {
  max-width: 100vw;
}


/* Navbar fixes */
.et_pb_menu .et-menu-nav > ul.et-menu,
.et_pb_menu ul.et-menu,
ul#menu-menu-top.et-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
}

.et_pb_menu .et-menu-nav > ul.et-menu > li,
.et_pb_menu ul.et-menu > li,
ul#menu-menu-top.et-menu > li {
  list-style: none !important;
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 14px !important;
  float: none !important;
}

.et_pb_menu .et-menu-nav > ul.et-menu > li::before,
.et_pb_menu .et-menu-nav > ul.et-menu > li::marker,
ul#menu-menu-top.et-menu > li::before,
ul#menu-menu-top.et-menu > li::marker {
  content: none !important;
  display: none !important;
}

.et_pb_menu .et-menu-nav > ul.et-menu > li > a,
ul#menu-menu-top.et-menu > li > a {
  display: inline-block !important;
  padding: 8px 4px !important;
  white-space: nowrap;
  text-decoration: none !important;
}

@media (min-width: 981px) {
  .et_pb_menu .et_pb_menu__menu { display: block !important; }
  .et_pb_menu .et-menu { display: flex !important; }
  .et_mobile_nav_menu { display: none !important; }
}

@media (max-width: 980px) {
  /* Header row: logo left, hamburger right */
  .et_pb_section_0_tb_header .et_pb_row_0_tb_header,
  header .et_pb_row--with-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    min-height: 64px;
  }

  .et_pb_section_0_tb_header .et_pb_column_0_tb_header,
  .et_pb_section_0_tb_header .et_pb_column_1_tb_header {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
  }

  .et_pb_section_0_tb_header .et_pb_column_0_tb_header {
    flex: 1 1 auto;
    justify-content: flex-start;
    min-width: 0;
  }

  .et_pb_section_0_tb_header .et_pb_column_1_tb_header {
    flex: 0 0 auto;
    justify-content: flex-end;
  }

  .et_pb_section_0_tb_header .et_pb_image_0_tb_header,
  .et_pb_section_0_tb_header .et_pb_image_0_tb_header .et_pb_image_wrap {
    margin: 0 !important;
    text-align: left !important;
  }

  .et_pb_section_0_tb_header .et_pb_image_0_tb_header img {
    max-width: min(225px, 72vw) !important;
    max-height: 78px !important;
    width: auto !important;
    height: auto !important;
    display: block !important;
  }

  .et_pb_menu .et_pb_menu__menu { display: none !important; }
  .et_mobile_nav_menu { display: block !important; position: relative; }

  .mobile_menu_bar,
  .mobile_nav .mobile_menu_bar {
    min-width: 44px;
    min-height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }

  /* Opened mobile dropdown */
  .mobile_nav.opened .et_mobile_menu,
  .et_mobile_menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 8px 0 !important;
  }

  #mobile_menu,
  .et_mobile_menu {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    width: min(280px, 85vw) !important;
    background: #fff !important;
    border-top: 3px solid #c4a35a !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.12) !important;
    z-index: 100000 !important;
  }

  .mobile_nav.closed #mobile_menu,
  .mobile_nav.closed .et_mobile_menu {
    display: none !important;
  }

  .mobile_nav.opened #mobile_menu,
  .mobile_nav.opened .et_mobile_menu {
    display: block !important;
  }

  #mobile_menu li,
  .et_mobile_menu li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    width: 100% !important;
  }

  #mobile_menu li::before,
  #mobile_menu li::marker,
  .et_mobile_menu li::before,
  .et_mobile_menu li::marker {
    content: none !important;
    display: none !important;
  }

  #mobile_menu li a,
  .et_mobile_menu li a {
    display: block !important;
    padding: 14px 18px !important;
    color: #333 !important;
    font-size: 16px !important;
    border-bottom: 1px solid rgba(0,0,0,.06);
    text-align: left !important;
  }
}


/* === Sticky navbar === */
header#main-header,
header .et_pb_section_0_tb_header,
.et_pb_section_0_tb_header.et_pb_section,
.et_pb_section.et_pb_section_0_tb_header,
.et_pb_section--fixed.et_pb_section_0_tb_header,
.pa-header.et_pb_section_0_tb_header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  transform: none !important;
  z-index: 99999 !important;
  margin: 0 !important;
  background-color: #ffffff !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
  min-height: 56px !important;
  height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.et_pb_section_0_tb_header .et_pb_row_0_tb_header,
header .et_pb_row--with-menu,
.et_pb_row_0_tb_header.et_pb_row {
  position: relative !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: 1200px !important;
  min-height: 56px !important;
  height: 56px !important;
  margin: 0 auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  box-sizing: border-box !important;
}

.et_pb_section_0_tb_header .et_pb_column_0_tb_header,
.et_pb_section_0_tb_header .et_pb_column_1_tb_header {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.et_pb_section_0_tb_header .et_pb_column_0_tb_header {
  flex: 1 1 auto;
  justify-content: flex-start;
  min-width: 0;
}

.et_pb_section_0_tb_header .et_pb_column_1_tb_header {
  flex: 0 0 auto;
  justify-content: flex-end;
}

.et_pb_image_0_tb_header,
.et_pb_menu_0_tb_header {
  margin: 0 !important;
  padding: 0 !important;
}

.et_pb_section_0_tb_header .et_pb_image_0_tb_header {
  background: transparent !important;
  width: auto !important;
}

.et_pb_section_0_tb_header .et_pb_image_0_tb_header img {
  display: block !important;
  max-height: 96px !important;
  max-width: 180px !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
}

/* Content offset so first section isn't under fixed navbar (only once — not both wrappers) */
body.et_pb_pagebuilder_layout #et-main-area,
body #et-main-area,
#page-container #et-main-area {
  padding-top: 96px !important;
}
#main-content {
  padding-top: 0 !important;
}

/* Keep page hero aware of fixed bar */
div.et_pb_section.et_pb_section_0,
#dipi-particles-2.et_pb_section_0 {
  margin-top: 0 !important;
}

/* Mobile dropdown above content */
.et_mobile_nav_menu,
#mobile_menu,
.et_mobile_menu {
  z-index: 100000 !important;
}

@media (max-width: 980px) {
  header#main-header,
  .et_pb_section_0_tb_header.et_pb_section,
  .et_pb_section.et_pb_section_0_tb_header {
    min-height: 78px !important;
  }

  .et_pb_section_0_tb_header .et_pb_row_0_tb_header,
  header .et_pb_row--with-menu {
    min-height: 78px !important;
    height: 78px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .et_pb_section_0_tb_header .et_pb_image_0_tb_header img {
    max-height: 78px !important;
    max-width: 180px !important;
  }

  body.et_pb_pagebuilder_layout #et-main-area,
  body #et-main-area,
  #page-container #et-main-area {
    padding-top: 78px !important;
  }
  #main-content {
    padding-top: 0 !important;
  }
}


/* no black logo background */
#id_logo,
#id_logo .et_pb_image_wrap,
#id_logo img,
.et_pb_image_0_tb_header,
.et_pb_image_0_tb_header .et_pb_image_wrap,
.et_pb_image_0_tb_header img,
.et_pb_image_0_tb_header a {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
#id_logo img,
.et_pb_image_0_tb_header img {
  border-radius: 0 !important;
  mix-blend-mode: normal !important;
}

/* Desktop: tight header + no white band under nav */
@media (min-width: 981px) {
  .et_pb_section_0_tb_header,
  .et_pb_section.et_pb_section_0_tb_header,
  .pa-header.et_pb_section_0_tb_header {
    min-height: 0 !important;
    height: auto !important;
  }
  .et_pb_section_0_tb_header .et_pb_row_0_tb_header,
  .et_pb_row_0_tb_header.et_pb_row {
    min-height: 0 !important;
    height: auto !important;
    align-items: center !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    margin-bottom: 0 !important;
  }
  .et_pb_section_0_tb_header .et_pb_image_0_tb_header {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .et_pb_section_0_tb_header .et_pb_image_0_tb_header img {
    max-height: 72px !important;
    max-width: 180px !important;
  }
  .et_pb_menu_0_tb_header {
    margin-top: 0 !important;
  }
  body.et_pb_pagebuilder_layout #et-main-area,
  body #et-main-area,
  #page-container #et-main-area {
    padding-top: 78px !important;
  }
  #page-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  header.et-l--header {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: visible !important;
  }
}

/* Home hero: same champagne banner as desktop (all viewports) */
body.home div.et_pb_section.et_pb_section_0,
body.home #dipi-particles-2.et_pb_section_0 {
  background-image: url(../images/T54-banner1b.jpg) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-color: #F5E6C8 !important;
}

@media (max-width: 980px) {
  body.home div.et_pb_section.et_pb_section_0,
  body.home #dipi-particles-2.et_pb_section_0 {
    padding-top: 28px !important;
    margin-bottom: 0 !important;
  }
  body.home .et_pb_section_0 .et_pb_row_0.et_pb_row {
    padding-top: 28px !important;
  }
  body.home .et_pb_section_0 h1,
  body.home .et_pb_section_0 .dsm-text-divider-header {
    color: #0A0A0A !important;
  }
}

/* Home hero background image (replaces video) */
.home-hero-video {
  position: relative;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 8px;
  background: #0a0a0a;
  aspect-ratio: 16 / 9;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}
.home-hero-video img,
.home-hero-video video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}
@media (max-width: 767px) {
  .home-hero-video {
    max-width: 100%;
    border-radius: 6px;
  }
}
