:root{--wh-control-radius:10px;--wh-ease:cubic-bezier(.2,.7,.25,1);--wh-motion-time:520ms}
/* One control system; a transparent WordPress wrapper preserves the actual rounded silhouette. */
.wp-block-button,.hero .primary,.hero .primary:hover,.contact-invitation .invitation-button{background:transparent;border-radius:var(--wh-control-radius)}
.wp-block-button .wp-block-button__link,.nav-cta,.contact-form button[type=submit],.menu-toggle{border-radius:var(--wh-control-radius)}
.wh-main-button{position:relative;isolation:isolate;overflow:hidden;transition:background-color 220ms ease,color 220ms ease,box-shadow 220ms ease,transform 220ms var(--wh-ease)}
.wh-main-button>.wh-button-arrow{min-width:18px;transition:opacity 160ms ease,transform 260ms var(--wh-ease)}
.wh-button-growth{position:absolute;right:17px;top:calc(50% - 21px);width:34px;height:42px;opacity:0;pointer-events:none;transition:opacity 150ms ease}
.wh-growth-stem{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 280ms var(--wh-ease)}
.wh-growth-leaf{transform-box:fill-box;transform-origin:10% 95%;transform:scale(.08) rotate(-22deg);opacity:0;transition:transform 350ms var(--wh-ease),opacity 180ms ease}
.wh-growth-upper{transform-origin:70% 95%;transform:scale(.08) rotate(18deg)}
.wh-main-button:focus-visible{box-shadow:0 7px 18px #0a231b24}
.wh-main-button:focus-visible>.wh-button-arrow{opacity:0;transform:translate(4px,-4px)}
.wh-main-button:focus-visible>.wh-button-growth{opacity:1}.wh-main-button:focus-visible .wh-growth-stem{stroke-dashoffset:0}
.wh-main-button:focus-visible .wh-growth-leaf{opacity:1;transform:scale(1) rotate(0);transition-delay:90ms}.wh-main-button:focus-visible .wh-growth-upper{transition-delay:180ms}
.wh-main-button:active{transform:translateY(1px)}.wh-main-button:disabled{transform:none;box-shadow:none}.wh-main-button:disabled>.wh-button-growth{display:none}.wh-main-button:disabled>.wh-button-arrow{opacity:1;transform:none}
/* The underline covers the full action, including the gap and arrow. */
.text-link,.hero-secondary .wp-block-button__link{position:relative;text-decoration:none!important}
.text-link::after,.hero-secondary .wp-block-button__link::after{content:'';position:absolute;left:0;right:0;bottom:5px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--wh-ease);pointer-events:none}
.text-link>span[aria-hidden]{transition:transform 260ms var(--wh-ease)}
.text-link:focus-visible::after,.hero-secondary .wp-block-button__link:focus-visible::after{transform:scaleX(1)}
.text-link:focus-visible>span[aria-hidden]{transform:translateX(4px)}
.service-image img,.project-photo img,.split-photo img,.invitation-photo img,.gallery-photo img,.business-image img{transition:transform 650ms var(--wh-ease),filter 350ms ease}
@media(hover:hover) and (pointer:fine){
 .wh-main-button:hover{transform:translateY(-2px);box-shadow:0 7px 18px #0a231b24}
 .wh-main-button:hover>.wh-button-arrow{opacity:0;transform:translate(4px,-4px)}
 .wh-main-button:hover>.wh-button-growth{opacity:1}.wh-main-button:hover .wh-growth-stem{stroke-dashoffset:0}
 .wh-main-button:hover .wh-growth-leaf{opacity:1;transform:scale(1) rotate(0);transition-delay:90ms}.wh-main-button:hover .wh-growth-upper{transition-delay:180ms}
 .text-link:hover::after,.hero-secondary .wp-block-button__link:hover::after{transform:scaleX(1)}.text-link:hover>span[aria-hidden]{transform:translateX(4px)}
 .service:hover .service-image img,.project-card:hover .project-photo img{transform:scale(1.045)}
 .split-photo:hover img,.invitation-visual:hover .invitation-photo img,.gallery-photo:hover img,.business-image:hover img{transform:scale(1.03)}
 .wh-main-button:disabled:hover{transform:none;box-shadow:none}
}
/* Selected content enters once. JavaScript adds the opt-in only after the observer is ready. */
.wh-motion-ready [data-wh-reveal]{transition:opacity var(--wh-motion-time) ease,transform var(--wh-motion-time) var(--wh-ease);transition-delay:var(--wh-reveal-delay,0ms)}
.wh-motion-ready [data-wh-reveal]:not(.is-revealed){opacity:0;transform:translateY(22px)}
.wh-motion-ready [data-wh-reveal].is-revealed{opacity:1;transform:none}
.wh-motion-ready [data-wh-reveal].wh-focus-reveal{transition:none}
/* A restrained use of the exact leaf silhouettes from the supplied WH vector logo. */
.trust-section,.contact-invitation,.business-band{position:relative;isolation:isolate;overflow:hidden}
.trust-section::before,.contact-invitation::before,.business-band::before{content:'';position:absolute;right:2%;top:-60px;width:320px;height:540px;background:url(brand-logo-leaves.svg) center/contain no-repeat;opacity:.065;transform:rotate(23deg);pointer-events:none;z-index:-1}
.contact-invitation::before{right:auto;left:-110px;top:auto;bottom:-150px;transform:rotate(-30deg);width:360px;height:620px;opacity:.055}
/* Connect the five stages without adding decorative rules to unrelated sections. */
.step-card{position:relative}.step-num{position:relative;z-index:1}
.step-card:not(:last-child)::after{content:'';position:absolute;top:25px;left:66px;right:-10px;height:2px;background:#b48f6a9c;pointer-events:none}
/* A balanced footer with dedicated roles instead of a loose logo and contact cluster. */
footer.wp-block-template-part{background:var(--cream)}.site-footer{background:var(--cream);padding:58px 0 30px}
.footer-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr 1.2fr;gap:48px;align-items:start}
.footer-brand .brand{display:inline-block}.footer-brand .brand img{width:150px;height:94px;mix-blend-mode:multiply}
.footer-brand .footer-brand-line{font-size:18px;font-weight:650;line-height:1.55;margin-top:22px;max-width:270px}
.footer-brand .footer-base{font-size:14px;line-height:1.8;color:var(--muted);margin-top:14px}
.footer-column h2{font-size:16px;font-weight:750;line-height:1.5;letter-spacing:0;margin:4px 0 21px}
.footer-column nav,.footer-column address{display:grid;gap:10px;font-style:normal;font-size:15px;font-weight:500;line-height:1.7}
.footer-column nav a{width:fit-content;max-width:100%;min-height:30px}.footer-column address a{width:fit-content;max-width:100%;min-height:30px;overflow-wrap:anywhere}
.footer-column .footer-quote-link{font-weight:650;margin-bottom:5px}.footer-column .footer-name{font-size:14px;color:var(--muted);margin-top:8px}
.footer-socials{margin-top:19px;gap:22px;font-size:14px}.footer-bottom{margin-top:42px;display:flex;justify-content:space-between;gap:20px;font-size:14px;line-height:1.8}
.footer-legal{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.footer-bottom a:last-child{margin-left:0}.site-footer a:focus-visible{outline-offset:4px}
@media(min-width:960px) and (max-width:1199px){.main-nav{gap:16px;font-size:14px}.main-nav .nav-cta{font-size:14px;padding:14px 16px;gap:16px}.site-header .brand img{width:132px;height:83px}.site-header .header-inner{gap:24px}}
@media(max-width:1199px){.footer-grid{grid-template-columns:1.15fr 1fr;gap:36px 60px}.footer-brand{grid-column:1;grid-row:1}.footer-contact-column{grid-column:2;grid-row:2}.footer-services{grid-column:2;grid-row:1}.footer-discover{grid-column:1;grid-row:2}.footer-brand .footer-brand-line{max-width:340px}.footer-column h2{margin-bottom:16px}}
@media(min-width:640px) and (max-width:959px){.step-card:not(:last-child)::after{display:none}.step-card:nth-child(odd):not(:last-child)::after{display:block;right:-20px}}
@media(max-width:639px){
 .wh-button-growth{width:32px;height:40px;top:calc(50% - 20px);right:17px}
 .step-card:not(:last-child)::after{left:21px;top:55px;bottom:-18px;width:2px;right:auto;height:auto}
 .site-footer{padding:40px 0 25px}.footer-grid{grid-template-columns:1fr 1fr;gap:30px 24px}.footer-brand{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:112px minmax(0,1fr);gap:0 23px;align-items:center}.footer-brand .brand{grid-row:span 2}.footer-brand .brand img{width:112px;height:71px}.footer-brand .footer-brand-line{font-size:16px;margin-top:0}.footer-brand .footer-base{font-size:14px;margin-top:9px}.footer-services{grid-column:1;grid-row:2}.footer-discover{grid-column:2;grid-row:2}.footer-contact-column{grid-column:1/-1;grid-row:3}.footer-column h2{font-size:16px;margin:0 0 14px}.footer-column nav,.footer-column address{font-size:14px;gap:10px}.footer-column .footer-name{font-size:14px}.footer-contact-column address a{font-size:16px}.footer-socials{margin-top:16px}.footer-bottom{display:block;margin-top:30px}.footer-legal{display:grid;gap:10px;margin-bottom:15px}.footer-bottom>a{display:inline-flex;min-height:36px;align-items:center}.trust-section::before{right:-95px;top:20px;width:260px;height:440px;opacity:.055}.contact-invitation::before{width:280px;height:480px;left:-130px;bottom:-100px}
}
@media(prefers-reduced-motion:reduce){
 .wh-motion-ready [data-wh-reveal],.wh-motion-ready [data-wh-reveal]:not(.is-revealed){opacity:1!important;transform:none!important;transition:none!important}
 .wh-main-button,.wh-button-growth,.wh-button-arrow,.wh-growth-stem,.wh-growth-leaf,.text-link::after,.text-link>span,.hero-secondary .wp-block-button__link::after{transition:none!important;animation:none!important}
 .wh-main-button:hover,.wh-main-button:active,.wh-main-button:focus-visible{transform:none!important}
 .service-image img,.project-photo img,.split-photo img,.invitation-photo img,.gallery-photo img,.business-image img{transform:none!important;transition:none!important}
}

/* Contact name precedes the contact links. */
.footer-column .footer-name{font-size:16px;font-weight:650;color:var(--green);margin:0 0 12px}

/* Keep all navigation actions reachable on short and landscape screens. */
@media(max-width:959px){html.js .main-nav.is-open{max-height:calc(100vh - var(--wh-nav-offset,96px));max-height:calc(100dvh - var(--wh-nav-offset,96px));overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:16px}}
/* A failed full-size photo keeps the close/next controls available. */
.gallery-feedback{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 48px);padding:20px 24px;background:var(--green);color:var(--cream);border-radius:var(--radius);text-align:center}
.gallery-feedback[hidden],.gallery-retry[hidden],.gallery-control[hidden]{display:none}
.gallery-status{font-size:16px;line-height:1.7}
.gallery-retry{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;margin-top:16px;border:0;border-radius:var(--wh-control-radius);background:var(--sand);color:var(--green);font:650 16px/1.5 Montserrat,Arial,sans-serif;cursor:pointer}
.gallery-viewer.is-gallery-loading>img,.gallery-viewer.has-gallery-error>img{visibility:hidden}

/* Larger introductory paragraphs use medium weight; regular copy stays unchanged. */
:is(.intro-copy,.business-intro-copy)>p:first-child,.split-copy>.lead{font-weight:var(--wp--custom--typography--lead-weight,500)}
