/* A single alignment rhythm across the header, content and footer. */
:root{--gutter:6%;--warm:#b88b67}header{padding-left:var(--gutter);padding-right:var(--gutter);gap:20px}header .brand{gap:10px}.brand span{font-size:18px}.brand small{font-size:9px}nav{gap:21px}nav>a,.services-toggle{font-size:13px;font-weight:500;line-height:1.4}.services-toggle{display:flex;gap:7px;align-items:center}.services-toggle span{display:inline-flex;align-items:center;font-size:13px;line-height:1}.header-cta{background:var(--ink);color:var(--cream);border-color:var(--ink);font-size:13px;white-space:nowrap;padding:15px 23px;transition:background .25s,transform .25s}nav [aria-current=page]{color:#a1714f}.header-cta:hover{background:#a77c57;border-color:#a77c57;transform:translateY(-2px)}.section,.page-intro{padding-left:var(--gutter);padding-right:var(--gutter)}.section-heading{align-items:end}.page-intro{padding-bottom:55px}.page-intro h1{max-width:1100px}.page-intro h1,.service-detail,.story,.related{margin-left:0;margin-right:0}.service-detail{padding-top:65px}.service-detail img{width:100%;height:520px;object-fit:cover}.service-detail>div:last-child{padding:12px 0}.service-detail h2{font-size:clamp(32px,3.1vw,49px)}.related-links{gap:18px}.related-links a{background:#e6ece2;border:1px solid #c3d0be;display:flex;justify-content:space-between;align-items:center;min-height:76px;transition:background .25s,color .25s,transform .25s}.related-links a:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px)}
.button{font-weight:500;gap:10px;border-radius:40px;min-height:51px;padding:17px 25px;text-align:center;border:1px solid transparent;box-shadow:0 4px 10px #193f3905;transition:background .25s,color .25s,transform .25s,box-shadow .25s}.button.dark{background:var(--ink);color:var(--cream)}.button.dark:hover{background:#aa7d57;color:white;box-shadow:0 6px 20px #6b492b20}.button.light:hover{background:#c8d8c1;color:var(--ink)}.button.warm{background:var(--brown);color:white}.button.warm:hover{background:#cfaa83;color:#163d36}.hero-actions{gap:18px}.hero-copy{max-width:1040px}.hero h1{font-size:clamp(54px,6.4vw,100px)}.quote-band>.button{position:relative;margin-top:10px}.section-heading .button{flex-shrink:0}.story-copy>.button{margin-top:20px}.service-card>.button{padding:13px 21px;min-height:45px;margin-top:20px;font-size:12px}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 26px}.service-card,.service-card:nth-child(4),.service-card:last-child{grid-column:auto;max-width:none;margin:0;display:flex;flex-direction:column;align-items:start}.service-card .card-photo{width:100%}.service-card h3{min-height:54px;line-height:1.25;font-size:22px}.service-card p{flex:1}.card-photo img{height:280px}.service-card>.button{margin-top:22px}.service-card:hover .button{background:#a77c57}.ribbon{padding:25px 0;background:#dce6d9;perspective:none;overflow:hidden}.ribbon>.marquee-track{display:flex;width:max-content;transform:none;animation:marquee 24s linear infinite;font-size:15px;letter-spacing:3px;word-spacing:normal}.marquee-group{display:flex;align-items:center;flex-shrink:0;gap:42px;padding-right:42px}.marquee-group span{font-size:15px;letter-spacing:3px;color:var(--ink);margin:0;white-space:nowrap}.marquee-group b{font-size:27px;color:var(--brown);font-weight:400;line-height:1}@keyframes marquee{to{transform:translateX(-50%)}}.ribbon:hover .marquee-track{animation-play-state:paused}
.floating-contact{right:22px;left:auto;bottom:28px;display:flex;flex-direction:column;gap:16px;align-items:center;z-index:60}.floating-contact .contact-icon{display:grid;place-items:center;width:42px;height:42px;padding:6px;flex:none;border:0;border-radius:0;background:none;box-shadow:none;color:#193f39;filter:drop-shadow(0 1px 1px #fff) drop-shadow(0 0 3px #ffffffd9);transition:transform .2s,color .2s}.contact-icon svg{display:block;width:29px;height:29px;overflow:visible}.contact-icon:hover{transform:translateY(-3px) scale(1.08);color:var(--brown)!important}.floating-contact .phone-icon{display:none}.floating-contact .instagram-icon svg{width:28px;height:28px}footer{background:radial-gradient(ellipse at 12% 0%,#49716575,transparent 55%),linear-gradient(120deg,#153b36 15%,#2b5549 58%,#8b7658 145%);padding-left:var(--gutter);padding-right:var(--gutter)}.footer-top{grid-template-columns:1.2fr .7fr 1fr;gap:6%;align-items:start}.footer-top h2{margin-top:0;line-height:1.7;font-size:15px}.footer-top>.eyebrow{line-height:1.7}.footer-top>div>a:not(.button){line-height:1.6;overflow-wrap:anywhere}.footer-title{margin-top:24px}.footer-bottom{align-items:center}.footer-top>div>p:not(.footer-title){max-width:360px}.gallery-page{padding-top:60px}.gallery-page>.section-heading{display:none}.gallery-page .gallery-item:nth-child(even){margin-top:0}.gallery-page .gallery-item img{height:440px}.gallery-page .gallery-grid{gap:24px}.faq.section{max-width:none;margin:0;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:8%;align-items:start;padding-top:70px}.faq-aside h2{font-size:clamp(32px,3.1vw,48px)}.faq-aside p{color:#607162;max-width:330px}.faq-aside>.button{margin-top:20px}.faq details{margin-bottom:14px;background:#e9eee5;border:1px solid #d8e0d1;border-radius:12px;padding:0;overflow:hidden}.faq summary{font-size:17px;line-height:1.5;padding:23px 25px;align-items:center;gap:22px}.faq-question{flex:1}.faq-plus{height:30px;width:30px;flex:none;border:1px solid #b8c8b5;border-radius:50%;display:grid;place-items:center;line-height:1;transition:transform .2s}.faq details[open]{background:#f1f4ec;border-color:#a9bca3}.faq details[open] summary{padding-bottom:12px}.faq details[open] summary span.faq-question{transform:none}.faq details p{font-size:14px;padding:0 25px 22px;margin:0;line-height:1.9}.faq-end{padding-top:25px;border-top:1px solid var(--line);margin-top:30px}.faq-end h2{font-size:25px;letter-spacing:-.8px;margin-top:12px}.contact-detail h3{font-size:12px;letter-spacing:1.7px}.contact form h2{line-height:1.2}.contact form .button{width:100%;margin-top:12px}.location-copy{padding-left:12%;padding-right:12%}.hero .eyebrow{line-height:1.8}
@media(min-width:1700px){:root{--gutter:6%}.section{padding-left:var(--gutter);padding-right:var(--gutter)}}
@media(max-width:1250px){header{gap:14px}.brand img{width:60px;height:60px}.brand span{font-size:16px}.brand small{font-size:8px}nav{gap:16px}nav>a,.services-toggle{font-size:12px}.header-cta{padding:14px 20px}.card-photo img{height:240px}}
@media(max-width:1150px){.header-cta{display:block}header{padding-left:4%;padding-right:4%}nav{gap:13px}.brand span{font-size:15px}.brand img{width:54px;height:54px}.brand small{letter-spacing:2px}.header-cta{font-size:12px;padding:13px 18px}.service-card h3{font-size:20px}}
@media(max-width:1050px) and (min-width:801px){header{height:auto;min-height:90px;flex-wrap:wrap;padding-top:14px;padding-bottom:12px;row-gap:8px}.brand{order:0}.header-cta{order:1}nav{order:2;width:100%;justify-content:center;gap:30px}.services-toggle{padding:10px 0}nav>a{padding:10px 0}.hero{height:calc(100svh - 138px)}.nav-sub{top:100%}}
@media(max-width:800px){header{padding:0 var(--gutter);height:82px;min-height:82px;flex-wrap:nowrap}.header-cta{display:none}.brand span{font-size:16px}.brand img{width:56px;height:56px}.brand small{font-size:8px;letter-spacing:2.5px}nav{gap:0;padding-left:var(--gutter);padding-right:var(--gutter)}nav>a,.services-toggle{font-size:14px}.services-toggle{padding:15px 0;justify-content:space-between}.hero h1{font-size:clamp(45px,8vw,66px)}.hero-copy{top:46%}.hero-actions{flex-wrap:wrap;gap:12px}.hero-actions .button{padding:16px 21px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px}.service-card h3{font-size:21px;min-height:54px}.service-card:last-child{grid-column:auto;max-width:none}.card-photo img{height:245px}.floating-contact{left:auto;right:13px;bottom:24px;gap:13px}.floating-contact .contact-icon{width:33px;height:33px;min-height:0;padding:5px;display:grid;flex:none}.contact-icon svg{width:24px;height:24px}.floating-contact .instagram-icon svg{width:23px;height:23px}.floating-contact .phone-icon{display:grid}.footer-top{grid-template-columns:1fr 1fr;gap:45px}.footer-top>div:first-child{grid-column:1/-1}.footer-bottom{align-items:start}footer{padding-bottom:40px}.faq.section{grid-template-columns:1fr;gap:35px;padding-top:50px}.faq-aside{display:grid;grid-template-columns:1fr auto;column-gap:30px;align-items:center}.faq-aside .eyebrow,.faq-aside h2,.faq-aside p{grid-column:1}.faq-aside .button{grid-column:2;grid-row:2/4;margin:0}.faq-aside h2{margin:12px 0;font-size:35px}.faq-aside p{max-width:450px;margin:0}.faq summary{font-size:16px;padding:21px}.faq details p{padding:0 21px 22px}.gallery-page .gallery-item img{height:380px}.gallery-page .gallery-item:nth-child(3){margin-top:0}.service-detail img{height:430px}.service-detail{gap:28px}.service-detail h2{font-size:36px}.location-copy{padding:55px var(--gutter)}.ribbon{padding:22px 0}.marquee-group{gap:28px;padding-right:28px}.marquee-group span{font-size:13px;letter-spacing:2px}}
@media(max-width:480px){.service-grid{grid-template-columns:1fr}.service-card h3{min-height:0;font-size:24px}.card-photo img{height:280px}.hero h1{font-size:44px;letter-spacing:-2px}.hero-copy{top:44%}.hero-copy p{font-size:15px;max-width:310px}.hero-actions{gap:10px}.hero-actions .button{font-size:12px;padding:15px 18px;min-height:48px}.hero{min-height:650px}.slider-bottom:before{font-size:8px}.slider-controls{gap:7px}.gallery-page .gallery-item img{height:265px}.gallery-page .gallery-grid{gap:14px}.gallery-item:nth-child(even){margin-top:0}.gallery-item:nth-child(3){margin-top:0}.footer-top{grid-template-columns:1fr;gap:35px}.footer-top>div:first-child{grid-column:auto}.footer-title{font-size:48px}.footer-top>div>a:not(.button){font-size:14px}.faq-aside{display:block}.faq-aside .button{margin-top:22px}.faq summary{padding:19px 17px;font-size:15px;gap:12px}.faq details p{padding-left:17px;padding-right:17px}.faq-plus{width:27px;height:27px}.faq-end h2{font-size:23px}.page-intro{padding-bottom:35px}.page-intro h1{font-size:42px}.service-detail img{height:310px}.service-detail h2{font-size:32px}.related-links a{font-size:15px}.quote-band h2{font-size:32px}.floating-contact{right:9px;gap:11px}.floating-contact .contact-icon{width:31px;height:31px}.hero .eyebrow{max-width:320px;font-size:8px}.contact-detail{padding-right:20px}}
.services-toggle span{font-size:1em}.marquee-group{min-width:max(900px,100vw);justify-content:space-around}
@media(max-width:800px){.nav-dropdown.open .nav-sub,.nav-dropdown.open:hover .nav-sub{display:block}.slider-bottom{right:60px}}
@media(prefers-reduced-motion:reduce){.ribbon>.marquee-track{animation:none!important}.marquee-group{flex-wrap:wrap;gap:15px;min-width:100vw}.ribbon{overflow:hidden}}
/* Revision: tighter rhythm, shared card tracks and clear floating controls. */
header{padding-left:var(--gutter);padding-right:var(--gutter)}
.services-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;vertical-align:middle;line-height:1.4}
.services-toggle .nav-chevron{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;flex:0 0 13px;position:relative;top:1px}
.nav-chevron svg{display:block;width:13px;height:13px;transition:transform .2s}.nav-dropdown.open .nav-chevron svg{transform:rotate(180deg)}
.marquee-group{min-width:0;justify-content:flex-start;gap:30px;padding-right:30px}.ribbon>.marquee-track{animation-duration:65s}.marquee-group span{letter-spacing:2.4px}.marquee-group b{font-size:24px}
.service-grid{row-gap:22px;column-gap:26px}.service-card,.service-card:nth-child(4),.service-card:last-child{display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:22px;align-items:start;align-content:start;min-width:0}.service-card h3{margin:0;min-height:0;line-height:1.3}.service-card p{margin:0;flex:initial}.service-card>.button{margin:0;justify-self:start}.service-card .card-photo{grid-row:1}.service-card h3{grid-row:2}.service-card p{grid-row:3}.service-card>.button{grid-row:4}.service-grid{padding-bottom:10px}
.quote-band{isolation:isolate;background:linear-gradient(110deg,#ede1d3,#e6dfd3 50%,#dde4d6)}.quote-band>.eyebrow,.quote-band>h2,.quote-band>.button{position:relative;z-index:2}.motion-garden{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;perspective:900px}.garden-ring{position:absolute;width:460px;height:460px;left:calc(50% - 230px);top:calc(50% - 230px);border-radius:50%;border:1px solid #8c9f7880;box-shadow:inset 0 0 25px #b88b6709,0 0 20px #b88b6709;transform-style:preserve-3d}.ring-one{border-width:24px;border-color:#b88b6726;animation:orbit-one 23s linear infinite}.ring-two{width:550px;height:550px;left:calc(50% - 275px);top:calc(50% - 275px);border-width:2px;border-color:#69856855;animation:orbit-two 28s linear infinite}.ring-three{width:650px;height:650px;left:calc(50% - 325px);top:calc(50% - 325px);border-width:1px;border-color:#a97e5555;animation:orbit-three 34s linear infinite}.garden-glow{position:absolute;left:20%;top:10%;width:55%;height:80%;border-radius:50%;background:radial-gradient(ellipse,#fff9 0%,#e3d1b92c 45%,transparent 72%);animation:soft-breath 8s ease-in-out infinite}@keyframes orbit-one{0%{transform:rotateX(62deg) rotateY(12deg) rotateZ(0)}100%{transform:rotateX(62deg) rotateY(12deg) rotateZ(360deg)}}@keyframes orbit-two{0%{transform:rotateX(25deg) rotateY(64deg) rotateZ(0)}100%{transform:rotateX(25deg) rotateY(64deg) rotateZ(-360deg)}}@keyframes orbit-three{0%{transform:rotateX(58deg) rotateY(-35deg) rotateZ(0)}100%{transform:rotateX(58deg) rotateY(-35deg) rotateZ(360deg)}}@keyframes soft-breath{50%{transform:translateX(12%) scale(1.15);opacity:.6}}
.floating-contact{right:22px;bottom:24px;gap:12px}.floating-contact .contact-icon{width:50px;height:50px;border-radius:50%;padding:14px;filter:none;background:var(--ink);color:white;border:1px solid #ffffff38;box-shadow:0 5px 18px #153b3630;transition:transform .2s,background .2s,box-shadow .2s}.floating-contact .contact-icon svg,.floating-contact .instagram-icon svg{width:22px;height:22px}.floating-contact .instagram-icon{background:#b88b67}.floating-contact .contact-icon:hover{transform:translateY(-3px);background:#608a75;color:white!important;box-shadow:0 8px 22px #153b3640}.floating-contact .instagram-icon:hover{background:#99704e}.floating-contact .phone-icon{background:#253e38}
.service-editorial{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:9%;padding-top:25px;padding-bottom:85px;border-bottom:1px solid var(--line)}.editorial-intro{position:sticky;top:140px;align-self:start}.editorial-intro h2{font-size:clamp(34px,3.5vw,54px)}.editorial-sections{display:grid;gap:32px}.editorial-sections article{padding-bottom:30px;border-bottom:1px solid var(--line)}.editorial-sections article:last-child{border-bottom:0;padding-bottom:0}.editorial-sections h3{font-size:25px;line-height:1.35;letter-spacing:-.6px;margin:0 0 16px;font-weight:500}.editorial-sections p{font-size:15px;line-height:1.95;color:#526657;margin:0}.related{padding-top:70px}.related-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.related-links a{display:flex;align-items:center;justify-content:flex-start;gap:16px;min-height:104px;padding:23px}.related-number{font-size:11px;letter-spacing:1px;opacity:.6;flex-shrink:0}.related-links a>span:nth-child(2){line-height:1.4}.related-arrow{margin-left:auto;flex-shrink:0}.related-links .related-contact{background:var(--ink);color:var(--cream)}.related-links .related-contact:hover{background:#aa7d57}
@supports not (grid-template-rows:subgrid){.service-card,.service-card:nth-child(4),.service-card:last-child{grid-template-rows:auto 2.6em minmax(100px,1fr) auto;grid-row:auto}}
@media(max-width:1050px){.related-links{grid-template-columns:repeat(2,minmax(0,1fr))}.related-links a{min-height:100px}.editorial-sections h3{font-size:23px}}
@media(max-width:800px){.services-toggle{justify-content:space-between}.service-grid{row-gap:20px;column-gap:20px}.service-card,.service-card:nth-child(4),.service-card:last-child{row-gap:20px}.floating-contact{right:16px;bottom:22px;gap:10px}.floating-contact .contact-icon{width:43px;height:43px;padding:12px;display:grid;min-height:0}.floating-contact .contact-icon svg,.floating-contact .instagram-icon svg{width:19px;height:19px}.floating-contact .phone-icon{display:grid}.slider-bottom{right:72px}.service-editorial{grid-template-columns:1fr;gap:28px;padding-top:10px;padding-bottom:55px}.editorial-intro{position:static}.editorial-intro h2{font-size:36px;margin-bottom:10px}.editorial-sections{gap:25px}.editorial-sections h3{font-size:23px}.editorial-sections p{font-size:15px}.related{padding-top:55px}.marquee-group{gap:26px;padding-right:26px}.marquee-group span{font-size:13px}.marquee-group b{font-size:23px}.section-heading>.button{margin-top:12px}.floating-contact .phone-icon{display:grid}}
@media(min-width:801px){.floating-contact .phone-icon{display:none}}
@media(max-width:480px){.floating-contact{right:12px;bottom:20px}.floating-contact .contact-icon{width:41px;height:41px;padding:11px}.related-links{grid-template-columns:1fr}.related-links a{min-height:82px}.service-card h3{font-size:24px}.editorial-sections h3{font-size:22px}.service-card,.service-card:nth-child(4),.service-card:last-child{row-gap:20px}.services .section-heading>.button{font-size:12px;padding:16px 22px}.garden-ring{opacity:.7}}
@media(prefers-reduced-motion:reduce){.garden-ring,.garden-glow{animation:none!important}.ring-one{transform:rotateX(62deg) rotateY(12deg)}.ring-two{transform:rotateX(25deg) rotateY(64deg)}.ring-three{transform:rotateX(58deg) rotateY(-35deg)}}
.service-card h3,.service-card p{align-self:stretch}
@keyframes orbit-one{0%{transform:rotateX(62deg) rotateY(12deg)}100%{transform:rotateX(62deg) rotateY(372deg)}}
@keyframes orbit-two{0%{transform:rotateX(25deg) rotateY(64deg)}100%{transform:rotateX(385deg) rotateY(64deg)}}
@keyframes orbit-three{0%{transform:rotateX(58deg) rotateY(-35deg)}100%{transform:rotateX(58deg) rotateY(325deg)}}
/* Finishing touches: slow color movement, and mobile-only alignment. */
.button.dark,.header-cta{background:linear-gradient(115deg,#193f39 0%,#204b42 35%,#2b574b 50%,#204b42 65%,#193f39 100%);background-size:220% 100%;animation:button-glow 9s ease-in-out infinite}
.button.warm{background:linear-gradient(115deg,#b88b67,#bf9775,#b88b67);background-size:220% 100%;animation:button-glow 10s ease-in-out infinite}
@keyframes button-glow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.button.dark:hover,.header-cta:hover,.button.warm:hover{animation-play-state:paused;background-image:none}
.map-panel{position:relative;width:100%;min-width:0;min-height:460px;overflow:hidden;background:#e4e8dc}
.map-panel iframe{display:block;position:absolute;inset:0;width:100%;height:100%;min-height:0}
.map-open{position:absolute;top:14px;left:14px;z-index:1;display:flex;flex-direction:column;gap:7px;max-width:calc(100% - 28px);padding:15px 19px;background:#fff;color:var(--ink);border:1px solid #d4ded0;border-radius:7px;box-shadow:0 3px 12px #183e391c;font-size:12px;line-height:1.3;transition:background .2s}
.map-open:hover{background:#f0f5eb}.map-place{font-size:14px;font-weight:600}
@media(max-width:800px){
 .section-heading{align-items:flex-start}.section-heading>.button{align-self:flex-start;margin-left:0;margin-right:auto}
 .hero-actions{justify-content:flex-start}.story-copy>.button,.service-detail .button,.faq-end>.button,.faq-aside>.button,.contact .button{margin-left:0;margin-right:auto;justify-self:start}
 .faq-aside{display:block}.faq-aside>.button{margin-top:22px}
 .quote-band>.button{display:table;margin-left:0;margin-right:auto}
 .footer-top .button{margin-left:0;margin-right:auto}
 .related-links a{justify-content:flex-start;text-align:left}
 .gallery:not(.gallery-page) .section-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}
 .gallery:not(.gallery-page) .section-heading>div{width:100%;text-align:left;justify-self:start}
 .gallery:not(.gallery-page) .section-heading h2{font-size:clamp(32px,7vw,39px);line-height:1.17;margin-top:15px}
 .gallery:not(.gallery-page) .section-heading>.button{justify-self:start;margin-top:0}
 .gallery-grid{align-items:start}.gallery-item:nth-child(even),.gallery-item:nth-child(3){margin-top:0}
 .map-panel{min-height:350px}.map-open{top:12px;left:12px;padding:13px 16px}
}
@media(prefers-reduced-motion:reduce){.button.dark,.header-cta,.button.warm{animation:none!important}}
/* Shared action treatment: crossfade the hover color instead of switching gradients. */
.button,.header-cta{position:relative;isolation:isolate;overflow:hidden;gap:9px;transition:transform .32s ease,color .32s ease,box-shadow .32s ease,border-color .32s ease}
.header-cta{display:inline-flex;align-items:center;justify-content:center}
.button::before,.header-cta::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:#c8d8c1;opacity:0;pointer-events:none;transition:opacity .32s ease}
.button.dark,.button.dark:hover,.header-cta,.header-cta:hover{background:linear-gradient(115deg,#193f39 0%,#204b42 35%,#2b574b 50%,#204b42 65%,#193f39 100%);background-size:220% 100%}
.button.warm,.button.warm:hover{background:linear-gradient(115deg,#b88b67,#bf9775,#b88b67);background-size:220% 100%}
.button.light,.button.light:hover{background:var(--cream)}
.service-card:hover .button{background:linear-gradient(115deg,#193f39 0%,#204b42 35%,#2b574b 50%,#204b42 65%,#193f39 100%);background-size:220% 100%}
.button:hover,.button:focus-visible,.header-cta:hover,.header-cta:focus-visible,.service-card:hover .button{color:var(--ink);transform:translateY(-3px);box-shadow:0 6px 18px #193f3915;border-color:transparent;animation-play-state:paused}
.button:hover::before,.button:focus-visible::before,.header-cta:hover::before,.header-cta:focus-visible::before,.service-card:hover .button::before{opacity:1}
.action-label{position:relative}.action-arrow,.related-arrow,.card-arrow{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.action-arrow svg,.related-arrow svg,.card-arrow svg{display:block;width:15px;height:15px}
.gallery-arrow svg{display:block;width:15px;height:15px}.gallery-arrow,.card-arrow{transition:background-color .32s ease,transform .32s ease}.gallery-item:hover .gallery-arrow,.service-card:hover .card-arrow{background:#c8d8c1}
.action-arrow,.related-arrow svg{transition:transform .32s ease}
.button:hover>.action-arrow,.header-cta:hover>.action-arrow,.service-card:hover .action-arrow,.related-links a:hover .related-arrow svg{transform:translate(2px,-2px)}
.map-action-label{display:inline-flex;align-items:center;gap:7px}.map-open{transition:background-color .32s ease,box-shadow .32s ease}.map-open:hover{background:#e2ebdc;box-shadow:0 5px 16px #193f3920}
.related-links a{transition:background-color .32s ease,color .32s ease,transform .32s ease,box-shadow .32s ease}.related-links a:hover,.related-links .related-contact:hover{background:#c8d8c1;color:var(--ink);box-shadow:0 6px 18px #193f3910}
.floating-contact .contact-icon{transition:background-color .32s ease,color .32s ease,transform .32s ease,box-shadow .32s ease}.floating-contact .contact-icon:hover,.floating-contact .instagram-icon:hover{background:#c8d8c1;color:var(--ink)!important}
.button.dark:hover,.button.dark:focus-visible,.button.warm:hover,.button.warm:focus-visible{color:var(--ink);box-shadow:0 6px 18px #193f3915}
@media(max-width:800px){.header-cta{display:none}.quote-band>.button{display:flex;width:fit-content}}
@media(prefers-reduced-motion:reduce){.button,.header-cta,.button::before,.header-cta::before,.action-arrow,.related-arrow svg{transition:none!important}.button:hover,.header-cta:hover,.service-card:hover .button{transform:none}}
