/* WCAG AA contrast pairs, explicit interaction colors and touch layouts. */
:root{--ink:#542d3c;--ink-soft:#725360;--accent:#88415f;--control-border:#997483;--surface:#fcf5f5;--hover:#71394f;--nav-h:94px}
html{scroll-padding-top:calc(var(--nav-h) + 16px)}
body{overflow-wrap:break-word}
a,button,input,select,textarea{-webkit-tap-highlight-color:#88415f26}
:focus-visible{outline:3px solid #71394f;outline-offset:4px;box-shadow:0 0 0 2px #fff}
.nav,.nav.is-solid{background:#fcf5f5;color:var(--ink)}
.nav__links a{min-height:44px;display:inline-flex;align-items:center}
.nav__links a:hover,.menu__list a:hover,.menu__list a:focus-visible{color:var(--hover);text-decoration:underline;text-underline-offset:6px}
.btn,.nav .btn--nav,.nav.is-solid .btn--nav,.hero__cta .btn,.form .btn{background:var(--ink);color:#fff}
.btn:hover,.btn:focus-visible,.nav .btn--nav:hover,.nav.is-solid .btn--nav:hover,.hero__cta .btn:hover,.form .btn:hover{background:var(--hover);color:#fff}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--control-border)}
.btn--ghost:hover,.btn--ghost:focus-visible{background:var(--hover);color:#fff;border-color:var(--hover)}
.catalogs .btn{background:transparent;color:var(--ink);padding:1rem .65rem;min-height:52px;border-bottom-color:var(--control-border);transform:none}
.catalogs .btn:hover,.catalogs .btn:focus-visible{background:var(--hover);color:#fff;transform:none;border-bottom-color:var(--hover)}
.footer a:hover,.footer a:focus-visible{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.footer li a{display:inline-block;min-height:44px;padding:.45rem 0}.footer__bar a{display:inline-flex;min-height:44px;align-items:center}
.footer__bar{border-color:var(--control-border)}
.service__link{min-height:44px;align-items:center}.service__link:hover,.service__link:focus-visible{color:var(--hover);text-decoration:underline;text-underline-offset:4px}
.info a{min-height:44px}.info a:hover,.info a:focus-visible{color:var(--hover);text-decoration:underline;text-underline-offset:3px}
.socials a,.filters button,.motion-toggle,.bloom-controls button{min-height:44px;min-width:44px;border-color:var(--control-border)}
.filters button{color:var(--ink);background:var(--surface)}
.filters button:hover,.filters button:focus-visible,.filters button.is-on,.socials a:hover,.motion-toggle:hover,.motion-toggle:focus-visible,.bloom-controls button:hover,.bloom-controls button:focus-visible{background:var(--hover);color:#fff;border-color:var(--hover)}
.field label{font-size:14px;letter-spacing:.06em;color:var(--ink-soft)}
.field input,.field select,.field textarea{font-size:16px;min-height:48px;border:1px solid var(--control-border);border-radius:8px;padding:.85rem;background:#fff;color:var(--ink);min-width:0}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-soft);opacity:1}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--hover);outline-offset:2px;border-color:var(--hover);box-shadow:none}
.field textarea{min-height:140px}.form .note{line-height:1.6}
.hero__col{width:fit-content;max-width:100%;padding:1.25rem 1.5rem;background:rgba(252,245,245,.96);border-radius:20px}
.hero__inner{padding-top:calc(var(--nav-h) + 24px)}
.hero .eyebrow,.hero__sub,.headline em{color:var(--ink)}
.hero__bottom{gap:12px;flex-wrap:wrap;letter-spacing:.03em;right:calc(var(--pad-x) + 68px)}
.hero__bottom>a,.hero__bottom>span,.hero__bottom button{background:var(--ink);color:#fff;border:0;border-radius:24px;padding:.6rem 1rem;font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.hero__bottom>a:hover,.hero__bottom button:hover{background:var(--hover)}
.shot figcaption{background:var(--ink);color:#fff;padding:.75rem 1rem;line-height:1.45;font-size:14px}
.velocity-photo>span,.velocity-photo:nth-child(even)>span{background:var(--ink);color:#fff;padding:.85rem 1rem;justify-content:center;border-radius:16px;inset:auto 10px 18px;gap:.6rem;font-size:14px}
.bloom-copy{inset:auto 0 0;background:var(--ink);color:#fff;padding:1rem .75rem;min-height:96px}.bloom-copy strong{font-size:1.9rem}.bloom-copy>span{font-size:14px;line-height:1.4}
.review-avatar{color:#71394f}.review-note,.review-card footer small{font-size:14px}.garden-copy h2 em{color:var(--accent)}
.garden-copy{background:rgba(255,247,248,.96);border-radius:24px;padding:2rem;max-width:calc(100% - 2rem);margin:3rem 0 5rem}
.garden-copy button{background:var(--surface);color:var(--ink);border-color:var(--control-border)}
.garden-copy button:hover,.garden-copy button:focus-visible{background:var(--hover);color:#fff}
.garden-reset{min-height:44px;padding:.5rem .75rem;border:1px solid var(--control-border);border-radius:22px;background:var(--surface);font-size:14px;bottom:1rem}
.garden-reset:hover,.garden-reset:focus-visible{background:var(--hover);color:#fff}
.lightbox__close{width:48px;height:48px;display:grid;place-items:center;border:1px solid white;border-radius:50%;background:var(--ink)}
.fab{bottom:calc(16px + env(safe-area-inset-bottom));right:16px;background:var(--ink);border:2px solid #fff}
.menu{background:var(--surface);overflow-y:auto;overscroll-behavior:contain;padding-top:calc(var(--nav-h) + 20px);padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.menu-open .fab{visibility:hidden}
@media(max-width:1100px) and (min-width:901px){.nav__links{gap:.85rem}.brand-crop{width:130px}.nav .btn--nav{padding:.8rem}.nav{gap:.5rem}}
@media(max-width:900px){
 :root{--nav-h:78px}
 .menu{justify-content:flex-start}.menu__list a{min-height:48px;font-size:clamp(1.8rem,6vh,3rem);line-height:1.25}.menu__foot{margin-top:1.2rem}.menu__rule{margin-top:1.2rem}
 .hero{min-height:max(760px,100svh)}.hero__inner{padding:calc(var(--nav-h) + 24px) var(--pad-x) 100px}.hero__col{padding:1.25rem;width:100%}
 .hero .eyebrow{font-size:12px;letter-spacing:.09em}.hero__sub{font-size:16px}.hero__bottom{bottom:24px;right:84px;left:20px}.hero__bottom>span{display:none}
 .about__grid,.contact__grid{grid-template-columns:minmax(0,1fr)}
 .section{padding-top:4rem;padding-bottom:4rem}.about__media{margin-top:1.5rem}
 .velocity-top{align-items:flex-start}.motion-toggle{font-size:14px}.velocity-top>span{font-size:14px}
 .bloom-stage{position:relative;justify-content:flex-start;padding:1.25rem 10%;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;min-height:350px;scrollbar-width:thin;touch-action:pan-x pan-y}
 .bloom-card,.bloom-card:first-child,.bloom-card.is-active{flex:0 0 100%;height:310px;margin:0;transform:none;filter:none;border-width:4px;scroll-snap-align:center;box-shadow:none}
 .bloom-card.is-active{border-color:var(--accent)}.bloom-copy{opacity:1;transform:none}
 .review-card,.review-card:nth-child(even){transform:none}.review-card p{padding-right:0}.review-heart{opacity:.6}
}
@media(max-width:560px){
 :root{--pad-x:20px}
 .headline{font-size:clamp(2.3rem,9vw,3rem);max-width:100%;line-height:1.08}.hero__col{padding:1rem}.hero__cta .btn{min-height:48px;font-size:15px}.hero__bottom>a,.hero__bottom button{font-size:14px;padding:.6rem .8rem;letter-spacing:0}
 h2.title{font-size:clamp(2.4rem,10vw,3rem)}.services__head .btn{width:100%}.services__grid{gap:2rem}
 .velocity-top{flex-direction:column;gap:.75rem}.velocity-top>span{max-width:none}.velocity-photo{width:210px}
 .bloom-stage{padding:1rem 7%;min-height:325px}.bloom-card,.bloom-card:first-child,.bloom-card.is-active{height:290px}.bloom-controls{gap:1rem}.bloom-controls>span{font-size:14px}
 .filters{gap:8px}.filters button{padding:.6rem .9rem}
 .shot{aspect-ratio:auto;display:flex;flex-direction:column}.shot img{aspect-ratio:3/4;height:auto;min-height:0}.shot.is-wide{aspect-ratio:auto}.shot.is-wide img{aspect-ratio:3/2}.shot figcaption{position:static;padding:.65rem;font-size:14px;flex:1}.shot:hover figcaption{transform:none}
 .contact .form{padding:1.25rem;min-width:0}.form .btn{width:100%;font-size:16px}.info a,.info span{font-size:16px;line-height:1.5}.row2{grid-template-columns:minmax(0,1fr)}
 .footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.footer__grid{grid-template-columns:minmax(0,1fr);gap:1.5rem}.footer h4{font-size:14px}.footer li,.footer p{font-size:16px}.footer__bar{align-items:flex-start;gap:.75rem}.footer__bar>span{font-size:14px}
 .review-card footer{align-items:flex-start}.review-avatar{flex:0 0 44px}.review-card footer small{line-height:1.4}.review-sign{display:none}
 .garden-copy{padding:1.5rem 1rem}.garden-copy h2{font-size:3.5rem}.garden-copy p:not(.eyebrow){font-size:16px}
}
@media(max-width:360px){.gallery{grid-template-columns:minmax(0,1fr)}.shot.is-wide{grid-column:span 1}.hero__bottom{gap:6px}.hero__bottom>a,.hero__bottom button{font-size:12px;padding:.6rem}.hero .eyebrow{letter-spacing:.02em}.hero__col{padding:.85rem}}
@media(hover:none){.service:hover,.review-card:hover,.btn:hover{transform:none}.velocity-photo:hover img,.shot:hover img,.service:hover img{transform:none}.review-card:hover .review-heart{transform:none}}
@media(prefers-reduced-motion:reduce){.hero__col{background:var(--surface)}.bloom-stage{scroll-behavior:auto}}
