 /* ── HERO ── */
 .hero-wrap {
     /* background: linear-gradient(148deg, #ffffff 0%, #edf3ff 52%, #e6f8ef 100%); */
     position: relative;
     overflow: hidden;
 }

 .hero-wrap::before {
     content: '';
     position: absolute;
     inset: 0;
     pointer-events: none;
     background: linear-gradient(to right,
        rgb(1 28 24 / 92%) 0%,
        rgba(1, 28, 24, 0.75) 55%,
        rgba(12, 45, 40, 0.50) 65%,
        rgba(12, 45, 40, 0.25) 75%,
        rgba(12, 45, 40, 0) 100%),
        url(assets/img/hero.jpg) center / cover no-repeat;
 }

 .hero-dots {
     position: absolute;
     inset: 0;
     pointer-events: none;
     opacity: .35;
     background-image: radial-gradient(circle, rgba(0, 80, 164, .12) 1px, transparent 1px);
     background-size: 28px 28px;
 }

 .hero {
     display: grid;
     grid-template-columns: 1fr 1fr;
     align-items: center;
     gap: 5rem;
     min-height: 86vh;
     max-width: 1320px;
     margin: 0 auto;
     padding: 5.5rem 2.5rem 5rem;
     position: relative;
     z-index: 1;
 }

 h1.ht {
     font-family: 'Cormorant Garamond', Georgia, serif;
     font-size: clamp(3.1rem, 5.4vw, 4.8rem);
     line-height: 1.03;
     letter-spacing: -.04em;
     color: #b4cabe;
     margin-bottom: 1.5rem;
 }

 h1.ht em {
     font-style: italic;
     color: var(--green-d);
 }

 h1.ht .tb {
     color: var(--blue);
 }

 h1.ht .tt {
     color: var(--teal-d);
 }

 .hero-desc {
     font-size: 1.05rem;
     font-weight: 300;
     color: #b4cabe;
     line-height: 1.76;
     max-width: 50ch;
     margin-bottom: 2.4rem;
 }

 .hero-ctas {
     display: flex;
     gap: .7rem;
     flex-wrap: wrap;
     margin-bottom: 2.15rem;
 }

 .hero-trust {
     display: flex;
     flex-wrap: wrap;
     gap: .36rem;
 }

 .tp {
     font-size: .69rem;
     font-family: 'JetBrains Mono', monospace;
     padding: .26rem .6rem;
     border-radius: 5px;
     border: 1.5px solid var(--ln2);
     background: var(--white);
     color: var(--t2);
     box-shadow: var(--sh1);
 }

 /* panel */
 .hero-panel {
     border: 1.5px solid var(--ln2);
     border-radius: 24px;
     background: var(--white);
     padding: 1.6rem;
     box-shadow: var(--sh3);
     position: relative;
     overflow: hidden;
 }

 .hero-panel::before {
     content: '';
     position: absolute;
     inset: 0;
     pointer-events: none;
     background: linear-gradient(140deg, rgba(16, 166, 81, .03), rgba(0, 80, 164, .02), rgba(16, 183, 170, .015));
 }

 .mol-c {
     width: 100%;
     display: block;
     border-radius: 11px;
     background: var(--bg2);
 }

 .pcap {
     margin-top: .82rem;
     display: flex;
     justify-content: space-between;
     align-items: center;
 }

 .plbl {
     font-family: 'JetBrains Mono', monospace;
     font-size: .66rem;
     color: var(--t3);
 }

 .pbdg {
     font-family: 'JetBrains Mono', monospace;
     font-size: .65rem;
     padding: .2rem .52rem;
     border-radius: 4px;
     background: rgba(16, 166, 81, .09);
     border: 1px solid rgba(16, 166, 81, .22);
     color: var(--green-d);
 }

 .stats3 {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: .65rem;
     margin-top: .9rem;
 }

 .sb {
     background: var(--bg);
     border: 1.5px solid var(--ln);
     border-radius: 10px;
     padding: .82rem .7rem;
     text-align: center;
 }

 .sv {
     font-family: 'Cormorant Garamond', Georgia, serif;
     font-size: 1.6rem;
     color: var(--t1);
     line-height: 1;
 }

 .sv sup {
     font-size: .7em;
     color: var(--green-d);
 }

 .sl {
     font-size: .65rem;
     color: var(--t2);
     margin-top: .22rem;
     font-family: 'JetBrains Mono', monospace;
 }

 .hero-left>* {
     opacity: 0;
     animation: fu .82s ease forwards;
 }

 .htag {
     animation-delay: .04s;
 }

 h1.ht {
     animation-delay: .18s;
 }

 .hero-desc {
     animation-delay: .32s;
 }

 .hero-ctas {
     animation-delay: .46s;
 }

 .hero-trust {
     animation-delay: .6s;
 }

 .hero-right {
     opacity: 0;
     animation: fr .9s .35s ease forwards;
 }

 @keyframes fu {
     from {
         opacity: 0;
         transform: translateY(24px)
     }

     to {
         opacity: 1;
         transform: translateY(0)
     }
 }

 @keyframes fr {
     from {
         opacity: 0;
         transform: translateX(30px)
     }

     to {
         opacity: 1;
         transform: translateX(0)
     }
 }

 /* ── SERVICES ── */
 .svc-g {
     display: grid;
     grid-template-columns: 1.6fr 1fr 1fr;
     grid-template-rows: auto auto;
     gap: 1.2rem;
     margin-top: 2.75rem;
 }

 .sc {
     display: flex;
     flex-direction: column;
 }

 .sc-feat {
     grid-row: span 2;
     background: linear-gradient(158deg, rgba(16, 166, 81, .05), rgba(16, 183, 170, .025), var(--white)) !important;
     border-color: rgba(16, 166, 81, .22) !important;
 }

 .sc-feat:hover {
     border-color: rgba(16, 166, 81, .38) !important;
 }

 .sc-wide {
     grid-column: 2/4;
 }

 .sc-wide-in {
     display: grid;
     grid-template-columns: auto 1fr;
     gap: 1.15rem;
     align-items: start;
 }

 .sc-tl {
     font-family: 'Cormorant Garamond', Georgia, serif;
     font-size: 1.4rem;
     color: var(--t1);
     margin: .7rem 0 .56rem;
     line-height: 1.12;
 }

 .sc-sm {
     font-weight: 700;
     font-size: 1rem;
     color: var(--t1);
     margin: .62rem 0 .36rem;
 }

 .sp {
     flex: 1;
 }

 .sc-n {
     font-family: 'JetBrains Mono', monospace;
     font-size: .64rem;
     color: var(--t3);
     margin-top: .82rem;
 }

 /* ── NUMBERS ── */
 .nums {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 1.2rem;
     margin-top: 3rem;
 }

 .nblk {
     border: 1.5px solid var(--ln);
     border-radius: var(--r3);
     padding: 2rem 1.5rem;
     background: var(--white);
     text-align: center;
     box-shadow: var(--sh1);
     transition: transform .22s, box-shadow .22s;
 }

 .nblk:hover {
     transform: translateY(-4px);
     box-shadow: var(--sh2);
 }

 .nv {
     font-family: 'Cormorant Garamond', Georgia, serif;
     font-size: 3.2rem;
     line-height: 1;
     color: var(--t1);
 }

 .nv sup {
     font-size: .58em;
     color: var(--green-d);
 }

 .nl {
     font-size: .9rem;
     color: var(--t2);
     margin-top: .38rem;
     font-family: 'JetBrains Mono', monospace;
 }

 /* ── PROCESS ── */
 .proc {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 1.2rem;
     margin-top: 3rem;
 }

 .ps {
     border: 1.5px solid var(--ln);
     border-radius: var(--r3);
     padding: 1.75rem;
     background: var(--white);
     box-shadow: var(--sh1);
     transition: border-color .22s, transform .22s, box-shadow .22s;
 }

 .ps:hover {
     border-color: rgba(16, 166, 81, .28);
     transform: translateY(-4px);
     box-shadow: var(--sh2);
 }

 .pn {
     font-family: 'JetBrains Mono', monospace;
     font-size: .8rem;
     color: var(--green-d);
     letter-spacing: .08em;
     margin-bottom: .82rem;
 }

 .pt {
     font-weight: 700;
     font-size: 1rem;
     color: var(--t1);
     margin-bottom: .42rem;
 }

 .pd {
     font-size: .9rem;
     color: var(--t2);
     line-height: 1.64;
 }

 /* ── WHY ── */
 .why {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 1.2rem;
     margin-top: 2.5rem;
 }

 .wc {
     border: 1.5px solid var(--ln);
     border-radius: var(--r3);
     padding: 1.8rem;
     background: var(--white);
     box-shadow: var(--sh1);
     transition: border-color .22s, transform .22s, box-shadow .22s;
 }

 .wc:hover {
     transform: translateY(-4px);
     border-color: var(--ln2);
     box-shadow: var(--sh2);
 }

 .wn {
     font-family: 'Cormorant Garamond', Georgia, serif;
     font-size: 2.8rem;
     color: var(--bg3);
     line-height: 1;
     margin-bottom: .72rem;
 }

 .wt {
     font-weight: 700;
     font-size: 1rem;
     color: var(--t1);
     margin-bottom: .44rem;
 }

 .wd {
     font-size: .9rem;
     color: var(--t2);
     line-height: 1.66;
 }

 /* ── AREAS ── */
 .ind-g {
     display: grid;
     grid-template-columns: repeat(6, 1fr);
     gap: .9rem;
     margin-top: 2.5rem;
 }

 .ic {
     border: 1.5px solid var(--ln);
     border-radius: var(--r2);
     padding: 1.15rem .88rem;
     background: var(--white);
     text-align: center;
     box-shadow: var(--sh1);
     transition: border-color .2s, transform .2s, box-shadow .2s;
 }

 .ic:hover {
     border-color: rgba(16, 166, 81, .30);
     transform: translateY(-3px);
     box-shadow: var(--sh2);
 }

 .ii {
     font-size: 1.55rem;
     margin-bottom: .42rem;
 }

 .in_ {
     font-size: .9rem;
     font-family: 'JetBrains Mono', monospace;
     color: var(--t2);
 }

 /* ── TESTIMONIALS ── */
 .tgrid {
     display: grid;
     grid-template-columns: repeat(3, 1fr);
     gap: 1.3rem;
     margin-top: 2.5rem;
 }

 .tc {
     border: 1.5px solid var(--ln);
     border-radius: var(--r3);
     padding: 1.85rem;
     background: var(--white);
     box-shadow: var(--sh1);
     transition: box-shadow .22s, transform .22s;
 }

 .tc:hover {
     box-shadow: var(--sh2);
     transform: translateY(-3px);
 }

 .tq {
     font-size: 1rem;
     color: var(--t2);
     line-height: 1.73;
     margin-bottom: 1.2rem;
     font-style: italic;
 }

 .tq::before {
     content: '\201C';
     font-family: 'Cormorant Garamond', Georgia, serif;
     font-size: 2.2rem;
     color: var(--green);
     opacity: .45;
     line-height: 0;
     vertical-align: -.32em;
     margin-right: .16rem;
 }

 .ta {
     font-size: .73rem;
     font-family: 'JetBrains Mono', monospace;
     color: var(--t3);
 }

 .ta .org {
     color: var(--green-d);
     font-weight: 600;
 }

 @media(max-width:1024px) {
     .hero {
         grid-template-columns: 1fr;
         min-height: auto;
         gap: 3rem;
         padding: 4.5rem 1.5rem 3.5rem;
     }

     .hero-right {
         animation-name: fu;
     }

     .svc-g {
         grid-template-columns: 1fr 1fr;
     }

     .sc-feat {
         grid-row: span 1;
     }

     .sc-wide {
         grid-column: span 1;
     }

     .sc-wide-in {
         grid-template-columns: 1fr;
     }

     .nums,
     .proc {
         grid-template-columns: 1fr 1fr;
     }

     .why,
     .tgrid {
         grid-template-columns: 1fr 1fr;
     }

     .ind-g {
         grid-template-columns: repeat(3, 1fr);
     }
 }

 @media(max-width:768px) {

     .svc-g,
     .why,
     .tgrid {
         grid-template-columns: 1fr;
     }

     .nums,
     .proc {
         grid-template-columns: 1fr 1fr;
     }

     .ind-g {
         grid-template-columns: repeat(2, 1fr);
     }
 }