:root{--color-bg:#fff;--color-bg-alt:#f2ecdd;--color-text:#16211f;--color-text-muted:#4b5a58;--color-border:#d8e2e0;--color-border-alt:#e3d7ba;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display:Georgia, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif;--radius:.25rem;--max-width:72rem;--ease:cubic-bezier(.2, .7, .3, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);margin:0;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:var(--color-primary-dark)}.wrap{max-width:var(--max-width);margin-inline:auto;padding-inline:1.25rem}.skip-link{background:var(--color-primary);color:#fff;z-index:100;padding:.75rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{top:.5rem;left:.5rem}:root{--focus-ring:var(--color-primary-dark)}.site-header,.hero,.site-footer{--focus-ring:#fff}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.ornament{color:var(--color-accent);justify-content:center;align-items:center;margin-block:1.75rem;display:flex}.ornament svg{width:8rem;height:auto}section.alt .ornament,.hero .ornament{color:#ffffffbf}section.alt .ornament{color:var(--color-accent)}[data-reveal]{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(1.25rem)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transition:none;transform:none}}.site-header{background:var(--color-primary);color:#fff;z-index:20;position:sticky;top:0}.site-header__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block:.65rem;display:flex}.logo{color:#fff;line-height:1.1;font-family:var(--font-display);flex-direction:column;text-decoration:none;display:flex}.logo__name{letter-spacing:.05em;text-transform:uppercase;font-size:1.4rem;font-weight:700}.logo__sub{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;opacity:.8;font-size:.65rem}.logo__img{border:1px solid #ffffff59;width:auto;height:2.75rem;padding:2px}.nav{flex-wrap:wrap;gap:1.5rem;display:flex}.nav a{color:#fff;letter-spacing:.08em;text-transform:uppercase;transition:border-color .2s var(--ease);border-bottom:1px solid #0000;padding-block:.25rem;font-size:.8rem;text-decoration:none}.nav a:hover,.nav a:focus-visible{border-color:#fff}.hero{background:linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;text-align:center;padding-block:4.5rem 3.5rem;position:relative;overflow:hidden}.hero__bg{opacity:.32;z-index:0;filter:grayscale(.5)sepia(.25)hue-rotate(130deg)saturate(1.6);background-position:50% 120%;background-size:cover;background-attachment:fixed;width:100%;height:100%;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.hero__bg{background-attachment:scroll}}.hero>.wrap{z-index:1;position:relative}.hero__eyebrow{letter-spacing:.25em;text-transform:uppercase;color:#fff;opacity:.85;margin-bottom:1rem;font-size:.75rem;font-weight:600;display:block}.hero h1{font-family:var(--font-display);letter-spacing:.02em;margin:0 0 .5rem;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:400}.hero p.hero__address{opacity:.8;letter-spacing:.02em;margin:0 auto;font-size:.85rem}.hero p{opacity:.95;max-width:38rem;margin:0 auto 2rem;font-size:1.1rem}.hero p.hero__description{font-family:var(--font-display);font-size:1.25rem;font-style:italic;font-weight:400;line-height:1.5}.hero__actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn{border-radius:var(--radius);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);border:1px solid #0000;padding:.75rem 1.75rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-block}.btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn--primary:hover,.btn--primary:focus-visible{filter:brightness(.85)}.btn--outline{color:#fff;background:0 0;border-color:#fff9}.btn--outline:hover,.btn--outline:focus-visible{background:#ffffff1f;border-color:#fff}section{padding-block:4rem}section.alt{background:var(--color-bg-alt)}.section-title{font-family:var(--font-display);text-align:center;margin:0 0 1.5rem;font-size:clamp(1.6rem,4vw,2.25rem);font-weight:400}.services-list{max-width:42rem;margin-inline:auto}.service-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:baseline;gap:1.5rem;padding-block:1.1rem;display:flex}.service-row:first-child{border-top:1px solid var(--color-border)}.service-row h3{font-family:var(--font-display);margin:0;font-size:1.15rem;font-weight:400}.service-row p{color:var(--color-text-muted);text-align:right;white-space:nowrap;margin:0;font-size:.9rem}.about{align-items:center;gap:2.5rem;display:grid}@media (width>=56rem){.about{grid-template-columns:1fr 1fr}}.about__story:first-letter{font-family:var(--font-display);float:left;color:var(--color-primary);padding-top:.3rem;padding-right:.5rem;font-size:3.2rem;line-height:.8}.gallery-fader{aspect-ratio:4/5;border:1px solid var(--color-accent);width:100%;padding:10px;position:relative;overflow:hidden}.gallery-fader img{object-fit:cover;opacity:0;width:calc(100% - 20px);height:calc(100% - 20px);position:absolute;inset:10px}.gallery-fader--static img{opacity:1;width:100%;height:100%;position:static}.contact-grid{gap:2.5rem;display:grid}@media (width>=56rem){.contact-grid{grid-template-columns:1fr 1fr}}.contact-premises{align-content:start;gap:1rem;display:grid}.contact-premises img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--color-accent);padding:6px}.hours-table{border-collapse:collapse;width:100%}.hours-table td{border-bottom:1px solid var(--color-border);padding:.4rem 0;font-size:.95rem}.hours-table td:last-child{text-align:right;font-weight:600}.contact-info p{margin:.4rem 0}.form-field{flex-direction:column;gap:.35rem;margin-bottom:1.1rem;display:flex}.form-field label{letter-spacing:.03em;font-size:.85rem;font-weight:600}.form-field input,.form-field textarea{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;color:var(--color-text);background:#fff;padding:.65rem .75rem}.form-field input:focus,.form-field textarea:focus{border-color:var(--color-accent)}.honeypot-field{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-status{border-radius:var(--radius);margin-top:1rem;padding:.85rem 1rem;font-weight:600}.form-status[data-state=success]{color:#1b5e3a;background:#e2f3ec}.form-status[data-state=error]{color:#7a1f1f;background:#fbe4e4}.form-status[hidden]{display:none}.site-footer{background:var(--color-primary-dark);color:#d9e6e4;padding-block:1.5rem;font-size:.85rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.site-footer a{color:#d9e6e4}.site-footer a:hover,.site-footer a:focus-visible{color:#fff}.reviews-badge{border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .2s var(--ease);align-items:center;gap:1rem;margin-top:1.5rem;padding:1rem 1.5rem;text-decoration:none;display:inline-flex}.reviews-badge:hover,.reviews-badge:focus-visible{border-color:var(--color-accent)}.reviews-badge__score{font-family:var(--font-display);color:var(--color-text);font-size:1.1rem;font-weight:700;line-height:1}.reviews-badge__details{flex-direction:column;gap:.4rem;display:flex}.reviews-badge__count{color:var(--color-text-muted);font-size:.85rem}.stars{letter-spacing:.1em;color:var(--color-border);font-size:1.75rem;display:inline-block;position:relative}.stars:before{content:"★★★★★";width:calc(var(--rating) / 5 * 100%);white-space:nowrap;color:var(--color-accent);position:absolute;inset:0;overflow:hidden}.legal{max-width:42rem;margin-inline:auto;padding-block:3rem}.legal h1{font-family:var(--font-display);font-size:1.9rem;font-weight:400}.legal h2{color:var(--color-primary-dark);margin-top:2rem;font-size:1.2rem}:root{--color-primary:var(--colorPrimary);--color-primary-dark:var(--colorPrimaryDark);--color-accent:var(--colorAccent)}
