/* ================================================================
   MOBILE-ONLY STYLES
   This file is loaded with media="(max-width: 767px)" on the link tag.
   The browser does NOT load this on desktop screens at all.
   ================================================================ */

/* ================================================================
   CRITICAL: ULTRA-HIGH SPECIFICITY MOBILE OVERRIDES
   These MUST beat the criticalCSS and runtime CSS rules that use
   min-width:768px, min-width:960px, and calc(100% - Npx) widths
   ================================================================ */
html body#dmRoot .dmInner,
html body.dmDesktopBody .dmInner,
html body.dmRoot.dmDesktopBody .dmInner,
html body.dmRoot.dmDesktopBody.dmLargeBody .dmInner,
body#dmRoot #dm .dmOuter .dmInner {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Fix header container min-width */
html body#dmRoot #dm .hasStickyHeader .dmInner div.dmHeaderContainer,
html:not(.ios-preview) body#dmRoot #dm .hasStickyHeader .dmInner div.dmHeaderContainer {
  min-width: 0 !important;
  width: 100% !important;
}

/* FIX calc() width rules that break on mobile */
html body#dmRoot #dm .dmBody div.u_1106392087,
body.dmDesktopBody #dm .dmBody div.u_1106392087,
#dm .dmBody div.u_1106392087 {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

html body#dmRoot #dm .dmBody a.u_1334312778,
body.dmDesktopBody #dm .dmBody a.u_1334312778,
#dm .dmBody a.u_1334312778 {
  width: 100% !important;
  max-width: 230px !important;
  min-width: 0 !important;
}

/* Fix ALL responsive row wrappers */
html body#dmRoot .dmRespRow,
html body#dmRoot .dmRespRow .dmRespColsWrapper,
html body#dmRoot .dmRespRowsWrapper {
  max-width: 100% !important;
  min-width: 0 !important;
  width: 100% !important;
}

/* FIX ALL paragraph and content containers */
html body#dmRoot #dm .dmBody .dmNewParagraph,
html body#dmRoot #dm .dmBody .dmRespCol > *,
body.dmDesktopBody #dm .dmBody .dmNewParagraph,
#dm .dmBody .dmNewParagraph {
  max-width: 100% !important;
  width: auto !important;
}

/* FIX ALL custom widget and divider widths */
html body#dmRoot #dm .dmBody div.dmDividerWrapper,
html body#dmRoot #dm .dmBody div.imageWidget,
html body#dmRoot #dm .dmBody div.dmCustomWidget,
html body#dmRoot #dm .dmBody div.dmCustomHtml,
body.dmDesktopBody #dm .dmBody div.dmDividerWrapper,
body.dmDesktopBody #dm .dmBody div.imageWidget {
  width: 100% !important;
  max-width: 100% !important;
}

/* FIX row wrappers max-width */
html body#dmRoot .dmRespRowsWrapper,
html body#dmRoot .dmLargeBody .dmRespRow,
body.dmDesktopBody .dmRespRowsWrapper,
body.dmLargeBody .dmRespRow {
  max-width: 100% !important;
  padding-left: 15px !important;
  padding-right: 15px !important;
}

/* --- UNLOCK VIEWPORT: remove the 768px/960px min-width lock --- */
.dmInner,
.dmDesktopBody .dmInner {
  min-width: 0 !important;
  width: 100% !important;
}
html:not(.ios-preview) #dm .hasStickyHeader .dmInner div.dmHeaderContainer {
  min-width: 0 !important;
  width: 100% !important;
}
#dm .header-over-content .dmHeaderContainer {
  width: 100% !important;
}

/* --- COLUMN STACKING: force all grid columns to full width --- */
#dm .dmRespRow .dmRespColsWrapper {
  flex-direction: column !important;
  flex-wrap: nowrap !important;
}
#dm .dmRespRow .dmRespCol,
.dmDesktopBody .dmRespRow .large-3,
.dmDesktopBody .dmRespRow .large-4,
.dmDesktopBody .dmRespRow .large-5,
.dmDesktopBody .dmRespRow .large-6,
.dmDesktopBody .dmRespRow .large-7,
.dmDesktopBody .dmRespRow .large-12 {
  width: 100% !important;
  float: none !important;
}
/* Override specific desktop column ratios from override.css */
#dm .dmBody div.u_1255524539 .dmRespCol.u_1443107296,
#dm .dmBody div.u_1255524539 .dmRespCol.u_1704310766,
#dm .dmBody div.u_1371079420 .dmRespCol.u_1634201951,
#dm .dmBody div.u_1371079420 .dmRespCol.u_1727108386,
#dm .dmBody div.u_1985579466 .dmRespCol.u_1124382385,
#dm .dmBody div.u_1985579466 .dmRespCol.u_1220561830,
#dm .dmBody div.u_AboutUs .dmRespCol.u_1947558418 {
  width: 100% !important;
}
/* Remove row-reverse on mobile - stack top-to-bottom naturally */
#dm .dmBody div.u_1255524539 > .dmRespColsWrapper,
#dm .dmBody div.u_1371079420 > .dmRespColsWrapper,
#dm .dmBody div.u_1921779600 > .dmRespColsWrapper,
#dm .dmBody div.u_1985579466 > .dmRespColsWrapper {
  flex-direction: column !important;
}

/* --- HEADER: hamburger-left, logo-center, phone-right --- */
#dm .p_hfcontainer .u_1368696340,
.u_1368696340 {
  display: none !important;
}
/* Keep header as a row (not column) */
#dm .dmHeader .u_1317570868 .dmRespColsWrapper,
#dm .p_hfcontainer .u_1317570868 > .dmRespColsWrapper,
#dm #hcontainer .dmRespColsWrapper {
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
}
/* Logo column */
#dm .p_hfcontainer div.u_1305376660,
.u_1305376660 {
  width: auto !important;
  flex: 1 1 auto !important;
  padding-left: 45px !important;
  padding-right: 0 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
#dm .p_hfcontainer div.u_1237228072 {
  width: 100% !important;
  max-width: 160px !important;
}
/* Call Now column - icon only */
#dm .p_hfcontainer div.u_1396869438,
.u_1396869438 {
  width: auto !important;
  flex: 0 0 auto !important;
  padding: 0 10px 0 0 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}
#dm .p_hfcontainer a.u_1750594552 {
  width: 40px !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
#dm .p_hfcontainer a.u_1750594552 .text {
  display: none !important;
}
#dm .p_hfcontainer a.u_1750594552 .iconBg {
  position: static !important;
  margin-top: 0 !important;
  width: auto !important;
}
#dm .p_hfcontainer a.u_1750594552 .icon {
  font-size: 22px !important;
  color: #fff !important;
}
/* Header container padding */
#dm .dmInner div.fHeader.dmHeaderContainer #hcontainer.dmHeader[freeheader=true],
#dm .dmInner div.dmHeader.u_hcontainer,
.fHeader #hcontainer.dmHeader[freeheader=true] {
  padding: 10px 10px !important;
  margin: 0 !important;
}
#dm .p_hfcontainer div.u_1317570868 {
  padding: 0 5px !important;
  margin: 0 !important;
}
.stickyHeaderSpacer {
  height: 60px !important;
}

/* --- HAMBURGER BUTTON --- */
#vo-hamburger {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  position: fixed;
  top: 13px;
  left: 10px;
  z-index: 1001;
  width: 38px;
  height: 38px;
  background: rgba(113, 18, 57, 0.85);
  border: none !important;
  border-radius: 4px;
  cursor: pointer;
  padding: 8px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
#vo-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  border-radius: 1px;
  transition: transform 0.3s, opacity 0.3s;
  border: none !important;
}

/* --- MOBILE OVERLAY --- */
#vo-mobile-overlay {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.5);
  z-index: 999;
}
#vo-mobile-overlay.vo-open {
  display: block !important;
}

/* --- MOBILE NAV DRAWER --- */
#vo-mobile-nav {
  display: block !important;
  position: fixed;
  top: 0;
  left: -280px;
  width: 280px;
  height: 100%;
  background: #711239;
  z-index: 1002;
  overflow-y: auto;
  transition: left 0.3s ease;
  padding: 60px 0 20px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
#vo-mobile-nav.vo-open {
  left: 0;
}
#vo-mobile-close {
  position: absolute;
  top: 12px; right: 12px;
  background: none;
  border: none !important;
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
#vo-mobile-nav-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
#vo-mobile-nav-links > li {
  border-bottom: 1px solid rgba(255,255,255,0.15);
}
#vo-mobile-nav-links > li > a {
  display: block;
  padding: 14px 20px;
  color: #fff !important;
  text-decoration: none !important;
  font-family: Montserrat, sans-serif;
  font-size: 16px;
  font-weight: 500;
}
.vo-mobile-subnav {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: rgba(0,0,0,0.15);
}
.vo-mobile-subnav li a {
  display: block;
  padding: 12px 20px 12px 35px;
  color: rgba(255,255,255,0.85) !important;
  text-decoration: none !important;
  font-family: Montserrat, sans-serif;
  font-size: 14px;
}
.vo-mobile-cta {
  display: block;
  margin: 20px;
  padding: 14px 20px;
  background: #fff;
  color: #711239 !important;
  text-decoration: none !important;
  text-align: center;
  font-family: Montserrat, sans-serif;
  font-weight: 600;
  font-size: 16px;
  border-radius: 6px;
}

/* --- HERO SECTION --- */
#dm .dmBody div.u_1300291016 {
  padding: 100px 20px 60px !important;
  background-attachment: scroll !important;
}

/* --- MOBILE FONT SIZES (Duda m-font-size / m-size classes) --- */
.m-font-size-14, .m-size-14 { font-size: 14px !important; }
.m-font-size-16, .m-size-16 { font-size: 16px !important; }
.m-font-size-18, .m-size-18 { font-size: 18px !important; }
.m-font-size-19, .m-size-19 { font-size: 19px !important; }
.m-font-size-26, .m-size-26 { font-size: 26px !important; }
.m-font-size-27, .m-size-27 { font-size: 27px !important; }
.m-font-size-28, .m-size-28 { font-size: 28px !important; }
.m-font-size-30, .m-size-30 { font-size: 30px !important; }

/* --- BOOKING IFRAME --- */
#dm .dmBody .u_1762362134 iframe {
  height: 600px !important;
}

/* --- FOOTER STACKING --- */
body.dmDesktopBody #dm .dmFooterContainer .dmRespRow .dmRespColsWrapper > .dmRespCol,
body.dmDesktopBody #dm .u_fcontainer .dmRespRow .dmRespColsWrapper > .dmRespCol,
body.dmDesktopBody #dm .dmFooter .dmRespRow .dmRespColsWrapper > .dmRespCol,
.dmDesktopBody .dmFooterContainer .dmRespCol.large-4,
.dmDesktopBody .u_fcontainer .dmRespCol.large-4,
body.dmDesktopBody #dm [id="1063824722"],
body.dmDesktopBody #dm [id="1500350793"],
body.dmDesktopBody #dm [id="1919515147"] {
  width: 100% !important;
  float: none !important;
}
body.dmDesktopBody #dm .dmFooterContainer .dmRespColsWrapper,
body.dmDesktopBody #dm .u_fcontainer .dmRespColsWrapper,
.dmDesktopBody .dmFooterContainer .dmRespColsWrapper {
  flex-direction: column !important;
  flex-wrap: wrap !important;
}
#dm .dmFooterContainer .dmFooter .dmRespCol,
#dm .u_fcontainer .dmRespCol {
  text-align: center !important;
}
body.dmDesktopBody #dm .u_fcontainer div.u_1149611754.dmRespRow .dmRespColsWrapper > .dmRespCol {
  width: 100% !important;
}

/* --- DECORATIVE OVERRIDES --- */
#dm .dmBody .dmRespCol.dmSectionNoParallax {
  border-left: none !important;
}
#dm .dmBody .dmRespRow + .dmRespRow {
  border-top: none !important;
}

/* --- GALLERY: single column --- */
#dm .dmPhotoGallery.newPhotoGallery .layout-container {
  display: flex !important;
  flex-direction: column !important;
}
#dm .dmPhotoGallery.newPhotoGallery .layout-container .photogallery-column {
  width: 100% !important;
}

/* --- ABOUT US: keep 3rd column hidden --- */
#dm .dmBody div.u_AboutUs .dmRespCol.u_1151935165 {
  display: none !important;
}

/* --- FORM LAYOUT: stack inputs --- */
.dmDesignRow .dmRespCol,
.dmRespDesignRow .dmRespCol {
  width: 100% !important;
  float: none !important;
}

/* --- SECTION PADDING --- */
.dmLargeBody .dmRespRow,
#dm .dmContent .dmRespRow {
  padding-left: 15px !important;
  padding-right: 15px !important;
}

/* --- hide-for-small elements --- */
.hide-for-small {
  display: none !important;
}

/* --- iOS: disable fixed background attachment --- */
#dm .d-page-1716942098 DIV.dmInner {
  background-attachment: scroll !important;
}

/* --- IMAGE SPACER COLUMNS: min height for bg images on mobile --- */
#dm .dmBody .dmRespCol.dmSectionNoParallax .dmSpacer {
  min-height: 250px !important;
}

/* --- RESPONSIVE IMAGES --- */
.imageWidget img {
  width: 100% !important;
  height: auto !important;
}

/* --- COPYRIGHT ROW: keep centered on mobile --- */
.widget-1f5975 .copyright,
.u_1739716793 .copyright {
  flex-wrap: wrap !important;
  white-space: normal !important;
  justify-content: center !important;
}
.widget-1f5975 .copyright > div,
.u_1739716793 .copyright > div,
.widget-1f5975 .copyright p,
.u_1739716793 .copyright p {
  white-space: normal !important;
}
