/* ===========================================================
   CODEFRAMEX — shared stylesheet
   Style direction: "Raw Build" — brutalist-maximalist.
   Off-white ground, pure black ink, one loud lime accent,
   thick borders, hard offset shadows, oversized display type.
   Brand-tied class/id prefix: cfx-
=========================================================== */

:root{
  --cfx-bg:#F7F6F1;
  --cfx-bg-2:#EDEBE1;
  --cfx-panel:#FFFFFF;
  --cfx-ink:#0A0A0A;
  --cfx-ink-soft:#4A4A44;
  --cfx-line:#0A0A0A;
  --cfx-lime:#D4FF3D;
  --cfx-lime-dim:#A8CC2E;
  --cfx-radius:0px;
  --cfx-maxw:1480px;
  --cfx-maxw-narrow:840px;
  --cfx-font-display:'Archivo Black', -apple-system, BlinkMacSystemFont, sans-serif;
  --cfx-font-body:'JetBrains Mono', 'Courier New', monospace;
  --cfx-header-h:76px;
  --cfx-bw:3px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top: calc(var(--cfx-header-h) + 16px);}
body{
  margin:0;
  font-family:var(--cfx-font-body);
  background:var(--cfx-bg);
  color:var(--cfx-ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  font-size:15px;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4,p{margin:0;}
button{font:inherit; cursor:pointer;}
input,textarea,button{font-family:inherit;}

.cfx-container{width:100%; max-width:var(--cfx-maxw); margin:0 auto; padding:0 28px;}
.cfx-container--narrow{max-width:var(--cfx-maxw-narrow);}

em{font-style:normal; background:var(--cfx-lime); padding:0 6px; box-shadow:3px 3px 0 var(--cfx-ink);}

/* ---------- Skip link ---------- */
.cfx-skip{position:absolute; left:12px; top:-60px; background:var(--cfx-lime); color:var(--cfx-ink); padding:12px 20px; z-index:1000; transition:top .18s ease; font-weight:700; border:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-skip:focus{top:12px;}

a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--cfx-ink); outline-offset:2px;}

/* ---------- Buttons ---------- */
.cfx-btn{
  display:inline-flex; align-items:center; gap:10px; padding:15px 28px;
  font-weight:700; font-size:13.5px; text-transform:uppercase; letter-spacing:.02em; background:var(--cfx-ink); color:var(--cfx-bg); border:var(--cfx-bw) solid var(--cfx-ink);
  transition:transform .14s ease, box-shadow .14s ease; box-shadow:5px 5px 0 var(--cfx-lime);
  white-space:nowrap;
}
.cfx-btn:hover{transform:translate(-3px,-3px); box-shadow:8px 8px 0 var(--cfx-lime);}
.cfx-btn--ghost{background:var(--cfx-panel); color:var(--cfx-ink); box-shadow:5px 5px 0 var(--cfx-ink);}
.cfx-btn--ghost:hover{box-shadow:8px 8px 0 var(--cfx-ink);}
.cfx-btn--invert{background:var(--cfx-lime); color:var(--cfx-ink);}
.cfx-btn--sm{padding:11px 18px; font-size:12px; box-shadow:3px 3px 0 var(--cfx-lime);}
.cfx-btn--sm:hover{box-shadow:5px 5px 0 var(--cfx-lime);}
.cfx-btn-text{display:inline-flex; align-items:center; gap:8px; font-weight:700; text-transform:uppercase; font-size:12.5px; letter-spacing:.03em; transition:gap .15s ease;}
.cfx-btn-text:hover{gap:13px;}

.cfx-tag{
  display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border:var(--cfx-bw) solid var(--cfx-ink); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; background:var(--cfx-panel); color:var(--cfx-ink);
}
.cfx-dot{width:8px; height:8px; border-radius:50%; background:var(--cfx-lime); border:1.5px solid var(--cfx-ink); flex:none;}

/* ---------- Card ---------- */
.cfx-card{background:var(--cfx-panel); border:var(--cfx-bw) solid var(--cfx-ink); transition:transform .18s ease, box-shadow .18s ease; box-shadow:6px 6px 0 var(--cfx-ink);}
.cfx-card:hover{transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--cfx-ink);}

/* ---------- Section shells ---------- */
.cfx-section{padding:104px 0; position:relative; border-top:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-section--alt{background:var(--cfx-bg-2);}
.cfx-section--dark{background:var(--cfx-ink); color:var(--cfx-bg);}

.cfx-eyebrow{display:inline-block; font-weight:800; letter-spacing:.04em; text-transform:uppercase; font-size:12px; background:var(--cfx-ink); color:var(--cfx-bg); padding:5px 12px; margin-bottom:18px;}
.cfx-heading{font-family:var(--cfx-font-display); font-weight:400; font-size:clamp(28px,4.6vw,52px); line-height:1.02; letter-spacing:-.01em; margin-bottom:18px; text-transform:uppercase;}
.cfx-lede{font-size:15.5px; color:var(--cfx-ink-soft); max-width:600px;}
.cfx-head-row{display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-bottom:56px; flex-wrap:wrap;}

/* ---------- Reveal ---------- */
.cfx-reveal{opacity:1; transform:none;}
.cfx-js .cfx-reveal{opacity:0; transform:translateY(20px); transition:opacity .5s cubic-bezier(.2,.7,.2,1), transform .5s cubic-bezier(.2,.7,.2,1);}
.cfx-js .cfx-reveal.cfx-is-visible{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){.cfx-js .cfx-reveal{opacity:1; transform:none; transition:none;}}

/* =====================================================
   HEADER
===================================================== */
.cfx-header{position:fixed; top:0; left:0; right:0; z-index:500; height:var(--cfx-header-h); display:flex; align-items:center; background:var(--cfx-bg); border-bottom:var(--cfx-bw) solid transparent; transition:border-color .2s ease;}
.cfx-header.cfx-is-scrolled{border-bottom:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-header-inner{width:100%; max-width:var(--cfx-maxw); margin:0 auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; gap:24px;}
.cfx-brand{display:flex; align-items:center; gap:9px; font-family:var(--cfx-font-display); font-weight:400; font-size:16px; text-transform:uppercase;}
.cfx-brand-mark{width:32px; height:32px;}

.cfx-nav{display:flex; align-items:center; gap:0;}
.cfx-nav a{padding:10px 14px; font-weight:700; font-size:12.5px; text-transform:uppercase; letter-spacing:.02em; color:var(--cfx-ink-soft); transition:background .15s ease, color .15s ease;}
.cfx-nav a:hover{background:var(--cfx-ink); color:var(--cfx-bg);}
.cfx-nav a.cfx-active{background:var(--cfx-lime); color:var(--cfx-ink);}

.cfx-header-actions{display:flex; align-items:center; gap:14px;}
.cfx-burger{display:none; width:42px; height:42px; border:var(--cfx-bw) solid var(--cfx-ink); align-items:center; justify-content:center; flex-direction:column; gap:5px; background:var(--cfx-panel);}
.cfx-burger span{width:16px; height:2px; background:var(--cfx-ink); display:block; transition:transform .2s ease, opacity .2s ease;}
.cfx-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.cfx-burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.cfx-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

.cfx-mobile-panel{position:fixed; top:var(--cfx-header-h); left:0; right:0; z-index:499; background:var(--cfx-bg); border-bottom:var(--cfx-bw) solid var(--cfx-ink); transform:translateY(-8px); opacity:0; visibility:hidden; transition:transform .2s ease, opacity .2s ease, visibility .2s; padding:14px 28px 26px;}
.cfx-mobile-panel.cfx-is-open{transform:translateY(0); opacity:1; visibility:visible;}
.cfx-mobile-panel a{display:block; padding:14px 2px; font-family:var(--cfx-font-display); font-weight:400; font-size:20px; text-transform:uppercase; border-bottom:2px solid var(--cfx-ink);}
.cfx-mobile-panel a.cfx-active{color:var(--cfx-lime-dim);}
.cfx-mobile-panel .cfx-btn{margin-top:16px; width:100%; justify-content:center;}

@media (max-width:960px){
  .cfx-nav{display:none;}
  .cfx-burger{display:inline-flex;}
  .cfx-header-actions .cfx-btn--header{display:none;}
}

/* =====================================================
   HERO — centered, visual as full-bleed backdrop behind text
===================================================== */
.cfx-hero{position:relative; padding:calc(var(--cfx-header-h) + 60px) 0 90px; overflow:hidden; border-bottom:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-hero-backdrop{position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.9;}
.cfx-hero-backdrop svg{width:100%; height:100%;}
.cfx-hero-inner{position:relative; z-index:1; text-align:center; max-width:920px; margin:0 auto;}
.cfx-hero-title{font-family:var(--cfx-font-display); font-weight:400; text-transform:uppercase; font-size:clamp(34px,6.6vw,74px); line-height:.98; margin:22px 0 26px;}
.cfx-hero-sub{font-size:16.5px; color:var(--cfx-ink-soft); max-width:560px; margin:0 auto 32px; background:var(--cfx-bg); display:inline-block; padding:4px 8px;}
.cfx-hero-ctas{display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-bottom:22px;}
.cfx-availability{display:inline-flex; align-items:center; gap:10px; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--cfx-ink-soft); background:var(--cfx-bg); padding:4px 10px;}
.cfx-pulse{width:8px; height:8px; border-radius:50%; background:var(--cfx-lime); border:1.5px solid var(--cfx-ink); position:relative;}
.cfx-pulse::after{content:''; position:absolute; inset:-5px; border-radius:50%; border:1.5px solid var(--cfx-ink); animation:cfx-pulse 1.8s ease-out infinite;}
@media (prefers-reduced-motion: reduce){.cfx-pulse::after{animation:none;}}
@keyframes cfx-pulse{0%{transform:scale(.5); opacity:1;}100%{transform:scale(1.6); opacity:0;}}

.cfx-hero-meta{position:relative; z-index:1; margin-top:60px; display:flex; border-top:var(--cfx-bw) solid var(--cfx-ink); max-width:900px; margin-left:auto; margin-right:auto; background:var(--cfx-bg);}
.cfx-hero-meta > div{flex:1; padding:20px 18px; border-right:var(--cfx-bw) solid var(--cfx-ink); text-align:center;}
.cfx-hero-meta > div:last-child{border-right:none;}
.cfx-hero-meta strong{display:block; font-family:var(--cfx-font-display); font-weight:400; font-size:22px; margin-bottom:2px;}
.cfx-hero-meta span{font-size:10.5px; color:var(--cfx-ink-soft); letter-spacing:.05em; text-transform:uppercase; font-weight:700;}
@media (max-width:760px){.cfx-hero-meta{flex-wrap:wrap;} .cfx-hero-meta > div{flex:1 1 50%; border-bottom:var(--cfx-bw) solid var(--cfx-ink);}}

/* =====================================================
   TRUST STRIP
===================================================== */
.cfx-trust{padding:28px 0; border-bottom:var(--cfx-bw) solid var(--cfx-ink); overflow:hidden;}
.cfx-trust-inner{display:flex; align-items:center; gap:36px;}
.cfx-trust-label{font-weight:800; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--cfx-ink-soft); flex:none;}
.cfx-trust-track{display:flex; gap:40px; animation:cfx-marquee 30s linear infinite; flex:1;}
@media (prefers-reduced-motion: reduce){.cfx-trust-track{animation:none; flex-wrap:wrap;}}
@keyframes cfx-marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.cfx-trust-track span{font-weight:700; font-size:13.5px; color:var(--cfx-ink-soft); white-space:nowrap; text-transform:uppercase;}

/* =====================================================
   SERVICES (Model B) — staggered/offset 2-column, alternating emphasis
===================================================== */
.cfx-stagger{display:flex; flex-direction:column; gap:22px;}
.cfx-srow{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.cfx-srow:nth-child(even){direction:rtl;}
.cfx-srow:nth-child(even) > *{direction:ltr;}
.cfx-srow--single{grid-template-columns:1fr; direction:ltr;}
.cfx-srow--single > .cfx-scard{max-width:calc(50% - 11px);}
@media (max-width:760px){.cfx-srow--single > .cfx-scard{max-width:none;}}
.cfx-scard{padding:28px;}
.cfx-scard--emph{background:var(--cfx-ink); color:var(--cfx-bg);}
.cfx-scard--emph .cfx-service-desc{color:#C9C9C0;}
.cfx-scard h3{font-family:var(--cfx-font-display); font-weight:400; font-size:19px; text-transform:uppercase; margin-bottom:10px; line-height:1.15;}
.cfx-service-desc{font-size:13.5px; color:var(--cfx-ink-soft); margin-bottom:18px;}
.cfx-service-foot{display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:2px dashed currentColor; padding-top:14px; opacity:.9;}
.cfx-service-price{font-family:var(--cfx-font-display); font-weight:400; font-size:22px;}
.cfx-pill{font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:4px 10px; background:var(--cfx-lime); color:var(--cfx-ink); border:1.5px solid var(--cfx-ink);}
.cfx-scard--emph .cfx-pill{border-color:var(--cfx-bg);}
.cfx-service-order{display:block; margin-top:14px; text-align:center; padding:10px 16px; border:2px solid currentColor; font-weight:800; font-size:11.5px; text-transform:uppercase; letter-spacing:.02em; transition:background .15s ease, color .15s ease;}
.cfx-service-order:hover{background:var(--cfx-lime); color:var(--cfx-ink); border-color:var(--cfx-lime);}
@media (max-width:760px){.cfx-srow{grid-template-columns:1fr;} .cfx-srow:nth-child(even){direction:ltr;}}

/* =====================================================
   PROCESS — alternating zig-zag
===================================================== */
.cfx-zigzag{display:flex; flex-direction:column; gap:44px;}
.cfx-zrow{display:grid; grid-template-columns:100px 1fr; gap:24px; align-items:start;}
.cfx-zrow:nth-child(even){grid-template-columns:1fr 100px;}
.cfx-zrow:nth-child(even) .cfx-znum{order:2; text-align:right;}
.cfx-zrow:nth-child(even) .cfx-zcopy{order:1;}
.cfx-znum{font-family:var(--cfx-font-display); font-weight:400; font-size:44px; line-height:.9;}
.cfx-zcopy h3{font-family:var(--cfx-font-display); font-weight:400; font-size:19px; text-transform:uppercase; margin-bottom:10px;}
.cfx-zcopy p{color:var(--cfx-ink-soft); font-size:14px; max-width:500px;}
@media (max-width:600px){.cfx-zrow, .cfx-zrow:nth-child(even){grid-template-columns:60px 1fr;} .cfx-zrow:nth-child(even) .cfx-znum{order:1; text-align:left;} .cfx-zrow:nth-child(even) .cfx-zcopy{order:2;}}

/* =====================================================
   GUARANTEE — full-bleed centered band
===================================================== */
.cfx-guarantee{padding:68px 0; text-align:center; background:var(--cfx-lime); border-top:var(--cfx-bw) solid var(--cfx-ink); border-bottom:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-guarantee-badge{width:60px; height:60px; border-radius:50%; background:var(--cfx-ink); color:var(--cfx-lime); display:flex; align-items:center; justify-content:center; font-size:22px; margin:0 auto 20px; border:3px solid var(--cfx-ink);}
.cfx-guarantee h3{font-family:var(--cfx-font-display); font-weight:400; text-transform:uppercase; font-size:clamp(20px,2.8vw,30px); margin-bottom:12px; max-width:760px; margin-left:auto; margin-right:auto;}
.cfx-guarantee p{color:var(--cfx-ink); font-size:14.5px; max-width:560px; margin:0 auto;}
.cfx-guarantee a{font-weight:800; text-decoration:underline;}

/* =====================================================
   COMPARISON — 3-column table-like strip
===================================================== */
.cfx-compare{border:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-compare-row{display:grid; grid-template-columns:1.3fr 1fr 1fr; border-bottom:2px solid var(--cfx-ink);}
.cfx-compare-row:last-child{border-bottom:none;}
.cfx-compare-row > div{padding:15px 18px; font-size:13px; background:var(--cfx-panel);}
.cfx-compare-row.cfx-compare-head > div{background:var(--cfx-ink); color:var(--cfx-bg); font-weight:800; font-size:11px; text-transform:uppercase; letter-spacing:.03em;}
.cfx-compare-row.cfx-compare-head > div:nth-child(2){color:var(--cfx-lime);}
.cfx-compare-row:not(.cfx-compare-head) > div:first-child{font-weight:700;}
.cfx-compare-row:not(.cfx-compare-head) > div:nth-child(2){background:var(--cfx-lime); font-weight:700;}
.cfx-yes{font-weight:800;}
.cfx-no{font-weight:800; color:#8A8A80;}
@media (max-width:700px){.cfx-compare-row{grid-template-columns:1.1fr .9fr .9fr; font-size:11.5px;} .cfx-compare-row > div{padding:11px 9px;}}

/* =====================================================
   FAQ — two-column accordion
===================================================== */
.cfx-faq-cols{display:grid; grid-template-columns:1fr 1fr; gap:0 44px;}
.cfx-faq-item{border-bottom:2px solid var(--cfx-ink);}
.cfx-faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; gap:18px; background:none; border:none; text-align:left; padding:20px 2px; font-weight:700; font-size:14.5px; color:var(--cfx-ink);}
.cfx-faq-q .cfx-plus{flex:none; width:20px; height:20px; position:relative;}
.cfx-faq-q .cfx-plus::before,.cfx-faq-q .cfx-plus::after{content:''; position:absolute; background:var(--cfx-ink);}
.cfx-faq-q .cfx-plus::before{left:0; top:50%; width:100%; height:3px; transform:translateY(-50%);}
.cfx-faq-q .cfx-plus::after{top:0; left:50%; width:3px; height:100%; transform:translateX(-50%); transition:transform .2s ease;}
.cfx-faq-item[data-open="true"] .cfx-plus::after{transform:translateX(-50%) rotate(90deg); opacity:0;}
.cfx-faq-a{overflow:hidden; max-height:0; transition:max-height .28s ease;}
.cfx-faq-item[data-open="true"] .cfx-faq-a{max-height:400px;}
.cfx-faq-a p{padding:0 2px 20px; color:var(--cfx-ink-soft); font-size:13.5px; max-width:420px;}
.cfx-no-js .cfx-faq-a{max-height:none !important;}
@media (max-width:760px){.cfx-faq-cols{grid-template-columns:1fr;}}

/* =====================================================
   ABOUT — narrow centered prose, stats full-width beneath, no visual
===================================================== */
.cfx-about-copy{max-width:720px; margin:0 auto;}
.cfx-about-copy p{margin-bottom:16px; color:var(--cfx-ink-soft); font-size:14.5px;}
.cfx-about-copy p:first-of-type{font-size:16.5px; color:var(--cfx-ink); font-weight:700;}

.cfx-stats{display:grid; grid-template-columns:repeat(4,1fr); border:var(--cfx-bw) solid var(--cfx-ink); margin-top:56px;}
.cfx-stat{padding:26px 14px; text-align:center; border-right:2px solid var(--cfx-ink); background:var(--cfx-panel);}
.cfx-stat:last-child{border-right:none;}
.cfx-stat b{display:block; font-family:var(--cfx-font-display); font-weight:400; font-size:clamp(22px,3vw,34px);}
.cfx-stat span{font-size:10px; color:var(--cfx-ink-soft); font-weight:700; text-transform:uppercase;}
@media (max-width:700px){.cfx-stats{grid-template-columns:repeat(2,1fr);} .cfx-stat:nth-child(2){border-right:none;} .cfx-stat{border-bottom:2px solid var(--cfx-ink);}}

.cfx-team{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; margin-top:52px; max-width:760px; margin-left:auto; margin-right:auto;}
.cfx-team-card{padding:24px; text-align:left;}
.cfx-avatar{width:48px; height:48px; display:flex; align-items:center; justify-content:center; font-family:var(--cfx-font-display); font-weight:400; font-size:14px; color:var(--cfx-ink); margin-bottom:14px; background:var(--cfx-lime); border:2px solid var(--cfx-ink);}
.cfx-team-card h3{font-size:15px; font-weight:700; margin-bottom:2px;}
.cfx-team-role{font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; margin-bottom:10px; display:block; color:var(--cfx-ink-soft);}
.cfx-team-card p{font-size:13px; color:var(--cfx-ink-soft); font-style:italic;}

/* =====================================================
   REVIEWS — 2x2 / 4-across grid
===================================================== */
.cfx-reviews-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.cfx-review-card{padding:26px;}
.cfx-review-card p{font-size:13.5px; color:var(--cfx-ink-soft); margin-bottom:18px;}
.cfx-stars{font-size:13px; margin-bottom:10px; letter-spacing:2px;}
.cfx-reviewer{display:flex; align-items:center; gap:12px;}
.cfx-reviewer strong{display:block; font-size:13.5px;}
.cfx-reviewer span{display:block; font-size:11.5px; color:var(--cfx-ink-soft);}
@media (max-width:760px){.cfx-reviews-grid{grid-template-columns:1fr;}}

/* =====================================================
   FOOTER
===================================================== */
.cfx-footer{background:var(--cfx-ink); color:var(--cfx-bg); padding:70px 0 0; border-top:4px solid var(--cfx-lime);}
.cfx-footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:46px; border-bottom:2px solid #333;}
.cfx-footer-brand p{color:#B8B8AE; font-size:13.5px; margin-top:14px; max-width:280px;}
.cfx-footer h4{font-family:var(--cfx-font-display); font-weight:400; font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:var(--cfx-lime); margin-bottom:16px;}
.cfx-footer ul li{margin-bottom:11px;}
.cfx-footer a{font-size:13.5px; color:#DCDCD2; transition:color .15s ease;}
.cfx-footer a:hover{color:var(--cfx-lime);}
.cfx-footer-contact li{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:#DCDCD2;}
.cfx-footer-contact i{color:var(--cfx-lime); margin-top:3px; width:16px;}
.cfx-footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:20px 0; flex-wrap:wrap; gap:12px; font-size:11.5px; color:#8A8A80; text-transform:uppercase; letter-spacing:.02em;}
.cfx-footer-bottom-links{display:flex; gap:16px; flex-wrap:wrap;}
.cfx-footer-bottom-links a{font-size:11.5px; color:#8A8A80;}
.cfx-footer-bottom-links a:hover{color:var(--cfx-lime);}
@media (max-width:900px){.cfx-footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.cfx-footer-grid{grid-template-columns:1fr;}}

/* =====================================================
   COOKIE BANNER
===================================================== */
.cfx-cookie{position:fixed; left:20px; right:20px; bottom:-200px; z-index:900; max-width:640px; margin:0 auto; background:var(--cfx-panel); border:var(--cfx-bw) solid var(--cfx-ink); box-shadow:6px 6px 0 var(--cfx-ink); padding:20px 24px; display:flex; gap:18px; align-items:center; flex-wrap:wrap; transition:bottom .4s cubic-bezier(.2,.8,.2,1);}
.cfx-cookie.cfx-is-visible{bottom:20px;}
@media (prefers-reduced-motion: reduce){.cfx-cookie{transition:none;}}
.cfx-cookie p{font-size:12.5px; flex:1; min-width:220px; color:var(--cfx-ink-soft);}
.cfx-cookie p a{font-weight:700; text-decoration:underline; color:var(--cfx-ink);}
.cfx-cookie-actions{display:flex; gap:10px; flex:none;}

/* =====================================================
   STICKY CTA
===================================================== */
.cfx-sticky-cta{position:fixed; right:24px; bottom:24px; z-index:400; opacity:0; transform:translateY(16px); pointer-events:none; transition:opacity .25s ease, transform .25s ease;}
.cfx-sticky-cta.cfx-is-visible{opacity:1; transform:none; pointer-events:auto;}
@media (prefers-reduced-motion: reduce){.cfx-sticky-cta{transition:none;}}
@media (max-width:900px){.cfx-sticky-cta{right:16px; bottom:16px;}}

/* =====================================================
   PAGE HERO
===================================================== */
.cfx-pagehero{padding:calc(var(--cfx-header-h) + 50px) 0 50px; border-bottom:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-pagehero h1{font-family:var(--cfx-font-display); font-weight:400; text-transform:uppercase; font-size:clamp(30px,5vw,50px); margin-bottom:14px; line-height:1.0;}
.cfx-pagehero p{font-size:15.5px; color:var(--cfx-ink-soft); max-width:600px;}
.cfx-crumb{font-size:11.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; background:var(--cfx-ink); color:var(--cfx-bg); padding:4px 10px; margin-bottom:16px; display:inline-block;}

/* =====================================================
   CONTACT PAGE
===================================================== */
.cfx-contact-grid{display:grid; grid-template-columns:1fr 1fr 1fr .9fr; gap:18px;}
.cfx-ccard{padding:22px;}
.cfx-ccard i{font-size:18px; margin-bottom:12px; display:block;}
.cfx-ccard h3{font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--cfx-ink-soft); margin-bottom:8px; font-weight:800;}
.cfx-ccard p,.cfx-ccard a{font-size:14px; font-weight:700;}
.cfx-side-panel{grid-row:span 2; background:var(--cfx-lime); color:var(--cfx-ink); padding:26px; display:flex; flex-direction:column; gap:14px; justify-content:center; border:var(--cfx-bw) solid var(--cfx-ink); box-shadow:6px 6px 0 var(--cfx-ink);}
.cfx-side-panel h3{font-family:var(--cfx-font-display); font-weight:400; text-transform:uppercase; font-size:19px;}
.cfx-side-panel p{font-size:12.5px;}
.cfx-side-panel .cfx-btn{width:100%; justify-content:center; background:var(--cfx-ink); color:var(--cfx-lime); box-shadow:none;}
.cfx-side-panel .cfx-btn:hover{transform:none; box-shadow:none; background:#222;}
@media (max-width:1000px){.cfx-contact-grid{grid-template-columns:1fr 1fr;} .cfx-side-panel{grid-row:auto; grid-column:span 2;}}
@media (max-width:600px){.cfx-contact-grid{grid-template-columns:1fr;} .cfx-side-panel{grid-column:auto;}}

.cfx-map-wrap{margin-top:36px; border:var(--cfx-bw) solid var(--cfx-ink); box-shadow:6px 6px 0 var(--cfx-ink); overflow:hidden;}
.cfx-map-wrap iframe{width:100%; height:400px; border:0; display:block; filter:grayscale(60%) contrast(105%);}

/* =====================================================
   LEGAL PAGE
===================================================== */
.cfx-legal-subnav{position:sticky; top:var(--cfx-header-h); z-index:100; display:flex; gap:0; flex-wrap:wrap; background:var(--cfx-bg); border-bottom:var(--cfx-bw) solid var(--cfx-ink);}
.cfx-legal-subnav a{padding:12px 18px; border-right:2px solid var(--cfx-ink); font-weight:800; font-size:11.5px; text-transform:uppercase; letter-spacing:.02em;}
.cfx-legal-subnav a:hover{background:var(--cfx-ink); color:var(--cfx-bg);}
.cfx-legal-doc{padding:56px 0; border-bottom:2px solid var(--cfx-ink);}
.cfx-legal-doc:last-of-type{border-bottom:none;}
.cfx-legal-doc h2{font-family:var(--cfx-font-display); font-weight:400; text-transform:uppercase; font-size:clamp(22px,3vw,32px); margin-bottom:22px;}
.cfx-legal-doc h3{font-size:14px; font-weight:800; margin:24px 0 10px; text-transform:uppercase;}
.cfx-legal-doc p,.cfx-legal-doc li{font-size:13.5px; color:var(--cfx-ink-soft); margin-bottom:12px; max-width:760px;}
.cfx-legal-doc ul{margin-bottom:14px;}
.cfx-legal-doc li{position:relative; padding-left:20px;}
.cfx-legal-doc li::before{content:'—'; position:absolute; left:0;}
.cfx-legal-intro{max-width:760px; padding:0 0 20px;}
.cfx-legal-intro p{color:var(--cfx-ink-soft); font-size:14px;}

.cfx-visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px;}
noscript.cfx-noscript-banner{display:block; background:var(--cfx-lime); color:var(--cfx-ink); text-align:center; padding:10px; font-weight:800; font-size:13px; text-transform:uppercase;}
