
.cfs-services,.cfs-services *{box-sizing:border-box}
.cfs-services{--edge:clamp(16px,4vw,64px);--red:#d52b1e;--gold:#b78a2b;background:#050505;color:#fff;width:100%;overflow:hidden}
.cfs-hero{position:relative;min-height:72svh;display:flex;align-items:flex-end;padding:clamp(84px,11vw,150px) var(--edge) clamp(56px,8vw,96px);isolation:isolate}
.cfs-hero-bg{position:absolute;inset:0;z-index:-2;background:
linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.74) 44%,rgba(0,0,0,.35) 78%,rgba(0,0,0,.62) 100%),
radial-gradient(circle at 72% 28%,rgba(183,138,43,.2),transparent 34%),#0a0a0a}
.cfs-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 62%,#050505)}
.cfs-hero-inner{max-width:950px}
.cfs-kicker,.cfs-section-heading>p,.cfs-philosophy>span{margin:0 0 12px;color:var(--red);font-size:.68rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
.cfs-hero h1,.cfs-section-heading h2,.cfs-philosophy h2,.cfs-final-cta span{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em}
.cfs-hero h1{margin:0!important;color:#fff!important;font-size:clamp(3.2rem,7.4vw,7.6rem)!important;line-height:.9!important}
.cfs-intro{max-width:700px;margin:24px 0 0;color:rgba(255,255,255,.67);font-size:clamp(1rem,1.25vw,1.18rem);line-height:1.58}
.cfs-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.cfs-primary,.cfs-secondary,.cfs-modal-cta,.cfs-final-cta a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;text-decoration:none!important;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.cfs-primary{border:1px solid var(--gold);color:#fff!important}.cfs-secondary{border:1px solid rgba(255,255,255,.24);color:#fff!important}
.cfs-service-section{padding:clamp(58px,8vw,104px) var(--edge)}
.cfs-section-heading{max-width:900px;margin:0 0 28px}
.cfs-section-heading h2{margin:0!important;color:#fff!important;font-size:clamp(2.6rem,5vw,5rem)!important;line-height:.96!important}
.cfs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cfs-card{position:relative;min-height:360px;padding:0;border:1px solid rgba(255,255,255,.08);overflow:hidden;background:#111 var(--cfs-card-image,none) center/cover no-repeat;color:#fff;text-align:left;cursor:pointer}
.cfs-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.12) 36%,rgba(0,0,0,.86) 100%)}
.cfs-card-number{position:absolute;top:14px;left:16px;z-index:2;color:rgba(255,255,255,.38);font:400 3.2rem/1 Georgia,serif}
.cfs-card-copy{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;display:flex;flex-direction:column;align-items:flex-start}
.cfs-card-eyebrow{margin-bottom:6px;color:var(--red);font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.cfs-card-copy strong{font:400 clamp(1.7rem,2.3vw,2.5rem)/1 Georgia,serif}
.cfs-card-summary{margin-top:9px;color:rgba(255,255,255,.66);font-size:.86rem;line-height:1.45}
.cfs-card-link{margin-top:13px;color:rgba(255,255,255,.8);font-size:.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.cfs-card-link b{margin-left:7px;color:var(--red)}
.cfs-card:hover,.cfs-card:focus-visible{border-color:rgba(183,138,43,.55)}
.cfs-philosophy{padding:clamp(72px,9vw,120px) var(--edge);text-align:center;background:radial-gradient(circle at center,#292929,#111 50%,#060606);border-block:1px solid rgba(255,255,255,.07)}
.cfs-philosophy h2{margin:0!important;color:#fff!important;font-size:clamp(2.4rem,5vw,4.8rem)!important;line-height:1.05!important}.cfs-philosophy em{color:var(--gold);font-style:normal}.cfs-philosophy p{max-width:650px;margin:18px auto 0;color:rgba(255,255,255,.56)}
.cfs-process{padding:clamp(60px,8vw,100px) var(--edge)}
.cfs-process-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.cfs-process-step{padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}.cfs-process-step>span{display:block;color:var(--red);font:400 2.1rem/1 Georgia,serif}.cfs-process-step strong{display:block;margin-top:8px;font:400 1.1rem/1.1 Georgia,serif;text-transform:uppercase}.cfs-process-step p{margin:9px 0 0;color:rgba(255,255,255,.56);font-size:.8rem;line-height:1.45}
.cfs-modal{position:fixed!important;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.86);opacity:0;visibility:hidden;pointer-events:none;transition:.2s}.cfs-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
.cfs-modal-panel{position:relative;width:min(920px,94vw);max-height:90dvh;overflow:auto;padding:clamp(28px,5vw,62px);background:#101010;border:1px solid rgba(255,255,255,.12)}
.cfs-modal-close{position:absolute;top:14px;right:14px;width:48px;height:48px;border:0;border-radius:50%;background:#1a1a1a;color:#fff;font-size:34px}.cfs-modal-eyebrow{padding-right:60px;color:var(--red);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase}.cfs-modal-title{margin:10px 0 16px!important;color:#fff!important;font:400 clamp(2.5rem,7vw,5.8rem)/.92 Georgia,serif!important}.cfs-modal-summary{color:rgba(255,255,255,.68);line-height:1.6}.cfs-modal-columns{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:34px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}.cfs-modal-columns h3{font-size:.7rem!important;letter-spacing:.13em!important;text-transform:uppercase}.cfs-modal-columns ul{list-style:none;padding:0;margin:0}.cfs-modal-columns li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.78)}.cfs-modal-footer{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-top:32px}.cfs-modal-footer span{display:block;color:rgba(255,255,255,.46);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.cfs-modal-cta{border:1px solid var(--gold);background:transparent;color:#fff}
body.cfs-no-scroll{overflow:hidden!important}.cfs-calculator-anchor{scroll-margin-top:80px}
.cfs-final-cta{padding:clamp(68px,9vw,110px) var(--edge);display:flex;justify-content:space-between;align-items:center;gap:22px;background:#090909;border-top:1px solid rgba(255,255,255,.08)}.cfs-final-cta span{font-size:clamp(2.3rem,5vw,4.7rem)}.cfs-final-cta a{border:1px solid var(--gold);color:#fff!important}
@media(max-width:980px){.cfs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cfs-process-track{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  .cfs-services{--edge:12px}
  .cfs-hero{min-height:66svh;padding-top:72px}.cfs-hero h1{font-size:clamp(3rem,14vw,4.9rem)!important}
  .cfs-service-section{padding-top:46px}
  .cfs-section-heading{padding:0 2px}.cfs-section-heading h2{font-size:clamp(2.4rem,11vw,3.7rem)!important}
  .cfs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .cfs-card{min-height:230px;border-radius:8px}.cfs-card-number{font-size:2.3rem;top:9px;left:10px}.cfs-card-copy{left:10px;right:10px;bottom:10px}.cfs-card-eyebrow{font-size:.48rem}.cfs-card-copy strong{font-size:clamp(1.2rem,5.3vw,1.55rem)}.cfs-card-summary{display:none}.cfs-card-link{margin-top:8px;font-size:.5rem}
  .cfs-philosophy{text-align:left}.cfs-philosophy h2{font-size:clamp(2.2rem,10vw,3.4rem)!important}
  .cfs-process{overflow:hidden}
  .cfs-process-track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-12px;padding:0 12px 12px}.cfs-process-track::-webkit-scrollbar{display:none}.cfs-process-step{flex:0 0 78vw;min-height:220px;padding:22px;border:1px solid rgba(255,255,255,.1);background:#0d0d0d;scroll-snap-align:start}.cfs-process-step>span{font-size:3rem}.cfs-process-step strong{margin-top:18px;font-size:1.6rem}.cfs-process-step p{font-size:.95rem;max-width:90%}
  .cfs-modal{padding:0;align-items:stretch}.cfs-modal-panel{width:100vw;max-height:100dvh;padding:78px 20px max(28px,env(safe-area-inset-bottom));border:0}.cfs-modal-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}.cfs-modal-columns{grid-template-columns:1fr}.cfs-modal-footer{flex-direction:column;align-items:stretch}.cfs-modal-cta{width:100%}
  .cfs-final-cta{align-items:flex-start;flex-direction:column}
}
@media(max-width:390px){.cfs-card{min-height:210px}.cfs-card-copy strong{font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){.cfs-modal{transition:none!important}}


/* =========================================================
   v1.9.1 Services Section Separation
   ========================================================= */

.cfs-services{
  background:#050505!important;
}

/* Give each major module its own visual plane */
.cfs-hero{
  background:
    radial-gradient(circle at 72% 28%,rgba(183,138,43,.16),transparent 34%),
    linear-gradient(180deg,#090909 0%,#0d0d0d 68%,#060606 100%)!important;
  border-bottom:1px solid rgba(255,255,255,.10)!important;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.03);
}

.cfs-service-section{
  position:relative;
  background:#090909!important;
  border-top:1px solid rgba(255,255,255,.035);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.cfs-service-section:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 15% 5%,rgba(183,138,43,.045),transparent 28%),
    radial-gradient(circle at 85% 95%,rgba(213,43,30,.035),transparent 30%);
}

.cfs-section-heading,
.cfs-grid{
  position:relative;
  z-index:1;
}

/* The service cards should read as cards, not holes in the background */
.cfs-card{
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.025);
}

.cfs-card:hover,
.cfs-card:focus-visible{
  transform:translateY(-2px);
  box-shadow:
    0 18px 38px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.03);
}

.cfs-philosophy{
  position:relative;
  margin:clamp(24px,3vw,42px) var(--edge)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:2px;
  background:
    radial-gradient(circle at center,rgba(45,45,45,.98) 0%,rgba(20,20,20,.98) 50%,rgba(9,9,9,.98) 100%)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.24);
}

/* Process is its own charcoal panel */
.cfs-process{
  margin:clamp(24px,3vw,42px) var(--edge)!important;
  padding:clamp(48px,6vw,82px) clamp(18px,3vw,42px)!important;
  background:#0e0e0e!important;
  border:1px solid rgba(255,255,255,.09)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.20);
}

.cfs-process-step{
  background:#121212;
  border:1px solid rgba(255,255,255,.08)!important;
  padding:20px!important;
  min-height:190px;
}

/* Create a clear break before the project builder */
.cfs-calculator-anchor{
  position:relative;
  margin-top:clamp(34px,5vw,64px);
  border-top:1px solid rgba(183,138,43,.28);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:#070707;
}

.cfs-calculator-anchor:before{
  content:"";
  display:block;
  height:10px;
  background:linear-gradient(90deg,transparent,rgba(183,138,43,.28),transparent);
  opacity:.55;
}

/* Footer CTA should feel like a final distinct chapter */
.cfs-final-cta{
  margin-top:clamp(34px,5vw,64px)!important;
  background:
    radial-gradient(circle at 15% 50%,rgba(183,138,43,.10),transparent 30%),
    linear-gradient(90deg,#0c0c0c,#141414 55%,#090909)!important;
  border-top:1px solid rgba(255,255,255,.10)!important;
}

/* More vertical breathing room between modules */
.cfs-service-section,
.cfs-process,
.cfs-philosophy,
.cfs-calculator-anchor,
.cfs-final-cta{
  scroll-margin-top:90px;
}

@media(max-width:700px){
  .cfs-service-section{
    padding-top:52px!important;
    padding-bottom:52px!important;
  }

  .cfs-philosophy{
    margin:18px 12px!important;
    padding:54px 18px!important;
  }

  .cfs-process{
    margin:18px 12px!important;
    padding:42px 14px!important;
  }

  .cfs-process-step{
    background:#141414!important;
    border-color:rgba(255,255,255,.11)!important;
    box-shadow:0 10px 28px rgba(0,0,0,.22);
  }

  .cfs-calculator-anchor{
    margin-top:28px!important;
  }

  .cfs-final-cta{
    margin-top:28px!important;
  }
}


/* =========================================================
   v1.10.0 High Contrast Pass
   ========================================================= */
.cfs-service-section{
  background:#111!important;
  border-top:1px solid rgba(255,255,255,.14)!important;
  border-bottom:1px solid rgba(255,255,255,.14)!important;
}
.cfs-card{
  background-color:#070707!important;
  border-color:rgba(255,255,255,.20)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.48)!important;
}
.cfs-card:before{
  background:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.38) 38%,rgba(0,0,0,.96) 100%)!important;
}
.cfs-card-copy strong{color:#fff!important}
.cfs-card-summary{color:rgba(255,255,255,.82)!important}
.cfs-card-number{color:rgba(255,255,255,.42)!important}
.cfs-philosophy{
  background:linear-gradient(145deg,#1b1b1b,#0d0d0d)!important;
  border-color:rgba(255,255,255,.18)!important;
  box-shadow:0 24px 60px rgba(0,0,0,.52)!important;
}
.cfs-process{
  background:#151515!important;
  border-color:rgba(255,255,255,.18)!important;
}
.cfs-process-step{
  background:#080808!important;
  border-color:rgba(255,255,255,.20)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.32)!important;
}
.cfs-process-step p{color:rgba(255,255,255,.76)!important}
.cfs-calculator-anchor{background:#101010!important;border-top-color:rgba(183,138,43,.55)!important}
@media(max-width:700px){
  .cfs-service-section{background:#111!important}
  .cfs-card{border-color:rgba(255,255,255,.22)!important}
  .cfs-process-step{background:#090909!important;border-color:rgba(255,255,255,.20)!important}
}
