/* We Just Clean Jamaica — one stylesheet, same design language as the wejustclean.co hub
   (Fraunces + Manrope, floating pill nav, full-bleed hero, mist / navy section rhythm). */
:root{
  --ink:#0f1f2a;--ink-2:#3b4a54;--mute:#6b7982;--line:#e3e9ed;--mist:#f2f5f7;--paper:#fff;
  --navy:#0b2a3b;--blue:#1fa7dc;--blue-ink:#0f7fb0;--orange:#f7941d;--orange-ink:#d97a08;
  --display:'Fraunces','Iowan Old Style','Georgia',serif;--body:'Manrope','Helvetica Neue',Arial,sans-serif;
  --wrap:1180px;--pad:clamp(20px,4vw,48px);--sec:clamp(56px,8vw,104px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.6}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.02em;line-height:1.05;margin:0;text-wrap:balance;font-variation-settings:"opsz" 144,"SOFT" 50}
h1{font-size:clamp(40px,6.4vw,84px)}
h2{font-size:clamp(30px,4.2vw,52px)}
h3{font-size:clamp(20px,2vw,26px);font-variation-settings:"opsz" 48,"SOFT" 30}
p{margin:0}
ul,ol{margin:0;padding-left:1.2em}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
.eyebrow,.bb-kicker{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-ink);margin:0 0 12px}
.lead,.bb-intro{font-size:clamp(17px,1.4vw,20px);color:var(--ink-2);max-width:60ch}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;font-family:var(--body);font-weight:800;font-size:15px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .15s,background .15s;background:var(--mist);color:var(--ink)}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--orange);color:#1a1200;border-color:var(--orange)}
.btn-primary:hover{background:var(--orange-ink);border-color:var(--orange-ink)}
.btn-ghost{border-color:rgba(15,31,42,.18);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--mist)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}

/* contact bar (phone + WhatsApp), above the floating nav */
.wjc-topbar{background:var(--navy);color:#fff;font-size:13px;position:relative;z-index:21}
.wjc-topbar-in{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;flex-wrap:wrap;padding-block:4px}
.wjc-topbar-hours{color:rgba(255,255,255,.75)}
.wjc-topbar-links{display:flex;gap:16px}
.wjc-topbar-link{display:inline-flex;align-items:center;gap:6px;color:#fff;text-decoration:none;font-weight:800}
.wjc-topbar-wa{color:#8fe3b1}
.nav.has-topbar{top:54px}
@media (max-width:640px){.wjc-topbar-hours{display:none}.wjc-topbar-in{justify-content:center}}

/* nav — floating pill */
.nav{position:absolute;top:18px;left:0;right:0;z-index:20;padding-inline:var(--pad)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-radius:999px;padding:6px 8px 6px 20px;box-shadow:0 10px 40px rgba(5,20,30,.18);max-width:1000px;margin:0 auto}
.logo img{width:96px}
.navlinks{display:flex;gap:22px;font-size:14px;font-weight:700}
.navlinks a{text-decoration:none;color:var(--ink-2);white-space:nowrap}
.navlinks a:hover{color:var(--ink)}
.nav-cta{display:flex;align-items:center;gap:8px}
.nav-cta .btn{min-height:44px;padding:0 18px;font-size:14px}
.menu-btn{display:none;background:none;border:1.5px solid var(--line);border-radius:999px;width:44px;height:44px;font-size:18px;cursor:pointer}
@media (max-width:960px){.navlinks{display:none;position:absolute;left:var(--pad);right:var(--pad);top:70px;background:#fff;border-radius:18px;box-shadow:0 10px 40px rgba(5,20,30,.18);flex-direction:column;gap:0;padding:8px 20px 16px}.navlinks a{padding:12px 0;border-top:1px solid var(--line)}.navlinks.show{display:flex}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.nav-cta .btn{display:none}}

/* home hero — full-bleed photo, centred */
.hero{position:relative;min-height:min(88vh,860px);display:grid;place-items:end center;text-align:center;color:#fff;padding:300px 0 64px;isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,22,32,.55) 0%,rgba(6,22,32,.35) 45%,rgba(6,22,32,.72) 100%)}
.hero .eyebrow{color:#bfe8fa}
.hero h1{max-width:16ch;margin-inline:auto;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero .lead{color:rgba(255,255,255,.88);margin:22px auto 0;max-width:52ch}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px}
.hero .hero-cta .btn-ghost{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.12);backdrop-filter:blur(6px)}
.hero .hero-cta .btn-ghost:hover{background:rgba(255,255,255,.22)}
.hero-reassurance{margin-top:22px;font-size:13px;color:rgba(255,255,255,.72);letter-spacing:.03em}
.opening-badge{display:inline-block;margin:0 0 16px;padding:7px 14px;border-radius:999px;background:var(--orange);color:#1a1200;font-weight:800;font-size:13px;letter-spacing:.02em}

/* interior page hero */
.page-hero{padding:130px 0 var(--sec);background:var(--mist)}
.crumb{font-size:13px;color:var(--mute);margin-bottom:18px}
.crumb a{text-decoration:none;color:var(--blue-ink);font-weight:700}
.page-hero .lead{margin-top:20px}
.page-hero .hero-cta{justify-content:flex-start;margin-top:28px}
.service-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center}
.service-hero-photo{margin:0;border-radius:24px;overflow:hidden;aspect-ratio:4/3;max-width:100%}
.service-hero-photo img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.service-hero-grid{grid-template-columns:1fr}}

/* editorial sections */
.bb-editorial{padding:var(--sec) 0}
.bb-editorial h2{max-width:22ch}
.bb-editorial h2+*{margin-top:clamp(22px,3vw,40px)}
.bb-tint{background:var(--mist)}
.bb-dark{background:var(--navy);color:#fff}
.bb-dark .bb-kicker{color:#8fd7f5}
.bb-dark .bb-intro,.bb-dark p{color:rgba(255,255,255,.82)}
.bb-dark .bb-small{color:rgba(255,255,255,.6)}
.bb-editorial .bb-intro+.btn{margin-top:22px}
.bb-small{font-size:13px;color:var(--mute);margin-top:14px}
.bb-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bb-cards article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 24px;display:grid;gap:10px;align-content:start}
.bb-cards p{font-size:15px;color:var(--ink-2)}
.bb-service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bb-service-cards a{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.bb-service-cards a:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(11,42,59,.12)}
.bb-service-cards img{aspect-ratio:4/3;object-fit:cover;width:100%}
.bb-service-cards div{padding:20px 20px 22px;display:grid;gap:8px}
.bb-service-cards p{font-size:15px;color:var(--ink-2)}
.bb-service-cards span{font-weight:800;color:var(--blue-ink);font-size:14px;margin-top:4px}
.bb-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:step}
.bb-steps li{border-top:2px solid var(--ink);padding-top:18px;display:grid;gap:8px;counter-increment:step}
.bb-steps li::before{content:"0" counter(step);font-family:var(--display);font-size:15px;color:var(--mute);letter-spacing:.06em}
.bb-steps p{font-size:15px;color:var(--ink-2)}
.bb-dark .bb-steps li{border-color:rgba(255,255,255,.35)}
.bb-split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:start}
.bb-split>div:last-child{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}
.bb-dark .bb-split>div:last-child{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.bb-split h3{margin-bottom:10px}
.bb-split ul{display:grid;gap:8px;font-size:15px;color:var(--ink-2)}
.bb-split p+p{margin-top:14px}
.bb-faq{display:grid;gap:0;border-top:1px solid var(--line)}
.bb-faq details{border-bottom:1px solid var(--line)}
.bb-faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-family:var(--display);font-size:clamp(18px,1.7vw,22px);font-weight:500;position:relative;font-variation-settings:"opsz" 48,"SOFT" 30}
.bb-faq summary::-webkit-details-marker{display:none}
.bb-faq summary::after{content:"+";position:absolute;right:0;top:14px;font-size:26px;color:var(--blue-ink);font-family:var(--body);font-weight:500}
.bb-faq details[open] summary::after{content:"–"}
.bb-faq p{padding:0 0 20px;color:var(--ink-2);max-width:66ch}
.bb-parishes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;list-style:none;padding:0}
.bb-parishes li a,.bb-parishes a{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;text-decoration:none;font-family:var(--display);font-size:22px;font-weight:500;font-variation-settings:"opsz" 48,"SOFT" 30}
.bb-parishes a:hover{color:var(--blue-ink)}
@media (max-width:960px){.bb-cards,.bb-service-cards,.bb-steps,.bb-parishes{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.bb-cards,.bb-service-cards,.bb-steps,.bb-parishes,.bb-split{grid-template-columns:1fr}}

/* plain prose pages (legal, thank-you, 404, areas) */
.prose{max-width:70ch;padding:var(--sec) 0;display:grid;gap:16px;font-size:17px;color:var(--ink-2)}
.prose h2{font-size:clamp(24px,2.6vw,32px);color:var(--ink);margin-top:18px}
.prose h3{margin-top:10px;color:var(--ink)}
.prose ul{display:grid;gap:6px}
.prose a{color:var(--blue-ink);font-weight:700}
.prose .btn{color:#1a1200}
main>section:not([class]){padding:0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 var(--sec)}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 24px;text-decoration:none;display:grid;gap:10px;align-content:start}
.card p{font-size:15px;color:var(--ink-2)}
.card span{font-weight:800;color:var(--blue-ink);font-size:14px}
@media (max-width:860px){.grid3{grid-template-columns:1fr}}

/* footer */
.bb-footer{background:#0a1a24;color:#c9d6de;padding:clamp(48px,6vw,80px) 0 28px;font-size:15px}
.bb-footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px}
.bb-footer-brand img{width:120px;filter:brightness(1.6)}
.bb-footer-brand p{margin:16px 0 10px;max-width:34ch;color:#9fb1bd}
.bb-footer-brand a{display:block;color:#c9d6de;text-decoration:none;margin-top:6px}
.bb-footer h2{font-family:var(--body);font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.bb-footer nav{display:grid;gap:9px}
.bb-footer a{color:#c9d6de;text-decoration:none}
.bb-footer a:hover{color:#fff}
.bb-footer-chat{background:none;border:0;padding:0;color:#ffd9a8;font:800 15px var(--body);text-align:left;cursor:pointer}
.bb-footer-bottom{margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;color:#8fa1ad}
.bb-footer-bottom a{color:#8fa1ad}
.bb-footer-bottom nav{display:flex;gap:14px}
@media (max-width:860px){.bb-footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.bb-footer-grid{grid-template-columns:1fr}}

/* preview-only chrome */
.preview-chat{position:fixed;right:18px;bottom:18px;z-index:30;background:var(--navy);color:#fff;border:0;border-radius:999px;padding:14px 20px;font:800 14px var(--body);box-shadow:0 12px 40px rgba(5,20,30,.3);cursor:pointer}
.preview-note{position:fixed;left:12px;bottom:12px;font:800 11px var(--body);letter-spacing:.1em;background:#ffd9a8;color:#1a1200;padding:4px 8px;border-radius:6px;z-index:30}
dialog{border:0;border-radius:20px;padding:28px;max-width:420px;box-shadow:0 30px 80px rgba(5,20,30,.35);font-family:var(--body)}
dialog::backdrop{background:rgba(6,22,32,.5)}
dialog h2{font-size:24px;margin-bottom:10px}
dialog p{color:var(--ink-2);margin-bottom:18px}
dialog .btn{margin-right:8px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.bb-service-cards a{transition:none}}

/* Privacy choices + chat widget placement (the widget injects its own panel styles) */
.wjc-consent{position:fixed;inset:auto 16px 16px 16px;z-index:2147482999;display:none;max-width:760px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 60px rgba(11,42,59,.24);padding:20px;font-family:var(--body)}
.wjc-consent.on{display:block}
.wjc-consent h2{font-family:var(--body);font-size:17px;font-weight:800;letter-spacing:0;margin-bottom:6px}
.wjc-consent p{font-size:14px;color:var(--mute);margin:0}
.wjc-consent-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.wjc-consent button{font:800 14px var(--body);border-radius:999px;padding:9px 16px;cursor:pointer}
.wjc-consent-accept{color:#fff;background:var(--navy);border:1px solid var(--navy)}
.wjc-consent-essential{color:var(--ink);background:#fff;border:1px solid var(--line)}
.wjc-cookie-settings{position:fixed;left:14px;bottom:14px;z-index:2147482998;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 12px;font:800 12px var(--body);box-shadow:0 8px 24px rgba(11,42,59,.12);cursor:pointer}
@media (max-width:480px){.wjc-panel{left:12px!important;right:12px!important;width:auto!important;max-width:none!important}}
/* Role cards on the contractors page (matches the group hub) */
.bb-role-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:8px 0 28px}
.bb-role{display:block;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.bb-role:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.bb-role h3{margin:10px 0 6px;font-size:22px}
.bb-role p{margin:0 0 12px;color:#4a4a4a}
.bb-role strong{color:var(--navy)}
.bb-tag{display:inline-block;font-size:12px;font-weight:800;color:#9b551c;background:#fff1df;border-radius:999px;padding:3px 10px}

/* On a phone the consent notice covered the hero headline and cut the lead
   paragraph mid-sentence. Keep it to a slim bar. */
@media (max-width:800px){
  .wjc-consent{inset:auto 10px 10px 10px;padding:14px;border-radius:14px}
  .wjc-consent h2{font-size:16px}
  .wjc-consent p{font-size:12.5px;line-height:1.45;max-height:7.5em;overflow-y:auto}
  .wjc-consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .wjc-consent-actions button{width:100%}
}

/* Quick-actions bar. Jamaica had no sticky bar, so on a phone the only way to
   reach WhatsApp was a small link in the top bar. */
.mobile-conversion-bar{display:none}
@media(max-width:800px){
  body{padding-bottom:64px}
  .mobile-conversion-bar{position:fixed;left:0;right:0;bottom:0;z-index:2147482000;
    display:grid;grid-template-columns:.85fr 1fr 1.35fr;gap:8px;
    padding:9px 10px calc(9px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);border-top:1px solid rgba(20,40,80,.12);
    box-shadow:0 -8px 24px rgba(20,40,80,.12)}
  .mobile-conversion-bar a{display:flex;align-items:center;justify-content:center;
    min-height:42px;border-radius:999px;font-weight:800;font-size:14px;
    text-decoration:none;color:#17384a;border:1px solid rgba(20,40,80,.18)}
  .mobile-conversion-bar .mobile-wa{color:#128c7e;font-weight:800}
  .mobile-conversion-bar .mobile-primary{background:#f4a13c;color:#17384a;border-color:transparent}
  /* Everything fixed to the bottom has to clear the bar, or it lands on top
     of it. The privacy button was covering the Call action. The widget's own
     stylesheet lifts the launcher only below 700px, so cover 700-800 here. */
  .wjc-cookie-settings{bottom:78px}
  .wjc-fab{bottom:78px!important}
  .wjc-panel{bottom:146px!important}
}
