/* ==========================================================================
   Pure Light homepage redesign: enhancement layer.
   Layout, typography, colour and spacing live in Elementor (V4 global
   classes + variables). This file only covers what Elementor's native
   styles cannot express: pseudo-element details, parent-hover effects,
   carousel / comparison mechanics, Gravity Forms restyle, header
   stickiness and the floating CTA. Every selector is scoped to the
   redesign's pl-* classes or the homepage, so legacy pages are unaffected.
   ========================================================================== */

:root{
  --pl-ease:cubic-bezier(.22,.61,.36,1);
  --pl-blue:#6E95E8;--pl-blue-bright:#4F7FDF;--pl-blue-deep:#325AB6;--pl-blue-ink:#2A4FA0;--pl-blue-soft:#A9C2F2;
  --pl-ink:#30343A;--pl-graphite:#3E434B;--pl-text:#575C64;--pl-muted:#6F757D;--pl-line:#DDD8CF;
  --pl-ivory:#F7F4EF;--pl-stone:#F3EEE6;--pl-cool:#EEF4FA;
}

/* ---------- page base ---------- */
body{background:#F7F4EF;color:var(--pl-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.elementor-page .site-main,.elementor-page .page-content{margin:0;padding:0;max-width:none}
.home [data-elementor-id="4"] > .e-con,[data-elementor-type="wp-page"] > .e-con{overflow-x:clip}

/* ---------- focus + touch targets ---------- */
a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible,
[tabindex]:focus-visible{outline:3px solid var(--pl-blue-bright);outline-offset:3px;border-radius:6px}
.pl-link-arrow,.pl-footer-link,.pl-city,.pl-tcard-foot{min-height:24px}

/* ---------- hero ---------- */
.home h1.e-heading-base{
  font-stretch:78%;font-variation-settings:'wdth' 78;text-wrap:balance;
}
.home h1.e-heading-base span{color:var(--pl-blue-deep)}
.home h1.e-heading-base + p{text-wrap:pretty}

/* ---------- eyebrow drop ---------- */
.pl-eyebrow{display:inline-flex!important;align-items:center;gap:10px}
.pl-eyebrow::before{
  content:"";width:9px;height:12px;flex:none;
  background:linear-gradient(160deg,var(--pl-blue-soft),var(--pl-blue-deep));
  border-radius:50% 50% 50% 50%/62% 62% 38% 38%;
}

/* ---------- stacked heading ---------- */
.pl-stack-soft span{display:block}
.pl-stack-soft span + span{color:var(--pl-blue-ink)}

/* ---------- buttons ---------- */
.pl-btn{position:relative;overflow:hidden;gap:10px;cursor:pointer;}
.pl-btn-primary::after{
  content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-18deg);transition:left .55s var(--pl-ease);pointer-events:none;
}
.pl-btn-primary:hover::after{left:120%}
.pl-btn[href^="tel:"]::before,.pl-float-call::before,.pl-float-est::before{
  content:"";width:17px;height:17px;flex:none;background:currentColor;
  -webkit-mask:var(--pl-i-phone) center/contain no-repeat;mask:var(--pl-i-phone) center/contain no-repeat;
}
.pl-float-est::before{-webkit-mask-image:var(--pl-i-doc);mask-image:var(--pl-i-doc)}

/* ---------- links with arrows ---------- */
.pl-link-arrow{display:inline-flex;align-items:center;gap:8px;transition:color .2s var(--pl-ease)}

/* ---------- media hover ---------- */
.pl-media-frame img,.pl-card-img img,.pl-mini-img img,.pl-imgcard img{transition:transform .9s var(--pl-ease)}
.pl-media-frame:hover img{transform:scale(1.035)}
.pl-card:hover .pl-card-img img{transform:scale(1.055)}
.pl-mini:hover .pl-mini-img img{transform:scale(1.05)}
.pl-imgcard:hover img{transform:scale(1.04)}
.pl-mini{transition:transform .3s var(--pl-ease),box-shadow .3s var(--pl-ease),border-color .3s var(--pl-ease)}

/* offset tint block behind split media (desktop) */
.pl-split-media{isolation:isolate}
@media (min-width:1025px){
  .pl-split-media::before{
    content:"";position:absolute;right:-18px;bottom:-18px;width:62%;height:62%;
    border-radius:22px;z-index:-1;
    background:linear-gradient(140deg,rgba(216,204,188,.55),rgba(216,204,188,.18));
  }
}

/* ---------- service cards ---------- */
.pl-card{text-decoration:none}
.pl-card::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;z-index:3;
  background:linear-gradient(90deg,var(--pl-blue-deep),var(--pl-blue-soft));
  transform:scaleX(0);transform-origin:left;transition:transform .34s var(--pl-ease);
}
.pl-card:hover::after,.pl-card:focus-visible::after{transform:scaleX(1)}
.pl-card-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(46,49,56,.22))}
.pl-card:hover .pl-card-cta{color:var(--pl-blue-ink)}

/* ---------- icons (CSS masks, colour follows the palette) ---------- */
:root{
  --pl-i-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 4.5-3 8.3-7 10-4-1.7-7-5.5-7-10V6l7-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --pl-i-test:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3Cpath d='M8.5 11h5M11 8.5v5'/%3E%3C/svg%3E");
  --pl-i-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-13 15-14-1 10-6 15-14 15'/%3E%3Cpath d='M5 19c3-4 6-6.5 10-8.5'/%3E%3C/svg%3E");
  --pl-i-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-5.6 7-11a7 7 0 1 0-14 0c0 5.4 7 11 7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E");
  --pl-i-doc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l5 5v13H7z'/%3E%3Cpath d='M14 3v5h5M10 13h6M10 17h6'/%3E%3C/svg%3E");
  --pl-i-eye:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  --pl-i-building:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5l8-2v18M12 8l8 2v11M3 21h18M8 8h.01M8 12h.01M8 16h.01M16 13h.01M16 17h.01'/%3E%3C/svg%3E");
  --pl-i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --pl-i-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
  --pl-i-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --pl-i-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
  --pl-i-drag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 7-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E");
}
.pl-icon-tile{position:relative;}
.pl-icon-tile::before{
  content:"";background:var(--pl-blue-deep);
  -webkit-mask:var(--pl-i) center/contain no-repeat;mask:var(--pl-i) center/contain no-repeat;
}
.pl-ico-shield{--pl-i:var(--pl-i-shield)}.pl-ico-test{--pl-i:var(--pl-i-test)}.pl-ico-leaf{--pl-i:var(--pl-i-leaf)}
.pl-ico-pin{--pl-i:var(--pl-i-pin)}.pl-ico-doc{--pl-i:var(--pl-i-doc)}.pl-ico-eye{--pl-i:var(--pl-i-eye)}
.pl-ico-building{--pl-i:var(--pl-i-building)}.pl-ico-check{--pl-i:var(--pl-i-check)}

/* trust strip: icon beside text on phones */
@media (max-width:767px){
  .elementor-element-4306e7c5 .pl-trust-cell{display:grid!important;grid-template-columns:44px minmax(0,1fr);gap:4px 16px;align-items:start}
  .elementor-element-4306e7c5 .pl-trust-cell .pl-icon-tile{margin:0!important;grid-row:1 / span 2}
}

/* final CTA ticks */
.pl-fine-item{display:inline-flex!important;align-items:center;gap:8px}
.pl-fine-item::before{content:"";width:15px;height:15px;flex:none;background:var(--pl-blue-deep);-webkit-mask:var(--pl-i-check) center/contain no-repeat;mask:var(--pl-i-check) center/contain no-repeat}

/* ---------- city list ---------- */
.pl-city{gap:10px;text-decoration:none;transition:background-color .22s var(--pl-ease),color .22s var(--pl-ease)}
.pl-city::before{width:14px;height:14px;flex:none;background:var(--pl-blue);-webkit-mask:var(--pl-i-pin) center/contain no-repeat;mask:var(--pl-i-pin) center/contain no-repeat}

/* ---------- benefits / steps ---------- */
.pl-benefit{transition:border-color .25s var(--pl-ease)}
.pl-benefit:hover{border-top-color:rgba(111,151,232,.5)}
.pl-step::after{
  content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:50%;
  background:#fff;border:2px solid var(--pl-blue);
  transition:background .3s var(--pl-ease),transform .3s var(--pl-ease),box-shadow .3s var(--pl-ease);
}
.pl-step:hover::after{background:var(--pl-blue);transform:scale(1.3);box-shadow:0 0 0 6px rgba(110,149,232,.18)}
.pl-step:hover .pl-step-num{color:var(--pl-blue-deep)}

/* ---------- image cards (Why section) ---------- */
.pl-imgcard{isolation:isolate;text-decoration:none}
.pl-imgcard::after{
  content:"";position:absolute;right:26px;bottom:28px;z-index:3;width:46px;height:46px;border-radius:50%;
  background:#fff var(--pl-i-arrow) center/17px no-repeat;
  box-shadow:0 10px 24px -8px rgba(0,0,0,.55);transition:transform .26s var(--pl-ease),background-color .26s var(--pl-ease);
}
.pl-imgcard:hover::after{transform:translate(3px,-3px);background-color:var(--pl-blue-soft)}
.pl-imgcard-body{padding-right:100px!important}
@media (max-width:767px){
  .pl-imgcard::after{width:38px;height:38px;right:18px;bottom:auto;top:18px;background-size:15px}
  .pl-imgcard-body{padding-right:20px!important}
}

/* ---------- detail work tag ---------- */
.pl-proof-tag{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* ---------- reviews carousel ---------- */
.pl-tcar-track{scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none}
.pl-tcar-track::-webkit-scrollbar{display:none}
.pl-tcar-track > .pl-tcard{scroll-snap-align:start;min-width:0}
.pl-tcar-track:focus-visible{outline:3px solid var(--pl-blue);outline-offset:6px}
.pl-tcard-foot{text-decoration:none}
.pl-tcard-foot:hover{color:var(--pl-blue-ink)}
.pl-tcar-btn{font-size:0!important;cursor:pointer;transition:background-color .22s var(--pl-ease),border-color .22s var(--pl-ease),box-shadow .22s var(--pl-ease)}
.pl-tcar-btn::before{
  content:"";width:18px;height:18px;background:var(--pl-graphite);
  -webkit-mask:var(--pl-i-arrow) center/contain no-repeat;mask:var(--pl-i-arrow) center/contain no-repeat;
}
.pl-tcar-btn:first-of-type::before{transform:scaleX(-1)}
.pl-tcar-btn:hover::before{background:#fff}
.pl-tcar-btn[disabled]{opacity:.4;cursor:default;background:#fff!important;border-color:var(--pl-line)!important}
.pl-tcar-btn[disabled]::before{background:var(--pl-graphite)}
/* arrows on the outer edges: just outside the track on wide screens, overlapping slightly below 1400px */
.pl-tcar > .pl-tcar-btn:first-of-type{left:-22px!important;right:auto!important}
.pl-tcar > .pl-tcar-btn:last-of-type{right:-22px!important;left:auto!important}
@media (min-width:1400px){
  .pl-tcar > .pl-tcar-btn:first-of-type{left:-66px!important}
  .pl-tcar > .pl-tcar-btn:last-of-type{right:-66px!important}
}
.pl-tcar.is-static > .pl-tcar-btn{display:none!important}
@media (max-width:767px){
  .pl-tcar{display:flex!important;flex-wrap:wrap;justify-content:center;column-gap:14px}
  .pl-tcar > .pl-tcar-track{flex:1 1 100%}
  .pl-tcar > .pl-tcar-btn{position:static!important;transform:none!important;margin-top:22px;width:48px!important;height:48px!important}
}
@media (min-width:561px) and (max-width:767px){.pl-tcard-fig{aspect-ratio:21/9!important}}

/* ---------- before / after comparison ---------- */
.pl-ba{--pos:50%;user-select:none;touch-action:pan-y}
.pl-ba.is-ready > img{opacity:0}
.pl-ba-layer{position:absolute;inset:0;background-repeat:no-repeat;background-size:200% auto}
.pl-ba-after{background-position:right 45%}
.pl-ba-before{background-position:left 45%}
.pl-ba-clip{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0);-webkit-clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.pl-ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;background:#fff;transform:translateX(-50%);box-shadow:0 0 0 1px rgba(46,49,56,.2),0 0 22px rgba(0,0,0,.35);pointer-events:none;z-index:4}
.pl-ba-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.6);transition:transform .2s var(--pl-ease)}
.pl-ba-knob::before{content:"";width:24px;height:24px;background:var(--pl-ink);-webkit-mask:var(--pl-i-drag) center/contain no-repeat;mask:var(--pl-i-drag) center/contain no-repeat}
.pl-ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;background:transparent;z-index:5}
.pl-ba-range::-webkit-slider-thumb{-webkit-appearance:none;width:64px;height:600px;cursor:ew-resize}
.pl-ba-range::-moz-range-thumb{width:64px;height:600px;border:0;background:transparent;cursor:ew-resize}
.pl-ba-range:focus-visible ~ .pl-ba-handle .pl-ba-knob{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 0 4px var(--pl-blue-bright),0 12px 30px -8px rgba(0,0,0,.6)}
@media (max-width:767px){.pl-ba-knob{width:50px;height:50px}}

/* ---------- FAQ (native details/summary) ---------- */
.pl-faq details{transition:background-color .25s var(--pl-ease)}
.pl-faq details[open]{background:#fff}
.pl-faq summary{
  list-style:none;cursor:pointer;display:flex!important;justify-content:space-between;gap:24px;
}
.pl-faq summary::-webkit-details-marker{display:none}
.pl-faq summary:hover h3{color:var(--pl-blue-deep)!important}
.pl-faq summary > :last-child{
  position:relative;width:36px!important;height:36px!important;flex:none;border-radius:50%;border:2px solid rgba(60,65,72,.16);
  display:block!important;padding:0!important;color:var(--pl-ink);
  transition:background .26s var(--pl-ease),border-color .26s var(--pl-ease);
}
.pl-faq summary > :last-child > *{display:none!important}
.pl-faq summary > :last-child::before,.pl-faq summary > :last-child::after{
  content:"";position:absolute;left:50%;top:50%;width:14px;height:2.4px;border-radius:2px;background:currentColor;
  transform:translate(-50%,-50%);transition:transform .3s var(--pl-ease),opacity .3s var(--pl-ease);
}
.pl-faq summary > :last-child::after{transform:translate(-50%,-50%) rotate(90deg)}
.pl-faq summary:hover > :last-child{border-color:var(--pl-blue);background:rgba(111,151,232,.08)}
.pl-faq details[open] summary > :last-child{background:linear-gradient(140deg,var(--pl-blue-bright),var(--pl-blue-deep));border-color:transparent;color:#fff;transform:none!important}
.pl-faq details[open] summary > :last-child::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0)}
.pl-faq details p a{color:var(--pl-blue-ink);text-decoration:underline;text-underline-offset:2px}
@media (max-width:767px){.pl-faq summary{gap:16px}}

/* ---------- Gravity Forms #4 restyle (presentation only) ---------- */
.pl-gform .gform_wrapper{margin:0!important;max-width:none!important}
.pl-gform .gform_wrapper ul.gform_fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));padding:0!important;margin:0!important;list-style:none}
.pl-gform .gform_wrapper li.gfield{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;float:none!important;clear:none!important;display:block!important}
.pl-gform .gform_wrapper li.gfield--type-textarea,.pl-gform .gform_wrapper li.gfield--type-select{grid-column:1 / -1}
.pl-gform .gform_wrapper .ginput_container{margin:0!important}
.pl-gform .gform_wrapper input[type=text],.pl-gform .gform_wrapper input[type=email],.pl-gform .gform_wrapper input[type=tel],
.pl-gform .gform_wrapper select,.pl-gform .gform_wrapper textarea{
  width:100%!important;font-family:Archivo,system-ui,sans-serif!important;font-size:16px!important;font-weight:500;color:var(--pl-ink);
  background:#fff;border:2px solid rgba(60,65,72,.16)!important;border-radius:10px!important;padding:13px 15px!important;min-height:54px;
  box-shadow:none;transition:border-color .2s var(--pl-ease),box-shadow .2s var(--pl-ease);line-height:1.4!important;
}
.pl-gform .gform_wrapper textarea{min-height:130px;height:130px;resize:vertical;line-height:1.6!important}
.pl-gform .gform_wrapper select{appearance:none;-webkit-appearance:none;padding-right:44px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%233F4045' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center/12px no-repeat}
.pl-gform .gform_wrapper input::placeholder,.pl-gform .gform_wrapper textarea::placeholder{color:#7A8088;opacity:1}
.pl-gform .gform_wrapper input:hover,.pl-gform .gform_wrapper select:hover,.pl-gform .gform_wrapper textarea:hover{border-color:rgba(60,65,72,.32)!important}
.pl-gform .gform_wrapper input:focus,.pl-gform .gform_wrapper select:focus,.pl-gform .gform_wrapper textarea:focus{border-color:var(--pl-blue)!important;box-shadow:0 0 0 4px rgba(111,151,232,.16);outline:none}
.pl-gform .gform_wrapper .gform_footer{margin:26px 0 0!important;padding:0!important;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.pl-gform .gform_wrapper .gform_footer .gform_button,.pl-gform .gform_wrapper .gform_footer button{
  min-width:240px;margin:0!important;padding:0 30px!important;border:0!important;border-radius:10px!important;cursor:pointer;
  font-family:Archivo,system-ui,sans-serif!important;font-weight:700!important;letter-spacing:.015em;color:#fff!important;
  background:linear-gradient(135deg,#325AB6,#2A4FA0)!important;box-shadow:0 8px 22px -14px rgba(50,90,182,.3);transition:transform .24s var(--pl-ease),box-shadow .24s var(--pl-ease);
}
.pl-gform .gform_wrapper .gform_footer .gform_button:hover{transform:translateY(-2px);box-shadow:0 20px 44px -16px rgba(111,151,232,.75)}
.pl-gform .gform_wrapper .validation_message,.pl-gform .gform_wrapper .gfield_validation_message{font-size:13px;font-weight:600;color:#B03A2E;padding:6px 0 0!important;background:none!important;border:0!important}
.pl-gform .gform_wrapper li.gfield_error input,.pl-gform .gform_wrapper li.gfield_error select,.pl-gform .gform_wrapper li.gfield_error textarea{border-color:#C0392B!important;box-shadow:0 0 0 4px rgba(192,57,43,.1)}
.pl-gform .gform_wrapper li.gfield_error{background:none!important;border:0!important}
.pl-gform .gform_wrapper div.validation_error,.pl-gform .gform_wrapper .gform_validation_errors{border:1px solid rgba(192,57,43,.35)!important;border-radius:10px;background:#FDF3F2!important;color:#8E2B22!important;font-size:14px!important;padding:12px 16px!important;margin:0 0 20px!important}
.pl-gform .gform_confirmation_message{font-family:Archivo,system-ui,sans-serif;font-size:17px;font-weight:700;color:var(--pl-blue-deep);padding:8px 0}
.pl-form-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pl-blue-deep),var(--pl-blue-soft),transparent)}
@media (max-width:767px){
  .pl-gform .gform_wrapper ul.gform_fields{grid-template-columns:1fr;gap:16px!important}
  .pl-gform .gform_wrapper .gform_footer .gform_button,.pl-gform .gform_wrapper .gform_footer button{width:100%!important;min-width:0}
}

/* ---------- header (UAE header template) ---------- */
#masthead{position:sticky;top:0;z-index:100}
@media (max-width:782px){}
#masthead .pl-nav{min-width:0}
#masthead a.e-image-link-base{flex:none;display:inline-flex;align-items:center}
#masthead a.e-image-link-base img{width:auto!important;max-width:none!important;height:60px;flex:none}
@media (max-width:767px){#masthead a.e-image-link-base img{height:44px}}
@media (max-width:360px){#masthead a.e-image-link-base img{height:38px}}
#masthead .elementor-element-48cb2cb3{flex:1 1 0!important;width:auto!important;display:flex!important;justify-content:flex-end;min-width:0}
#masthead .elementor-element-66bd3685{flex:0 0 auto!important;width:auto!important}
@media (max-width:1024px){}
@media (min-width:1025px){
  #masthead .pl-nav .hfe-nav-menu{flex-wrap:nowrap!important;white-space:nowrap}
  #masthead .pl-nav .hfe-nav-menu > li > a.hfe-menu-item{padding-left:12px!important;padding-right:12px!important}
}
@media (min-width:1025px) and (max-width:1240px){
  #masthead a[href^="tel:"]:not(.pl-btn){display:none!important}
  #masthead .pl-nav .hfe-nav-menu > li > a.hfe-menu-item{padding-left:9px!important;padding-right:9px!important;font-size:14px!important}
}
/* dropdown chevron drawn with a mask (the theme icon font is not loaded) */
#masthead .pl-nav .sub-arrow i.fa{display:inline-block;width:10px;height:10px;background:currentColor;font-size:0;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
#masthead .pl-nav .sub-arrow i.fa::before{content:none}
@media (min-width:1025px){#masthead .pl-nav .hfe-has-submenu:hover > .hfe-has-submenu-container .sub-arrow i.fa,#masthead .pl-nav .hfe-has-submenu:focus-within > .hfe-has-submenu-container .sub-arrow i.fa{transform:rotate(180deg)}}
#masthead .pl-nav .hfe-has-submenu-container[aria-expanded="true"] .sub-arrow i.fa{transform:rotate(180deg)}
#masthead a[href^="tel:"] span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pl-muted);margin-bottom:4px}
#masthead .hfe-nav-menu__toggle{min-width:48px;min-height:48px;border:2px solid rgba(60,65,72,.2);border-radius:10px;justify-content:center}
#masthead .hfe-nav-menu .sub-menu{min-width:280px}
@media (max-width:1240px) and (min-width:1025px){#masthead .elementor-widget-navigation-menu .menu-item a.hfe-menu-item{padding-left:9px!important;padding-right:9px!important}}
@media (max-width:1024px){
  #masthead .hfe-nav-menu__layout-horizontal{border-top:1px solid var(--pl-line);box-shadow:0 18px 40px -24px rgba(48,52,58,.3)}
  #masthead .hfe-nav-menu a.hfe-menu-item,#masthead .hfe-nav-menu a.hfe-sub-menu-item{min-height:48px;display:flex;align-items:center}
}

/* ---------- floating CTA (shared) ---------- */
.pl-float-cta{
  position:fixed!important;left:50%;bottom:20px;z-index:120;width:520px;max-width:calc(100vw - 32px);
  background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid rgba(79,127,223,.15);border-radius:14px;box-shadow:0 12px 35px rgba(47,51,58,.16);
  opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,14px);
  transition:opacity .26s var(--pl-ease),transform .26s var(--pl-ease),visibility 0s linear .26s;
}
.pl-float-cta.is-on{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition:opacity .26s var(--pl-ease),transform .26s var(--pl-ease),visibility 0s}
.pl-float-btn{position:relative;overflow:hidden;text-decoration:none;width:100%;box-shadow:0 8px 22px rgba(79,127,223,.26);transition:transform .22s var(--pl-ease),box-shadow .22s var(--pl-ease)}
.pl-float-btn:hover,.pl-float-btn:focus{color:#fff!important}
.pl-float-btn:hover{transform:translateY(-2px)}
.pl-float-call:hover{box-shadow:0 12px 30px rgba(42,79,160,.44)}
.pl-float-est:hover{box-shadow:0 12px 30px rgba(58,98,184,.44)}
.pl-float-est::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:left .55s var(--pl-ease)}
.pl-float-est:hover::after{left:120%}
@keyframes plCtaBreathe{0%,100%{box-shadow:0 8px 22px rgba(79,127,223,.2)}50%{box-shadow:0 10px 30px rgba(79,127,223,.38)}}
.pl-float-cta.is-on .pl-float-call{animation:plCtaBreathe 4s var(--pl-ease) 1.2s infinite}
.pl-float-cta .pl-float-call:hover{animation:none}
.pl-float-close{display:grid!important;place-items:center;cursor:pointer;box-shadow:0 2px 5px rgba(34,35,39,.07),0 10px 22px -14px rgba(34,35,39,.45)}
.pl-float-close::before{content:"";width:11px;height:11px;background:var(--pl-graphite);-webkit-mask:var(--pl-i-close) center/contain no-repeat;mask:var(--pl-i-close) center/contain no-repeat}
.pl-float-close:hover{border-color:var(--pl-blue)!important}
.pl-float-close:hover::before{background:var(--pl-blue-deep)}
/* invisible 44px hit area around the small close dot */
.pl-float-close::after{content:"";position:absolute;inset:-9px}
@media (max-width:767px){
  .pl-float-cta{background:rgba(255,255,255,.97);border:0;border-top:1px solid var(--pl-line);box-shadow:0 -10px 32px -22px rgba(46,49,56,.6)}
  .pl-float-call span{display:none}
}
@media (max-width:360px){.pl-float-btn{font-size:13px;gap:6px}.pl-float-btn::before{width:15px;height:15px}}

/* ---------- misc ---------- */
.pl-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%)}
.pl-tcard-caption,.pl-imgcard-title{text-wrap:balance}
.pl-lede,.pl-body,.pl-small{text-wrap:pretty}

@media (prefers-reduced-motion:reduce){
  .pl-tcar-track{scroll-behavior:auto}
  .pl-float-cta,.pl-float-cta.is-on{transition:none}
  .pl-float-cta.is-on .pl-float-call{animation:none}
  .pl-card,.pl-mini,.pl-btn,.pl-card img,.pl-mini img,.pl-imgcard img,.pl-media-frame img{transition:none!important;transform:none!important}
  .pl-btn-primary::after,.pl-float-est::after{display:none}
}
@media (prefers-contrast:more){
  .pl-tex-tile,.pl-tex-surface,.pl-tex-marble,.pl-tex-process,.pl-tex-travertine,.pl-tex-cta{background-image:none!important}
}
@media print{.pl-float-cta,#masthead{display:none!important}}

/* ---------- responsive + touch-target fixes ---------- */
/* the UAE nav pre-sizes its hidden full-width dropdown; keep it from widening the page */
#masthead{overflow-x:clip}
/* standalone link paragraphs: make the link itself the target, >=24px everywhere, >=44px on touch */
[data-elementor-id] p > a.e-paragraph-link-base{display:inline-flex;align-items:center;min-height:24px;color:inherit;text-decoration:none}
@media (pointer:coarse){
  [data-elementor-id] p > a.e-paragraph-link-base{min-height:44px}
  .pl-footer-link{margin-bottom:0!important}
}
/* city cells: the whole cell is the link */
.pl-city{padding:0!important}
.pl-city::before{content:none!important}
.pl-city > a{flex:1 1 auto;display:flex!important;align-items:center;gap:10px;min-height:48px;padding:12px 20px}
.pl-city > a::before{content:"";width:14px;height:14px;flex:none;background:var(--pl-blue);-webkit-mask:var(--pl-i-pin) center/contain no-repeat;mask:var(--pl-i-pin) center/contain no-repeat}
@media (max-width:767px){.pl-city > a{padding:12px 14px}}
/* card footer links read as links */
.pl-tcard-foot > a:hover,.pl-link-arrow > a:hover{color:var(--pl-blue-ink)}
/* hero headline on small phones */
@media (max-width:374px){.home h1.e-heading-base{font-size:29px!important}}
@media (max-width:330px){.home h1.e-heading-base{font-size:27px!important}}
@media (max-width:767px){.pl-proof-tag{right:16px!important;width:auto!important;max-width:none!important}}
/* Elementor scopes its rules as `.elementor .x` (0,2,0); the few overrides below must win over that */
[data-elementor-id] p > a.e-paragraph-link-base{flex-wrap:wrap;justify-content:inherit;column-gap:.3em}
.pl-trust-foot p{text-align:center}
@media (max-width:1024px){
  #masthead .elementor-element-48cb2cb3{margin-left:auto!important;width:52px!important;max-width:52px!important;flex:0 0 52px!important}
  #masthead .pl-nav{width:52px}
}
@media (max-width:767px){
  .pl-float-cta{left:0!important;right:0!important;bottom:0!important;width:auto!important;max-width:none!important;gap:8px!important;
    padding:9px 10px calc(9px + env(safe-area-inset-bottom))!important;border-radius:0!important;transform:translateY(14px)}
  .pl-float-cta.is-on{transform:translateY(0)}
  .pl-float-btn{min-height:50px!important;padding:0 10px!important;font-size:14.5px!important}
  .pl-float-btn span{display:none}
  .pl-float-close{top:-13px!important;right:12px!important;width:26px!important;height:26px!important}
  body{padding-bottom:0}
}
/* mobile/tablet dropdown: anchor to the masthead row and span the viewport */
@media (max-width:1024px){
  #masthead .elementor-element-8c94000{position:relative!important}
  #masthead .elementor-element-48cb2cb3,#masthead .pl-nav,#masthead .pl-nav > .elementor-widget-container,#masthead .pl-nav .hfe-nav-menu{position:static!important}
  #masthead .pl-nav nav.hfe-nav-menu__layout-horizontal{position:absolute!important;top:100%!important;left:calc(50% - 50vw)!important;right:auto!important;width:100vw!important;max-height:calc(100vh - 140px);overflow-y:auto;background:#fff;z-index:110}
  #masthead .pl-nav nav.hfe-nav-menu__layout-horizontal a.hfe-menu-item,#masthead .pl-nav nav.hfe-nav-menu__layout-horizontal a.hfe-sub-menu-item{padding-left:24px!important;padding-right:24px!important;border-bottom:1px solid #EDE8E0}
}
.pl-float-btn{gap:0!important}
.pl-float-btn::before{margin-right:9px}

/* ---------- content sections: link lists, region + resource accordions ---------- */
.pl-trust-cell > .pl-h3 + .pl-small{margin-top:10px}
.pl-links{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid #EDE8E0;display:flex;flex-direction:column;gap:0;font-family:var(--pl-font-ui)}
.pl-links a,.pl-acc-list a,.pl-res-more a{color:var(--pl-blue-ink);font-weight:600;text-decoration:none;text-underline-offset:3px}
.pl-links a{display:inline-flex;align-items:center;min-height:32px;padding:3px 0;font-size:14.5px;line-height:1.35}
.pl-links a:hover,.pl-acc-list a:hover,.pl-res-more a:hover{color:var(--pl-blue-deep);text-decoration:underline}

.pl-block-title{margin:0!important}
.pl-acc{margin-top:18px;border-top:1px solid var(--pl-line)}
.pl-acc details{border-bottom:1px solid var(--pl-line);transition:background-color .25s var(--pl-ease)}
.pl-acc details[open]{background:#fff}
.pl-acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:16px 8px;min-height:56px}
.pl-acc summary::-webkit-details-marker{display:none}
.pl-acc summary h4{margin:0;flex:1;font-family:var(--pl-font-ui);font-size:16.5px;font-weight:700;line-height:1.3;color:var(--pl-ink);letter-spacing:-.01em}
.pl-acc summary:hover h4{color:var(--pl-blue-deep)}
.pl-acc-count{font-family:var(--pl-font-ui);font-size:13px;color:var(--pl-muted);white-space:nowrap}
.pl-acc-icon{position:relative;flex:none;width:32px;height:32px;border-radius:50%;border:2px solid rgba(60,65,72,.16);color:var(--pl-ink);transition:background .26s var(--pl-ease),border-color .26s var(--pl-ease)}
.pl-acc-icon::before,.pl-acc-icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2.2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%);transition:transform .3s var(--pl-ease)}
.pl-acc-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.pl-acc summary:hover .pl-acc-icon{border-color:var(--pl-blue);background:rgba(111,151,232,.08)}
.pl-acc details[open] .pl-acc-icon{background:linear-gradient(140deg,var(--pl-blue-bright),var(--pl-blue-deep));border-color:transparent;color:#fff}
.pl-acc details[open] .pl-acc-icon::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0)}
.pl-acc-list{list-style:none;margin:0;padding:4px 8px 24px;columns:4 190px;column-gap:28px;font-family:var(--pl-font-ui)}
.pl-acc-wide .pl-acc-list{columns:2 320px;column-gap:40px}
.pl-acc-list li{break-inside:avoid}
.pl-acc-list a{display:block;padding:6px 0;min-height:24px;font-size:14.5px;line-height:1.4}
.pl-res-more{margin:28px 0 0;font-family:var(--pl-font-ui);font-size:14.5px;line-height:2;color:var(--pl-text)}

.home #resources .pl-trust-cell > .pl-small:first-child{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-blue-deep)}
.home #resources .pl-trust-cell .pl-h3 a,.home #resources .pl-trust-cell a .pl-h3{color:inherit;text-decoration:none}
.home #resources .pl-trust-cell .pl-h3 a:hover,.home #resources .pl-trust-cell a:hover .pl-h3{color:var(--pl-blue-deep);text-decoration:underline;text-underline-offset:3px}
@media (min-width:1025px){.home #resources .pl-trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media (max-width:767px){
  .pl-block-title{margin:0!important}
  .pl-acc summary{padding:14px 2px;gap:12px}
  .pl-acc-count{display:none}
  .pl-acc-list{padding:0 2px 20px}
}

/* ==========================================================================
   Visual refinement pass (2026-09-25)
   ========================================================================== */
/* consistency: radius, buttons, heads */
.pl-plat{border-radius:16px!important}
.pl-btn{min-height:54px!important}
.pl-head{margin-bottom:56px!important}
@media (max-width:767px){.pl-head{margin-bottom:36px!important}}

/* hero: wider text block, stronger H1, centred against the image */
@media (min-width:1025px){
  .elementor-element-4707b443{grid-template-columns:50% 50%!important;min-height:600px!important}
  .elementor-element-4fc8abb0{padding:56px 64px 56px 72px!important;align-items:center!important}
  .elementor-element-1d8e3f25{max-width:600px!important;width:100%}
  .home h1.e-heading-base{font-size:58px!important;line-height:1!important;margin-bottom:22px!important}
  .elementor-element-79ac73aa{gap:14px!important}
  .elementor-element-79ac73aa .pl-btn{min-width:232px;justify-content:center}
}
@media (min-width:1025px) and (max-width:1279px){
  .home h1.e-heading-base{font-size:48px!important}
  .elementor-element-4fc8abb0{padding:48px 44px 48px 48px!important}
}

/* reviews: tighter section, stronger project cards */
@media (min-width:768px){.elementor-element-256afb48{padding-block:96px!important}}
.pl-plat-row{margin-bottom:40px!important}
.pl-tcard{box-shadow:0 1px 2px rgba(46,49,56,.05),0 22px 44px -26px rgba(46,49,56,.34)!important;height:100%}
.pl-tcar-track{align-items:stretch}
.pl-tcard-fig{aspect-ratio:16/10!important}
.pl-tcard-body{padding:24px 26px 26px!important}

/* trust strip: a slim band, icon beside text, hairline dividers */
.elementor-element-4306e7c5{padding-block:44px!important;background:#fff!important;border-bottom:1px solid var(--pl-line)}
.elementor-element-4306e7c5 .pl-trust-grid{background:transparent!important;border:0!important;border-radius:0!important;gap:0!important;overflow:visible!important}
.elementor-element-4306e7c5 .pl-trust-cell{display:grid!important;padding:4px 26px!important;background:transparent!important;border-left:1px solid var(--pl-line)}
.elementor-element-4306e7c5 .pl-trust-cell:first-child{border-left:0;padding-left:0!important}
.elementor-element-4306e7c5 .pl-icon-tile{margin:0!important}
.elementor-element-4306e7c5 .pl-trust-cell .pl-h3{font-size:16px!important;line-height:1.3!important}
.elementor-element-4306e7c5 .pl-trust-cell .pl-small{font-size:14px!important}
@media (max-width:1024px){
  .elementor-element-4306e7c5 .pl-trust-grid{row-gap:28px!important}
  .elementor-element-4306e7c5 .pl-trust-cell:nth-child(odd){border-left:0;padding-left:0!important}
}
@media (max-width:767px){
  .elementor-element-4306e7c5{padding-block:32px!important}
  .elementor-element-4306e7c5 .pl-trust-grid{row-gap:0!important}
  .elementor-element-4306e7c5 .pl-trust-cell{border-left:0;padding:18px 0!important;border-top:1px solid var(--pl-line)}
  .elementor-element-4306e7c5 .pl-trust-cell:first-child{border-top:0;padding-top:0!important}
}

/* service + guide cards: one system (equal rows, same media ratio, CTA on the baseline) */
.pl-cards{grid-auto-rows:1fr}
.pl-card{height:100%}
.pl-card-img{aspect-ratio:4/3!important;flex:none}
.pl-card-body{flex:1 1 auto!important}
.pl-card-cta{margin-top:auto!important}
@media (max-width:767px){.pl-card-img{aspect-ratio:16/9!important}.pl-cards{grid-auto-rows:auto}}

/* when-is-cleaning-enough split: ~46/54, even rhythm, columns finish together */
@media (min-width:1025px){
  .pl-proof-split{grid-template-columns:46% 54%!important;min-height:0!important}
  .elementor-element-48d335cc{padding:96px 64px 96px max(40px,calc((100vw - 1216px) / 2))!important;justify-content:center}
  .elementor-element-5b2d2d2a{max-width:560px!important}
}

/* process: atmospheric equipment photo under a light overlay (0.88-0.93) */
.home #process{
  background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;
}
@media (max-width:767px){.home #process{background-image:linear-gradient(rgba(247,244,239,.93),rgba(247,244,239,.93)),url(/wp-content/uploads/2026/09/technician-grout-extraction-san-diego.jpg)!important}}

/* directory 1, surface expertise: material cards with photo, count, two-column links */
.home #surfaces .pl-card{background:var(--pl-ivory)!important}
.home #surfaces .pl-card-img{aspect-ratio:16/9!important}
.home #surfaces .pl-card-body{padding:22px 24px 26px!important}
.home #surfaces .pl-card-body > .pl-small:first-child,.home #resources .pl-card-body > .pl-small:first-child{margin:0 0 8px!important;font-size:11.5px!important;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-blue-deep)}
.home #surfaces .pl-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;margin-top:16px;padding-top:14px}
.home #surfaces .pl-links a{font-size:14px;min-height:30px;padding:3px 0}
.home #surfaces .pl-cards{grid-auto-rows:auto}
@media (max-width:1024px) and (min-width:768px){.home #surfaces .pl-links{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* directory 2, services and solutions: one independent row per category.
   Each row is its own 2-column grid (description | links); the links are a separate inner grid. */
.home #cleaning-vs-restoration .pl-trust-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;background:#fff!important;border:1px solid #DDD8CF!important;border-radius:20px!important;padding:0 44px!important;counter-reset:pl-sol;box-shadow:0 22px 48px -34px rgba(46,49,56,.3)}
.home #cleaning-vs-restoration .pl-trust-grid > .pl-trust-cell{grid-column:1 / -1!important;grid-row:auto!important;min-width:0;display:grid!important;grid-template-columns:minmax(240px,.32fr) minmax(0,.68fr);grid-template-rows:auto 1fr;column-gap:40px;row-gap:0;align-items:start;align-content:start;padding:36px 0!important;margin:0!important;background:transparent!important;border:0!important;border-top:1px solid #DDD8CF!important;border-radius:0!important;box-shadow:none!important;counter-increment:pl-sol}
.home #cleaning-vs-restoration .pl-trust-grid > .pl-trust-cell:first-child{border-top:0!important}
.home #cleaning-vs-restoration .pl-trust-cell > .pl-h3{grid-column:1;grid-row:1;min-width:0;margin:0!important;font-size:19px!important;line-height:1.3!important;color:#30343A}
.home #cleaning-vs-restoration .pl-trust-cell > .pl-h3::before{content:counter(pl-sol,decimal-leading-zero);display:block;margin-bottom:8px;font-family:var(--pl-font-display);font-size:15px;font-weight:600;letter-spacing:.02em;color:#4F7FDF}
.home #cleaning-vs-restoration .pl-trust-cell > .pl-small{grid-column:1;grid-row:2;min-width:0;margin-top:10px!important;font-size:15px!important;max-width:46ch}
.home #cleaning-vs-restoration .pl-trust-cell > .pl-linkblock{grid-column:2;grid-row:1 / span 2;min-width:0;align-self:start;padding-top:2px}
.home #cleaning-vs-restoration .pl-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 28px;columns:auto;margin:0;padding:0;border:0}
.home #cleaning-vs-restoration .pl-links li{min-width:0}
.home #cleaning-vs-restoration .pl-links a{font-size:14px;min-height:0;padding:2px 0;line-height:1.35}
.home #cleaning-vs-restoration .pl-link-arrow{margin-top:28px}
@media (min-width:768px) and (max-width:1024px){
  .home #cleaning-vs-restoration .pl-trust-grid{padding:0 28px!important}
  .home #cleaning-vs-restoration .pl-trust-grid > .pl-trust-cell{grid-template-columns:minmax(240px,.35fr) minmax(0,.65fr);column-gap:32px;padding:32px 0!important}
  .home #cleaning-vs-restoration .pl-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}
}
/* narrow tablets: stack the description above the links so neither column gets cramped */
@media (min-width:768px) and (max-width:899px){
  .home #cleaning-vs-restoration .pl-trust-grid > .pl-trust-cell{grid-template-columns:minmax(0,1fr)}
  .home #cleaning-vs-restoration .pl-trust-cell > .pl-small{max-width:40ch}
  .home #cleaning-vs-restoration .pl-trust-cell > .pl-linkblock{grid-column:1;grid-row:3;margin-top:18px}
  .home #cleaning-vs-restoration .pl-links{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:767px){
  .home #cleaning-vs-restoration .pl-trust-grid{padding:0 20px!important;border-radius:16px!important}
  .home #cleaning-vs-restoration .pl-trust-grid > .pl-trust-cell{grid-template-columns:minmax(0,1fr);padding:28px 0!important}
  .home #cleaning-vs-restoration .pl-trust-cell > .pl-small{max-width:none}
  .home #cleaning-vs-restoration .pl-trust-cell > .pl-linkblock{grid-column:1;grid-row:3;margin-top:16px}
  .home #cleaning-vs-restoration .pl-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
}
@media (max-width:479px){.home #cleaning-vs-restoration .pl-links{grid-template-columns:minmax(0,1fr);gap:6px}}

/* directory 3, communities: open regional columns on desktop/tablet, accordions on phones */
.pl-regions{margin-top:64px;padding:40px 44px 36px;background:#fff;border:1px solid var(--pl-line);border-radius:20px}
.pl-dir-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}
.pl-dir-note{margin:0;font-family:var(--pl-font-ui);font-size:14.5px;line-height:1.5;color:var(--pl-muted)}
@media (min-width:768px){
}
@media (min-width:768px) and (max-width:1024px){}
@media (max-width:767px){.pl-regions{margin-top:44px;padding:24px 18px 8px;border-radius:16px}}

/* resources: editorial guide cards first, archive in a quiet ivory panel */
.home #resources .pl-card-img{aspect-ratio:16/10!important}
.home #resources .pl-card-body .pl-h3{font-size:17px!important}
.pl-resources{margin-top:64px;padding:36px 40px 30px;background:var(--pl-ivory);border:1px solid #EDE8E0;border-radius:20px}
.pl-resources .pl-acc{margin-top:22px}
.pl-resources .pl-acc details[open]{background:#fff}
@media (max-width:767px){.pl-resources{margin-top:44px;padding:24px 16px 20px;border-radius:16px}}

/* estimate form: larger card, 43/57 split */
@media (min-width:1025px){.pl-form-split{grid-template-columns:minmax(0,43fr) minmax(0,57fr)!important;gap:64px!important;align-items:center!important}}
.pl-form-card{padding:48px!important;border-radius:20px!important;box-shadow:0 2px 4px rgba(48,52,58,.03),0 30px 60px -34px rgba(48,52,58,.26)!important}
.pl-gform .gform_wrapper ul.gform_fields{gap:22px!important}
.pl-gform .gform_wrapper .gform_footer{margin-top:30px!important}
.pl-gform .gform_wrapper .gform_footer .gform_button,.pl-gform .gform_wrapper .gform_footer button{width:100%!important;min-height:58px!important;font-size:16px!important}
@media (max-width:767px){.pl-form-card{padding:28px 20px!important;border-radius:16px!important}}

/* FAQ: a little more compact, icons centred on the question */
.pl-faq summary{padding:20px 6px!important;align-items:center!important}
.pl-faq summary > :last-child{margin-top:0!important}
@media (max-width:767px){.pl-faq summary{padding:17px 2px!important}}

/* final CTA: photo clearly visible (overlay ~.74-.80), more air, bigger buttons */
@media (min-width:768px){#get-started{padding-block:140px!important}}
#get-started .pl-btn{min-width:240px;min-height:58px!important;font-size:16px!important;justify-content:center}
@media (max-width:767px){#get-started .pl-btn{min-width:0;width:100%}}

/* footer: clear break from the CTA, even columns and link rhythm */
#colophon{border-top:1px solid var(--pl-line)}
#colophon .pl-footer-title{margin:0 0 18px!important;font-size:12px!important;letter-spacing:.16em!important}
#colophon .pl-footer-link{margin:0 0 4px!important}
@media (min-width:1025px){#colophon .elementor-element-5463625b{column-gap:56px!important}}
@media (max-width:767px){#colophon .pl-footer-col + .pl-footer-col{padding-top:24px;border-top:1px solid #EDE8E0}}

/* refinement pass, round 2 */
.elementor-element-4306e7c5 .pl-trust-cell{column-gap:12px!important;row-gap:8px;align-items:center!important}
.elementor-element-4306e7c5 .pl-trust-cell > div:last-child{display:contents}
.elementor-element-4306e7c5 .pl-icon-tile{border-radius:10px!important}
.elementor-element-4306e7c5 .pl-trust-cell .pl-small{grid-column:1 / -1;margin-top:0!important}
@media (min-width:1025px){.home #services .pl-card-body > .pl-h3{min-height:2.56em;display:flex;align-items:flex-end}}
@media (min-width:1025px){
  .home #surfaces .pl-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:1fr!important}
  .home #surfaces .pl-card{flex-direction:row!important}
  .home #surfaces .pl-card-img{aspect-ratio:auto!important;width:36%;min-height:100%}
  .home #surfaces .pl-card-body{width:64%;padding:26px 28px 24px!important}
  .home #surfaces .pl-links{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.home #process{background-image:linear-gradient(90deg,rgba(247,244,239,.93) 0%,rgba(247,244,239,.92) 50%,rgba(247,244,239,.9) 100%),url(/wp-content/uploads/2026/09/technician-grout-extraction-san-diego.jpg)!important}
#get-started{
  background-image:radial-gradient(ellipse 55% 85% at 50% 50%,rgba(247,244,239,.8) 0%,rgba(247,244,239,.76) 60%,rgba(247,244,239,.74) 100%),url(/wp-content/uploads/2026/09/tex-cta.jpg),url(/wp-content/uploads/2026/09/tex-cta.jpg)!important;
  background-blend-mode:normal,multiply,normal!important;background-size:cover!important;background-position:center!important;
}

/* ---------- service-area navigator (region cards, one open at a time) ---------- */
.pl-nav-areas{margin-top:56px;padding:34px 38px 38px}
.pl-featured{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:22px 0 24px;padding:0 0 24px;border-bottom:1px solid #EDE8E0}
.pl-featured-label{font:700 11.5px/1.4 var(--pl-font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--pl-muted)}
.pl-featured ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pl-featured a{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 14px;border:1px solid rgba(111,151,232,.3);border-radius:999px;background:#F5F8FD;color:var(--pl-blue-ink);font:600 14px/1.2 var(--pl-font-ui);text-decoration:none;transition:background-color .2s var(--pl-ease),border-color .2s var(--pl-ease)}
.pl-featured a::before{content:"";width:12px;height:12px;flex:none;background:var(--pl-blue);-webkit-mask:var(--pl-i-pin) center/contain no-repeat;mask:var(--pl-i-pin) center/contain no-repeat}
.pl-featured a:hover{background:#fff;border-color:var(--pl-blue)}
.pl-region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.pl-region{background:var(--pl-ivory);border:1px solid #E7E1D7;border-radius:16px;padding:20px 22px 14px;transition:background-color .25s var(--pl-ease),border-color .25s var(--pl-ease),box-shadow .25s var(--pl-ease)}
.pl-region:has(details[open]){background:#fff;border-color:rgba(111,151,232,.45);box-shadow:0 18px 40px -28px rgba(46,49,56,.35)}
.pl-region-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pl-region-head h4{margin:0;font:700 16px/1.3 var(--pl-font-ui);letter-spacing:-.005em;color:var(--pl-ink)}
.pl-region-count{flex:none;min-width:32px;padding:2px 9px;border-radius:999px;background:rgba(111,151,232,.12);color:var(--pl-blue-deep);font:700 12px/1.6 var(--pl-font-ui);text-align:center}
.pl-region-sub{margin:3px 0 12px;font:13.5px/1.45 var(--pl-font-ui);color:var(--pl-muted)}
.pl-region-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}
.pl-region-list a{display:flex;align-items:center;min-height:28px;padding:2px 0;font:600 14px/1.3 var(--pl-font-ui);color:var(--pl-blue-ink);text-decoration:none}
.pl-region-list a:hover{color:var(--pl-blue-deep);text-decoration:underline;text-underline-offset:3px}
.pl-region details{margin-top:8px;border-top:1px solid #E7E1D7}
.pl-region summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:6px 0 0;font:700 12px/1.3 var(--pl-font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--pl-blue-deep)}
.pl-region summary::-webkit-details-marker{display:none}
.pl-region summary::after{content:"";flex:none;width:8px;height:8px;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s var(--pl-ease)}
.pl-region details[open] summary::after{transform:translateY(2px) rotate(225deg)}
.pl-region summary:hover{color:var(--pl-blue-ink)}
.pl-more-close,.pl-region details[open] .pl-more-open{display:none}
.pl-region details[open] .pl-more-close{display:inline}
.pl-region-more{padding:6px 0 4px}
@media (min-width:768px) and (max-width:1024px){.pl-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){
  .pl-nav-areas{margin-top:40px;padding:22px 16px 6px}
  .pl-featured{margin:16px 0 4px;padding-bottom:18px}
  .pl-featured-label{width:100%}
  .pl-region-grid{grid-template-columns:1fr;gap:0}
  .pl-region{position:relative;padding:0;background:transparent!important;border:0;border-bottom:1px solid #E7E1D7;border-radius:0;box-shadow:none!important}
  .pl-region:last-child{border-bottom:0}
  .pl-region-head{min-height:60px;padding-right:48px}
  .pl-region-sub,.pl-region > .pl-region-list{display:none}
  .pl-region:has(details[open]) .pl-region-sub{display:block;margin-top:-6px}
  .pl-region:has(details[open]) > .pl-region-list{display:grid}
  .pl-region details{margin:0;border:0}
  .pl-region summary{position:absolute;top:0;left:0;right:0;height:60px;min-height:0;padding:0;justify-content:flex-end;font-size:0;letter-spacing:0;color:var(--pl-ink)}
  .pl-region summary::after{width:30px;height:30px;margin:0;border:2px solid rgba(60,65,72,.16);border-radius:50%;transform:none;
    background:linear-gradient(currentColor,currentColor) center/12px 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 12px no-repeat}
  .pl-region details[open] summary::after{transform:none;color:#fff;border-color:transparent;
    background:linear-gradient(#fff,#fff) center/12px 2px no-repeat,linear-gradient(140deg,var(--pl-blue-bright),var(--pl-blue-deep))}
  .pl-region-more{padding:0 0 18px}
  .pl-region:has(details[open]) > .pl-region-list + details .pl-region-more{padding-top:0}
}

/* featured city grid: the generic paragraph-link rule (0,3,2) was collapsing each cell to 24px with no padding */
.pl-city-grid{margin-top:32px!important;border-radius:14px!important}
.pl-city{min-height:0!important}
.pl-city > a.e-paragraph-link-base{display:flex!important;flex:1 1 auto;width:100%;align-items:center;gap:10px;padding:12px 18px!important;
  font-size:15px;font-weight:600;line-height:1.25;color:var(--pl-graphite)!important;transition:background-color .2s var(--pl-ease),color .2s var(--pl-ease)}
.pl-city > a.e-paragraph-link-base:hover{background:#F5F8FD;color:var(--pl-blue-ink)!important}
@media (max-width:767px){.pl-city > a.e-paragraph-link-base{padding:12px 14px!important;font-size:14.5px;gap:8px}}
.pl-city > a.e-paragraph-link-base{box-sizing:border-box!important;min-height:50px!important}
@media (max-width:767px){
  .pl-featured ul{gap:6px}
  .pl-featured a{min-height:36px;padding:5px 12px;font-size:13.5px}
  .pl-city > a.e-paragraph-link-base{min-height:48px!important}
}

/* ---------- sitewide header: Services mega panel (desktop), nested accordions (mobile) ---------- */
@media (min-width:1025px){
  #masthead .elementor-element-8c94000{position:relative!important}
  #masthead .elementor-element-48cb2cb3,#masthead .pl-nav,#masthead .pl-nav > .elementor-widget-container,#masthead .pl-nav nav,#masthead .pl-nav .hfe-nav-menu,#masthead .pl-nav .hfe-nav-menu > li.pl-mega{position:static!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu{left:0!important;right:0!important;top:100%!important;margin:0 auto!important;width:min(1216px,calc(100vw - 48px))!important;max-width:none!important;
    display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:0 22px;padding:26px 28px 22px!important;background:#fff!important;border:1px solid var(--pl-line)!important;border-radius:0 0 18px 18px!important;box-shadow:0 30px 60px -34px rgba(46,49,56,.4)!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px}
  #masthead .pl-nav li.pl-mega > .sub-menu > li{position:static!important;border:0!important}
  #masthead .pl-nav li.pl-mega > .sub-menu > li > .hfe-has-submenu-container > a.hfe-sub-menu-item{display:block!important;min-height:0!important;padding:0 0 10px!important;margin:0 0 6px;border-bottom:1px solid var(--pl-line)!important;
    font-size:11.5px!important;font-weight:800!important;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-blue-deep)!important;background:transparent!important;white-space:normal!important}
  #masthead .pl-nav li.pl-mega > .sub-menu .sub-arrow{display:none!important}
  #masthead .pl-nav li.pl-mega .sub-menu .sub-menu{position:static!important;visibility:inherit!important;opacity:1!important;display:block!important;min-width:0!important;padding:0!important;margin:0!important;
    background:transparent!important;border:0!important;box-shadow:none!important;transform:none!important}
  #masthead .pl-nav li.pl-mega .sub-menu .sub-menu li{border:0!important}
  #masthead .pl-nav li.pl-mega .sub-menu .sub-menu a.hfe-sub-menu-item{display:block!important;min-height:0!important;padding:4px 0!important;font-size:13.5px!important;font-weight:500!important;line-height:1.3!important;
    color:var(--pl-text)!important;background:transparent!important;white-space:normal!important;border:0!important}
  #masthead .pl-nav li.pl-mega .sub-menu .sub-menu a.hfe-sub-menu-item:hover{color:var(--pl-blue-ink)!important;text-decoration:underline;text-underline-offset:3px}
}
@media (min-width:1025px){
  #masthead .pl-nav li.pl-mega > .sub-menu > li{min-width:0!important;width:auto!important}
  #masthead .pl-nav li.pl-mega .sub-menu .sub-menu{width:auto!important}
}
@media (max-width:1024px){
  #masthead .pl-nav .sub-menu .sub-menu a.hfe-sub-menu-item{padding-left:40px!important;font-weight:500!important;font-size:15px!important}
  #masthead .pl-nav li.pl-mega > .sub-menu > li > .hfe-has-submenu-container > a.hfe-sub-menu-item{padding-left:32px!important}
}

/* ==========================================================================
   Inner pages (Phase 2): shared components
   ========================================================================== */
/* hero: image ~54%, light panel ~46%, balanced height */
.pl-ihero{min-height:0!important}
@media (min-width:1025px){.pl-ihero{grid-template-columns:54% 46%!important}}
@media (max-width:1024px){.pl-ihero{grid-template-columns:1fr!important;grid-template-rows:auto auto!important}.pl-ihero > .e-con{width:100%!important;max-width:100%!important}}
.pl-ihero > .e-con:first-child{min-height:520px!important}
.pl-ihero > .e-con:last-child{padding:56px 56px 56px 60px!important;align-items:center!important}
.pl-ihero > .e-con:last-child > .e-con{max-width:560px!important}
.pl-ihero h1{font-size:44px!important;line-height:1.03!important;margin-bottom:20px!important;text-wrap:balance}
.pl-ihero h1 span{color:var(--pl-blue-deep)}
.pl-ihero h1 + p{max-width:52ch!important;font-size:17.5px!important;margin-bottom:32px!important;text-wrap:pretty}
.pl-ihero .pl-eyebrow{margin-bottom:12px!important}
.pl-crumbs a{color:var(--pl-blue-ink);text-decoration:none}
.pl-crumbs a:hover{text-decoration:underline;text-underline-offset:3px}
.pl-crumbs span[aria-hidden]{margin:0 6px;color:#A7ACB2}
@media (max-width:1279px) and (min-width:1025px){.pl-ihero h1{font-size:38px!important}.pl-ihero > .e-con:last-child{padding:44px 40px!important}}
@media (max-width:1024px){.pl-ihero > .e-con:first-child{min-height:320px!important}.pl-ihero > .e-con:last-child{padding:36px 24px 52px!important}.pl-ihero h1{font-size:36px!important}}
@media (max-width:767px){.pl-ihero > .e-con:first-child{min-height:230px!important}.pl-ihero > .e-con:last-child{padding:24px 20px 44px!important}.pl-ihero h1{font-size:29px!important}.pl-ihero h1 + p{font-size:15.5px!important}}

/* answer-first block */
.pl-answer{position:relative;box-shadow:0 22px 48px -36px rgba(46,49,56,.35)}
.pl-answer::before{content:"";position:absolute;left:0;top:26px;bottom:26px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--pl-blue-bright),var(--pl-blue-deep))}
.pl-answer .pl-h2{font-size:32px!important;line-height:1.12!important;margin-bottom:14px!important}
.pl-answer .pl-lede{font-size:17px!important;max-width:none!important;margin-top:0!important}
@media (max-width:767px){.pl-answer .pl-h2{font-size:25px!important}}

/* body copy blocks inside columns */
.pl-col > .pl-body + .pl-body,.pl-rich > .pl-body + .pl-body,.pl-col > .pl-lede + .pl-body{margin-top:14px!important}
.pl-col > .pl-body strong,.pl-rich strong{color:var(--pl-ink)}
.pl-body a,.pl-lede a{color:var(--pl-blue-ink);text-decoration:underline;text-underline-offset:2px}
.pl-bullets{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:9px;font-family:var(--pl-font-ui);font-size:15.5px;line-height:1.55;color:var(--pl-text)}
.pl-bullets li{position:relative;padding-left:26px}
.pl-bullets li::before{content:"";position:absolute;left:2px;top:.52em;width:12px;height:12px;border-radius:50%;background:rgba(111,151,232,.18);box-shadow:inset 0 0 0 3px var(--pl-blue)}
.pl-rich-html{width:100%}

/* split media: one or two images, same width, stacked */
.pl-split-media{display:flex!important;flex-direction:column;gap:20px;align-self:stretch}
.pl-split-media > .pl-media-frame{flex:1 1 0;min-height:260px}
.pl-split{align-items:stretch!important}
.pl-split > .pl-col{justify-content:center}
@media (max-width:1024px){.pl-split-media > .pl-media-frame{min-height:0;aspect-ratio:16/10;flex:none}}

/* stacked blocks inside one section need air */
.pl-wrap > .e-grid + .e-grid,.pl-wrap > .e-grid + .elementor-widget,.pl-wrap > .elementor-widget + .e-grid,.pl-wrap > .e-grid + .e-con,.pl-wrap > .e-con + .e-grid,.pl-wrap > .elementor-widget + .e-con,.pl-wrap > .e-grid + .e-paragraph-base{margin-top:48px}
.pl-wrap > .pl-head + .e-grid,.pl-wrap > .pl-head + .elementor-widget{margin-top:0}
.pl-wrap > .e-grid + .pl-head,.pl-wrap > .elementor-widget + .pl-head{margin-top:88px}

/* trust-style cells: 2 or 3 per row when that is all there is */
.pl-trust-grid:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.pl-trust-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1024px){.pl-trust-grid:has(> :nth-child(3):last-child){grid-template-columns:1fr}}
@media (max-width:767px){.pl-trust-grid:has(> :nth-child(2):last-child){grid-template-columns:1fr}}
.pl-trust-cell > .pl-link-arrow{margin-top:auto!important;padding-top:14px}
.pl-linkrow .pl-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px;margin-top:28px}
@media (max-width:1024px){.pl-linkrow .pl-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.pl-linkrow .pl-links{grid-template-columns:1fr}}

/* problem cards */
.pl-prob{text-decoration:none;color:inherit;transition:border-color .2s var(--pl-ease),box-shadow .2s var(--pl-ease),transform .2s var(--pl-ease)}
.pl-prob:hover{border-color:rgba(111,151,232,.5)!important;box-shadow:0 18px 40px -28px rgba(46,49,56,.4);transform:translateY(-2px)}
.pl-prob > .pl-small:first-child{margin:0 0 6px!important;font-size:11.5px!important;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-blue-deep)}
.pl-prob > .pl-h3 + .pl-small{margin-bottom:14px!important}
.pl-prob > .pl-card-cta{margin-top:auto!important;padding-top:0!important}

/* comparison tables: table on desktop, stacked cards on phones */
.pl-table-wrap{width:100%;background:#fff;border:1px solid var(--pl-line);border-radius:18px;overflow:hidden;box-shadow:0 22px 48px -38px rgba(46,49,56,.35)}
.pl-table{width:100%;border-collapse:collapse;font-family:var(--pl-font-ui);font-size:15px;line-height:1.5;color:var(--pl-text)}
.pl-table caption{caption-side:top;text-align:left;padding:18px 24px 14px;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--pl-blue-deep);border-bottom:1px solid var(--pl-line);background:#FBFAF7}
.pl-table th,.pl-table td{padding:16px 24px;text-align:left;vertical-align:top;border-bottom:1px solid #EDE8E0}
.pl-table thead th{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-muted);background:#FBFAF7}
.pl-table tbody th{font-weight:700;color:var(--pl-ink);white-space:nowrap}
.pl-table tbody tr:last-child > *{border-bottom:0}
.pl-table a{color:var(--pl-blue-ink);text-decoration:underline;text-underline-offset:2px}
@media (max-width:767px){
  .pl-table thead{display:none}
  .pl-table,.pl-table tbody,.pl-table tr,.pl-table th,.pl-table td{display:block;width:100%}
  .pl-table tbody tr{padding:16px 18px;border-bottom:1px solid #EDE8E0}
  .pl-table tbody tr:last-child{border-bottom:0}
  .pl-table tbody th{padding:0 0 8px;border:0;white-space:normal;font-size:16px}
  .pl-table td{padding:4px 0;border:0}
  .pl-table td::before{content:attr(data-label);display:block;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pl-muted);margin-bottom:2px}
  .pl-table caption{padding:14px 18px 12px}
}

/* service snapshot: the old sticky sidebar behaviour was removed 2026-09-30 when the card moved below the intro split (see .pl-service-snapshot) */
.pl-snap-list{margin:14px 0 20px;display:grid;gap:12px;font-family:var(--pl-font-ui)}
.pl-snap-list div{padding-bottom:12px;border-bottom:1px solid #EDE8E0}
.pl-snap-list dt{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pl-muted)}
.pl-snap-list dd{margin:3px 0 0;font-size:14.5px;line-height:1.5;color:var(--pl-ink)}
.pl-snapshot .pl-btn-row{flex-direction:column;gap:10px}
.pl-snapshot .pl-btn{width:100%;justify-content:center}

/* process rail with 3, 4 or 6 steps */
@media (min-width:1025px){
  .pl-process-rail:has(> :nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
  .pl-process-rail:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
  .pl-process-rail:has(> :nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}
}
/* overlay cards in 2/3-column grids keep a steady height */
.pl-grid-3 > .pl-imgcard{aspect-ratio:4/5}
.pl-grid-2 > .pl-imgcard{aspect-ratio:16/11}
@media (max-width:767px){.pl-grid-3 > .pl-imgcard,.pl-grid-2 > .pl-imgcard{aspect-ratio:auto;min-height:300px}}

/* inner pages: consistent rhythm between stacked blocks inside a section */
body:not(.home) .pl-wrap,body:not(.home) .pl-wrap-narrow{row-gap:56px}
body:not(.home) .pl-wrap > .pl-head,body:not(.home) .pl-wrap-narrow > .pl-head{margin-bottom:0!important}
body:not(.home) .pl-wrap > .pl-head:not(:first-child){margin-top:48px}
body:not(.home) .pl-wrap > .pl-head + *{margin-top:-8px}
@media (max-width:767px){body:not(.home) .pl-wrap,body:not(.home) .pl-wrap-narrow{row-gap:40px}body:not(.home) .pl-wrap > .pl-head:not(:first-child){margin-top:24px}}
.pl-table td,.pl-table th,.pl-table tr{background-color:transparent!important}
@media (max-width:767px){.pl-table caption{display:block;width:100%;box-sizing:border-box}.pl-trust-cell .pl-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}}
.pl-rich > .pl-answer{margin-bottom:56px}
.pl-answer > .pl-body{margin-top:12px!important}
.pl-rich > .pl-eyebrow{margin-bottom:14px}
.pl-rich > .pl-h2 + .pl-body{margin-top:18px}
@media (max-width:767px){.pl-rich > .pl-answer{margin-bottom:40px}}
/* inner-page cell grids: hairline dividers without grey filler cells */
body:not(.home) .pl-trust-grid{gap:0!important;background:#fff!important}
body:not(.home) .pl-trust-cell{box-shadow:1px 0 0 #DDD8CF,0 1px 0 #DDD8CF}
@media (min-width:1025px){:is(.pl-trust-grid:has(> :nth-child(6):last-child),.pl-trust-grid:has(> :nth-child(5):last-child),.pl-trust-grid:has(> :nth-child(9):last-child)):not(#cleaning-vs-restoration .pl-trust-grid){grid-template-columns:repeat(3,minmax(0,1fr))}}
.pl-eyebrow{max-width:100%;flex-wrap:wrap;white-space:normal}
@media (max-width:374px){.pl-eyebrow{letter-spacing:.14em!important}}
.pl-bullets-2{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;row-gap:14px;font-size:16px}
@media (max-width:767px){.pl-bullets-2{grid-template-columns:1fr}}
/* location pages: map embed under the About text */
.pl-map{margin-top:20px;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px rgba(20,33,61,.08)}
.pl-map iframe{display:block;width:100%;height:300px;border:0}
@media (max-width:767px){.pl-map iframe{height:240px}}
/* Contact / Free Estimate: Gravity Forms presentation only (fields, notifications and settings untouched) */
#contact-form .e-grid-base,#estimate-form .e-grid-base{align-items:start!important}#contact-form .e-grid-base > .e-con,#estimate-form .e-grid-base > .e-con{justify-content:flex-start!important}
#contact-form .gform_wrapper,#estimate-form .gform_wrapper{margin-top:8px!important;padding:28px;background:#fff;border:1px solid var(--pl-line);border-radius:16px}
#contact-form .gform_wrapper .gfield,#estimate-form .gform_wrapper .gfield{margin-bottom:18px}
#contact-form .gform_wrapper label,#estimate-form .gform_wrapper label,#contact-form .gform_wrapper legend,#estimate-form .gform_wrapper legend{font-family:inherit;font-weight:600;color:var(--pl-ink);font-size:15px}
#contact-form .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),#estimate-form .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),
#contact-form .gform_wrapper select,#estimate-form .gform_wrapper select,#contact-form .gform_wrapper textarea,#estimate-form .gform_wrapper textarea{
  width:100%!important;max-width:100%!important;box-sizing:border-box;min-height:48px;padding:11px 14px!important;border:1px solid #CFC9BE!important;border-radius:10px!important;background:#fff;font:inherit;font-size:16px!important;color:var(--pl-ink)}
#contact-form .gform_wrapper textarea,#estimate-form .gform_wrapper textarea{min-height:130px}
#contact-form .gform_wrapper input:focus,#estimate-form .gform_wrapper input:focus,#contact-form .gform_wrapper select:focus,#estimate-form .gform_wrapper select:focus,#contact-form .gform_wrapper textarea:focus,#estimate-form .gform_wrapper textarea:focus{outline:3px solid var(--pl-blue-soft);border-color:var(--pl-blue-deep)!important}
#contact-form .gform_wrapper .ginput_complex,#estimate-form .gform_wrapper .ginput_complex{display:grid!important;grid-template-columns:1fr 1fr;gap:12px}
#contact-form .gform_wrapper .ginput_complex > span,#estimate-form .gform_wrapper .ginput_complex > span{width:100%!important;padding:0!important;margin:0!important}
#contact-form .gform_wrapper .gform_footer .gform_button,#estimate-form .gform_wrapper .gform_footer .gform_button{
  display:inline-flex;min-height:52px;padding:14px 28px!important;border:0!important;border-radius:12px!important;background:var(--pl-blue-deep)!important;color:#fff!important;font:inherit;font-weight:700;font-size:15px!important;letter-spacing:.02em;text-transform:none;cursor:pointer}
#contact-form .gform_wrapper .gform_footer .gform_button:hover,#estimate-form .gform_wrapper .gform_footer .gform_button:hover{background:var(--pl-blue-ink)!important}
#contact-form .pl-rich-html a,#estimate-form .pl-rich-html a{color:var(--pl-blue-deep)}
@media (max-width:767px){#contact-form .gform_wrapper,#estimate-form .gform_wrapper{padding:20px 16px}#contact-form .gform_wrapper .ginput_complex,#estimate-form .gform_wrapper .ginput_complex{grid-template-columns:1fr}#contact-form .gform_footer .gform_button,#estimate-form .gform_footer .gform_button{width:100%}}
/* ==========================================================================
   Blog archive (posts page /tile-grout-cleaning-tips-and-info/) + category archives: presentation only
   ========================================================================== */
body.blog main.site-main,body.archive main.site-main{max-width:1216px;margin:0 auto;padding:0 24px 88px}
body.blog .page-header,body.archive .page-header{padding:64px 0 36px;margin-bottom:36px;border-bottom:1px solid var(--pl-line)}
body.blog .page-header .entry-title,body.archive .page-header .entry-title{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(32px,4.2vw,52px);line-height:1.08;color:var(--pl-ink);margin:0;letter-spacing:-.01em}
body.blog .page-header::before,body.archive .page-header::before{content:'Guides & articles';display:block;font:700 12px/1.2 'Archivo',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--pl-blue-deep);margin-bottom:14px}
body.blog .page-content,body.archive .page-content{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
body.blog article.post,body.archive article.post{display:flex;flex-direction:column;background:#fff;border:1px solid var(--pl-line);border-radius:18px;overflow:hidden;margin:0!important;transition:transform .25s var(--pl-ease),box-shadow .25s var(--pl-ease)}
body.blog article.post:hover,body.archive article.post:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(20,33,61,.35)}
body.blog article.post > a,body.archive article.post > a{order:-1;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--pl-stone)}
body.blog article.post > a img,body.archive article.post > a img{width:100%;height:100%;object-fit:cover;display:block;margin:0}
body.blog article.post .entry-title,body.archive article.post .entry-title{margin:0;padding:22px 22px 8px;font:600 19px/1.3 'Archivo',sans-serif;color:var(--pl-ink)}
body.blog article.post .entry-title a,body.archive article.post .entry-title a{color:inherit;text-decoration:none}
body.blog article.post .entry-title a:hover,body.archive article.post .entry-title a:hover{color:var(--pl-blue-deep)}
body.blog article.post > p,body.archive article.post > p{margin:0;padding:0 22px 24px;font-size:15px;line-height:1.6;color:var(--pl-text);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
body.blog nav.pagination,body.archive nav.pagination{display:flex;justify-content:space-between;gap:16px;margin-top:44px}
body.blog nav.pagination a,body.archive nav.pagination a{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:12px;background:#fff;border:1px solid var(--pl-line);color:var(--pl-ink);font-weight:600;text-decoration:none}
body.blog nav.pagination a:hover,body.archive nav.pagination a:hover{border-color:var(--pl-blue-deep);color:var(--pl-blue-deep)}
@media (max-width:1024px){body.blog .page-content,body.archive .page-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
@media (max-width:767px){body.blog main.site-main,body.archive main.site-main{padding:0 16px 64px}body.blog .page-header,body.archive .page-header{padding:40px 0 24px;margin-bottom:24px}body.blog .page-content,body.archive .page-content{grid-template-columns:1fr}}
/* contact aside button spacing */
#contact-form .pl-rich-html + .e-button-base,#estimate-form .pl-rich-html + .e-button-base{margin-top:16px}
/* Single posts: reading column + site typography (presentation only; post content untouched) */
body.single-post main.site-main{max-width:820px;margin:0 auto;padding:48px 24px 88px}
body.single-post .page-header .entry-title{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:clamp(30px,3.6vw,46px);line-height:1.12;color:var(--pl-ink);letter-spacing:-.01em;margin:0 0 28px}
body.single-post .page-content{font-size:17px;line-height:1.75;color:var(--pl-text)}
body.single-post .page-content h2,body.single-post .page-content h3,body.single-post .page-content h4{font-family:'Fraunces',Georgia,serif;font-weight:600;color:var(--pl-ink);line-height:1.2;margin:1.8em 0 .6em}
body.single-post .page-content h2{font-size:30px}body.single-post .page-content h3{font-size:23px}body.single-post .page-content h4{font-size:19px}
body.single-post .page-content p,body.single-post .page-content ul,body.single-post .page-content ol{margin:0 0 1.1em}
body.single-post .page-content img{max-width:100%;height:auto;border-radius:16px}
body.single-post .page-content a{color:var(--pl-blue-deep);text-underline-offset:3px}
body.single-post .page-content table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 1.4em}
body.single-post .page-content th,body.single-post .page-content td{border:1px solid var(--pl-line);padding:10px 12px;text-align:left;vertical-align:top}
body.single-post .page-content table{display:block;overflow-x:auto}
@media (max-width:767px){body.single-post main.site-main{padding:28px 16px 64px}body.single-post .page-content{font-size:16px}body.single-post .page-content h2{font-size:25px}}
/* wide (5+ column) tables scroll inside their frame on tablets; legal text wraps long URLs */
@media (min-width:768px) and (max-width:1024px){.pl-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.pl-table th,.pl-table td{padding:14px 16px}.pl-table tbody th{white-space:normal}}
#legal-text p,#legal-text li,#legal-text a{overflow-wrap:anywhere;word-break:break-word}
#legal-text ol,#legal-text ul{padding-left:1.2em}
/* ==========================================================================
   Sticky header (one shared implementation for the UAE header template 6445).
   The whole #masthead is sticky in normal flow; its top offset is minus the info-strip height, so the strip
   scrolls away and only the main bar stays pinned. The main bar height is the same stuck or not (no CLS);
   the stuck state only adds background blur and a shadow. --pl-topbar-h is measured by pl-home.js.
   ========================================================================== */
:root{--pl-topbar-h:44px;--pl-header-h:78px}
@media (max-width:1024px){:root{--pl-header-h:72px}}
@media (max-width:767px){:root{--pl-topbar-h:62px}}
body #masthead{position:-webkit-sticky!important;position:sticky!important;top:calc(-1 * var(--pl-topbar-h))!important;z-index:999!important}
.admin-bar #masthead{top:calc(32px - var(--pl-topbar-h))!important}
@media (max-width:782px){.admin-bar #masthead{top:calc(46px - var(--pl-topbar-h))!important}}
@media (max-width:600px){.admin-bar #masthead{top:calc(-1 * var(--pl-topbar-h))!important}}
#masthead .elementor-element-8c94000{min-height:var(--pl-header-h)!important}
@media (min-width:1025px){#masthead a.e-image-link-base img{height:56px}}
@media (max-width:1024px) and (min-width:768px){#masthead a.e-image-link-base img{height:52px}}
#masthead .elementor-element-43e83565{transition:box-shadow .25s ease,background-color .25s ease}
.pl-header-stuck #masthead .elementor-element-43e83565{background-color:rgba(255,255,255,.96)!important;-webkit-backdrop-filter:saturate(1.2) blur(10px);backdrop-filter:saturate(1.2) blur(10px);box-shadow:0 6px 24px rgba(48,52,58,.10)}
/* anchors land below the pinned bar */
html{scroll-padding-top:calc(var(--pl-header-h) + 18px)}
html:has(body.admin-bar){scroll-padding-top:calc(var(--pl-header-h) + 50px)}

/* ---------- Phase 2 v2: hub + service page components ---------- */
/* compact category navigator (anchor links) */
.pl-catnav{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:auto!important;gap:14px!important;margin-top:48px}
.pl-catnav-item{display:flex!important;flex-direction:row!important;align-items:center!important;gap:14px!important;padding:12px 16px 12px 12px!important;background:#fff;border:1px solid var(--pl-line);border-radius:14px;text-decoration:none;color:inherit;width:auto!important;
  transition:border-color .2s var(--pl-ease),box-shadow .2s var(--pl-ease),transform .2s var(--pl-ease)}
.pl-catnav-item:hover,.pl-catnav-item:focus-visible{border-color:rgba(111,151,232,.55);box-shadow:0 16px 34px -26px rgba(46,49,56,.45);transform:translateY(-2px)}
.pl-catnav-item > .pl-media-frame{width:64px!important;height:64px;flex:0 0 64px!important;aspect-ratio:1/1!important;border-radius:10px!important;box-shadow:none!important}
.pl-catnav-item > div:last-child{min-width:0;width:auto!important;flex:1 1 auto!important;padding:0!important}
.pl-catnav-item .pl-h3{font-size:16px!important;line-height:1.25!important}
.pl-catnav-item .pl-small{margin-top:3px!important;font-size:13.5px!important;line-height:1.4!important}
.pl-catnav-item > div:last-child::after{content:"";position:absolute}
@media (max-width:1024px){.pl-catnav{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:480px){.pl-catnav{grid-template-columns:1fr!important;gap:10px!important}.pl-catnav-item > .pl-media-frame{width:52px!important;height:52px;flex-basis:52px!important}}

/* image cards: small category line above the title, equal heights, one CTA baseline */
.pl-card-body > .pl-small:first-child{margin:0 0 8px!important;font-size:11.5px!important;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-blue-deep)}

/* editorial group: one featured overlay card + supporting cards */
.pl-editorial{display:grid!important;grid-template-columns:1.25fr 1fr 1fr!important;grid-template-rows:auto!important;grid-auto-rows:minmax(270px,auto);gap:22px!important;width:100%}
.pl-editorial > .pl-imgcard{aspect-ratio:auto!important;min-height:270px}
.pl-editorial > .pl-imgcard:first-child{grid-row:span 2;min-height:562px}
.pl-editorial > .pl-imgcard:first-child .pl-imgcard-title{font-size:32px!important}
.pl-editorial > .pl-imgcard:first-child .pl-imgcard-text{font-size:16px!important}
.pl-editorial > .pl-imgcard:not(:first-child) .pl-imgcard-title{font-size:21px!important}
@media (max-width:1024px){
  .pl-editorial{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .pl-editorial > .pl-imgcard:first-child{grid-column:1 / -1;grid-row:auto;min-height:400px}
}
@media (max-width:767px){
  .pl-editorial{grid-template-columns:1fr!important;grid-auto-rows:auto;gap:16px!important}
  .pl-editorial > .pl-imgcard,.pl-editorial > .pl-imgcard:first-child{grid-column:auto;min-height:300px}
  .pl-editorial > .pl-imgcard:first-child .pl-imgcard-title{font-size:25px!important}
}

/* surface groups: image-topped panels with chip links */
.pl-sgroup{background:#fff;border:1px solid var(--pl-line);border-radius:16px;overflow:hidden;height:100%}
.pl-sgroup > .pl-card-img{aspect-ratio:16/9!important;flex:none}
.pl-sgroup-body{padding:22px 24px 26px!important;flex:1 1 auto}
.pl-sgroup-body > .pl-small:first-child{margin:0 0 8px!important;font-size:11.5px!important;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-blue-deep)}
.pl-chips{list-style:none;margin:18px 0 0;padding:18px 0 0;border-top:1px solid #EDE8E0;display:flex;flex-wrap:wrap;gap:8px}
.pl-chips a{display:inline-flex;align-items:center;min-height:36px;padding:6px 13px;border:1px solid var(--pl-line);border-radius:999px;background:var(--pl-ivory);
  font-family:var(--pl-font-ui);font-size:14px;font-weight:600;line-height:1.2;color:var(--pl-blue-ink);text-decoration:none;transition:border-color .2s,background-color .2s,color .2s}
.pl-chips a:hover,.pl-chips a:focus-visible{border-color:var(--pl-blue);background:#fff;color:var(--pl-blue-deep)}
@media (max-width:1024px) and (min-width:768px){.pl-grid-3:has(> .pl-sgroup){grid-template-columns:1fr!important}.pl-sgroup{display:grid!important;grid-template-columns:34% 1fr}.pl-sgroup > .pl-card-img{aspect-ratio:auto!important;height:100%}}

/* chooser note under the problem cards */
#which-service .pl-wrap > .e-paragraph-base a{color:var(--pl-blue-ink);font-weight:600}

/* ---------- floating CTA: equal buttons, word spacing, keep off accordions ---------- */
.pl-float-call span{margin-left:.3em}
.pl-float-est span{margin-right:.3em}
@media (min-width:768px){
  .pl-float-cta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .pl-float-cta > .pl-float-btn{width:100%!important;min-width:0;white-space:nowrap}
}
@media (max-width:767px){.pl-float-cta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.pl-city > a{flex-wrap:nowrap!important}
@media (max-width:1024px) and (min-width:768px){.pl-grid-3:has(> .pl-prob){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
/* two-image splits balance tall copy on desktop only; one image is enough once columns stack */
@media (max-width:1024px){.pl-split-media > .pl-media-frame:nth-child(n+2){display:none!important}}
/* spacing around lists inside text columns */
.pl-col > .pl-rich-html + .pl-body,.pl-rich > .pl-rich-html + .pl-body,.pl-col > .pl-body + .pl-rich-html,.pl-col > .pl-lede + .pl-rich-html{margin-top:14px!important}
/* "what to avoid" list: two columns in a light card, x markers */
.pl-avoid-block{width:100%}
.pl-avoid{list-style:none;margin:0;padding:28px 32px;background:#fff;border:1px solid var(--pl-line);border-radius:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 36px}
.pl-avoid li{position:relative;padding-left:28px;font-family:var(--pl-font-ui);font-size:15.5px;line-height:1.55;color:var(--pl-text)}
.pl-avoid li::before{content:"";position:absolute;left:0;top:.28em;width:16px;height:16px;border-radius:50%;background:#F6E9E4;box-shadow:inset 0 0 0 1px #E7CFC6}
.pl-avoid li::after{content:"";position:absolute;left:4px;top:calc(.28em + 4px);width:8px;height:8px;background:#A2513B;-webkit-mask:var(--pl-i-close) center/contain no-repeat;mask:var(--pl-i-close) center/contain no-repeat}
@media (max-width:767px){.pl-avoid{grid-template-columns:1fr;padding:22px 20px}}
/* 5 cells in a 3-column grid: last cell spans the empty slot */
@media (min-width:1025px){.pl-trust-grid:has(> :nth-child(5):last-child):not(#cleaning-vs-restoration .pl-trust-grid) > :nth-child(5){grid-column:span 2}}
/* short estimate factors: two columns on phones */
@media (max-width:767px) and (min-width:360px){#estimate-factors .pl-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#estimate-factors .pl-trust-cell{padding:18px 16px!important}#estimate-factors .pl-trust-cell .pl-small{font-size:14px!important}}

/* ---------- icon tiles: centred glyph (shared component .pl-icon-tile, class g-f97de9d) ----------
   Elementor's container rule gives every atomic container's ::before position:absolute; top:0; left:0
   (it is the background-overlay slot), which pinned the mask glyph to the tile's top-left corner.
   The glyph is taken back into the tile's own grid so place-items actually centres it. */
.pl-icon-tile{display:grid!important;place-items:center!important;place-content:center!important;flex:none!important;padding:0!important;line-height:1!important;box-sizing:border-box}
.pl-icon-tile::before{position:static!important;inset:auto!important;grid-area:1 / 1!important;display:block!important;margin:0!important;width:20px!important;height:20px!important;transform:none!important}
/* compact contexts (trust strip, estimate assurances): same tile family, 40px */
.elementor-element-4306e7c5 .pl-icon-tile,.pl-assurance .pl-icon-tile{width:40px!important;height:40px!important}
/* trust strip items: the icon + heading row keeps its own height; spare height from equal-height cells goes below the copy */
.elementor-element-4306e7c5 .pl-trust-cell{grid-template-columns:40px minmax(0,1fr)!important;grid-template-rows:auto 1fr;align-content:start!important}
.elementor-element-4306e7c5 .pl-trust-cell .pl-small{align-self:start}
/* floating bar close button: the empty ::after and the hidden label were extra grid rows that lifted the x */
.pl-float-close{place-content:center!important}
.pl-float-close::before,.pl-float-close::after{grid-area:1 / 1}
/* icon sits in the heading row at every width (the phone rule spanned it across the copy row too, lifting the heading) */
.elementor-element-4306e7c5 .pl-trust-cell .pl-icon-tile{grid-row:1!important}
/* estimate assurances: [icon][title + copy]; the title's first line is centred on the 40px icon */
.pl-assurance{align-items:flex-start!important}
.pl-assurance > .pl-icon-tile + *{padding-top:10px!important}

/* ---------- Phase 5 shared corrections ---------- */
/* links inside bullet lists were falling back to the theme's default link colour */
.pl-bullets a{color:var(--pl-blue-ink);text-decoration:underline;text-decoration-color:rgba(50,90,182,.35);text-underline-offset:3px;text-decoration-thickness:1px}
.pl-bullets a:hover{color:var(--pl-blue-deep);text-decoration-color:currentColor}
/* six image cards: three per row on desktop instead of 4 + 2 */
@media (min-width:1025px){.pl-cards:has(> :nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
/* before/after comparison grids: one slider per row below desktop so the handle stays usable */
@media (max-width:1024px){.pl-grid-2:has(> * > .pl-ba){grid-template-columns:minmax(0,1fr)!important}}
/* six-item category navigators: 3 x 2 on desktop instead of 4 + 2 */
@media (min-width:1025px){.pl-catnav:has(> :nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
/* a heading block that follows an answer panel in the same section needs its own breathing room */
.pl-answer + .pl-head{margin-top:64px!important}
@media (max-width:767px){.pl-answer + .pl-head{margin-top:44px!important}}
/* topic navigator (FAQ): each topic is a bordered chip with a question count */
.pl-linkrow .pl-links{row-gap:10px;border-top:0;padding-top:0}
.pl-linkrow .pl-links a{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--pl-line);border-radius:12px;background:#fff;color:var(--pl-blue-ink);font-weight:600;text-decoration:none;transition:border-color .2s var(--pl-ease),box-shadow .2s var(--pl-ease)}
.pl-linkrow .pl-links a:hover{border-color:var(--pl-blue-soft);box-shadow:0 8px 20px -14px rgba(46,49,56,.35)}
.pl-topic-count{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:999px;background:rgba(111,151,232,.14);color:var(--pl-blue-ink);font-size:12px;font-weight:600;line-height:1}
/* contact icons (global classes pl-ico-phone / pl-ico-mail / pl-ico-clock) */
:root{
  --pl-i-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 7 8.5 6 8.5-6'/%3E%3C/svg%3E");
  --pl-i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.2 2'/%3E%3C/svg%3E");
}
.pl-ico-phone{--pl-i:var(--pl-i-phone)}.pl-ico-mail{--pl-i:var(--pl-i-mail)}.pl-ico-clock{--pl-i:var(--pl-i-clock)}
/* whatever follows a group of icon rows (.pl-assurance) needs separation */
:has(> .pl-assurance) + *{margin-top:28px!important}
.pl-assurance a{color:var(--pl-blue-ink);text-decoration:underline;text-decoration-color:rgba(50,90,182,.35);text-underline-offset:3px}
/* blog index: resource intro + topic chips (archive description, posts page only) */
.blog .archive-description{max-width:none;margin:14px 0 6px;font-family:var(--pl-font-ui)}
:is(.blog,.archive) .page-header .entry-title{padding-inline:0!important}
.pl-blog-intro{display:block;max-width:760px;font-size:17px;line-height:1.6;color:var(--pl-text)}
.pl-blog-chips{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:18px}
.pl-blog-chip{display:inline-flex;align-items:center;min-height:38px;padding:7px 14px;border:1px solid var(--pl-line);border-radius:999px;background:#fff;color:var(--pl-blue-ink)!important;font-family:var(--pl-font-ui);font-size:14px;font-weight:600;text-decoration:none!important;transition:border-color .2s var(--pl-ease)}
.pl-blog-chip:hover{border-color:var(--pl-blue-soft)}

/* ==========================================================================
   Header: Services mega menu as category tabs (desktop), nested accordions (max 1024px)
   pl-home.js initMegaTabs() adds .pl-mtabs to the Services panel; without JS the previous 6-column panel still works.
   ========================================================================== */
@media (min-width:1025px){
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs{
    width:min(1180px,calc(100vw - 40px))!important;grid-template-columns:minmax(0,27%) minmax(0,1fr)!important;grid-template-rows:repeat(6,auto) 1fr;
    gap:0!important;padding:14px!important;border-radius:0 0 16px 16px!important;box-shadow:0 26px 54px -30px rgba(46,49,56,.34)!important;
    max-height:min(560px,calc(100vh - 100px));align-items:start}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs::after{content:"";position:absolute;left:14px;top:14px;bottom:14px;width:calc((100% - 28px) * .27);background:#F3F6FA;border-radius:12px;pointer-events:none}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li{display:contents!important}
  /* category rows (left sidebar) */
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .hfe-has-submenu-container{grid-column:1;position:relative;z-index:1;margin:0 10px!important;outline:0}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li:first-child > .hfe-has-submenu-container{margin-top:10px!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .hfe-has-submenu-container > a.hfe-sub-menu-item{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;min-height:46px!important;margin:2px 0!important;padding:11px 14px 11px 15px!important;
    border:0!important;border-left:3px solid transparent!important;border-radius:10px;background:transparent!important;
    font-size:15px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;line-height:1.3!important;color:#30343A!important;white-space:normal!important;
    transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .hfe-has-submenu-container > a.hfe-sub-menu-item::after{content:"\203A";font-size:20px;line-height:1;color:#6F757D;font-weight:400}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .hfe-has-submenu-container > a.hfe-sub-menu-item:hover{background:rgba(255,255,255,.65)!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li.is-active > .hfe-has-submenu-container > a.hfe-sub-menu-item{
    background:#fff!important;border-left-color:#4F7FDF!important;color:var(--pl-blue-ink)!important;box-shadow:0 6px 16px -10px rgba(46,49,56,.35)}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li.is-active > .hfe-has-submenu-container > a.hfe-sub-menu-item::after{color:#4F7FDF}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs a:focus-visible{outline:2px solid #4F7FDF!important;outline-offset:2px}
  /* links for the active category (right panel) */
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .sub-menu{grid-column:2!important;grid-row:1 / -1!important;display:none!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li.is-active > .sub-menu{
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;row-gap:0;align-content:start;padding:18px 26px 14px 34px!important;animation:plMegaFade .17s ease}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .sub-menu > li{min-width:0!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .sub-menu a.hfe-sub-menu-item{
    display:block!important;padding:7px 0!important;font-size:14.5px!important;font-weight:500!important;line-height:1.4!important;color:#4F5660!important;white-space:normal!important;text-decoration:none}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .sub-menu a.hfe-sub-menu-item:hover{color:var(--pl-blue-ink)!important;text-decoration:underline;text-underline-offset:3px}
  #masthead .pl-mega-head{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:20px;margin:0 0 10px;padding:0 0 12px;border-bottom:1px solid #EDE8E0}
  #masthead .pl-mega-eyebrow{grid-column:1 / -1;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#4F7FDF;line-height:1.2}
  #masthead .pl-mega-title{grid-column:1;margin-top:6px;font-size:22px;font-weight:600;line-height:1.2;color:#30343A;white-space:normal}
  #masthead .pl-mega-desc{grid-column:1;margin-top:4px;font-size:14px;line-height:1.45;color:#6F757D;white-space:normal}
  #masthead .pl-nav .pl-mega-head a.pl-mega-all{grid-column:2;grid-row:2 / span 2;align-self:end;display:inline-flex!important;align-items:center;gap:6px;padding:8px 14px!important;border:1px solid #DDD8CF;border-radius:999px;
    font-size:13px!important;font-weight:600!important;line-height:1.2!important;color:var(--pl-blue-ink)!important;white-space:nowrap;background:#fff!important;text-decoration:none}
  #masthead .pl-nav .pl-mega-head a.pl-mega-all:hover{border-color:#A9C2F2}
  /* opened / dismissed from the keyboard */
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega.pl-open > .sub-menu{visibility:visible!important;opacity:1!important}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega.pl-dismiss > .sub-menu{visibility:hidden!important;opacity:0!important}
}
@keyframes plMegaFade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){#masthead .pl-mtabs > li > .sub-menu{animation:none!important}}
@media (max-width:1024px){#masthead .pl-mega-head{display:none!important}}

/* Resources / About dropdowns: wide enough for long titles, which wrap instead of running past the panel */
@media (min-width:1025px){
  #masthead .pl-nav .hfe-nav-menu > li:not(.pl-mega) > .sub-menu{width:340px!important;min-width:340px!important;padding:8px!important;border-radius:14px!important;white-space:normal!important}
  #masthead .pl-nav .hfe-nav-menu > li:not(.pl-mega) > .sub-menu > li{width:100%!important}
  #masthead .pl-nav .hfe-nav-menu > li:not(.pl-mega) > .sub-menu a.hfe-sub-menu-item{display:block!important;white-space:normal!important;line-height:1.4!important;padding:10px 14px!important;border-radius:9px;overflow-wrap:anywhere}
  #masthead .pl-nav .hfe-nav-menu > li:not(.pl-mega) > .sub-menu a.hfe-sub-menu-item:hover,#masthead .pl-nav .hfe-nav-menu > li:not(.pl-mega) > .sub-menu a.hfe-sub-menu-item:focus-visible{background:#F3F6FA!important;color:var(--pl-blue-ink)!important}
}

/* Final CTA (#get-started): tighter stack; the 56px flex gap was added on top of every element's own margins */
#get-started{padding-top:104px!important;padding-bottom:104px!important}
#get-started > .pl-wrap-narrow{gap:0!important}
#get-started > .pl-wrap-narrow > .pl-eyebrow{margin:0 0 14px!important}
#get-started > .pl-wrap-narrow > .pl-h2{margin:0!important}
#get-started > .pl-wrap-narrow > p:not(.pl-eyebrow){margin-top:16px!important;margin-bottom:0!important}
#get-started > .pl-wrap-narrow > .pl-btn-row{margin-top:30px!important;flex-wrap:wrap;justify-content:center}
#get-started > .pl-wrap-narrow > .pl-final-fine{margin-top:24px!important}
@media (max-width:1024px){#get-started{padding-top:84px!important;padding-bottom:84px!important}}
@media (max-width:767px){#get-started{padding-top:60px!important;padding-bottom:60px!important}#get-started > .pl-wrap-narrow > .pl-btn-row{margin-top:26px!important}#get-started > .pl-wrap-narrow > .pl-final-fine{margin-top:20px!important}}
@media (min-width:1025px){
  #masthead .pl-mega-head,#masthead .pl-mega-desc,#masthead .pl-nav .pl-mega-head a.pl-mega-all{font-family:var(--pl-font-ui)}
  #masthead .pl-mega-title{font-family:var(--pl-font-display)}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .hfe-has-submenu-container .sub-arrow{display:inline-flex!important;align-items:center;margin:0!important;padding:0!important;border:0!important;background:none!important;transform:rotate(-90deg);color:#6F757D;pointer-events:none}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li.is-active > .hfe-has-submenu-container .sub-arrow{color:#4F7FDF}
  #masthead .pl-nav .hfe-nav-menu > li.pl-mega > .sub-menu.pl-mtabs > li > .hfe-has-submenu-container .sub-arrow i.fa{transform:none!important}
}

/* ==========================================================================
   Sitewide QA fixes (2026-09-28)
   ========================================================================== */
/* theme-rendered templates (blog index, category archives, single posts, sitemap) fell back to the system font stack;
   Elementor pages set their fonts through classes and are unaffected by these defaults */
body{font-family:var(--pl-font-ui,"Archivo"),system-ui,sans-serif}
body table,body th,body td,body input,body select,body textarea{font-family:inherit}
.page-header .entry-title{font-family:var(--pl-font-display,"Fraunces"),Georgia,serif;padding-inline:0!important}
/* header: between 1241 and 1300px the full nav ran 23px into the "Call us" block; use the compact nav up to 1300px */
@media (min-width:1241px) and (max-width:1300px){
  #masthead a[href^="tel:"]:not(.pl-btn):has(span){display:none!important}
  #masthead .pl-nav .hfe-nav-menu > li > a.hfe-menu-item,#masthead .elementor-widget-navigation-menu .menu-item a.hfe-menu-item{padding-left:9px!important;padding-right:9px!important;font-size:14px!important}
}
/* touch targets: blog topic chips at 44px on phones */
@media (max-width:767px){.pl-blog-chip{min-height:44px}}
/* long unbroken strings (email addresses) wrap instead of running out of narrow columns */
.pl-assurance a,.pl-assurance p{overflow-wrap:anywhere}
/* blog posts (theme template): embedded videos and content tables fit narrow screens; FAQ toggles are full touch targets */
.single .page-content iframe{max-width:100%}
.single .page-content iframe[src*="youtu"]{width:100%!important;height:auto!important;aspect-ratio:16/9}
.single .page-content table{width:100%;max-width:100%;table-layout:fixed}
.single .page-content th,.single .page-content td{overflow-wrap:anywhere}
.single .page-content details > summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
/* keyboard focus: header links, logo and the Services trigger (UAE role=button wrapper) had no visible focus ring */
#masthead a:focus-visible,#masthead [tabindex]:focus-visible,#masthead button:focus-visible{outline:2px solid #4F7FDF!important;outline-offset:3px;border-radius:6px}
/* reduced motion: no smooth scrolling, transitions or animations for visitors who ask for less motion */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* keyboard focus sitewide: arrow links and paragraph links had none (mouse users are unaffected by :focus-visible) */
a:focus-visible,summary:focus-visible,[role="button"]:focus-visible,button:focus-visible{outline:2px solid #4F7FDF;outline-offset:3px}
/* legacy WPBakery link lists in older posts (rendered by the site plugin as plain wrappers) */
.pl-vc-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 28px;margin:18px 0 24px}
.pl-vc-col ul{margin:0;padding-left:1.1em}
@media (max-width:767px){.pl-vc-row{grid-template-columns:minmax(0,1fr)}}

/* ==========================================================================
   Phase 6 accessibility (2026-09-30): text contrast to WCAG AA 4.5:1
   ========================================================================== */
/* muted grey (#6F757D) measured 4.2:1 on the cream and pale-blue bands; body grey reads 6:1+ there */
.pl-region-sub,.pl-acc-count,.pl-dir-note,#before-after .pl-small,#before-after .pl-small strong{color:var(--pl-text,#575C64)!important}
/* mega menu category label: #4F7FDF was 3.9:1 on white at 11px */
#masthead .pl-mega-eyebrow{color:#3B63B8}
/* small eyebrow labels on photo cards stay legible over light areas of the photo */
.pl-imgcard-eyebrow{text-shadow:0 1px 3px rgba(0,0,0,.6)}
/* phone numbers never split across lines (links and plain-text numbers wrapped by pl-home.js); checked 320-430 px: no overflow */
a[href^="tel:"],.pl-nowrap{white-space:nowrap}

/* ==========================================================================
   Service intro split (2026-09-30): Quick Answer + Why It Matters beside one photo, all service pages
   .pl-service-intro-split (grid, + pl-split) > .pl-service-intro-copy (+ pl-rich) + .pl-service-intro-media > .pl-media-frame > img
   Same 1216px wrap as the next section; the photo follows each page's own text height (no fixed heights).
   ========================================================================== */
/* answer accent bar: Elementor's .e-con::before height:100% pushed it 26px below every answer card */
.pl-answer::before{height:auto!important}
.pl-service-intro-split > .pl-service-intro-copy{max-width:none!important;width:auto!important;min-width:0}
/* stacked (phones and tablets up to 1024px, the site's split breakpoint): text first, photo last, inset 10px to line up with the answer card */
.pl-service-intro-media{position:relative;display:block!important;padding:0 10px;min-width:0}
.pl-service-intro-media > .pl-media-frame{aspect-ratio:16/10!important;min-height:0!important;height:auto!important}
@media (min-width:768px) and (max-width:1024px){.pl-service-intro-media > .pl-media-frame{aspect-ratio:16/9!important}}
.pl-service-intro-media .pl-cover-img{width:100%!important;height:100%!important;object-fit:cover}
@media (min-width:1025px){
 .pl-service-intro-split{grid-template-columns:minmax(0,55fr) minmax(0,45fr)!important;grid-template-rows:auto!important;column-gap:48px!important;align-items:stretch!important}
 /* photo spans answer-card top to last line of Why It Matters; it never sets the row height */
 .pl-service-intro-media{padding:0}
 .pl-service-intro-media > .pl-media-frame{position:absolute!important;top:10px;bottom:10px;left:0;right:0;aspect-ratio:auto!important}
 .pl-service-intro-media .pl-cover-img{position:absolute;inset:0}
}
@media (min-width:1200px){.pl-service-intro-split{column-gap:56px!important}}
section:has(> .e-con > .pl-service-intro-split){padding-bottom:88px!important}
@media (max-width:1024px){section:has(> .e-con > .pl-service-intro-split){padding-bottom:72px!important}}
@media (max-width:767px){section:has(> .e-con > .pl-service-intro-split){padding-bottom:56px!important}}

/* Service snapshot as a wide panel directly below the intro split (13 main service pages, 2026-09-30).
   Same content and card look (white, 1px border, 18px radius); facts in columns, actions on the right. Never sticky. */
.pl-service-snapshot{position:static!important;top:auto!important;width:100%!important;max-width:none!important;box-shadow:0 22px 48px -36px rgba(46,49,56,.35)}
.pl-service-snapshot .pl-snap-list dt::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:2px;vertical-align:1px;background:linear-gradient(160deg,var(--pl-blue-bright,#4F7FDF),var(--pl-blue-deep,#325AB6))}
.pl-service-snapshot .pl-snap-list{margin:16px 0 22px}
@media (min-width:768px) and (max-width:1024px){
 .pl-service-snapshot .pl-snap-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
 .pl-service-snapshot .pl-btn-row{flex-direction:row!important}
 .pl-service-snapshot .pl-btn-row > *{flex:1 1 0}
}
@media (min-width:1025px){
 .pl-service-snapshot{display:grid!important;grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:auto auto 1fr;column-gap:32px;align-items:start;padding:30px 36px!important}
 .pl-service-snapshot > *{grid-column:1;min-width:0}
 .pl-service-snapshot > .pl-btn-row{grid-column:2;grid-row:1 / 4;align-self:stretch;justify-content:center;padding-left:32px;border-left:1px solid #EDE8E0}
 .pl-service-snapshot .pl-snap-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:18px 0 0}
 .pl-service-snapshot .pl-snap-list div{padding:0 20px;border-bottom:0;border-left:1px solid #EDE8E0}
 .pl-service-snapshot .pl-snap-list div:first-child{padding-left:0;border-left:0}
}

/* ==========================================================================
   Global footer: Google Business Profile map column (2026-09-30)
   .pl-footer-grid-map (footer grid) > .pl-footer-map-col > heading + .pl-footer-map (lazy iframe) + link
   1200px+: 5 columns (map column ~300-340px); 1000-1199: 3 columns, map spans 2 beside Company;
   768-999: existing 2x2 with the map as a full-width last row; phones: map after the links, before the legal row
   ========================================================================== */
.pl-footer-map{position:relative;width:100%;height:250px;border-radius:12px;overflow:hidden;border:1px solid #DDD8CF;background:#E9E4DA}
.pl-footer-map iframe{display:block;width:100%;height:100%;border:0}
.pl-footer-map-col .elementor-widget-html{width:100%}
.pl-footer-map-col{min-width:0}
@media (min-width:1200px){
 .pl-footer-grid-map{grid-template-columns:minmax(250px,1.3fr) minmax(185px,1fr) minmax(130px,.75fr) minmax(140px,.75fr) minmax(0,1.6fr)!important;column-gap:36px!important}
}
@media (min-width:1000px) and (max-width:1199px){
 .pl-footer-grid-map{grid-template-columns:repeat(3,minmax(0,1fr))!important;column-gap:40px!important;row-gap:36px!important}
 .pl-footer-map-col{grid-column:span 2}
 .pl-footer-map{height:240px}
}
@media (min-width:768px) and (max-width:999px){
 .pl-footer-grid-map{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .pl-footer-map-col{grid-column:1 / -1}
 .pl-footer-map{height:240px}
}
@media (max-width:767px){.pl-footer-map{height:240px}}
#colophon .pl-footer-map-col .pl-footer-link{margin:12px 0 0!important}

/* 404 body (mu-plugin pl-404.php, 2026-10-01): shown only when missing URLs return a real 404 */
.site-main.pl-404{max-width:none!important;width:100%!important;margin:0!important;background:var(--pl-ivory,#F7F4EF);padding:96px 24px 104px!important}
.pl-404-wrap{max-width:760px;margin:0 auto}
.pl-404-eyebrow{margin:0 0 14px;font:700 12px/1.2 var(--pl-font-ui,Archivo,sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--pl-blue-deep,#325AB6)}
.pl-404-title{margin:0 0 16px;font-family:var(--pl-font-display,Fraunces,serif);font-size:clamp(34px,5vw,52px);line-height:1.08;color:var(--pl-ink,#30343A)}
.pl-404-text{margin:0 0 30px;font-size:18px;line-height:1.6;color:var(--pl-graphite,#3E434B)}
.pl-404-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 44px}
.pl-404-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 26px;border:1.5px solid #CFC9BE;border-radius:12px;background:#fff;font:700 15px/1.2 var(--pl-font-ui,Archivo,sans-serif);color:var(--pl-ink,#30343A)!important;text-decoration:none!important}
.pl-404-btn:hover{border-color:var(--pl-blue-deep,#325AB6)}
.pl-404-btn-primary{background:linear-gradient(160deg,var(--pl-blue-bright,#4F7FDF),var(--pl-blue-deep,#325AB6));border-color:transparent;color:#fff!important}
.pl-404-links{padding-top:28px;border-top:1px solid #E3DED5}
.pl-404-links-title{margin:0 0 12px;font:700 12px/1.2 var(--pl-font-ui,Archivo,sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--pl-ink,#30343A)}
.pl-404-links ul{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0;padding:0;list-style:none}
.pl-404-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--pl-blue-ink,#2A4FA0);font-size:16px}
.pl-404-call{margin:24px 0 0;color:var(--pl-graphite,#3E434B)}
.pl-404-call a{font-weight:700;color:var(--pl-ink,#30343A);white-space:nowrap}
@media (max-width:767px){.site-main.pl-404{padding:64px 20px 72px!important}.pl-404-btn{flex:1 1 100%}}

/* Homepage review-platform cards (2026-10-01). Google (verified 5.0) shows 5 gold stars via the extra class pl-plat-stars;
   the paragraph keeps the text "5-star rating" for screen readers. Yelp / Facebook ratings could not be verified, so they
   show a neutral label ("Reviews" / "Recommendations") in the same 16px row, keeping the three cards identical in height. */
.pl-plat-meta{display:block!important;margin:7px 0 0!important;padding:0!important;font:600 13px/16px var(--pl-font-ui,"Archivo"),sans-serif!important;letter-spacing:.02em;color:var(--pl-muted)!important;white-space:nowrap}
.pl-plat-meta.pl-plat-stars{display:block!important;width:96px!important;max-width:100%;height:16px!important;margin:7px 0 0!important;padding:0!important;overflow:hidden!important;white-space:nowrap!important;text-indent:110%!important;color:transparent!important;font-size:12px!important;line-height:16px!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 16'%3E%3Cdefs%3E%3Cpath id='s' d='M8 1.2l2.02 4.1 4.52.66-3.27 3.18.77 4.5L8 11.52l-4.04 2.12.77-4.5L1.46 5.96l4.52-.66z'/%3E%3C/defs%3E%3Cg fill='%23F5B301' stroke='%23DE9E00' stroke-width='.6' stroke-linejoin='round'%3E%3Cuse href='%23s'/%3E%3Cuse href='%23s' x='20'/%3E%3Cuse href='%23s' x='40'/%3E%3Cuse href='%23s' x='60'/%3E%3Cuse href='%23s' x='80'/%3E%3C/g%3E%3C/svg%3E") no-repeat 0 0/96px 16px!important}

/* Single blog posts: wider article column + sticky sidebar (mu-plugin pl-post-layout.php + pl-post/single.php, 2026-10-01).
   Everything is scoped to main.pl-post, which only that template prints; archives, search and pages are unaffected.
   >= 1280: 856px article | 48px gap | 312px sidebar (1216px content). 1100-1279: 288px sidebar, 40px gap. < 1100: one column. */
body.single-post main.site-main.pl-post{max-width:1264px;width:100%;margin:0 auto;padding:48px 24px 96px}
.pl-post-layout{display:grid;grid-template-columns:minmax(0,1fr) 312px;column-gap:48px;align-items:stretch}
.pl-post-main,.pl-post-sidebar{min-width:0}
.pl-post .page-header .entry-title{max-width:none;margin:0 0 28px}
.pl-post-hero{margin:0 0 40px}
.pl-post-hero > div,.pl-post-hero > p,.pl-post-hero > figure{margin:0!important;text-align:center}
.pl-post-hero img{display:block;width:auto!important;max-width:100%!important;height:auto!important;margin:0 auto!important;border-radius:18px}
body.single-post .pl-post .page-content{font-size:19px;line-height:1.72}
body.single-post .pl-post .page-content h2{font-size:32px}
.pl-post .page-content h2[id],.pl-post .page-content h3[id]{scroll-margin-top:16px}
.pl-post .page-content [tabindex="-1"]:focus{outline:none}
/* sticky column: stops with the layout grid, so it never runs into the footer */
.pl-post-sidebar-inner{position:sticky;top:calc(var(--pl-header-h,78px) + 34px);display:flex;flex-direction:column;gap:16px;
  max-height:calc(100vh - var(--pl-header-h,78px) - 34px - 104px)}
body.admin-bar .pl-post-sidebar-inner{top:calc(var(--pl-header-h,78px) + 66px);max-height:calc(100vh - var(--pl-header-h,78px) - 66px - 104px)}
.pl-post-toc{display:flex;flex-direction:column;flex:0 1 auto;min-height:0;padding:20px 8px 14px 18px;background:#fff;border:1px solid var(--pl-line);border-radius:18px;box-shadow:0 16px 36px -28px rgba(46,49,56,.45)}
.pl-post-toc-title{flex:none;margin:0 10px 12px 2px;font:700 12px/1.2 var(--pl-font-ui,"Archivo"),sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--pl-ink)}
.pl-post-toc-toggle{display:none!important}
.pl-post-toc-list{flex:1 1 auto;min-height:0;max-height:52vh;overflow-y:auto;overscroll-behavior:contain;position:relative;margin:0;padding:0 10px 2px 0;list-style:none;scrollbar-width:thin;scrollbar-color:#CFC9BE transparent}
.pl-post-toc-list.has-more{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 36px),transparent)}
.pl-post-toc-list.has-less{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 28px);mask-image:linear-gradient(to bottom,transparent,#000 28px)}
.pl-post-toc-list.has-more.has-less{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 28px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 28px,#000 calc(100% - 36px),transparent)}
.pl-post-toc-list li{margin:0;padding:0}
.pl-post-toc-list a{display:block;padding:7px 10px 7px 13px;border-left:2px solid var(--pl-line);color:var(--pl-text)!important;font:500 14px/1.42 var(--pl-font-ui,"Archivo"),sans-serif;text-decoration:none!important;transition:color .2s var(--pl-ease),border-color .2s var(--pl-ease),background-color .2s var(--pl-ease)}
.pl-post-toc-list a:hover{color:var(--pl-blue-deep)!important;border-left-color:var(--pl-blue-soft);background:var(--pl-cool)}
.pl-post-toc-list a.is-active{color:var(--pl-blue-ink)!important;border-left-color:var(--pl-blue-deep);background:var(--pl-cool);font-weight:600}
.pl-post-toc-list a:focus-visible{outline:2px solid var(--pl-blue-bright);outline-offset:-2px;border-radius:4px}
.pl-post-sidebar-cta{flex:none;padding:22px 20px 20px;background:var(--pl-ivory);border:1px solid var(--pl-line);border-radius:18px;box-shadow:0 16px 36px -28px rgba(46,49,56,.45)}
.pl-post-cta-eyebrow{margin:0 0 8px;font:700 12px/1.2 var(--pl-font-ui,"Archivo"),sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--pl-blue-deep)}
.pl-post-cta-text{margin:0 0 16px;font-size:15px;line-height:1.55;color:var(--pl-graphite)}
.pl-post-cta-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 16px;border:1.5px solid #CFC9BE;border-radius:12px;background:#fff;font:700 15px/1.2 var(--pl-font-ui,"Archivo"),sans-serif;color:var(--pl-ink)!important;text-decoration:none!important;white-space:nowrap;transition:border-color .2s var(--pl-ease),filter .2s var(--pl-ease)}
.pl-post-cta-btn + .pl-post-cta-btn{margin-top:10px}
.pl-post-cta-btn:hover{border-color:var(--pl-blue-deep)}
.pl-post-cta-primary{background:linear-gradient(160deg,var(--pl-blue-bright),var(--pl-blue-deep));border-color:transparent;color:#fff!important}
.pl-post-cta-primary:hover{border-color:transparent;filter:brightness(1.06)}
.pl-post-cta-call::before{content:"";flex:none;width:17px;height:17px;background:currentColor;-webkit-mask:var(--pl-i-phone) center/contain no-repeat;mask:var(--pl-i-phone) center/contain no-repeat}
.pl-post-cta-btn:focus-visible,.pl-post-toc-toggle:focus-visible{outline:2px solid var(--pl-blue-bright);outline-offset:3px}
@media (max-width:1279px){.pl-post-layout{grid-template-columns:minmax(0,1fr) 288px;column-gap:40px}}
/* below 1100px: one column, no sticky. Wrappers dissolve so the order can be title, image, TOC accordion, article, card */
@media (max-width:1099px){
  body.single-post main.site-main.pl-post{max-width:820px}
  body.single-post .pl-post .page-content{font-size:17px;line-height:1.75}
  body.single-post .pl-post .page-content h2{font-size:30px}
  .pl-post-toc-list.has-more,.pl-post-toc-list.has-less{-webkit-mask-image:none;mask-image:none}
  .pl-post-layout{display:flex;flex-direction:column}
  .pl-post-main,.pl-post-sidebar,.pl-post-sidebar-inner{display:contents}
  .pl-post-main > *{order:5}
  .pl-post-main > .page-header{order:1}
  .pl-post-main > .pl-post-hero{order:2}
  .pl-post-toc{order:3;margin:0 0 36px;padding:0;box-shadow:none;border-radius:14px}
  .pl-post-main > .page-content{order:4}
  .pl-post-sidebar-cta{order:6;margin-top:40px}
  .pl-post-toc-title{display:none}
  .pl-post-toc-toggle{display:flex!important;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:54px;margin:0;padding:14px 18px!important;border:0!important;border-radius:14px!important;background:transparent!important;color:var(--pl-ink)!important;font:700 13px/1.2 var(--pl-font-ui,"Archivo"),sans-serif!important;letter-spacing:.14em;text-transform:uppercase;text-align:left;cursor:pointer;box-shadow:none!important}
  .pl-post-toc-toggle-count{display:inline-flex;align-items:center;gap:10px;margin-left:auto;font-weight:600;font-size:13px;letter-spacing:0;text-transform:none;color:var(--pl-muted)}
  .pl-post-toc-toggle-count::after{content:"";width:9px;height:9px;margin:-4px 2px 0 0;border-right:2px solid var(--pl-blue-deep);border-bottom:2px solid var(--pl-blue-deep);transform:rotate(45deg);transition:transform .2s var(--pl-ease)}
  .pl-post-toc-toggle[aria-expanded="true"] .pl-post-toc-toggle-count::after{margin-top:4px;transform:rotate(-135deg)}
  .pl-post-toc-list{max-height:none;overflow:visible;padding:2px 14px 16px 18px;border-top:1px solid var(--pl-line);padding-top:12px}
  .pl-post-toc.is-collapsed .pl-post-toc-list{display:none}
  .pl-post-toc-list a{padding-top:9px;padding-bottom:9px;font-size:15px}
}
@media (max-width:767px){
  body.single-post main.site-main.pl-post{padding:28px 16px 64px}
  body.single-post .pl-post .page-content{font-size:16px}
  body.single-post .pl-post .page-content h2{font-size:25px}
  .pl-post-hero{margin-bottom:28px}
  .pl-post-hero img{border-radius:14px}
  .pl-post-toc{margin-bottom:28px}
  .pl-post-toc-toggle{padding:12px 16px!important}
  .pl-post-toc-toggle-count{font-size:12px}
}

/* HTML sitemap page (/sitemap/, page 56; Rank Math [rank_math_html_sitemap], 2026-10-01). The page had been empty since its
   old uDesign "sitemap.php" template was retired. Theme-rendered page, so it gets the same frame as single posts. */
body.page-id-56 main.site-main{max-width:1264px;width:100%;margin:0 auto;padding:48px 24px 96px}
body.page-id-56 .page-header .entry-title{font-family:var(--pl-font-display,"Fraunces"),Georgia,serif;font-weight:600;font-size:clamp(32px,3.6vw,46px);line-height:1.12;color:var(--pl-ink);margin:0 0 32px}
.rank-math-html-sitemap__section + .rank-math-html-sitemap__section{margin-top:48px;padding-top:40px;border-top:1px solid var(--pl-line)}
.rank-math-html-sitemap__title{margin:0 0 20px;font-family:var(--pl-font-display,"Fraunces"),Georgia,serif;font-weight:600;font-size:28px;line-height:1.2;color:var(--pl-ink)}
.rank-math-html-sitemap__list{columns:3 300px;column-gap:44px;margin:0;padding:0;list-style:none}
.rank-math-html-sitemap__item{break-inside:avoid;margin:0;padding:0}
.rank-math-html-sitemap__link{display:block;padding:6px 0;font-size:15px;line-height:1.45;color:var(--pl-blue-ink)!important;text-decoration:none!important;overflow-wrap:anywhere}
.rank-math-html-sitemap__link:hover{color:var(--pl-blue-deep)!important;text-decoration:underline!important;text-underline-offset:3px}
@media (max-width:767px){body.page-id-56 main.site-main{padding:28px 16px 64px}.rank-math-html-sitemap__link{padding:10px 0}}

/* SEO Batch 2 (2026-10-16), mobile blog CLS. Below 1100px the "On this page" box is printed after the article (it lives in the
   sidebar markup) but shown above it with CSS order. While the HTML is still streaming in, the article was painted first and then
   pushed down when the box arrived. Until the box exists in the DOM, keep exactly its collapsed height + margin free above the
   article (toggle 54px + 2px border; margin 36px, or 28px below 768px). The box is server-rendered collapsed. */
@media (max-width:1099px){
  .pl-post-layout.has-toc:not(:has(.pl-post-toc)) > .pl-post-main > .page-content{margin-top:92px}
}
@media (max-width:767px){
  .pl-post-layout.has-toc:not(:has(.pl-post-toc)) > .pl-post-main > .page-content{margin-top:84px}
}
