:root{--bg: #f4f1eb;--surface: #faf8f4;--ink: #2a2824;--muted: #6f6a62;--line: rgba(42, 40, 36, .1);--accent: #8c4a3a;--accent-hover: #733c30;--accent-soft: rgba(140, 74, 58, .12);--lagoon: #5b7c6e;--lagoon-deep: #4a675b;--ocean: #5a7380;--shadow-sm: 0 1px 2px rgba(42, 40, 36, .05);--shadow: 0 10px 28px rgba(42, 40, 36, .07);--shadow-lg: 0 18px 40px rgba(42, 40, 36, .12);--radius: 6px;--radius-lg: 10px;--font-display: "Fraunces", "Times New Roman", serif;--font-body: "Outfit", system-ui, sans-serif;--header-h: 4.25rem;--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}img{display:block;max-width:100%}#app{min-height:100vh}.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;height:var(--header-h);padding:0 clamp(1.5rem,3vw,2.75rem);background:#faf8f4eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:.65rem}.brand-mark{width:.7rem;height:.7rem;border-radius:1px;background:var(--accent)}.brand-name{font-family:var(--font-display);font-weight:560;font-size:1.35rem;letter-spacing:-.03em;color:var(--ink)}.site-nav{display:flex;gap:.15rem;font-size:.86rem;font-weight:500;letter-spacing:.02em}.site-nav a{padding:.45rem .85rem;color:var(--muted);transition:color .2s ease}.site-nav a:hover,.site-nav a.is-active{color:var(--ink)}.eyebrow{margin:0 0 .55rem;font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.panel-intro{margin-bottom:1.75rem}.panel-title{margin:0 0 .75rem;font-family:var(--font-display);font-weight:560;font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:-.035em;line-height:1.05;color:var(--ink)}.panel-title-sm{font-size:clamp(1.8rem,3.2vw,2.4rem)}.panel-lead{margin:0;max-width:34rem;color:var(--muted);font-size:1.05rem;line-height:1.55}.back-link{display:inline-flex;align-items:center;gap:.25rem;margin-bottom:1.1rem;font-size:.86rem;font-weight:500;color:var(--muted)}.back-link:hover{color:var(--ink)}.explore-shell{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:calc(100vh - var(--header-h))}.panel-stack{position:relative;overflow:hidden;padding:2rem clamp(1.5rem,3vw,2.5rem) 2.5rem;background:var(--surface);border-right:1px solid var(--line);min-height:calc(100vh - var(--header-h))}.panel{width:100%}.panel-stack.is-drilled .panel-services{transform:translate(-110%);opacity:0;pointer-events:none}.panel-services,.panel-businesses{transition:transform .55s var(--ease),opacity .35s ease}.panel-businesses{position:absolute;inset:0;padding:2rem clamp(1.5rem,3vw,2.5rem) 2.5rem;transform:translate(110%);opacity:0;pointer-events:none;overflow:auto;background:var(--surface)}.panel-stack.is-drilled .panel-businesses{transform:translate(0);opacity:1;pointer-events:auto}.service-grid,.biz-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.service-grid li:last-child:nth-child(odd){grid-column:1 / -1}.service-tile,.biz-tile{--tile: #e6ede8;--ink-soft: #5b7c6e;width:100%;display:flex;flex-direction:column;text-align:left;overflow:hidden;border-radius:var(--radius-lg);background:var(--tile);border:1px solid transparent;transition:transform .25s var(--ease),border-color .2s ease,box-shadow .25s var(--ease)}.service-tile:hover,.biz-tile:hover,.biz-tile.is-hovered,.service-tile.is-selected{transform:translateY(-2px);border-color:color-mix(in srgb,var(--ink-soft) 28%,transparent);box-shadow:var(--shadow)}.service-tile-photo,.biz-tile-photo{display:block;aspect-ratio:16 / 10;overflow:hidden}.service-tile-photo img,.biz-tile-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04)}.service-tile-body,.biz-tile-body{display:grid;gap:.2rem;padding:.95rem 1rem 1.1rem}.service-name,.biz-name{display:block;font-family:var(--font-display);font-weight:560;font-size:1.15rem;letter-spacing:-.02em}.service-blurb,.biz-tag{display:block;color:var(--muted);font-size:.86rem}.biz-area{display:block;margin-bottom:.15rem;font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.biz-price{display:block;margin-top:.45rem;font-size:.88rem;font-weight:500;color:var(--ink)}.map-wrap{position:relative;min-height:calc(100vh - var(--header-h));background:#e6e1d8}.map-stage{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow:hidden}.map-svg{width:100%;height:100%;display:block}.map-place{fill:#2a28246b;font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.map-caption{position:absolute;left:1.25rem;bottom:1.25rem;margin:0;padding:.35rem .7rem;border:1px solid var(--line);background:#faf8f4e0;font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.map-pins{position:absolute;inset:0;pointer-events:none}.map-shimmer{position:absolute;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:#5c574e;opacity:.35;animation:shimmer 3.4s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:.22;transform:scale(.9)}50%{opacity:.7;transform:scale(1.15)}}.map-pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:0;z-index:1}.map-pin-dot{display:block;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid #faf8f4;box-shadow:0 2px 8px #2a282433;transition:transform .25s var(--ease)}.map-pin-card{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translate(-50%) translateY(6px);display:grid;grid-template-columns:64px 1fr;gap:.55rem;align-items:center;width:200px;padding:.4rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .25s var(--ease)}.map-pin-card img{width:64px;height:64px;object-fit:cover}.map-pin-meta{display:grid;gap:.15rem;padding-right:.35rem}.map-pin-meta strong{font-size:.78rem;font-weight:500;line-height:1.25}.map-pin-meta em{font-style:normal;font-size:.72rem;color:var(--muted)}.map-pin.is-active{z-index:5}.map-pin.is-active .map-pin-dot,.map-pin:hover .map-pin-dot{transform:scale(1.55)}.map-pin.is-active .map-pin-card,.map-pin:hover .map-pin-card,.map-pin:focus-visible .map-pin-card{opacity:1;transform:translate(-50%) translateY(0)}.page-shell{max-width:1120px;margin:0 auto;padding:1.5rem clamp(1.25rem,3vw,2.5rem) 3.5rem}.gallery{display:grid;grid-template-columns:1.7fr 1fr;gap:.55rem;margin-bottom:2rem;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.gallery-hero{width:100%;height:100%;min-height:360px;object-fit:cover}.gallery-stack{display:grid;gap:.55rem}.gallery-side{width:100%;height:100%;min-height:175px;object-fit:cover}.booking-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:2.5rem;align-items:start}.booking-copy h1{margin:0 0 .35rem;font-family:var(--font-display);font-size:clamp(1.75rem,2.8vw,2.2rem);letter-spacing:-.04em}.booking-tagline{margin:0;color:var(--muted);font-size:1.05rem}.rule{border:0;border-top:1px solid var(--line);margin:1.35rem 0}.booking-desc{margin:0;max-width:38rem;font-size:1rem;line-height:1.65;color:var(--ink)}.booking-card{position:sticky;top:calc(var(--header-h) + 1.25rem);padding:1.4rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.price{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.45rem;font-weight:560;letter-spacing:-.03em;color:var(--ink)}.price-note,.muted{margin:0 0 1.1rem;color:var(--muted);font-size:.88rem}.btn-primary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:3rem;padding:.7rem 1rem;border-radius:var(--radius);font-weight:500;letter-spacing:.02em;transition:background .15s ease,color .15s ease}.btn-primary{background:var(--ink);color:#faf8f4}.btn-primary:hover{background:var(--accent)}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.book-form{display:grid;gap:.7rem}.book-form label{display:grid;gap:.3rem;font-size:.78rem;font-weight:700;color:var(--muted)}.book-form input,.book-form textarea{width:100%;padding:.7rem .8rem;border-radius:10px;border:1px solid var(--line);background:#fff}.book-form input:focus,.book-form textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.success-title{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.35rem;font-weight:560;color:var(--ink)}.static-page{max-width:38rem;padding-top:1.5rem}.static-page h1{margin:0 0 1rem;font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3rem);letter-spacing:-.035em;color:var(--ink)}.static-page p{color:var(--ink);line-height:1.65}.contact-list{list-style:none;margin:1.5rem 0;padding:0;display:grid;gap:.85rem}.contact-list li{display:grid;grid-template-columns:5rem 1fr;gap:.75rem;padding:.85rem 1rem;border-radius:var(--radius);background:#e6ede8;border:1px solid transparent}.contact-list span{color:var(--muted);font-size:.8rem;font-weight:700}.contact-list a{color:var(--accent);font-weight:700}@media(max-width:960px){.explore-shell,.service-grid,.biz-grid{grid-template-columns:1fr}.panel-stack{min-height:auto;border-right:0;border-bottom:1px solid var(--line)}.map-wrap,.map-stage{min-height:48vh;height:48vh;position:relative;top:0;order:-1}.explore-shell .map-wrap{order:-1}.booking-grid,.gallery{grid-template-columns:1fr}.gallery-hero{min-height:240px}.booking-card{position:static}}
