:root{--ink:#172526;--muted:#626d6d;--paper:#fafbf7;--line:#dde3dd;--lime:#d2ef84;--dark:#14292b;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Manrope',Arial,sans-serif;font-size:16px;line-height:1.75}h1,h2,h3,h4,h5{font-family:inherit;color:var(--ink);font-weight:700;letter-spacing:-.045em;line-height:1.12}h1{font-size:clamp(44px,5.8vw,80px)}h2{font-size:clamp(32px,3.5vw,48px);margin-bottom:24px}h3{font-size:24px}p{color:var(--muted)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #67982b;outline-offset:5px}a:hover{color:#477125}.container{width:min(1200px,calc(100% - 64px));max-width:1200px;padding:0;margin:auto}.button{border:1px solid transparent;border-radius:8px;padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:24px;font-size:14px;font-weight:700;line-height:1.5;cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-dark{color:white;background:var(--ink)}.button-dark:hover{background:#304847;color:white}.button-lime{background:var(--lime);color:var(--ink)}.text-link{font-weight:700;font-size:14px;display:inline-flex;gap:20px;align-items:center;border:0;background:none;padding:8px 0;color:var(--ink);cursor:pointer}.eyebrow{font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:800;display:block;margin-bottom:24px}.site-header{background:rgba(250,251,247,.98);position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--line)}.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:28px;line-height:1;font-weight:800;letter-spacing:-.035em}.brand img{width:43px;height:43px;object-fit:contain}.brand-sub{display:block;font-size:9px;letter-spacing:.21em;margin-top:6px}.site-header nav{display:flex;align-items:center;gap:30px}.site-header nav>a{font-size:13px;font-weight:600;position:relative}.site-header nav>a.active:after{content:'';position:absolute;bottom:-10px;left:0;width:18px;height:3px;background:#77a839;border-radius:5px}.menu-toggle{display:none}.home-hero{padding:82px 0 75px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.hero-copy h1{margin:0 0 30px}.accent-word{position:relative;isolation:isolate}.accent-word:after{content:'';background:var(--lime);position:absolute;left:-5px;right:-10px;bottom:4px;height:29%;z-index:-1;transform:rotate(-3deg)}.hero-copy>p{max-width:480px;font-size:17px}.status-dot{width:8px;height:8px;border-radius:50%;background:#79a936;display:inline-block;margin-right:8px}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:32px;flex-wrap:wrap}.hero-note{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin-top:42px}.note-line{width:30px;height:1px;background:var(--muted)}.hero-art{height:470px;position:relative;background:#e9eee3;border-radius:28px;isolation:isolate}.art-orbit{position:absolute;inset:25px;border:1px solid #c4d4b1;border-radius:50%;transform:rotate(-25deg)}.art-orbit:after{content:'';position:absolute;inset:35px -20px;border:1px solid #c4d4b1;border-radius:50%}.browser-mock{position:absolute;top:58px;left:28px;width:83%;background:white;border-radius:12px;box-shadow:0 22px 50px #19351c21;transform:rotate(-5deg);overflow:hidden}.browser-bar{height:34px;display:flex;align-items:center;gap:5px;background:#f5f6f2;padding:0 13px}.browser-bar>span{width:6px;height:6px;background:#c6cebf;border-radius:50%}.browser-bar small{font-size:8px;margin-left:auto;color:#687761}.mock-content{padding:28px;background:var(--dark);color:white;height:270px;position:relative;overflow:hidden}.mock-label{font-size:8px;letter-spacing:.16em;color:var(--lime)}.mock-content h2{font-size:35px;color:white;margin:15px 0}.mock-button{display:inline-block;font-size:9px;color:var(--ink);background:var(--lime);padding:9px 14px;border-radius:5px}.mock-graph{position:absolute;right:16px;bottom:0;height:115px;display:flex;align-items:flex-end;gap:7px;transform:rotate(-8deg)}.mock-graph span{height:25%;width:23px;background:#c9e88240;border-radius:5px 5px 0 0}.mock-graph span:nth-child(2){height:40%}.mock-graph span:nth-child(3){height:52%}.mock-graph span:nth-child(4){height:65%}.mock-graph span:nth-child(5){height:80%}.mock-graph span:nth-child(6){height:100%;background:var(--lime)}.phone-mock{position:absolute;right:22px;bottom:35px;width:165px;height:280px;background:#f8faef;border:6px solid var(--ink);border-radius:26px;padding:31px 13px 10px;transform:rotate(9deg);box-shadow:0 20px 30px #12272826}.phone-camera{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:48px;height:10px;border-radius:20px;background:var(--ink)}.phone-icon{display:block;background:var(--lime);width:39px;height:39px;border-radius:50%;text-align:center;font-size:25px;line-height:39px;margin-bottom:14px}.phone-mock strong{display:block;font-size:18px;line-height:1.25;letter-spacing:-.04em}.phone-line{height:5px;background:#d7dfd1;border-radius:5px;margin-top:14px;width:90%}.phone-line.short{width:65%;margin-top:6px}.phone-tiles{display:flex;gap:8px;margin-top:20px}.phone-tiles span{width:50%;height:44px;background:#e0e8d4;text-align:center;line-height:44px;font-size:21px;border-radius:8px}.floating-label{position:absolute;bottom:44px;left:10px;background:white;border-radius:10px;padding:15px 20px 15px 55px;box-shadow:0 10px 30px #19351c15;font-size:11px;line-height:1.6;transform:rotate(-5deg)}.floating-label>span{position:absolute;left:17px;top:18px;color:#567932;font-size:27px}.art-caption{position:absolute;bottom:12px;left:28px;font-size:8px;letter-spacing:.16em;color:#637658}.capability-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.capability-strip .container{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;font-weight:600}.capability-strip b{color:#76a240}.section{padding:95px 0}.section-tint{background:#eef2e8}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:44px}.section-heading h2{margin-bottom:0}.section-heading .eyebrow{margin-bottom:18px}.section-heading>p{font-size:14px;margin:0}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;transition:transform .2s,border-color .2s;scroll-margin-top:120px}.service-card:hover{transform:translateY(-5px);border-color:#aac27c}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:42px;color:#73806b;font-size:12px}.card-top span:last-child{font-size:25px;color:var(--ink)}.service-card h3{font-size:25px;margin-bottom:18px}.service-card p{font-size:14px;min-height:74px}.service-tags{font-size:10px;color:#6a7669;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.service-card .text-link{margin-top:16px}.split-section{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.split-section p{font-size:15px}.about-visual{position:relative;background:#dfe7d4;border-radius:24px;min-height:420px;overflow:hidden}.about-visual img{display:block;width:100%;height:420px;object-fit:cover}.image-note{position:absolute;bottom:24px;left:24px;padding:18px 24px;background:var(--paper);font-size:17px;line-height:1.4;border-radius:10px;font-weight:700}.principle-list{display:grid;gap:12px;margin:25px 0 32px;font-size:13px;font-weight:600}.principle-list span:before{content:'↗';color:#527832;margin-right:12px}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px 28px}.project-image{position:relative;display:flex;align-items:center;justify-content:center;height:340px;border-radius:20px;overflow:hidden}.project-image img{height:75%;max-width:75%;object-fit:contain;transition:transform .3s}.project-image:hover img{transform:scale(1.05) rotate(-3deg)}.peach{background:#f0dfd3}.lavender{background:#e4e1f1}.mint{background:#dfebdf}.sand{background:#f1ead6}.project-category{position:absolute;top:22px;left:22px;background:#ffffffb8;border-radius:30px;font-size:10px;padding:6px 14px;z-index:1}.project-arrow{position:absolute;bottom:22px;right:22px;width:42px;height:42px;background:white;border-radius:50%;text-align:center;line-height:42px;font-size:25px}.project-caption{display:flex;justify-content:space-between;gap:20px;padding:20px 3px}.project-caption h3{margin-bottom:8px}.project-caption p{margin:0;font-size:13px}.project-caption>span{font-size:10px;color:var(--muted);white-space:nowrap;margin-top:8px}.page-hero{background:#eef2e8;padding:38px 0 65px;position:relative;overflow:hidden}.page-hero:after{content:'✦';position:absolute;right:7%;bottom:-80px;font-size:280px;color:#dce6cc;line-height:1;pointer-events:none}.page-hero .container{position:relative;z-index:1}.breadcrumb-line{display:flex;gap:12px;font-size:11px;color:var(--muted);margin-bottom:44px}.page-hero h1{font-size:clamp(38px,4.8vw,65px);max-width:850px;margin:0 0 20px}.page-hero p{max-width:610px;font-size:16px;margin-bottom:0}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.values-grid article>span{font-size:11px;color:#55732c;display:block;margin-bottom:25px}.values-grid h3{font-size:25px}.values-grid p,.process-grid p{font-size:14px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.step-number{font-size:37px;font-weight:700;letter-spacing:-.05em;color:#77924d;display:block;padding-bottom:23px;border-bottom:1px solid var(--line);margin-bottom:25px}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px}.contact-details>p{max-width:400px}.contact-row{display:flex;align-items:center;gap:20px;margin:30px 0}.contact-icon{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;text-align:center;line-height:48px;font-size:22px;flex-shrink:0}.contact-row small{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.contact-row strong{font-size:15px;line-height:1.5;display:block}.contact-form-card{background:white;border:1px solid var(--line);border-radius:20px;padding:40px}.contact-form-card>p,.quote-form>p{font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 16px;margin-top:26px}.form-group.full{grid-column:1/-1}.form-group label{display:block;font-size:11px;font-weight:700;margin-bottom:7px}.form-group label span{color:#697d46}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid #d9dfd5;background:#fafbf8;border-radius:8px;padding:12px 14px;color:var(--ink);font-size:13px;min-height:46px}.form-group textarea{resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid #8da956;outline-offset:1px;background:white}.form-submit{margin-top:24px;width:100%;justify-content:space-between}.form-submit:disabled{opacity:.6;cursor:wait;transform:none}.form-note{font-size:10px;margin:14px 0 0}.form-status{font-size:13px;padding:13px 15px;background:#eaf2dc;border-radius:8px;margin-top:20px;color:#36551c}.form-status.error{background:#fce9e5;color:#963d2b}.map-section{padding:0 0 90px}.map-heading{display:flex;justify-content:space-between;align-items:center}.map-heading .eyebrow{margin:0}.map-heading p{font-size:12px}.map-section iframe{border:0;border-radius:20px;width:100%;height:330px}.cta-section{background:var(--dark);padding:65px 0;color:white}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-inner h2{color:white;font-size:clamp(34px,4vw,56px);margin-bottom:16px}.cta-inner .eyebrow{color:var(--lime);margin-bottom:20px}.cta-inner p{color:#b9c8c3;font-size:14px;margin:0}.cta-inner .button{flex-shrink:0}.site-footer{background:#102124;color:#bac7c2;padding:65px 0 0}.footer-grid{display:grid;grid-template-columns:1.5fr .8fr 1fr 1fr;gap:40px;padding-bottom:50px}.site-footer .brand{color:white;margin-bottom:25px}.site-footer p{font-size:12px;color:#bac7c2}.site-footer h3{color:white;font-size:13px;letter-spacing:0;margin-bottom:23px}.footer-grid>div>a:not(.brand){display:block;font-size:12px;margin-bottom:10px}.footer-grid>div>a.footer-email{color:var(--lime);font-size:16px;margin-top:22px}.footer-note{display:block;font-size:10px;margin-top:20px;color:#95a79e}.footer-bottom{border-top:1px solid #324144;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-size:10px}.footer-bottom>div{display:flex;gap:22px}.quote-modal{border:0;border-radius:22px;overflow:hidden;display:grid;grid-template-columns:.8fr 1.2fr}.quote-intro{background:var(--dark);color:white;padding:40px 30px;position:relative;overflow:hidden}.quote-intro h2{color:white;font-size:35px}.quote-intro p{color:#b9c8c3;font-size:13px}.quote-intro .eyebrow{color:var(--lime);font-size:9px}.quote-intro>a{font-size:13px;color:var(--lime);position:relative;z-index:1}.quote-decoration{font-size:230px;color:var(--lime);position:absolute;bottom:-10px;left:20px;line-height:1}.quote-form{padding:36px 30px;position:relative}.quote-form .btn-close{position:absolute;top:18px;right:18px}.quote-form h3{font-size:26px}.quote-form .form-grid{gap:14px}.quote-form .form-note{font-size:9px}.quote-form .form-group input,.quote-form .form-group select{font-size:12px}.modal{z-index:1100}.modal-backdrop{z-index:1050}.section-title:before,.section-title:after{display:none}.bg-header{background:#eef2e8}.text-primary{color:#4d7527!important}.bg-primary,.btn-primary{background:#264742!important;border-color:#264742!important}
@media(min-width:1600px){.home-hero{padding:105px 0}.hero-art{height:500px}}
@media(max-width:1100px){.site-header nav{gap:18px}.header-inner{height:82px}.site-header nav>a{font-size:12px}.site-header .button{padding:12px 16px;font-size:12px}.hero-grid{gap:25px}.hero-art{height:430px}.phone-mock{right:8px;width:145px;height:260px}.mock-content h2{font-size:29px}.split-section,.contact-grid{gap:40px}.service-card{padding:24px}.footer-grid{gap:25px}}
@media(max-width:850px){.container{width:calc(100% - 40px)}.menu-toggle{display:grid;gap:5px;background:none;border:1px solid var(--line);border-radius:7px;padding:11px;cursor:pointer}.menu-toggle span{display:block;width:21px;height:2px;background:var(--ink)}.site-header nav{display:none;position:absolute;left:0;right:0;top:100%;padding:22px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 15px 20px #1725260d;align-items:stretch}.site-header nav.open{display:flex;flex-direction:column;gap:15px}.site-header nav>a{font-size:15px;padding:5px}.site-header nav>a.active:after{bottom:0}.hero-grid{grid-template-columns:1fr;gap:50px}.hero-copy{max-width:600px}.hero-copy h1{font-size:68px}.hero-art{width:100%;max-width:570px;height:470px;margin:auto}.home-hero{padding:55px 0}.capability-strip .container{flex-wrap:wrap;justify-content:center;font-size:11px}.services-grid{grid-template-columns:1fr 1fr}.split-section{grid-template-columns:1fr;gap:40px}.split-section .about-visual{max-width:650px}.section{padding:65px 0}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-details{max-width:600px}.values-grid{gap:25px}.process-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1.4fr 1fr}.project-image{height:290px}.section-heading{align-items:flex-start}.cta-inner{gap:30px}.quote-modal{grid-template-columns:.7fr 1.3fr}}
@media(max-width:575px){.header-inner{height:75px}.brand{font-size:25px}.brand img{width:37px;height:37px}.hero-copy h1{font-size:56px}.hero-copy>p{font-size:15px}.hero-actions{gap:15px}.hero-actions .button{padding:14px 18px}.hero-note{margin-top:25px}.hero-art{height:360px}.browser-mock{left:16px;top:35px;width:88%}.mock-content{height:225px;padding:20px}.mock-content h2{font-size:27px}.mock-graph{height:85px}.mock-graph span{width:16px}.phone-mock{width:120px;height:215px;right:10px;bottom:26px;padding:26px 10px 8px;border-width:5px}.phone-mock strong{font-size:14px}.phone-icon{width:29px;height:29px;font-size:20px;line-height:29px;margin-bottom:10px}.phone-tiles{margin-top:12px}.phone-tiles span{height:30px;line-height:30px;font-size:16px}.floating-label{left:4px;bottom:40px;padding:12px 15px 12px 42px;font-size:9px}.floating-label>span{font-size:22px;left:12px;top:12px}.art-caption{font-size:6px;bottom:10px;left:18px}.section-heading{flex-direction:column;gap:20px;margin-bottom:30px}.services-grid,.projects-grid,.values-grid{grid-template-columns:1fr}.service-card p{min-height:0}.card-top{margin-bottom:28px}.about-visual,.about-visual img{height:340px;min-height:340px}.project-image{height:320px}.project-caption>span{display:none}.projects-grid{gap:24px}.page-hero{padding:25px 0 45px}.breadcrumb-line{margin-bottom:32px}.page-hero:after{font-size:180px;right:-20px;bottom:-50px}.page-hero p{font-size:14px}.values-grid{gap:30px}.process-grid{gap:24px}.process-grid h3{font-size:21px}.process-grid p{font-size:12px}.step-number{font-size:30px}.contact-form-card{padding:25px}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.map-heading{display:block;margin-bottom:15px}.map-section{padding-bottom:60px}.map-section iframe{height:270px}.cta-inner{flex-direction:column;align-items:flex-start}.footer-grid{grid-template-columns:1fr 1fr;gap:35px 20px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:12px}.quote-modal{display:block}.quote-intro{padding:25px}.quote-intro h2{font-size:28px;margin-bottom:12px}.quote-intro h2 br{display:none}.quote-intro .eyebrow{margin-bottom:12px}.quote-intro p{max-width:260px;margin-bottom:0}.quote-intro>a,.quote-decoration{display:none}.quote-form{padding:25px}.quote-form .form-grid{grid-template-columns:1fr 1fr}.quote-form .form-group.full{grid-column:1/-1}.quote-form .form-group input{padding:11px 9px;font-size:11px}.quote-form .form-group label{font-size:10px}.modal-dialog{margin:12px}.quote-form h3{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.button:hover,.service-card:hover,.project-image:hover img{transform:none}}
.skip-link{position:fixed;left:16px;top:-100px;z-index:1200;background:var(--ink);color:white;padding:12px 18px;border-radius:8px}.skip-link:focus{top:12px;color:white}

/* Decorative card borders shared across the public pages. */
.service-card,
.project-card,
.contact-form-card,
.values-grid article,
.process-grid article {
    border: 1px solid transparent;
    background: linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, #bdd394, #dce5d6 42%, #a5bfbd) border-box;
    box-shadow: 0 4px 8px rgba(20, 41, 43, .025), 0 16px 36px rgba(20, 41, 43, .045);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border-radius: 22px;
}
.service-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 30px;
    right: 30px;
    height: 3px;
    border-radius: 0 0 6px 6px;
    background: linear-gradient(90deg, #749d41, #d2ef84, #83aba4);
}
.service-card .card-top > span:first-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    border: 1px solid #d3dfc0;
    border-radius: 13px;
    background: #f2f7e9;
    color: #4c6d2b;
    font-weight: 800;
}
.service-card .card-top > span:last-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    border: 1px solid #e2e8dc;
    border-radius: 50%;
    font-size: 22px;
}
.service-card .service-tags { margin-top: auto; }
.service-card .text-link { align-self: flex-start; }
.project-card {
    padding: 10px;
    border-radius: 25px;
}
.project-card .project-image {
    border: 1px solid rgba(23, 37, 38, .1);
    border-radius: 16px;
}
.project-card .project-caption { padding: 24px 14px 16px; }
.project-card .project-category {
    border: 1px solid rgba(255, 255, 255, .85);
    box-shadow: 0 3px 12px rgba(23, 37, 38, .06);
}
.project-card .project-arrow {
    border: 1px solid rgba(23, 37, 38, .12);
    box-shadow: 0 4px 12px rgba(23, 37, 38, .08);
    transition: background .25s ease;
}
.values-grid article,
.process-grid article {
    border-radius: 20px;
    padding: 28px;
}
.values-grid article { border-top: 3px solid #bdd394; }
.process-grid article { position: relative; }
.process-grid .step-number {
    border-bottom: 1px dashed #c7d5b7;
    color: #5f8039;
}
.contact-form-card {
    border-radius: 22px;
    border-top: 3px solid #bdd394;
}
.service-card:focus-within,
.project-card:focus-within {
    border-color: #7a9c50;
    box-shadow: 0 0 0 3px rgba(189, 211, 148, .25), 0 18px 40px rgba(20, 41, 43, .08);
}
@media (hover: hover) {
    .service-card:hover,
    .project-card:hover {
        transform: translateY(-6px);
        border-color: #97b66d;
        box-shadow: 0 8px 16px rgba(20, 41, 43, .04), 0 24px 45px rgba(20, 41, 43, .09);
    }
    .project-card:hover .project-arrow { background: var(--lime); }
}
@media (max-width: 850px) {
    .values-grid { gap: 20px; }
    .values-grid article { padding: 22px; }
}
@media (max-width: 575px) {
    .service-card::before { left: 24px; right: 24px; }
    .project-card { padding: 8px; border-radius: 23px; }
    .project-card .project-caption { padding: 20px 12px 14px; }
    .process-grid { gap: 14px; }
    .process-grid article { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .service-card:hover,
    .project-card:hover { transform: none; }
}

/* Visitor goals, FAQs, and mobile enquiry shortcuts. */
.home-hero { background: radial-gradient(ellipse at 5% 10%, #edf5df 0, transparent 48%); }
.growth-section { background: #eef2e8; }
.growth-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.growth-card { display: flex; flex-direction: column; align-items: flex-start; padding: 32px; border: 1px solid #cad8b7; border-radius: 22px; background: #fff; color: var(--ink); box-shadow: 0 10px 30px #14292b06; transition: border-color .25s, box-shadow .25s; }
.growth-card:nth-child(2) { background: #f9faf2; }
.growth-card:nth-child(3) { background: #f3f8f6; }
.growth-card:hover { color: var(--ink); border-color: #7c9f50; box-shadow: 0 14px 32px #14292b12; }
.growth-icon { width: 55px; height: 55px; display: grid; place-items: center; border: 1px solid #bdcf9d; border-radius: 16px; color: var(--ink); background: var(--lime); font-size: 29px; margin-bottom: 32px; }
.growth-card .eyebrow { font-size: 9px; margin-bottom: 15px; color: #527237; }
.growth-card h3 { font-size: 29px; margin-bottom: 18px; }
.growth-card p { font-size: 14px; margin-bottom: 24px; }
.growth-card .text-link { font-size: 12px; margin-top: auto; }
.project-prompt { display: flex; justify-content: space-between; align-items: center; gap: 25px; border-top: 1px solid #cbd7c2; margin-top: 38px; padding-top: 30px; }
.project-prompt strong { font-size: 20px; letter-spacing: -.03em; }
.project-prompt p { font-size: 13px; margin: 6px 0 0; }
.project-prompt .button { flex-shrink: 0; }
.faq-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 75px; }
.faq-grid > div > p { font-size: 14px; max-width: 330px; }
.faq-list { display: grid; gap: 12px; align-content: start; }
.faq-list details { border: 1px solid #d5dfc9; border-radius: 13px; background: #fff; overflow: hidden; }
.faq-list details[open] { border-color: #9bb977; background: #f7faef; box-shadow: 0 6px 20px #14292b06; }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 24px; font-size: 14px; font-weight: 700; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: '+'; color: #5e7e38; font-size: 23px; font-weight: 500; line-height: 1; }
.faq-list details[open] summary::after { content: '−'; }
.faq-list summary:focus-visible { outline: 3px solid #67982b; outline-offset: -4px; border-radius: 12px; }
.faq-list details p { font-size: 13px; padding: 0 24px 22px; margin: 0; }
.mobile-contact-bar { display: none; }
@media (max-width: 850px) {
    .growth-grid { gap: 16px; }
    .growth-card { padding: 23px; }
    .growth-card h3 { font-size: 25px; }
    .faq-grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 575px) {
    .growth-grid { grid-template-columns: 1fr; }
    .growth-card { padding: 28px; }
    .growth-card h3 br { display: none; }
    .growth-icon { margin-bottom: 24px; }
    .project-prompt { flex-direction: column; align-items: flex-start; }
    .faq-list summary { padding: 18px; font-size: 13px; }
    .faq-list details p { padding: 0 18px 20px; }
    body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
    .mobile-contact-bar { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10px; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1020; background: rgba(250, 251, 247, .98); border-top: 1px solid #cedac0; padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -5px 24px #14292b0c; }
    .mobile-contact-bar a, .mobile-contact-bar button { display: flex; align-items: center; justify-content: center; gap: 13px; border-radius: 8px; min-height: 46px; border: 1px solid #ccd8bf; font-size: 13px; font-weight: 700; color: var(--ink); }
    .mobile-contact-bar button { background: var(--ink); color: white; border-color: var(--ink); }
    .mobile-contact-bar a { background: white; }
    .mobile-contact-bar span { font-size: 19px; }
}

/* WhatsApp shortcut stays above the mobile contact bar and below modals. */
.whatsapp-float {
    position: fixed;
    right: max(24px, env(safe-area-inset-right, 0px));
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    z-index: 1030;
    display: inline-flex;
    align-items: center;
    gap: 13px;
    padding: 9px 18px 9px 9px;
    min-height: 72px;
    max-width: calc(100vw - 48px);
    border: 1px solid #446059;
    border-radius: 22px;
    background: linear-gradient(135deg, #213d36, #102628);
    color: #fff;
    box-shadow: 0 12px 36px rgba(14, 43, 32, .22), inset 0 1px 0 #ffffff16;
    text-decoration: none;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.whatsapp-icon {
    position: relative;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    flex-shrink: 0;
    border: 1px solid #6be699;
    border-radius: 16px;
    background: linear-gradient(145deg, #32df78, #16a553);
    box-shadow: 0 4px 14px #00000024;
}
.whatsapp-icon::before {
    content: '';
    position: absolute;
    inset: -4px;
    border: 1px solid #55e28c;
    border-radius: 20px;
    opacity: 0;
    animation: whatsapp-welcome 2.4s ease-out 3;
    pointer-events: none;
}
.whatsapp-icon i { font-size: 31px; line-height: 1; }
.whatsapp-label { display: grid; gap: 4px; line-height: 1.3; }
.whatsapp-label small { color: #c1d7cd; font-size: 10px; font-weight: 500; letter-spacing: .04em; }
.whatsapp-label strong { color: #fff; font-size: 12px; font-weight: 700; }
.whatsapp-arrow { display: grid; place-items: center; width: 27px; height: 27px; margin-left: 4px; border: 1px solid #ffffff30; border-radius: 50%; color: #d2ef84; font-size: 17px; }
.whatsapp-float:hover, .whatsapp-float:focus-visible {
    transform: translateY(-4px);
    color: #fff;
    border-color: #81c99a;
    box-shadow: 0 16px 40px rgba(14, 43, 32, .3), inset 0 1px 0 #ffffff16;
}
.whatsapp-float:focus-visible { outline: 3px solid #7aa24e; outline-offset: 4px; }
@keyframes whatsapp-welcome {
    0% { transform: scale(.94); opacity: .6; }
    80%, 100% { transform: scale(1.25); opacity: 0; }
}
@media (max-width: 575px) {
    .whatsapp-float {
        right: max(18px, env(safe-area-inset-right, 0px));
        bottom: calc(90px + env(safe-area-inset-bottom, 0px));
        min-height: 60px;
        width: 60px;
        height: 60px;
        padding: 5px;
        border-radius: 20px;
        justify-content: center;
    }
    .whatsapp-icon { width: 48px; height: 48px; border-radius: 15px; }
    .whatsapp-label, .whatsapp-arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .whatsapp-icon::before { animation: none; }
    .whatsapp-float:hover, .whatsapp-float:focus-visible { transform: none; }
}

/* Site-wide visual refinement. */
.site-header { box-shadow: 0 4px 24px #14292b04; }
.site-header .brand img, .site-footer .brand img { width: 46px; height: 46px; }
.site-header nav > a { transition: color .2s; }
.site-header nav > a:hover { color: #527731; }
.section-heading .eyebrow, .split-section .eyebrow, .contact-details > .eyebrow, .faq-grid > div > .eyebrow { color: #567632; display: flex; align-items: center; gap: 10px; }
.section-heading .eyebrow::before, .split-section .eyebrow::before, .contact-details > .eyebrow::before, .faq-grid > div > .eyebrow::before { content: ''; width: 22px; height: 2px; background: #86a959; }
.home-hero { background: radial-gradient(ellipse at 0% 0%, #304b40, transparent 58%), #13292b; padding: 96px 0 90px; position: relative; }
.hero-copy h1 { color: #fff; font-size: clamp(56px, 6.5vw, 88px); letter-spacing: -.065em; }
.hero-copy .eyebrow { color: #d3e5cd; }
.hero-copy > p { color: #c0d0c9; font-size: 17px; line-height: 1.9; }
.hero-copy .accent-word { color: var(--lime); }
.hero-copy .accent-word::after { background: #d2ef8433; height: 9%; bottom: 1px; }
.hero-copy .button-dark { background: var(--lime); color: var(--ink); box-shadow: 0 6px 24px #00000012; }
.hero-copy .button-dark:hover { background: #e1f5ad; }
.hero-copy .text-link { color: #fff; border-bottom: 1px solid #789287; }
.hero-copy .hero-note { color: #a5bfb0; }
.hero-copy .note-line { background: #90ab91; }
.hero-art { background: linear-gradient(145deg, #e7efdb, #ccdbc2); box-shadow: 0 30px 75px #00000026; border: 1px solid #f4ffe455; border-radius: 35px; }
.capability-strip { background: #eaf1df; border-color: #d4e0c5; padding: 26px 0; }
.capability-strip span { letter-spacing: .02em; }
.page-hero { background: radial-gradient(ellipse at 100% 0, #dcebc9, transparent 70%), #edf2e5; padding-bottom: 54px; }
.page-hero::after { display: none; }
.page-hero-grid { display: grid; grid-template-columns: 1.4fr .6fr; align-items: center; gap: 40px; }
.page-hero-copy h1 { font-size: clamp(40px, 5.3vw, 70px); max-width: 780px; }
.page-hero-copy > p { max-width: 590px; }
.page-hero-copy .text-link { margin-top: 20px; }
.page-hero-art { min-height: 265px; position: relative; display: grid; place-items: center; isolation: isolate; }
.hero-ring { position: absolute; width: 245px; height: 245px; border: 1px solid #b0c59b; border-radius: 50%; }
.ring-two { width: 190px; height: 190px; border-style: dashed; transform: rotate(25deg); }
.hero-emblem { width: 124px; height: 124px; border-radius: 28px; transform: rotate(-12deg); background: linear-gradient(135deg, #28443b, #14292b); color: var(--lime); font-size: 90px; line-height: 1; display: grid; place-items: center; box-shadow: 0 18px 38px #233d3421; }
.hero-art-chip { position: absolute; padding: 9px 14px; background: #ffffffec; border: 1px solid #d0ddc4; border-radius: 10px; box-shadow: 0 8px 24px #14292b0b; font-size: 10px; font-weight: 700; white-space: nowrap; }
.chip-design { top: 35px; left: -5px; transform: rotate(-7deg); }
.chip-code { bottom: 43px; right: -5px; transform: rotate(6deg); }
.hero-art-small { position: absolute; bottom: -5px; font-size: 7px; letter-spacing: .13em; color: #728666; }
.breadcrumb-line { margin-bottom: 27px; }
.service-card { background: linear-gradient(150deg, #fff 65%, #f3f7ec) padding-box, linear-gradient(135deg, #bdd394, #dce5d6 42%, #a5bfbd) border-box; }
.service-card .card-top { margin-bottom: 32px; }
.service-card .card-top > .service-symbol { width: 54px; height: 54px; border-radius: 16px; background: #edf4e2; border-color: #d2dfbf; font-size: 22px; color: #365a37; }
.service-card .service-tags { display: flex; flex-wrap: wrap; gap: 7px; border-top: 1px solid #e0e7d6; padding-top: 18px; }
.service-tags > span { display: inline-block; background: #f1f5eb; border: 1px solid #dde6d2; border-radius: 6px; padding: 4px 8px; color: #58684b; font-size: 9px; }
.service-card .text-link { margin-top: 22px; border-bottom: 1px solid #b4c59b; }
.project-card { background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, #acc493, #d9ddd6 45%, #b9c6df) border-box; }
.project-image { background-image: radial-gradient(circle at 20% 15%, #ffffff7a, transparent 65%); }
.project-caption h3 { font-size: 27px; }
.project-caption > span { padding: 5px 10px; border: 1px solid #e0e7d7; border-radius: 6px; height: fit-content; }
.about-visual { border: 1px solid #cbd9b7; box-shadow: 0 20px 45px #14292b0d; }
.image-note { border: 1px solid #d9e3cd; box-shadow: 0 12px 24px #14292b10; }
.values-grid article { position: relative; background: linear-gradient(145deg, #fff, #f8faf3) padding-box, linear-gradient(135deg, #bdd394, #dce5d6 42%, #a5bfbd) border-box; }
.values-grid article > span { font-weight: 800; letter-spacing: .07em; }
.process-grid article { background: linear-gradient(155deg, #fff, #f7faf1) padding-box, linear-gradient(135deg, #bdd394, #dce5d6 42%, #a5bfbd) border-box; }
.studio-band { background: radial-gradient(ellipse at 95% 20%, #344b37, transparent 65%), #14292b; padding: 80px 0; color: white; }
.studio-band-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 85px; align-items: center; }
.studio-band .eyebrow { color: var(--lime); }
.studio-band h2 { color: white; font-size: clamp(32px, 3.6vw, 49px); }
.studio-band .button { margin-top: 14px; }
.studio-principles { display: grid; gap: 25px; }
.studio-principles article { display: flex; gap: 23px; border-bottom: 1px solid #6a86764a; padding-bottom: 25px; }
.studio-principles article:last-child { border-bottom: 0; padding-bottom: 0; }
.studio-principles article > span { width: 39px; height: 39px; border: 1px solid #819d6559; border-radius: 10px; display: grid; place-items: center; color: var(--lime); font-size: 11px; flex-shrink: 0; }
.studio-principles h3 { color: #fff; font-size: 21px; letter-spacing: -.02em; margin-bottom: 10px; }
.studio-principles p { color: #b6c9bc; font-size: 13px; margin: 0; }
.contact-details .contact-row { border: 1px solid #d8e2cc; border-radius: 16px; background: #fff; padding: 18px; margin: 18px 0; box-shadow: 0 5px 18px #14292b04; }
.contact-details > a.contact-row:hover { border-color: #89aa61; color: var(--ink); }
.contact-icon { background: #edf5df; border-color: #c7d9ae; color: #385930; }
.contact-form-card { background: linear-gradient(145deg, #fff, #fafcf6) padding-box, linear-gradient(135deg, #bdd394, #dce5d6 42%, #a5bfbd) border-box; }
.contact-form-card h3 { font-size: 30px; }
.form-group input, .form-group select, .form-group textarea { background: #fff; border-color: #d6e0c9; }
.form-submit { min-height: 52px; }
.map-section iframe { border: 1px solid #d0debf; box-shadow: 0 15px 35px #14292b08; }
.faq-section { background: linear-gradient(180deg, #fafbf7, #f1f5e9); border-top: 1px solid #e4eada; }
.faq-list details { box-shadow: 0 5px 14px #14292b03; }
.cta-section { position: relative; overflow: hidden; background: radial-gradient(ellipse at 90% 60%, #36523b, transparent 65%), #14292b; border-top: 1px solid #7d99542e; }
.cta-section::after { content: '↗'; position: absolute; right: 21%; top: -30px; color: #d2ef8409; font-size: 230px; line-height: 1; pointer-events: none; }
.cta-inner { position: relative; z-index: 1; }
.site-footer { border-top: 1px solid #375344; }
.quote-modal { box-shadow: 0 30px 90px #10212440; border: 1px solid #a9c183; }
.quote-intro { background: radial-gradient(ellipse at 90% 80%, #36523b, transparent 65%), #14292b; }
@media (max-width: 1100px) {
    .page-hero-grid { grid-template-columns: 1.6fr .7fr; gap: 25px; }
    .hero-ring { width: 210px; height: 210px; }
    .ring-two { width: 170px; height: 170px; }
    .studio-band-grid { gap: 45px; }
}
@media (max-width: 850px) {
    .home-hero { padding: 60px 0; }
    .hero-copy h1 { font-size: 70px; }
    .page-hero-grid { grid-template-columns: 1fr; }
    .page-hero-art { display: none; }
    .studio-band-grid { grid-template-columns: 1fr; gap: 40px; }
    .studio-band { padding: 65px 0; }
}
@media (max-width: 575px) {
    .hero-copy h1 { font-size: 57px; }
    .hero-copy > p { font-size: 15px; }
    .hero-art { border-radius: 24px; }
    .home-hero { padding: 48px 0; }
    .page-hero { padding-bottom: 43px; }
    .page-hero-copy h1 { font-size: 43px; }
    .page-hero-copy .text-link { font-size: 12px; }
    .capability-strip .container { gap: 10px 18px; }
    .contact-details .contact-row { padding: 16px; gap: 15px; }
    .contact-row strong { font-size: 13px; }
    .studio-principles article { gap: 16px; }
    .studio-principles h3 { font-size: 20px; }
    .studio-band { padding: 55px 0; }
    .contact-form-card h3 { font-size: 27px; }
}

.industry-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 575px) { .industry-services { grid-template-columns: 1fr; } }

/* Footer contact details. */
.site-footer .footer-grid > div > .footer-contact,
.site-footer .footer-grid > div > .footer-email {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.footer-contact-icon {
    color: var(--lime);
    flex: 0 0 16px;
    width: 16px;
    text-align: center;
    line-height: inherit;
}
.footer-contact span { min-width: 0; overflow-wrap: anywhere; }
