/* ==========================================================================
   Joseph Ellen Cleaning — design system
   WEEKTHINK · Concept A (Bold Dark)

   Loaded by the JEC Design System plugin on the front end AND inside the
   Bricks builder canvas, so what you see while editing is what ships.

   Bricks supplies the markup; this file supplies the look. Every rule is
   keyed to a `jec-` BEM class, so nothing here fights with Bricks defaults
   except the small reset block immediately below.
   ========================================================================== */

/* ---------- neutralise Bricks' structural defaults on our own blocks ----------
   Bricks centres and flexes .brxe-section by default. Our sections are
   block-level and supply their own widths, so opt those out here rather than
   fighting the default rule by rule. Note this deliberately does NOT touch
   .brxe-div: Bricks sets no display on divs, and a two-class reset there would
   outrank single-class layout rules like .jec-hero__inner{display:grid}. */
.brxe-section.jec-hero,
.brxe-section.jec-section,
.brxe-section.jec-stats{display:block;width:100%;max-width:none;padding-left:0;padding-right:0}


/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/dm-sans-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/dm-sans-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/playfair-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- tokens ---------- */
:root{
  --ink:#0C0C0D;
  --ink-2:#17171A;
  --pink:#FF3D6E;
  --pink-deep:#E01F52;
  --cream:#F6F3F0;
  --purple:#7A2BFF;
  --line:rgba(255,255,255,.14);
  --line-dark:rgba(12,12,13,.12);
  --mut:rgba(255,255,255,.62);
  --mut-d:rgba(12,12,13,.60);
  --radius:22px;
  --max:1240px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  background:var(--ink);color:#fff;font-size:17px;line-height:1.55;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,figure,blockquote,ul{margin:0;padding:0}
ul{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}

.jec-wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:999;background:#fff;color:var(--ink);padding:12px 20px;border-radius:8px;
  width:auto;height:auto;clip:auto}

/* ---------- buttons ---------- */
.jec-btn{display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:14px 26px;font-weight:700;font-size:15px;
  letter-spacing:-.01em;transition:background .22s,transform .22s,color .22s;white-space:nowrap;border:1px solid transparent;cursor:pointer}
.jec-btn svg{width:16px;height:16px;flex:0 0 16px}
.jec-btn--primary{background:var(--pink);color:#fff}
.jec-btn--primary:hover,.jec-btn--primary:focus-visible{background:var(--pink-deep);transform:translateY(-2px)}
.jec-btn--ghost{border-color:var(--line);color:#fff}
.jec-btn--ghost:hover,.jec-btn--ghost:focus-visible{background:rgba(255,255,255,.08)}
.jec-btn--dark{background:var(--ink);color:#fff}
.jec-btn--dark:hover,.jec-btn--dark:focus-visible{background:var(--pink);transform:translateY(-2px)}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px}

/* ---------- announcement ---------- */
.jec-announce{background:var(--pink);text-align:center;font-size:13.5px;font-weight:500;padding:9px 20px}
.jec-announce strong{font-weight:700}

/* ---------- header ---------- */
.jec-header{position:sticky;top:0;z-index:50;background:rgba(12,12,13,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.jec-header__inner{max-width:var(--max);margin:0 auto;padding:14px 28px;display:flex;align-items:center;gap:34px}
.jec-header__logo,.jec-header__logo img{height:44px;width:auto;display:block}
.jec-nav{display:flex;gap:28px;font-size:15px;font-weight:500;color:var(--mut);margin-left:8px}
.jec-nav a{transition:color .18s}
.jec-nav a:hover,.jec-nav a:focus-visible{color:#fff}
.jec-header__right{margin-left:auto;display:flex;align-items:center;gap:18px}
.jec-header__tel{font-size:15px;font-weight:700;color:#fff}
.jec-burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.jec-burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:transform .2s,opacity .2s}
.jec-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.jec-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.jec-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.jec-hero{position:relative;overflow:hidden;padding:96px 0 0}
.jec-hero__glow{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}
.jec-hero__glow--pink{width:620px;height:620px;background:var(--pink);top:-220px;right:-160px;opacity:.32}
.jec-hero__glow--purple{width:460px;height:460px;background:var(--purple);bottom:-200px;left:-160px;opacity:.20}
.jec-hero__inner{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.jec-eyebrow{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;
  padding:7px 16px 7px 8px;font-size:13px;font-weight:600;color:var(--mut);margin-bottom:26px}
.jec-eyebrow i{width:22px;height:22px;border-radius:50%;background:var(--pink);display:grid;place-items:center;font-style:normal}
.jec-eyebrow i svg{width:11px;height:11px}
.jec-hero h1{font-size:clamp(42px,5.2vw,68px);line-height:1.02;letter-spacing:-.035em;font-weight:700}
.jec-accent{font-family:'Playfair Display',Georgia,serif;font-weight:600;font-style:normal;color:var(--pink)}
.jec-hero__lede{color:var(--mut);font-size:19px;max-width:520px;margin:24px 0 34px}
.jec-hero__cta{display:flex;gap:12px;flex-wrap:wrap}
.jec-hero__fine{margin-top:26px;font-size:13.5px;color:rgba(255,255,255,.45)}
.jec-hero__media{position:relative}
.jec-hero__shot{border-radius:26px;overflow:hidden;border:1px solid var(--line);background:#141416;position:relative;aspect-ratio:4/4.4}
.jec-hero__shot img{width:100%;height:100%;object-fit:cover}
.jec-hero__shot::after{content:"";position:absolute;inset:0;
  background:linear-gradient(200deg,rgba(255,61,110,.16),transparent 42%,rgba(12,12,13,.55))}
.jec-credit{position:absolute;left:16px;bottom:14px;z-index:2;font-size:11px;letter-spacing:.11em;text-transform:uppercase;
  color:rgba(255,255,255,.7);text-shadow:0 1px 6px rgba(0,0,0,.6)}
.jec-chip{position:absolute;background:#fff;color:var(--ink);border-radius:16px;padding:14px 18px;
  box-shadow:0 18px 40px rgba(0,0,0,.4);display:flex;gap:12px;align-items:center;z-index:3}
.jec-chip__n{font-size:24px;font-weight:700;letter-spacing:-.03em;line-height:1;white-space:nowrap;display:flex;align-items:center}
.jec-chip__n svg{width:.55em;height:.55em;margin-left:.12em;align-self:flex-start;margin-top:.05em}
.jec-chip__l{font-size:12px;color:var(--mut-d);line-height:1.25;max-width:110px}
.jec-chip--1{left:-34px;top:56px}
.jec-chip--2{right:-24px;bottom:96px;background:var(--pink);color:#fff}
.jec-chip--2 .jec-chip__l{color:rgba(255,255,255,.85)}

/* ---------- marquee ---------- */
.jec-marquee{background:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;white-space:nowrap;margin-top:74px;padding:14px 0}
.jec-marquee__track{display:inline-block;animation:jec-scroll 30s linear infinite;font-weight:700;font-size:14px;letter-spacing:.04em;color:rgba(255,255,255,.6)}
.jec-marquee__track span{padding:0 24px}
.jec-marquee__track b{color:var(--pink)}
@keyframes jec-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.jec-marquee__track{animation:none}}

/* ---------- sections ---------- */
.jec-section{padding:104px 0}
.jec-section--cream{background:var(--cream);color:var(--ink)}
.jec-section--quote{background:var(--ink-2)}
.jec-head{max-width:720px;margin-bottom:48px}
.jec-kicker{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--pink);font-weight:700;margin-bottom:16px}
.jec-section--cream .jec-kicker{color:var(--pink-deep)}
.jec-section--cream .jec-accent{color:var(--pink-deep)}
h2{font-size:clamp(32px,3.9vw,50px);line-height:1.05;letter-spacing:-.032em;font-weight:700}
.jec-head p{color:var(--mut);font-size:18px;margin-top:18px}
.jec-section--cream .jec-head p{color:var(--mut-d)}

/* ---------- service cards ---------- */
.jec-services{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.jec-card{border:1px solid var(--line);border-radius:var(--radius);padding:34px 32px 32px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));transition:transform .24s,border-color .24s}
.jec-card:hover{transform:translateY(-6px);border-color:rgba(255,61,110,.6)}
.jec-card__icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:20px}
.jec-card__icon--pink{background:var(--pink)}
.jec-card__icon--purple{background:var(--purple)}
.jec-card__icon svg{width:21px;height:21px}
.jec-card h3{font-size:25px;font-weight:700;letter-spacing:-.02em;margin-bottom:10px}
.jec-card p{font-size:15.5px;color:var(--mut);max-width:430px}
.jec-card__link{margin-top:18px;font-size:14px;font-weight:700;color:var(--pink);display:inline-flex;gap:7px;align-items:center;white-space:nowrap}

/* ---------- property cards ---------- */
.jec-props{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.jec-prop{background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line-dark);transition:transform .24s,box-shadow .24s}
.jec-prop:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(12,12,13,.13)}
.jec-prop__media{aspect-ratio:16/9.4;overflow:hidden;background:#EDE7E2}
.jec-prop__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.jec-prop:hover .jec-prop__media img{transform:scale(1.05)}
.jec-prop__body{padding:26px}
.jec-prop h3{font-size:23px;font-weight:700;letter-spacing:-.022em;margin-bottom:8px}
.jec-prop p{font-size:15px;color:var(--mut-d)}
.jec-prop__list{margin:18px 0 22px;display:grid;gap:9px}
.jec-prop__list li{font-size:14.5px;display:flex;gap:10px;align-items:flex-start;color:var(--mut-d)}
.jec-prop__list li svg{width:17px;height:17px;flex:0 0 17px;margin-top:3px}
.jec-prop__link{font-size:14px;font-weight:700;color:var(--pink-deep);display:inline-flex;gap:7px;align-items:center;white-space:nowrap}

/* ---------- stat band ---------- */
.jec-stats{background:var(--pink);color:#fff;padding:88px 0}
.jec-stats__head{text-align:center;margin-bottom:56px}
.jec-stats__head h2{font-size:clamp(28px,3.2vw,40px)}
.jec-stats__head p{color:rgba(255,255,255,.85);margin-top:12px}
.jec-stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.jec-stat__n{font-size:clamp(46px,6vw,76px);font-weight:700;letter-spacing:-.045em;line-height:1;
  font-family:'Playfair Display',Georgia,serif;white-space:nowrap;display:flex;align-items:flex-start}
.jec-stat__n svg{width:.4em;height:.4em;margin-left:.06em;margin-top:.1em}
.jec-stat__l{margin-top:12px;font-size:15.5px;color:rgba(255,255,255,.9);max-width:250px}

/* ---------- testimonial ---------- */
.jec-quote{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.jec-quote__media{aspect-ratio:1/1.05;border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;background:#141416;position:relative}
.jec-quote__media img{width:100%;height:100%;object-fit:cover}
.jec-quote__mark{font-family:'Playfair Display',Georgia,serif;font-size:82px;line-height:.6;color:var(--pink);display:block;margin-bottom:22px}
.jec-quote blockquote{font-family:'Playfair Display',Georgia,serif;font-size:clamp(24px,2.7vw,34px);line-height:1.32;letter-spacing:-.02em;font-weight:500}
.jec-quote__by{margin-top:28px;display:flex;align-items:center;gap:14px}
.jec-quote__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));flex:0 0 44px}
.jec-quote__by strong{display:block;font-size:15px}
.jec-quote__by span{color:var(--mut);font-size:13.5px}

/* ---------- quote form CTA ---------- */
.jec-cta{background:var(--cream);color:var(--ink)}
.jec-cta__head{text-align:center;max-width:720px;margin:0 auto}
.jec-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:52px 0 56px}
.jec-step{background:#fff;border:1px solid var(--line-dark);border-radius:var(--radius);padding:28px 26px}
.jec-step__n{font-family:'Playfair Display',Georgia,serif;font-size:40px;line-height:1;color:var(--pink-deep);margin-bottom:16px}
.jec-step h3{font-size:18px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.jec-step p{font-size:14.5px;color:var(--mut-d)}

.jec-form-shell{background:var(--ink);color:#fff;border-radius:32px;padding:52px 56px;display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.jec-form-shell h3{font-size:clamp(26px,2.6vw,34px);line-height:1.1;letter-spacing:-.03em;font-weight:700;margin-bottom:14px}
.jec-form-shell .jec-form-intro p{color:var(--mut);font-size:15.5px}
.jec-form-shell .jec-form-reassure{margin-top:24px;display:grid;gap:11px}
.jec-form-shell .jec-form-reassure li{font-size:14px;color:var(--mut);display:flex;gap:10px;align-items:flex-start}
.jec-form-shell .jec-form-reassure svg{width:16px;height:16px;flex:0 0 16px;margin-top:3px}
.jec-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.jec-field{display:flex;flex-direction:column;gap:7px}
.jec-field--full{grid-column:1/-1}
.jec-field label{font-size:13px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.75)}
.jec-field label .req{color:var(--pink)}
.jec-field input,.jec-field select,.jec-field textarea{
  background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:12px;padding:13px 15px;color:#fff;
  font-size:15px;transition:border-color .18s,background .18s;width:100%}
.jec-field input::placeholder,.jec-field textarea::placeholder{color:rgba(255,255,255,.35)}
.jec-field input:focus,.jec-field select:focus,.jec-field textarea:focus{
  outline:none;border-color:var(--pink);background:rgba(255,255,255,.09)}
.jec-field textarea{min-height:104px;resize:vertical}
.jec-field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,.5)' stroke-width='2.5' stroke-linecap='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px}
.jec-field select option{background:var(--ink);color:#fff}
.jec-form__submit{grid-column:1/-1;margin-top:6px}
.jec-form__submit button{width:100%;justify-content:center;padding:17px 26px;font-size:16px}
.jec-form__legal{grid-column:1/-1;font-size:12.5px;color:rgba(255,255,255,.42);margin-top:2px}
.jec-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.jec-alert{grid-column:1/-1;border-radius:12px;padding:15px 18px;font-size:15px;margin-bottom:4px}
.jec-alert--ok{background:rgba(46,158,82,.16);border:1px solid rgba(46,158,82,.5);color:#B6F0C6}
.jec-alert--err{background:rgba(255,61,110,.14);border:1px solid rgba(255,61,110,.5);color:#FFC2D2}

/* ---------- footer ---------- */
.jec-footer{background:var(--ink);padding:76px 0 34px;border-top:1px solid var(--line)}
.jec-footer__grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:40px}
.jec-footer__logo,.jec-footer__logo img{height:42px;width:auto;display:block}
.jec-footer__logo{margin-bottom:22px}
.jec-footer__about{color:var(--mut);font-size:14.5px;max-width:290px}
.jec-fcol h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:16px;font-weight:700}
.jec-fcol a,.jec-fcol li{display:block;font-size:14.5px;color:var(--mut);margin-bottom:10px;transition:color .18s}
.jec-fcol a:hover,.jec-fcol a:focus-visible{color:var(--pink)}
.jec-footer__bottom{margin-top:56px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;
  font-size:13px;color:rgba(255,255,255,.4);flex-wrap:wrap;gap:12px}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .jec-form-shell{grid-template-columns:1fr;gap:34px;padding:40px 34px}
}
@media (max-width:980px){
  .jec-section{padding:64px 0}
  .jec-hero{padding:56px 0 0}
  .jec-hero__inner{grid-template-columns:1fr;gap:56px}
  .jec-hero__media{max-width:520px}
  .jec-chip--1{left:12px;top:16px}
  .jec-chip--2{right:12px;bottom:16px}
  .jec-services,.jec-props,.jec-steps{grid-template-columns:1fr}
  .jec-stats__grid{grid-template-columns:1fr;gap:32px}
  .jec-quote{grid-template-columns:1fr;gap:32px}
  .jec-footer__grid{grid-template-columns:1fr 1fr}
  /* No hamburger: the old markup relied on a JS toggle that does not exist once
     Bricks owns the header. Below 980px the nav wraps to its own row and scrolls
     horizontally instead — fewer moving parts, nothing to break, and every link
     stays one tap away. */
  .jec-header__tel{display:none}
  .jec-header__inner{position:relative;gap:12px;flex-wrap:wrap}
  .jec-nav{order:3;width:100%;margin-left:0;gap:18px;font-size:14px;
    overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-ms-overflow-style:none}
  .jec-nav::-webkit-scrollbar{display:none}
  .jec-nav a{white-space:nowrap}
  .jec-header__right{margin-left:auto}
}
@media (max-width:560px){
  .jec-wrap{padding:0 20px}
  .jec-form{grid-template-columns:1fr}
  .jec-form-shell{padding:30px 22px;border-radius:24px}
  .jec-footer__grid{grid-template-columns:1fr}
  .jec-hero__lede{font-size:17px}
}

/* ---------- print ---------- */
@media print{
  .jec-header,.jec-announce,.jec-marquee,.jec-form-shell{display:none}
  body{background:#fff;color:#000}
}

/* ==========================================================================
   Icons as CSS
   --------------------------------------------------------------------------
   The hand-coded version of this site inlined SVG icons in PHP. Bricks has no
   equivalent, and asking anyone editing the page to paste raw SVG would defeat
   the point of moving to a builder. So the icons live here as data URIs on
   pseudo-elements: the builder markup stays clean, and the icons cannot be
   accidentally deleted while editing copy.
   ========================================================================== */
:root{
  --ico-arrow-white:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --ico-arrow-pink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF3D6E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --ico-arrow-deep:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E01F52' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --ico-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23FF3D6E'/%3E%3Cpolyline points='7 12.5 10.5 16 17 9' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --ico-sparkle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M12 2l1.9 5.6L19.5 9.5l-5.6 1.9L12 17l-1.9-5.6L4.5 9.5l5.6-1.9z'/%3E%3C/svg%3E");
  --ico-home:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230C0C0D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E");
  --ico-house:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20h20M6 20V9l6-5 6 5v11M10 20v-6h4v6'/%3E%3C/svg%3E");
}

.jec-btn--primary::after,
.jec-card__link::after,
.jec-prop__link::after{content:"";width:16px;height:16px;flex:0 0 16px;background-size:contain;background-repeat:no-repeat;background-position:center}
.jec-btn--primary::after{background-image:var(--ico-arrow-white)}
.jec-card__link::after{background-image:var(--ico-arrow-pink)}
.jec-prop__link::after{background-image:var(--ico-arrow-deep)}

.jec-prop__list li::before,
.jec-form-reassure li::before{content:"";width:17px;height:17px;flex:0 0 17px;margin-top:3px;
  background:var(--ico-check) center/contain no-repeat}
.jec-form-reassure li::before{width:16px;height:16px;flex:0 0 16px}

.jec-eyebrow__dot{width:22px;height:22px;border-radius:50%;background:var(--pink);flex:0 0 22px;
  background-image:var(--ico-sparkle);background-size:11px 11px;background-repeat:no-repeat;background-position:center}

.jec-card__icon::before{content:"";width:21px;height:21px;background-size:contain;background-repeat:no-repeat;background-position:center}
.jec-card__icon--pink::before{background-image:var(--ico-home)}
.jec-card__icon--purple::before{background-image:var(--ico-house)}

/* Bricks renders headings, text and links as their own elements, so a few of the
   original descendant selectors need a class-based twin. */
.jec-hero__title{font-size:clamp(42px,5.2vw,68px);line-height:1.02;letter-spacing:-.035em;font-weight:700}
.jec-section__title,.jec-cta__title{font-size:clamp(32px,3.9vw,50px);line-height:1.05;letter-spacing:-.032em;font-weight:700}
.jec-head__lede{color:var(--mut);font-size:18px;margin-top:18px}
.jec-section--cream .jec-head__lede{color:var(--mut-d)}
.jec-card__title{font-size:25px;font-weight:700;letter-spacing:-.02em;margin-bottom:10px}
.jec-card__text{font-size:15.5px;color:var(--mut);max-width:430px}
.jec-prop__title{font-size:23px;font-weight:700;letter-spacing:-.022em;margin-bottom:8px}
.jec-prop__text{font-size:15px;color:var(--mut-d)}
.jec-step__title{font-size:18px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.jec-step__text{font-size:14.5px;color:var(--mut-d)}
.jec-form-intro__title{font-size:clamp(26px,2.6vw,34px);line-height:1.1;letter-spacing:-.03em;font-weight:700;margin-bottom:14px}
.jec-form-intro__text{color:var(--mut);font-size:15.5px}
.jec-prop__media img{width:100%;height:100%;object-fit:cover}
.jec-hero__shot img{width:100%;height:100%;object-fit:cover}
.jec-footer__col-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:16px;font-weight:700}
