/*
 Theme Name:   Divi Child
 Theme URI:    http://elegantthemes.com/
 Description:  Divi Child Theme
 Author:       ElegantThemes
 Author URI:   http://elegantthemes.com
 Template:     Divi
 Version:  1.0.1
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags: responsive-layout, one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-background, custom-colors, featured-images, full-width-template, post-formats, rtl-language-support, theme-options, threaded-comments, translation-ready
 Text Domain:  divi-child-theme
*/

/* ==== Add your own styles below this line ====
 * -------------------------------------------- */
/* Mobile type scaling — added 2026-08-19 (Involve Media).
   These modules had no working phone override: the DiviFlash advanced blurb
   does not support a title_font_size_phone attribute, so its tier titles were
   rendering at the full desktop 55px on phones. Same for the number counters. */
@media only screen and (max-width: 767px) {
  .difl_advanced_blurb .df_ab_blurb_title { font-size: 28px !important; line-height: 1.2em !important; }
  .et_pb_number_counter .percent-value { font-size: 44px !important; }
}

/* Primary "WORK WITH US" button — added 2026-08-19 (Involve Media).
   Divi Theme Options sets a global button style with !important, which outranks
   every module-level button setting on this site (Coordination's April button
   was affected too). Module settings alone therefore do nothing; this class is
   the only reliable way to style an individual button here. */
.et_pb_button.im-btn-primary,
body .et_pb_button.im-btn-primary,
body.et_pb_button_helper_class .et_pb_button.im-btn-primary {
  background-color: #B5878C !important;
  color: #FFFFFF !important;
  border-width: 0 !important;
  border-radius: 0 !important;
  font-family: 'Montserrat', Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px;
  padding: 12px 38px !important;
}
.et_pb_button.im-btn-primary:after { display: none !important; }

/* Empey stat counters — added 2026-08-19. Preview has 54px numbers / 14px labels
   in a 129px band; the module settings were not taking effect. */
.et_pb_number_counter .percent-value { font-size: 54px !important; line-height: 1.1em !important; }
.et_pb_number_counter .title { font-size: 14px !important; }
@media only screen and (max-width: 767px) {
  .et_pb_number_counter .percent-value { font-size: 44px !important; }
}

/* Stat-counter band — added 2026-08-19. Divi default section padding (4%)
   overrides the module custom_padding here, so the band rendered ~280px against
   the preview 129px. */
.et_pb_section.im-counter-band { padding-top: 0 !important; padding-bottom: 0 !important; }
.et_pb_section.im-counter-band .et_pb_row { padding-top: 6px !important; padding-bottom: 6px !important; }

/* --- 2026-08-19 review round 2 --- */

/* Counter numbers and labels: module colour settings do not emit here (same
   !important override that affects buttons), so pin them. Preview: white
   numbers at 54px, white uppercase labels at 14px. */
.im-counter-band .et_pb_number_counter .percent-value { color: #FFFFFF !important; }
.im-counter-band .et_pb_number_counter .title {
  color: #FFFFFF !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.4px !important;
  font-weight: 600 !important;
}

/* Breathing room above a section heading, and between a price and its button. */
.et_pb_row.im-section-heading { margin-top: 60px !important; }
.et_pb_button.im-btn-primary { margin-top: 22px !important; }

/* Testimonial arrows: shipped as 53px white boxes stacked below the slider.
   Move them to the sides, drop the box, make the glyph white. */
.difl_testimonialcarousel .swiper-button-next,
.difl_testimonialcarousel .swiper-button-prev {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  width: 44px !important;
  height: 44px !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  z-index: 20;
}
.difl_testimonialcarousel .swiper-button-prev { left: 2% !important; right: auto !important; }
.difl_testimonialcarousel .swiper-button-next { right: 2% !important; left: auto !important; }
.difl_testimonialcarousel .swiper-button-next:after,
.difl_testimonialcarousel .swiper-button-prev:after,
.difl_testimonialcarousel .swiper-button-next i,
.difl_testimonialcarousel .swiper-button-prev i {
  color: #FFFFFF !important;
  font-size: 34px !important;
  text-shadow: 0 0 6px rgba(0,0,0,.35);
}
.difl_testimonialcarousel { position: relative; }
/* im-arrow-hardening (2026-08-19) — the carousel module emits its own arrow
   rules from et-cache, which loads after this file at equal specificity and so
   wins. Raise specificity to remove the white box. The glyph colour itself is
   set via the module's arrow_color attribute, which does work. */
body #page-container .difl_testimonialcarousel .swiper-button-next,
body #page-container .difl_testimonialcarousel .swiper-button-prev,
body .difl_testimonialcarousel .swiper-button-next,
body .difl_testimonialcarousel .swiper-button-prev {
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* --- 2026-08-19 review round 3 --- */

/* The counter fonts were reversed: the number was rendering in Montserrat (the
   body font) and the label in Darline Sarif (the heading font). Swap them back
   so the number is the light serif and the label is Montserrat caps. */
.im-counter-band .et_pb_number_counter .percent-value,
body .im-counter-band .et_pb_number_counter .percent-value {
  font-family: 'Darline Sarif', Georgia, 'Times New Roman', serif !important;
  font-weight: 300 !important;
  color: #FFFFFF !important;
}
.im-counter-band .et_pb_number_counter .title,
body .im-counter-band .et_pb_number_counter .title {
  font-family: 'Montserrat', Helvetica, Arial, sans-serif !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 1.4px !important;
  color: #FFFFFF !important;
  text-align: center !important;
  display: block !important;
}
.im-counter-band .et_pb_number_counter,
.im-counter-band .et_pb_number_counter .percent {
  text-align: center !important;
}

/* Testimonial attribution: the job title was inheriting the dark body colour
   while the name above it was already white. */
body .difl_testimonialcarousel .tc_job_title,
body .difl_testimonialcarousel .author_name,
body .difl_testimonialcarousel .difl_testimonialcarouselitem .tc_job_title {
  color: #FFFFFF !important;
  opacity: .85;
}

/* Give the arrows room — the quote text was running right up against them. */
body .difl_testimonialcarousel .difl_testimonialcarouselitem {
  padding-left: 90px !important;
  padding-right: 90px !important;
}
body .difl_testimonialcarousel .swiper-button-prev { left: 18px !important; }
body .difl_testimonialcarousel .swiper-button-next { right: 18px !important; }
@media only screen and (max-width: 767px) {
  body .difl_testimonialcarousel .difl_testimonialcarouselitem {
    padding-left: 46px !important;
    padding-right: 46px !important;
  }
  body .difl_testimonialcarousel .swiper-button-prev { left: 2px !important; }
  body .difl_testimonialcarousel .swiper-button-next { right: 2px !important; }
}

/* --- 2026-08-19 review round 4 (Sip n Saddle) --- */

/* White stripes between sections: several sections carry a 50px top margin and
   the body behind them is white, so the gap showed as a stripe between two
   cream bands. Tint the body on the six service pages so gaps blend. */
body.page-id-84003, body.page-id-84306, body.page-id-84212,
body.page-id-84341, body.page-id-84382, body.page-id-84498 {
  background-color: #F8F5F1 !important;
}

/* Square button corners, matching the Divi global intent (one module was
   overriding it with a 10px radius). */
body .et_pb_button { border-radius: 0 !important; }

/* Package carousel arrows belong inside the card, not stacked underneath where
   they get missed. Absolute positioning also collapses the arrow row, so the
   card no longer carries dead space below it. */
body .difl_contentcarousel .df_cc_container { position: relative; }
body .difl_contentcarousel .swiper-button-next,
body .difl_contentcarousel .swiper-button-prev {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  width: 40px !important;
  height: 40px !important;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  z-index: 20;
}
body .difl_contentcarousel .swiper-button-prev { left: 8px !important; right: auto !important; }
body .difl_contentcarousel .swiper-button-next { right: 8px !important; left: auto !important; }
body .difl_contentcarousel .swiper-button-next:after,
body .difl_contentcarousel .swiper-button-prev:after { font-size: 26px !important; }

/* Room above the Smart Serve heading. */
body .et_pb_section.im-smartserve { padding-top: 90px !important; }

/* Content-carousel arrows need the same specificity hardening the testimonial
   arrows did — the module's own rules load after this file and set top/background. */
body #page-container .difl_contentcarousel .swiper-button-next,
body #page-container .difl_contentcarousel .swiper-button-prev,
html body .difl_contentcarousel .swiper-button-next,
html body .difl_contentcarousel .swiper-button-prev {
  position: absolute !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  width: 40px !important;
  height: 40px !important;
  margin: 0 !important;
  z-index: 20;
}
body #page-container .difl_contentcarousel .swiper-button-prev,
html body .difl_contentcarousel .swiper-button-prev { left: 8px !important; right: auto !important; }
body #page-container .difl_contentcarousel .swiper-button-next,
html body .difl_contentcarousel .swiper-button-next { right: 8px !important; left: auto !important; }

/* The arrows live inside a zero-height .df_cc_arrows wrapper that sits BELOW the
   card, so positioning the arrows themselves could never lift them — the wrapper
   is the thing that has to move. Overlay it on the card instead. */
body #page-container .difl_contentcarousel .df_cc_inner_wrapper { position: relative !important; }
body #page-container .difl_contentcarousel .df_cc_arrows,
html body .difl_contentcarousel .df_cc_arrows {
  position: absolute !important;
  top: 44% !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  height: 0 !important;
  margin: 0 !important;
  z-index: 20;
  pointer-events: none;
}
body #page-container .difl_contentcarousel .df_cc_arrows .swiper-button-next,
body #page-container .difl_contentcarousel .df_cc_arrows .swiper-button-prev,
html body .difl_contentcarousel .df_cc_arrows .swiper-button-next,
html body .difl_contentcarousel .df_cc_arrows .swiper-button-prev {
  top: 0 !important;
  transform: translateY(-50%) !important;
  pointer-events: auto;
}

/* Give the package card's copy room so the arrows are not sitting on the text. */
body #page-container .difl_contentcarousel .difl_contentcarouselitem,
html body .difl_contentcarousel .difl_contentcarouselitem {
  padding-left: 56px !important;
  padding-right: 56px !important;
}
body #page-container .difl_contentcarousel .swiper-button-next:after,
body #page-container .difl_contentcarousel .swiper-button-prev:after,
html body .difl_contentcarousel .swiper-button-next:after,
html body .difl_contentcarousel .swiper-button-prev:after {
  font-size: 30px !important;
  font-weight: 700 !important;
}
body #page-container .difl_contentcarousel .swiper-button-prev,
html body .difl_contentcarousel .swiper-button-prev { left: 4px !important; }
body #page-container .difl_contentcarousel .swiper-button-next,
html body .difl_contentcarousel .swiper-button-next { right: 4px !important; }
@media only screen and (max-width: 767px) {
  body #page-container .difl_contentcarousel .difl_contentcarouselitem,
  html body .difl_contentcarousel .difl_contentcarouselitem {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

/* Package arrows were technically visible but reading as invisible: pale pink
   (#D4969D) on a white card, and Swiper dims the "prev" control to 50% on the
   first slide even though the carousel loops. Darken, and stop the dimming. */
body #page-container .difl_contentcarousel .swiper-button-next:after,
body #page-container .difl_contentcarousel .swiper-button-prev:after,
html body .difl_contentcarousel .swiper-button-next:after,
html body .difl_contentcarousel .swiper-button-prev:after {
  color: #B5878C !important;
  font-size: 34px !important;
}
body #page-container .difl_contentcarousel .swiper-button-next,
body #page-container .difl_contentcarousel .swiper-button-prev,
body #page-container .difl_contentcarousel .swiper-button-disabled,
html body .difl_contentcarousel .swiper-button-next,
html body .difl_contentcarousel .swiper-button-prev,
html body .difl_contentcarousel .swiper-button-disabled {
  opacity: 1 !important;
  pointer-events: auto !important;
}
body #page-container .difl_contentcarousel .swiper-button-next:hover:after,
body #page-container .difl_contentcarousel .swiper-button-prev:hover:after {
  color: #302B27 !important;
}

/* CORRECTION to round 4: the 56px padding was applied to the outer slide
   (.difl_contentcarouselitem), which shrank the white card inward and left the
   arrows sitting outside it on the photo. The white card is .et_pb_module_inner.
   Pad the inner CONTENT instead so the card keeps full width, then the arrows
   land inside it. */
body #page-container .difl_contentcarousel .difl_contentcarouselitem,
html body .difl_contentcarousel .difl_contentcarouselitem {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body #page-container .difl_contentcarousel .df_cci_container,
html body .difl_contentcarousel .df_cci_container {
  padding-left: 44px !important;
  padding-right: 44px !important;
}
body #page-container .difl_contentcarousel .swiper-button-prev,
html body .difl_contentcarousel .swiper-button-prev { left: 10px !important; }
body #page-container .difl_contentcarousel .swiper-button-next,
html body .difl_contentcarousel .swiper-button-next { right: 10px !important; }
@media only screen and (max-width: 767px) {
  body #page-container .difl_contentcarousel .df_cci_container,
  html body .difl_contentcarousel .df_cci_container {
    padding-left: 34px !important;
    padding-right: 34px !important;
  }
}

/* --- 2026-08-19 review round 5 (About) --- */

/* The preview's hero sits noticeably darker than the raw photo. */
body #page-container .et_pb_section.im-hero-dark:before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(35, 28, 25, 0.28);
  pointer-events: none;
  z-index: 1;
}
body #page-container .et_pb_section.im-hero-dark { position: relative; }
body #page-container .et_pb_section.im-hero-dark > .et_pb_row { position: relative; z-index: 2; }

/* Full-width team band: edge to edge, no gutters. */
body #page-container .et_pb_section.im-fullwidth-band .et_pb_row {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}
body #page-container .im-band-img .et_pb_image_wrap,
body #page-container .im-band-img img {
  width: 100% !important;
  display: block;
}

/* Removing the strapline and button collapsed the hero to the height of the
   headline alone. The preview hero is a tall full-bleed band with the headline
   optically centred, so restore that height and centre the row within it. */
body #page-container .et_pb_section.im-hero-dark {
  min-height: 78vh !important;
  display: flex !important;
  align-items: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body #page-container .et_pb_section.im-hero-dark > .et_pb_row {
  width: 100% !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
@media only screen and (max-width: 767px) {
  body #page-container .et_pb_section.im-hero-dark { min-height: 58vh !important; }
}

/* The team band image is a 1600x2400 portrait; as an inline image it rendered
   2357px tall. The preview uses it as a cropped full-width band, so it is a
   section background with a fixed height instead. */
body #page-container .et_pb_section.im-fullwidth-band {
  min-height: 620px !important;
  background-size: cover !important;
  background-position: center 48% !important;
  padding: 0 !important;
}
body #page-container .et_pb_section.im-fullwidth-band .et_pb_row { padding: 0 !important; min-height: 620px; }
@media only screen and (max-width: 767px) {
  body #page-container .et_pb_section.im-fullwidth-band,
  body #page-container .et_pb_section.im-fullwidth-band .et_pb_row { min-height: 300px !important; }
}

/* gallery strip: outer images sit inset so the centre one reads larger.
   Divi emits this per-column padding into page CSS keyed by module index,
   which et-cache drops on About - pin it to a class instead. */
body #page-container .et_pb_column.im-gal-side { padding: 25px !important; }

/* package cards (DiviFlash advanced blurb): the module-level content font
   settings do not survive et-cache regeneration on this site, so pin the
   description to the same treatment the other pages use for package copy. */
body #page-container .difl_advanced_blurb .df_ab_blurb_description,
body #page-container .difl_advanced_blurb .df_ab_blurb_description p,
body #page-container .difl_advanced_blurb .df_ab_blurb_description li,
body #page-container .difl_advanced_blurb .df_ab_blurb_description span {
  font-family: "Montserrat", Helvetica, Arial, Lucida, sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  line-height: 1.8em !important;
}

/* package card title. Same story as the description: DiviFlash module settings
   stop emitting after an et-cache rebuild, which drops the title from 55px
   black to the theme h3 default (24px pink). Mirrors the module settings,
   including the Divi breakpoints. */
body #page-container .difl_advanced_blurb .df_ab_blurb_title {
  font-size: 55px !important;
  color: #000000 !important;
  text-align: center !important;
  margin-top: 20px !important;
}
@media only screen and (max-width: 980px) {
  body #page-container .difl_advanced_blurb .df_ab_blurb_title { font-size: 42px !important; }
}
@media only screen and (max-width: 767px) {
  body #page-container .difl_advanced_blurb .df_ab_blurb_title { font-size: 28px !important; }
}
/* im-blurb-title-pin */

/* package card button. Module settings are #D4969D background with #FFFFFF
   text; when the DiviFlash module CSS drops, the text inherits the background
   colour and the label disappears. Pinned. */
body #page-container .difl_advanced_blurb .df_ab_blurb_button {
  background-color: #D4969D !important;
}
body #page-container .difl_advanced_blurb .df_ab_blurb_button,
body #page-container .difl_advanced_blurb .df_ab_blurb_button span {
  color: #FFFFFF !important;
}
/* im-blurb-button-pin */

/* package descriptions: black, a touch larger, more line spacing. Overrides the
   earlier .df_ab_blurb_description block above. */
body #page-container .difl_advanced_blurb .df_ab_blurb_description,
body #page-container .difl_advanced_blurb .df_ab_blurb_description p,
body #page-container .difl_advanced_blurb .df_ab_blurb_description li,
body #page-container .difl_advanced_blurb .df_ab_blurb_description span,
body #page-container .difl_advanced_blurb .df_ab_blurb_description strong {
  color: #000000 !important;
  font-size: 17px !important;
  line-height: 2em !important;
}
/* im-blurb-desc-v2 */

/* full-width parallax image bands. Divi puts the section's vh padding in
   per-module CSS; when that drops the section collapses to zero height and the
   image vanishes. Height pinned here instead. */
body #page-container .et_pb_section.im-parallax-band {
  min-height: 60vh !important;
  padding: 0 !important;
}
@media only screen and (max-width: 980px) {
  body #page-container .et_pb_section.im-parallax-band { min-height: 42vh !important; }
}
/* im-parallax-band-pin */

/* full-width draggable image strip. Edge-to-edge, fixed height so the slides
   crop to a consistent band regardless of each photo's aspect ratio. */
body #page-container .et_pb_section.im-strip-section,
body #page-container .et_pb_section.im-strip-section > .et_pb_row,
body #page-container .et_pb_section.im-strip-section .et_pb_column {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
body #page-container .im-image-strip .df_ic_image img,
body #page-container .im-image-strip img {
  height: 520px !important;
  width: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
@media only screen and (max-width: 980px) {
  body #page-container .im-image-strip img { height: 340px !important; }
}
@media only screen and (max-width: 767px) {
  body #page-container .im-image-strip img { height: 260px !important; }
}
/* im-image-strip-pin */

/* image strip: slides butt together, no gutter */
body #page-container .im-image-strip .swiper-slide,
body #page-container .im-image-strip .df_ici_container,
body #page-container .im-image-strip .ic_image_wrapper,
body #page-container .im-image-strip .et_pb_module_inner,
body #page-container .im-image-strip .difl_imagecarouselitem {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}
/* im-strip-nogap */

/* Decor Rentals hero. The original overlaid its heading on the carousel with a
   -700px row margin plus an inline translateY(-800px), and hung the section on a
   -500px bottom margin. Those live in per-module CSS, so when it dropped the
   heading flew up under the header and left a hole below. Overlay is positioned
   here instead, against the section itself. */
body #page-container .et_pb_section.im-decor-hero { position: relative !important; overflow: hidden; }
body #page-container .et_pb_section.im-decor-hero > .et_pb_row.im-decor-overlay {
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  right: 0 !important;
  transform: translateY(-50%) !important;
  z-index: 20 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 25px !important;
}
/* im-decor-hero-pin */

/* Decor Rentals hero heading. At the inherited 120px each line runs wider than
   the viewport and gets clipped now that the row is centred rather than
   dragged around by a transform. */
body #page-container .im-decor-hero h1 {
  font-size: 72px !important;
  line-height: 1.1em !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
}
@media only screen and (max-width: 980px) {
  body #page-container .im-decor-hero h1 { font-size: 52px !important; }
}
@media only screen and (max-width: 767px) {
  body #page-container .im-decor-hero h1 { font-size: 34px !important; }
}
/* im-decor-h1-pin */

/* Decor Rentals hero: the two buttons sit side by side. Divi wraps each button
   in a block-level module wrapper, so they stack by default. */
body #page-container .im-decor-overlay .et_pb_column { text-align: center !important; }
body #page-container .im-decor-overlay .et_pb_button_module_wrapper {
  display: inline-block !important;
  vertical-align: middle !important;
  margin: 0 8px !important;
}
body #page-container .im-decor-overlay .et_pb_button_module_wrapper .et_pb_button { margin: 0 !important; }
@media only screen and (max-width: 767px) {
  body #page-container .im-decor-overlay .et_pb_button_module_wrapper {
    display: block !important;
    margin: 0 auto 12px !important;
  }
}
/* im-decor-btn-row */

/* Decor Rentals hero sits flush: Divi's default 54px section padding and 27px
   row padding were leaving a white band above and below the carousel. */
body #page-container .et_pb_section.im-decor-hero { padding: 0 !important; }
body #page-container .et_pb_section.im-decor-hero > .et_pb_row:not(.im-decor-overlay) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
/* im-decor-flush */

/* Divi Pixel's carousel puts 30px of vertical padding on its swiper container,
   which showed as a white band under the hero images. */
body #page-container .im-decor-hero .dipi-carousel-main .swiper-container,
body #page-container .im-decor-hero .dipi_carousel .swiper-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
/* im-decor-swiper-flush */

/* Hero buttons that carry their styling at module level rather than through
   im-btn-primary. Divi kept dropping these rules during cache regeneration,
   leaving the label floating with no background. Values copied from the
   modules' own settings. */
body #page-container .et_pb_button.im-btn-hero,
body.et_pb_button_helper_class #page-container .et_pb_button.im-btn-hero {
  background-color: #B5878C !important;
  color: #FFFFFF !important;
  border-width: 0 !important;
  border-radius: 0 !important;
  font-family: "Montserrat", Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  padding: 10px 35px !important;
}
body #page-container .et_pb_button.im-btn-gold,
body.et_pb_button_helper_class #page-container .et_pb_button.im-btn-gold {
  background-color: #C2AE89 !important;
  color: #F8F5F1 !important;
  border-width: 0 !important;
  border-radius: 10px !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  padding: 15px 35px !important;
}
body #page-container .et_pb_button.im-btn-hero:after,
body #page-container .et_pb_button.im-btn-gold:after { display: none !important; }
/* im-btn-hero-pin */

/* ===== Self-hosted fonts (2026-08-22) =====
   Was: one render-blocking request to fonts.googleapis.com for 38 variants of
   Open Sans, Montserrat and Manrope, plus two custom faces served as raw TTF.
   Now: Montserrat variable (latin + latin-ext) and both Darline faces served
   from this domain as WOFF2. Open Sans and Manrope were never used on any page. */

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/montserrat-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Darline Sarif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/uploads/et-fonts/DarlineSerif-Regular.woff2') format('woff2'),
       url('/wp-content/uploads/et-fonts/DarlineSerif-Regular.ttf') format('truetype');
}
@font-face {
  font-family: 'Darline Script';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/wp-content/uploads/et-fonts/DarlineScript-Regular.woff2') format('woff2'),
       url('/wp-content/uploads/et-fonts/DarlineScript-Regular.ttf') format('truetype');
}
/* im-selfhost-fonts */

/* Concierge: the vertical rule under "(aka your planning bff)" is the right
   border of a half-width column, so it lands dead centre on desktop. Once Divi
   stacks columns the column goes full width and the rule slides to the right
   edge. Below the stack breakpoint, drop the border and draw a centred rule. */
@media only screen and (max-width: 980px) {
  body #page-container .et_pb_column.im-vrule { border-right-width: 0 !important; }
  body #page-container .et_pb_column.im-vrule > .et_pb_module { position: relative; }
  body #page-container .et_pb_column.im-vrule > .et_pb_module:before {
    content: "";
    position: absolute;
    top: 0; bottom: 0; left: 50%;
    width: 3px;
    margin-left: -1.5px;
    background: #333333;
  }
}

/* Package card buttons carry 100px of horizontal padding, which leaves too
   little room for the label on a phone and wraps "LEARN MORE" onto two lines. */
@media only screen and (max-width: 980px) {
  body #page-container .difl_advanced_blurb .df_ab_blurb_button {
    padding-left: 55px !important;
    padding-right: 55px !important;
    white-space: nowrap !important;
  }
}
@media only screen and (max-width: 767px) {
  body #page-container .difl_advanced_blurb .df_ab_blurb_button {
    padding-left: 28px !important;
    padding-right: 28px !important;
  }
}
/* im-mobile-fix-1 */

/* Nav dropdown caret sits hard against the label. Divi absolutely positions the
   arrow at the right edge of the link, so widening the link's right padding is
   what opens the gap. */
body .et-l--header .et_pb_menu .nav li.menu-item-has-children > a,
body .et-l--header .nav li.menu-item-has-children > a {
  padding-right: 24px !important;
}
/* im-nav-caret-gap */

/* Decor Rentals hero on small screens. The section takes its height from the
   carousel, which shrinks as the slides narrow, while the overlay (heading plus
   two stacked buttons) grows. Below the desktop breakpoint the overlay was
   taller than the section and overflow:hidden clipped it top and bottom.
   Give the section a floor tall enough to hold the overlay, and let the slide
   images fill that height. */
@media only screen and (max-width: 980px) {
  body #page-container .et_pb_section.im-decor-hero { min-height: 460px !important; }
  body #page-container .im-decor-hero .dipi-carousel-main img { height: 460px !important; object-fit: cover !important; }
}
@media only screen and (max-width: 767px) {
  body #page-container .et_pb_section.im-decor-hero { min-height: 420px !important; }
  body #page-container .im-decor-hero .dipi-carousel-main img { height: 420px !important; object-fit: cover !important; }
  body #page-container .im-decor-hero h1 { font-size: 30px !important; }
}
/* im-decor-mobile-fix */

/* Decor Rentals hero, small screens - two fixes.
   1. Divi Pixel puts 30px of horizontal padding on its swiper container, which
      left a white strip down the left of the first slide. Run it edge to edge.
   2. More headroom above the heading so it isn't tight under the header bar,
      which is worse on narrow phones where the heading wraps to three lines. */
body #page-container .im-decor-hero .dipi-carousel-main .swiper-container,
body #page-container .im-decor-hero .dipi_carousel .swiper-container {
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
@media only screen and (max-width: 980px) {
  body #page-container .et_pb_section.im-decor-hero { min-height: 520px !important; }
  body #page-container .im-decor-hero .dipi-carousel-main img { height: 520px !important; }
}
@media only screen and (max-width: 767px) {
  body #page-container .et_pb_section.im-decor-hero { min-height: 500px !important; }
  body #page-container .im-decor-hero .dipi-carousel-main img { height: 500px !important; }
}
/* im-decor-mobile-fix-2 */
