.spruce-page,.spruce-portal{--spruce-ink:var(--text);--spruce-muted:var(--text-muted);--spruce-soft:color-mix(in srgb,var(--accent) 7%,var(--bg-card));--spruce-surface:var(--bg-card);--spruce-line:color-mix(in srgb,var(--accent) 16%,transparent);--spruce-line-strong:color-mix(in srgb,var(--accent) 30%,transparent);--spruce-teal:var(--accent);--spruce-teal-dark:var(--accent-hover);--spruce-mint:color-mix(in srgb,var(--accent) 18%,var(--bg-card));--spruce-amber:var(--secondary);--spruce-hero-copy-bg:rgba(8,18,16,0.56);--spruce-hero-copy-fade:rgba(8,18,16,0.36);--spruce-hero-vignette:rgba(8,18,16,0.2)}.spruce-page{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 88%,var(--accent) 12%) 0,var(--bg) 42%,var(--bg-card) 100%);color:var(--spruce-ink);font-family:var(--font-geist,ui-sans-serif,system-ui,sans-serif)}.spruce-container{width:min(1120px,calc(100% - 32px));margin:0 auto}.spruce-section{padding:88px 0}.spruce-kicker{margin:0;color:var(--spruce-teal);font-size:12px;font-weight:800;letter-spacing:.14em;line-height:1.2;text-transform:uppercase}.spruce-display,.spruce-h2,.spruce-h3{margin:0;color:var(--spruce-ink);font-family:var(--font-instrument-serif,Georgia,serif);font-weight:400;letter-spacing:0}.spruce-display{max-width:780px;font-size:clamp(48px,8vw,92px);line-height:.95}.spruce-h2{max-width:760px;font-size:clamp(38px,5vw,64px);line-height:1}.spruce-h3{font-size:clamp(30px,4vw,44px);line-height:1.05}.spruce-section-head{max-width:760px}.spruce-contact-hero-content .spruce-kicker,.spruce-section-head .spruce-kicker,.spruce-service-hero-content .spruce-kicker,.spruce-service-overview-grid .spruce-kicker{margin-bottom:18px}.spruce-section-head p:not(.spruce-kicker){margin-top:18px;color:var(--spruce-muted);font-size:17px;line-height:1.75}.spruce-section-head-split{display:flex;align-items:end;justify-content:space-between;gap:24px;max-width:none}.spruce-btn{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:13px 22px;font-size:14px;font-weight:800;line-height:1.2;text-decoration:none;transition:transform .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.spruce-btn:hover{transform:translateY(-1px)}.spruce-btn-primary{border:1px solid var(--spruce-teal);background:var(--spruce-teal);color:var(--accent-foreground);box-shadow:0 18px 34px -22px hsl(var(--accent-hsl)/.9)}.spruce-btn-primary:hover{background:var(--spruce-teal-dark);border-color:var(--spruce-teal-dark)}.spruce-btn-outline,.spruce-btn-soft{border:1px solid var(--spruce-line-strong);background:var(--spruce-surface);color:var(--spruce-teal-dark)}.spruce-btn-outline:hover,.spruce-btn-soft:hover{border-color:var(--spruce-teal);color:var(--spruce-ink)}.spruce-btn-block{width:100%}.spruce-hero{position:relative;min-height:760px;padding:84px 0;overflow:hidden;background:var(--spruce-mint)}.spruce-hero-bg{position:absolute;inset:0}.spruce-hero-bg img{object-fit:cover;object-position:center}.spruce-hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,var(--spruce-hero-copy-bg) 0,var(--spruce-hero-copy-fade) 34%,var(--spruce-hero-vignette) 58%,transparent 100%),linear-gradient(180deg,rgba(8,18,16,.08) 0,rgba(8,18,16,.24) 100%)}.spruce-hero-grid{position:relative;z-index:1;width:min(1220px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,.72fr);gap:42px;align-items:center}.spruce-hero-copy{padding:44px 0}.spruce-hero-copy .spruce-kicker{margin-bottom:18px;color:var(--spruce-amber);font-size:13px;text-shadow:0 2px 20px rgba(0,0,0,.42)}.spruce-hero-copy .spruce-display{color:rgba(255,255,255,.94);text-shadow:0 22px 60px rgba(0,0,0,.5)}.spruce-hero-body{margin:24px 0 0;max-width:680px;color:rgba(255,255,255,.82);font-size:20px;line-height:1.75;text-shadow:0 16px 46px rgba(0,0,0,.48)}.spruce-hero-actions{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}.spruce-hero-actions .spruce-btn{font-size:15px}.spruce-hero-media-wrap{position:relative;display:flex;min-height:640px;align-items:center;justify-content:flex-end;padding-top:0}.spruce-gallery-tile img,.spruce-service-media img{object-fit:cover}.spruce-lead-card{position:relative;width:min(400px,100%);border:1px solid var(--spruce-line);border-radius:24px;background:color-mix(in srgb,var(--bg-card) 92%,transparent);padding:22px;box-shadow:0 26px 70px -42px rgba(15,23,42,.55);backdrop-filter:blur(16px)}.spruce-lead-head h3{margin:0;font-size:22px;font-weight:800;letter-spacing:0}.spruce-lead-head p{margin:6px 0 0;color:var(--spruce-muted);font-size:13px;line-height:1.5}.spruce-lead-form{margin-top:18px;display:grid;gap:14px}.spruce-lead-banner-error{border-radius:14px;background:#fef2f2;padding:12px;color:#b91c1c;font-size:13px}.spruce-lead-success{border-radius:18px;background:var(--spruce-soft);padding:18px;text-align:center}.spruce-check{margin:0 auto 10px;display:flex;height:32px;width:32px;align-items:center;justify-content:center;border-radius:999px;background:var(--spruce-teal);color:var(--accent-foreground);font-weight:900}.spruce-lead-success h4{margin:0;font-size:18px}.spruce-lead-success p{margin:6px 0 0;color:var(--spruce-muted);font-size:13px}.spruce-services-grid{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.spruce-service-card{display:flex;min-height:100%;flex-direction:column;overflow:hidden;border:1px solid var(--spruce-line);border-radius:22px;background:var(--spruce-surface);color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.spruce-service-card:hover{transform:translateY(-2px);border-color:var(--spruce-line-strong);box-shadow:0 26px 58px -44px rgba(15,23,42,.5)}.spruce-service-media{position:relative;aspect-ratio:4/3;background:var(--spruce-mint)}.spruce-service-body{display:flex;flex:1;flex-direction:column;padding:22px}.spruce-service-body h3{margin:0;font-size:21px;font-weight:850;letter-spacing:0}.spruce-service-body p{margin:10px 0 0;color:var(--spruce-muted);font-size:14px;line-height:1.6}.spruce-service-body strong{margin-top:auto;padding-top:18px;color:var(--spruce-teal-dark);font-size:13px}.spruce-about{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent 48%),var(--bg-card)}.spruce-about-grid{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}.spruce-about-copy{max-width:720px}.spruce-about-copy .spruce-kicker{margin-bottom:20px}.spruce-about-intro{margin:26px 0 0;color:var(--spruce-muted);font-size:clamp(18px,2vw,23px);line-height:1.68}.spruce-about-image{position:relative;overflow:hidden;aspect-ratio:4/5;border-radius:28px;background:var(--spruce-mint);box-shadow:0 34px 78px -54px rgba(15,23,42,.62)}.spruce-about-image img{object-fit:cover}.spruce-about-image:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 42%,rgba(8,18,16,.46))}.spruce-about-image-label{position:absolute;left:22px;right:22px;bottom:20px;z-index:1;color:#fff;font-size:13px;font-weight:850;letter-spacing:.12em;line-height:1.35;text-transform:uppercase}.spruce-about-contact{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--spruce-line);padding-top:22px}.spruce-about-contact a{color:var(--spruce-teal-dark);font-weight:850;line-height:1.35;text-decoration:none}.spruce-about-contact a:hover{text-decoration:underline;text-underline-offset:4px}.spruce-gallery-grid{margin-top:36px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:180px;gap:14px}.spruce-gallery-tile{position:relative;overflow:hidden;border:0;border-radius:22px;background:var(--spruce-mint);cursor:zoom-in;isolation:isolate;transition:box-shadow .52s cubic-bezier(.22,1,.36,1),transform .52s cubic-bezier(.22,1,.36,1)}.spruce-gallery-tile:after{position:absolute;inset:0;z-index:1;content:"";background:linear-gradient(180deg,transparent 46%,color-mix(in srgb,var(--spruce-ink) 24%,transparent));opacity:0;pointer-events:none;transition:opacity .52s cubic-bezier(.22,1,.36,1)}.spruce-gallery-tile.is-large{grid-column:span 2;grid-row:span 2}.spruce-gallery-tile img{transform:scale(1.001);transition:transform .62s cubic-bezier(.22,1,.36,1);will-change:transform}.spruce-gallery-tile:focus-visible,.spruce-gallery-tile:hover{box-shadow:0 24px 54px -42px color-mix(in srgb,var(--spruce-ink) 60%,transparent);transform:translateY(-2px)}.spruce-gallery-tile:focus-visible:after,.spruce-gallery-tile:hover:after{opacity:1}.spruce-gallery-tile:focus-visible img,.spruce-gallery-tile:hover img{transform:scale(1.052)}.spruce-gallery-tile:focus-visible{outline:2px solid var(--spruce-teal);outline-offset:3px}.spruce-gallery-action{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--spruce-teal) 28%,var(--spruce-line));border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--bg-card) 88%,transparent),transparent 62%),color-mix(in srgb,var(--spruce-teal) 10%,var(--bg-card));color:var(--spruce-ink);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;padding:22px;text-align:left;transition:border-color .22s ease,transform .22s ease,background-color .22s ease}.spruce-gallery-action:after{position:absolute;right:-26px;bottom:-34px;content:"";width:116px;height:116px;border:1px solid color-mix(in srgb,var(--spruce-teal) 34%,transparent);border-radius:999px}.spruce-gallery-action:hover{border-color:var(--spruce-teal);transform:translateY(-2px)}.spruce-gallery-action span:first-child{color:var(--spruce-teal-dark);font-size:12px;font-weight:850;letter-spacing:.12em;line-height:1.35;text-transform:uppercase}.spruce-gallery-action strong{max-width:12rem;color:var(--spruce-ink);font-size:22px;font-weight:850;letter-spacing:-.02em;line-height:1.05}.spruce-gallery-action-arrow{align-self:flex-end;color:var(--spruce-teal-dark);font-size:22px;font-weight:850;line-height:1}.spruce-testimonials{background:color-mix(in srgb,var(--bg) 92%,var(--secondary) 8%)}.spruce-reviews-grid,.spruce-testimonials-grid{margin-top:30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.spruce-review-card,.spruce-review-prompt,.spruce-testimonial{border:1px solid var(--spruce-line);border-radius:22px;background:var(--spruce-surface);padding:24px;color:var(--spruce-ink);box-shadow:0 18px 46px -42px rgba(15,23,42,.42)}.spruce-testimonial p{margin:0;color:var(--spruce-ink);font-size:16px;line-height:1.7}.spruce-testimonial footer{margin-top:24px;display:flex;flex-direction:column;gap:4px}.spruce-testimonial footer span{color:var(--spruce-muted);font-size:13px}.spruce-hours-areas{background:var(--bg)}.spruce-hours-grid{display:grid;grid-template-columns:minmax(280px,.55fr) minmax(0,1fr);gap:22px}.spruce-area-card,.spruce-booking-card,.spruce-hours-card{border:1px solid var(--spruce-line);border-radius:26px;background:var(--spruce-surface);padding:28px}.spruce-hours-list{margin:24px 0 0;padding:0;list-style:none}.spruce-hours-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--spruce-line);padding:12px 0;color:var(--spruce-muted);font-size:14px}.spruce-hours-list li strong{color:var(--spruce-ink);font-weight:750;text-align:right}.spruce-hours-list li.is-closed strong{color:var(--spruce-muted)}.spruce-hours-contact{margin-top:24px;display:grid;gap:8px}.spruce-hours-contact a{color:var(--spruce-teal-dark);font-weight:800;text-decoration:none}.spruce-map-frame{position:relative;margin-top:22px;overflow:hidden;border-radius:22px;background:var(--spruce-soft)}.spruce-map{height:420px;min-height:420px;width:100%}.spruce-map-empty{display:flex;align-items:center;justify-content:center;padding:28px;color:var(--spruce-muted);text-align:center}.spruce-map-btn{position:absolute;right:18px;bottom:18px;box-shadow:0 18px 38px -26px rgba(15,23,42,.42)}.spruce-booking{background:linear-gradient(180deg,var(--bg-card),var(--bg))}.spruce-booking-card{margin-top:30px}.spruce-booking-modal-shell{max-height:92vh;max-width:720px;overflow-y:auto;border:1px solid var(--spruce-line);border-radius:28px;background:var(--bg-card);padding:0}.spruce-fab-bar{position:fixed;right:16px;bottom:16px;z-index:70;display:none;gap:8px;opacity:0;transform:translateY(16px);transition:opacity .18s ease,transform .18s ease}.spruce-fab-bar.is-visible{opacity:1;transform:translateY(0)}.spruce-fab-btn{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 16px;font-size:13px;font-weight:850;text-decoration:none;box-shadow:0 18px 42px -24px rgba(15,23,42,.55)}.spruce-fab-call{background:var(--bg-card);color:var(--spruce-teal-dark)}.spruce-fab-quote{border:0;background:var(--spruce-teal);color:var(--accent-foreground)}.spruce-fab-icon{height:15px;width:15px}html[data-nav-menu=open] .spruce-fab-bar{display:none!important}.spruce-page~footer{background:var(--bg-card)}.spruce-contact-hero{position:relative;min-height:clamp(340px,34vw,420px);overflow:hidden;display:flex;align-items:end;background:var(--spruce-mint)}.spruce-contact-media{position:absolute;inset:0}.spruce-contact-media:after{position:absolute;inset:0;content:"";background:linear-gradient(90deg,color-mix(in srgb,var(--bg-card) 96%,transparent),color-mix(in srgb,var(--bg-card) 62%,transparent))}.spruce-contact-media img{object-fit:cover}.spruce-contact-hero-content{position:relative;z-index:1;padding:clamp(72px,7vw,96px) 0 clamp(42px,5vw,58px)}.spruce-contact-hero-content p:not(.spruce-kicker){margin-top:14px;max-width:640px;color:var(--spruce-muted);font-size:18px;line-height:1.65}.spruce-contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.46fr);gap:24px;align-items:start}.spruce-contact-card,.spruce-contact-info-block{border:1px solid var(--spruce-line);border-radius:26px;background:var(--bg-card);padding:28px;box-shadow:0 24px 60px -48px rgba(15,23,42,.42)}.spruce-contact-side{display:grid;gap:18px}.spruce-contact-label{color:var(--spruce-muted);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.spruce-contact-value{color:var(--spruce-ink);font-size:15px;font-weight:700}.spruce-contact-hours{color:var(--spruce-muted);font-size:14px}.spruce-contact-copy{margin:14px 0 0;color:var(--spruce-muted);font-size:15px;line-height:1.7}.spruce-contact-map{overflow:hidden;border-top:1px solid var(--spruce-line);border-bottom:1px solid var(--spruce-line)}.spruce-breadcrumb-strip{border-bottom:1px solid var(--spruce-line);background:color-mix(in srgb,var(--bg-card) 78%,transparent);padding:14px 0}.spruce-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;color:var(--spruce-muted);font-size:13px;font-weight:750}.spruce-breadcrumb a{color:var(--spruce-teal-dark);text-decoration:none}.spruce-breadcrumb strong{color:var(--spruce-ink);font-weight:850}.spruce-service-hero{position:relative;min-height:640px;overflow:hidden;display:flex;align-items:end;background:var(--spruce-mint)}.spruce-service-hero-media{position:absolute;inset:0}.spruce-service-hero-media:after{position:absolute;inset:0;content:"";background:linear-gradient(90deg,color-mix(in srgb,var(--bg-card) 96%,transparent),color-mix(in srgb,var(--bg-card) 38%,transparent)),linear-gradient(0deg,color-mix(in srgb,var(--bg-card) 90%,transparent),transparent 42%)}.spruce-service-hero-media img{object-fit:cover}.spruce-service-hero-content{position:relative;z-index:1;padding:120px 0 76px}.spruce-service-hero-content p:not(.spruce-kicker){margin:20px 0 28px;max-width:680px;color:var(--spruce-muted);font-size:18px;line-height:1.75}.spruce-service-overview{background:var(--bg)}.spruce-service-overview-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(340px,.62fr);gap:28px;align-items:start}.spruce-service-overview-grid>div>p:not(.spruce-kicker){margin-top:20px;color:var(--spruce-muted);font-size:17px;line-height:1.75}.spruce-includes-card{border:1px solid var(--spruce-line);border-radius:26px;background:#f7fffc;padding:28px}.spruce-includes-card ul{margin:22px 0 0;padding:0;list-style:none;display:grid;gap:14px}.spruce-includes-card li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start}.spruce-includes-card li span{display:flex;height:24px;width:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--spruce-teal);color:var(--accent-foreground);font-size:12px;font-weight:900}.spruce-includes-card li p{margin:1px 0 0;color:var(--spruce-ink);font-size:14px;line-height:1.55}.spruce-related{background:var(--bg-card)}.spruce-related-grid{margin-top:34px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}@media (max-width:1040px){.spruce-hero-grid{grid-template-columns:1fr}.spruce-hero-media-wrap{min-height:auto;padding-top:24px}.spruce-reviews-grid,.spruce-services-grid,.spruce-testimonials-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spruce-about-grid,.spruce-contact-grid,.spruce-hours-grid,.spruce-service-overview-grid{grid-template-columns:1fr}.spruce-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.spruce-section{padding:64px 0}.spruce-hero{min-height:auto;padding:48px 0 40px}.spruce-hero-bg img{object-position:24% center}.spruce-hero-scrim{background:linear-gradient(180deg,rgba(8,18,16,.34),rgba(8,18,16,.5)),linear-gradient(90deg,rgba(8,18,16,.2),transparent)}.spruce-hero-copy{padding:20px 0 0}.spruce-display{font-size:48px}.spruce-contact-hero{min-height:300px}.spruce-contact-hero-content{padding:56px 0 40px}.spruce-contact-hero-content p:not(.spruce-kicker){font-size:16px;line-height:1.6}.spruce-hero-media-wrap{min-height:auto;padding-top:0}.spruce-lead-card{position:relative;width:100%;margin-top:16px;border-radius:22px}.spruce-reviews-grid,.spruce-services-grid,.spruce-testimonials-grid{grid-template-columns:1fr}.spruce-section-head-split{align-items:start;flex-direction:column}.spruce-gallery-grid{grid-template-columns:1fr;grid-auto-rows:220px}.spruce-gallery-tile.is-large{grid-column:span 1;grid-row:span 1}.spruce-gallery-action{min-height:180px}.spruce-map{height:360px;min-height:360px}.spruce-map-btn{position:static;width:calc(100% - 24px);margin:12px}.spruce-fab-bar{left:12px;right:12px;display:flex}.spruce-fab-btn{flex:1;padding-inline:12px}body:has(.spruce-fab-bar) .spruce-page~footer{padding-bottom:92px}.spruce-service-hero{min-height:540px}.spruce-related-grid{grid-template-columns:1fr}}
