/* Sunshine Sofa Cleaning — revamp (2026-11-07)
   Divi build. Loaded last in <head>. Palette read from the site's own CSS. */
:root{
  --s-blue:#0a8fd4;        /* the header/topbar blue */
  --s-blue-ink:#0a76ae;
  --s-amber:#f5a623;       /* the logo's "SOFA CLEANING" amber */
  --s-ink:#1b2430;
  --s-ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- 1. WhatsApp button — house default, bottom LEFT ----------
   The site shipped no WhatsApp button at all; the number is read from the
   page's own tel: link, never typed in. */
.u-wa{
  position:fixed !important; left:16px !important; right:auto !important; bottom:16px !important;
  width:62px; height:62px; border-radius:50%; background:#25D366;
  box-shadow:0 6px 20px -6px rgba(0,0,0,.45); z-index:9000;
  display:block; text-decoration:none;
  transition:transform .2s var(--s-ease), box-shadow .2s ease;
}
.u-wa::after{
  content:""; position:absolute; inset:0; margin:auto; width:34px; height:34px; background:#fff;
  -webkit-mask:var(--wa) center/contain no-repeat; mask:var(--wa) center/contain no-repeat;
}
.u-wa{ --wa:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12.04 2A9.9 9.9 0 0 0 2.1 11.9a9.8 9.8 0 0 0 1.35 4.96L2 22l5.3-1.38a9.9 9.9 0 0 0 4.74 1.21h.01A9.9 9.9 0 0 0 22 11.93 9.9 9.9 0 0 0 12.04 2zm5.8 14.06c-.24.68-1.4 1.3-1.94 1.35-.5.05-.96.23-3.23-.67-2.72-1.07-4.45-3.84-4.58-4.02-.13-.18-1.1-1.46-1.1-2.79s.7-1.98.95-2.25c.25-.27.54-.34.72-.34h.52c.17 0 .4-.06.62.47.24.57.8 1.97.87 2.11.07.14.12.3.02.48-.1.18-.15.3-.3.46l-.44.5c-.14.14-.3.3-.13.6.17.3.75 1.23 1.6 2 1.1.98 2.02 1.28 2.32 1.43.3.15.47.13.64-.08.18-.2.74-.86.94-1.16.2-.3.4-.25.66-.15.27.1 1.67.79 1.96.93.29.14.48.21.55.33.07.12.07.7-.17 1.38z'/></svg>"); }
.u-wa:hover{ transform:translateY(-3px); box-shadow:0 10px 26px -8px rgba(0,0,0,.5); }
.u-wa:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
@media (max-width:767px){ .u-wa{ width:56px; height:56px; left:14px !important; bottom:14px !important; } }
@media (prefers-reduced-motion:reduce){ .u-wa{ transition:none; } .u-wa:hover{ transform:none; } }

/* ---------- 2. Phone row in the mobile menu ----------
   Divi's own mobile menu works here (tap takes .et_mobile_menu from
   display:none to a 226px panel with 14 links), so this is the only thing
   added to it. Full menu width, 48px target, number read from the page. */
.u-menu-call{
  display:none; box-sizing:border-box; width:100%;
  align-items:center; gap:10px; min-height:48px; padding:12px 18px;
  background:var(--s-blue); color:#fff !important; font-weight:600;
  text-decoration:none; white-space:nowrap;
}
.u-menu-call svg{ width:18px; height:18px; fill:currentColor; flex:0 0 auto; }
@media (max-width:980px){ .u-menu-call{ display:flex; } }
/* Divi pads every .et_mobile_menu li; the phone row has to span the panel
   edge to edge, not sit inset inside it (measured 38..353 against a menu of
   20..370 before this). */
.u-menu-call-item{ list-style:none; }
.et_mobile_menu li.u-menu-call-item,
.et_mobile_menu .u-menu-call-item{ margin:0 !important; padding:0 !important; border:0 !important; }
.et_mobile_menu .u-menu-call-item > .u-menu-call{ padding-left:20px; padding-right:20px; }

/* ---------- 3. Mobile type floor ----------
   Body copy measured 14px on a phone, with 20 paragraphs under 15px. Body text
   only; Divi's heading sizes are left alone, and nothing here touches desktop. */
@media (max-width:767px){
  body, .et_pb_text, .et_pb_text_inner{ font-size:16px; }
  .et_pb_text p, .et_pb_text li, .et_pb_module p, .et_pb_module li{ font-size:16px; line-height:1.65; }
  #main-footer p, #main-footer li, #main-footer a, .et_pb_section_tb_footer p{ font-size:15px; line-height:1.6; }
}
