.elementor-kit-7{--e-global-color-primary:#EDE7DA;--e-global-color-secondary:#4E97A6;--e-global-color-text:#9CACB9;--e-global-color-accent:#D97A4E;--e-global-color-bg:#0D1B29;--e-global-color-bgalt:#122335;--e-global-color-navy2:#050D15;--e-global-color-accentdark:#C2632F;--e-global-color-accentlite:#2E2118;--e-global-color-teallight:#132A30;--e-global-color-tealdark:#7BB9C6;--e-global-color-border:#233246;--e-global-color-bordernavy:#1C2C3E;--e-global-color-onnavy:#EDE7DA;--e-global-color-onnavydim:#7E92A1;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-size:36px;--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.15em;--e-global-typography-primary-letter-spacing:-0.43px;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-size:18px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.25em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:15px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:14.5px;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-letter-spacing:0.145px;background-color:#0D1B29;color:#9CACB9;font-family:"Inter", sans-serif;font-size:15px;font-weight:400;line-height:1.6em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{background-color:#D97A4E;font-family:"Inter", sans-serif;font-size:14.5px;font-weight:700;letter-spacing:0.145px;color:#0D1B29;border-radius:6px 6px 6px 6px;padding:14px 26px 14px 26px;}.elementor-kit-7 button:hover,.elementor-kit-7 button:focus,.elementor-kit-7 input[type="button"]:hover,.elementor-kit-7 input[type="button"]:focus,.elementor-kit-7 input[type="submit"]:hover,.elementor-kit-7 input[type="submit"]:focus,.elementor-kit-7 .elementor-button:hover,.elementor-kit-7 .elementor-button:focus{background-color:#C2632F;color:#0D1B29;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:#D97A4E;}.elementor-kit-7 a:hover{color:#C2632F;}.elementor-kit-7 h1{color:#EDE7DA;font-family:"Archivo", sans-serif;font-size:50px;font-weight:800;line-height:1.15em;letter-spacing:-0.6px;}.elementor-kit-7 h2{color:#EDE7DA;font-family:"Archivo", sans-serif;font-size:36px;font-weight:800;line-height:1.15em;letter-spacing:-0.43px;}.elementor-kit-7 h3{color:#EDE7DA;font-family:"Archivo", sans-serif;font-size:19px;font-weight:700;line-height:1.25em;}.elementor-kit-7 h4{color:#EDE7DA;font-family:"Archivo", sans-serif;font-size:16px;font-weight:700;line-height:1.3em;}.elementor-kit-7 label{color:#EDE7DA;font-family:"Inter", sans-serif;font-size:13px;font-weight:700;}.elementor-kit-7 input:not([type="button"]):not([type="submit"]),.elementor-kit-7 textarea,.elementor-kit-7 .elementor-field-textual{font-family:"Inter", sans-serif;font-size:14.5px;font-weight:400;color:#EDE7DA;background-color:#08131F;border-style:solid;border-width:1.5px 1.5px 1.5px 1.5px;border-color:#233246;border-radius:6px 6px 6px 6px;padding:12px 14px 12px 14px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1180px;}.e-con{--container-max-width:1180px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:980px){.elementor-kit-7 h1{font-size:40px;}.elementor-kit-7 h2{font-size:31px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:620px){.elementor-kit-7 h1{font-size:32px;}.elementor-kit-7 h2{font-size:26px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ---- Peachy Pools · design details that have no widget control ---- */
:root{
  color-scheme: dark;
  --pp-bg:#0D1B29; --pp-bg-alt:#122335; --pp-card:#152A3D;
  --pp-navy:#08131F; --pp-navy-2:#050D15;
  --pp-heading:#EDE7DA; --pp-body:#9CACB9; --pp-dim:#7E92A1;
  --pp-accent:#D97A4E; --pp-accent-dark:#C2632F; --pp-accent-light:#2E2118;
  --pp-border:#233246; --pp-border-navy:#1C2C3E;
  --pp-teal:#4E97A6; --pp-teal-light:#132A30; --pp-teal-dark:#7BB9C6;
  --pp-shadow:0 4px 16px rgba(0,0,0,.35);
}
body{ background:var(--pp-bg); }
/* Elementor's off-canvas leaves body{overflow:hidden} behind after closing, which
   locks scrolling where <body> is the scroller (iOS Safari). */
body{ overflow-y:visible !important; overflow-x:clip; }

/* placeholder markers carried over from the design mock-up */
.bracket{
  color:#E9A47E; background:var(--pp-accent-light);
  padding:1px 6px; border-radius:4px; font-size:.94em; font-weight:600;
}
.pp-on-navy .bracket{ background:rgba(237,231,218,.10); color:var(--pp-heading); }

/* signature dashed waterline divider */
.pp-water-line{
  background-image:repeating-linear-gradient(to right,var(--pp-border) 0 1px,transparent 1px 14px);
  background-position:top; border-top:2px solid var(--pp-accent);
}

/* photo placeholders keep the design's aspect ratios */
.pp-media-block.pp-ratio-1-1  > .e-con-inner,.pp-media-block.pp-ratio-1-1  { aspect-ratio:1/1; }
.pp-media-block.pp-ratio-16-9 { aspect-ratio:16/9; }
.pp-media-block.pp-ratio-4-3  { aspect-ratio:4/3.4; }
.pp-media-block .pp-media-ic svg{ opacity:.4; }
.pp-media-block .pp-media-cap{ opacity:.7; }
.pp-gallery-item{ aspect-ratio:1/1; position:relative; }
.pp-gallery-item .pp-media-ic svg{ opacity:.4; }
.pp-gallery-item .pp-gallery-cap{
  position:absolute; left:0; right:0; bottom:0; padding:16px 12px 10px;
  background:linear-gradient(0deg,rgba(5,13,21,.88),transparent);
}

/* the wide shot spans both collage columns */
.pp-collage-full{ grid-column:1 / -1; }

/* checklist: two columns on desktop, one below 980px */
.elementor-widget.pp-checklist-2 .elementor-icon-list-items{
  display:grid; grid-template-columns:1fr 1fr; gap:12px 24px;
}
@media(max-width:980px){
  .elementor-widget.pp-checklist-2 .elementor-icon-list-items{ grid-template-columns:1fr; }
}
.elementor-widget.pp-checklist .elementor-icon-list-item{ align-items:flex-start; }
.elementor-widget.pp-checklist .elementor-icon-list-icon{ margin-top:2px; }

/* 'Most Popular' ribbon sits on the card's top edge */
.pp-plan-card{ position:relative; }
.pp-plan-badge{
  position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  white-space:nowrap; z-index:2;
}
/* the ribbon is a filled terracotta chip, so its label takes dark ink */
.pp-plan-badge, .pp-plan-badge *{ color:#0D1B29 !important; }

/* section headings and ledes stay centred and measure-limited */
.pp-lede-center .elementor-widget-container{ margin-left:auto; margin-right:auto; }

/* FAQ accordion: the design puts the arrow flush right and turns it on open */
.elementor-widget.pp-faq .e-n-accordion-item-title{ justify-content:space-between; }
.elementor-widget.pp-faq .e-n-accordion-item-title-header{ flex:1 1 auto; }
.elementor-widget.pp-faq .e-n-accordion-item-title-icon svg{ transition:transform .25s ease; }
.elementor-widget.pp-faq details[open] .e-n-accordion-item-title-icon svg{ transform:rotate(45deg); }

/* nav + buttons */
.pp-arrow-link .elementor-button{ padding:0; }
.pp-crumb .elementor-button{ padding:0; }
.pp-crumb .elementor-widget-container{ line-height:1; }
.pp-icon-card{ transition:border-color .2s ease, box-shadow .2s ease; }
.pp-icon-card:hover{ box-shadow:0 6px 18px rgba(0,0,0,.45); }
.pp-area-card{ transition:border-color .2s ease; }
.pp-map iframe{ border-radius:12px; }
/* the Google embed renders in Google's own light style; a frame keeps it from
   floating as a bare white slab on the dark page */
.pp-map iframe{ border:1px solid var(--pp-border); }

/* trust strip: rule-separated inline items */
.elementor-widget.pp-strip .elementor-icon-list-items{
  display:flex; flex-wrap:wrap; justify-content:center; row-gap:8px;
}
.elementor-widget.pp-strip .elementor-icon-list-items .elementor-icon-list-item{
  padding:0 20px; border-right:1px solid var(--pp-border-navy);
}
.elementor-widget.pp-strip .elementor-icon-list-items .elementor-icon-list-item:last-child{
  border-right:none;
}

/* sticky header (stickiness itself comes from Elementor Pro's sticky effect) */
.pp-header{ backdrop-filter:blur(8px); }
.pp-header.elementor-sticky--effects{ box-shadow:0 2px 10px rgba(0,0,0,.5); }

/* stat chip pinned to the corner of a media block */
.pp-media-wrap{ position:relative; }
.pp-stat-chip{ position:absolute; bottom:-20px; right:-16px; z-index:2; }

/* footer link lists have no bullet icons */
.elementor-widget.pp-footer-list .elementor-icon-list-icon{ display:none; }

/* off-canvas mobile menu */
.pp-mobile-toggle .elementor-button{ padding:6px; }
.pp-offcanvas-nav .elementor-nav-menu--main .elementor-item{ padding:14px 0; }

/* services dropdown in the header */
.pp-header .elementor-nav-menu--main .elementor-nav-menu ul.sub-menu{ width:auto; min-width:250px; padding:6px; }
.pp-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item{ white-space:nowrap; border-radius:6px; justify-content:space-between; }
.pp-header .elementor-nav-menu--main .sub-menu .sub-arrow{ padding-left:14px; }
.pp-header .elementor-nav-menu--main .sub-menu .sub-arrow i,
.pp-header .elementor-nav-menu--main .sub-menu .sub-arrow svg{ transform:rotate(-90deg); }
.pp-header .elementor-nav-menu--main .elementor-item .sub-arrow{ padding-left:6px; font-size:10px; }
.pp-header .elementor-nav-menu--main .sub-menu .sub-menu a.elementor-sub-item{ border-inline-start:0; }
/* the dropdown panel is an elevated surface, so it carries a shadow on dark */
.pp-header .elementor-nav-menu--main .elementor-nav-menu ul.sub-menu{
  box-shadow:var(--pp-shadow); border:1px solid var(--pp-border);
}
/* off-canvas: sub-menus expand inline as an accordion (static position also puts
   SmartMenus into its collapsible, tap-to-toggle mode) */
.pp-offcanvas-nav .elementor-nav-menu--main .elementor-nav-menu ul{
  position:static !important; width:auto !important; min-width:0 !important; max-width:none !important;
  top:auto !important; left:auto !important; margin:0 0 8px 2px !important;
  border-left:1px solid var(--pp-border-navy); box-shadow:none;
}
.pp-offcanvas-nav .elementor-nav-menu--main .elementor-nav-menu ul ul{ margin:0 0 4px 16px !important; }
.pp-offcanvas-nav .sub-menu a.elementor-sub-item{ white-space:normal; border-inline-start:0; }
.pp-offcanvas-nav .elementor-nav-menu--main .elementor-item.has-submenu{ padding-left:0 !important; padding-right:0 !important; }
.pp-offcanvas-nav .sub-arrow{ padding:6px 4px 6px 12px; }

/* media blocks: real photos fill the framed, aspect-locked box */
.pp-media-block.pp-has-img{ padding:0 !important; overflow:hidden; position:relative; }
.pp-media-block.pp-has-img > .pp-media-img{ position:absolute; inset:0; width:100% !important; height:100%; margin:0 !important; }
.pp-media-block.pp-has-img > .pp-media-img .elementor-widget-container,
.pp-media-block.pp-has-img > .pp-media-img img{ width:100%; height:100%; }
.pp-media-block.pp-has-img > .pp-media-img img{ object-fit:cover; display:block; border-radius:0; }
/* before/after tiles keep their caption legible over a photo */
.pp-gallery-item[style], .pp-gallery-item{ background-blend-mode:normal; }
.elementor-widget-gallery .e-gallery-item{ overflow:hidden; }

/* ---- dark theme: surfaces the widget controls don't reach ---- */
/* form controls follow the dark scheme rather than the browser's light default */
.elementor-field-textual,
select.elementor-field-textual,
.elementor-field-textual option{
  background-color:#08131F; color:var(--pp-heading); border-color:var(--pp-border);
}
.elementor-field-textual::placeholder{ color:var(--pp-dim); opacity:1; }
.elementor-field-textual:focus{ border-color:var(--pp-teal); outline:none; }
.elementor-message, .elementor-field-group .elementor-field-label{ color:var(--pp-heading); }

/* photographs sit a touch quieter against a dark ground */
.pp-media-block.pp-has-img img, .elementor-widget-gallery img{ filter:brightness(.94); }

::selection{ background:var(--pp-accent); color:#0D1B29; }
/* ---- Trustindex Google reviews widget: its own stylesheet ships light ---- */
/* the plugin's sheet loads after this one and uses !important on the same
   .elementor-kit-7s, so these have to out-specify it rather than just repeat it */
html body .ti-widget.ti-goog .ti-review-item > .ti-inner,
html body .ti-widget.ti-goog .ti-load-more-reviews-container .ti-load-more-reviews-button{
  background:#152A3D !important; border:1px solid #233246 !important; color:#EDE7DA !important;
}
html body .ti-widget.ti-goog .ti-name,
html body .ti-widget.ti-goog .ti-read-more-active{ color:#EDE7DA !important; }
html body .ti-widget.ti-goog .ti-review-content,
html body .ti-widget.ti-goog .ti-review-text{ color:#9CACB9 !important; }
html body .ti-widget.ti-goog .ti-date,
html body .ti-widget.ti-goog .ti-verified-review,
html body .ti-widget.ti-goog .ti-verified-platform,
html body .ti-widget.ti-goog .ti-verified-by{ color:#7E92A1 !important; }
html body .ti-widget.ti-goog .ti-read-more{ color:#D97A4E !important; }
html body .ti-widget.ti-goog .ti-next,
html body .ti-widget.ti-goog .ti-prev{
  background:#152A3D !important; border:1px solid #233246 !important;
}
html body .ti-widget.ti-goog .ti-next svg, html body .ti-widget.ti-goog .ti-prev svg,
html body .ti-widget.ti-goog .ti-next path, html body .ti-widget.ti-goog .ti-prev path{ fill:#EDE7DA !important; stroke:#EDE7DA !important; }
html body .ti-widget.ti-goog .ti-disclaimer{ background:#152A3D !important; color:#9CACB9 !important; }
html body .ti-widget.ti-goog .ti-controls-line{ background:rgba(237,231,218,.25) !important; }
/* the review text fades out behind a "read more" gradient keyed to the card colour */
html body .ti-widget.ti-goog .ti-review-text-container:after{
  background:linear-gradient(180deg, rgba(21,42,61,0), #152A3D) !important;
}/* End custom CSS */