:root{--ink:#211d20;--muted:#766d72;--paper:#f6f2ef;--card:#fff;--wine:#a61f3f;--wine-dark:#74142c;--line:#e6dcdf;--gold:#c79b5a;--shadow:0 18px 50px rgba(35,20,26,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.65}body.gated{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}button{font:inherit}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.site-header{height:74px;background:#171518;color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 1px rgba(255,255,255,.08)}.header-inner{height:100%;display:flex;align-items:center;gap:36px}.brand{display:flex;align-items:center;gap:11px;font-size:.75rem;letter-spacing:.14em;white-space:nowrap}.brand b{display:block;color:#d99bb0}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid #d99bb0;border-radius:50%;font-family:Georgia,serif;font-size:1rem;letter-spacing:0}.header-inner nav{display:flex;gap:28px;margin-left:auto}.header-inner nav a{font-size:.86rem;color:#d9d1d5}.header-inner nav a:hover{color:#fff}.header-contact{border:1px solid #9f7a86;border-radius:999px;padding:8px 18px;font-size:.84rem}
.profile-hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(315px,.72fr);gap:38px;padding-top:38px;padding-bottom:50px}.gallery{display:grid;grid-template:repeat(2,220px)/repeat(3,1fr);gap:9px;border-radius:18px;overflow:hidden;background:#d9ced2}.photo{position:relative;border:0;padding:0;cursor:pointer;overflow:hidden;background:#cbbfc3}.photo img{height:100%;object-fit:cover;transition:transform .5s ease}.photo:hover img{transform:scale(1.035)}.photo-1{grid-row:1/3;grid-column:1/3}.photo-count{position:absolute;right:14px;bottom:14px;padding:7px 11px;background:rgba(17,14,16,.75);color:#fff;border-radius:99px;font-size:.75rem;backdrop-filter:blur(6px)}
.profile-summary{padding:14px 4px;align-self:center}.status-row{display:flex;align-items:center;gap:8px;color:#488151;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.status-dot{width:8px;height:8px;background:#52a962;border-radius:50%;box-shadow:0 0 0 5px rgba(82,169,98,.12)}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;line-height:1.1}.profile-summary h1{font-size:clamp(2.45rem,4vw,4rem);margin:15px 0 11px}.tagline{font-size:1.05rem;color:#5f555a;margin:0 0 18px}.location{font-size:.92rem;color:var(--muted)}.verified-card{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:23px 0;background:#fff;border:1px solid var(--line);border-radius:12px}.verified-card strong,.verified-card small{display:block}.verified-card small{font-size:.76rem;color:var(--muted)}.verified-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--wine);color:#fff;font-weight:800}.contact-stack{display:grid;grid-template-columns:1fr 1fr;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:7px;padding:11px 18px;font-weight:750;cursor:pointer}.button-primary{background:var(--wine);color:#fff}.button-primary:hover{background:var(--wine-dark)}.button-outline{border:1px solid var(--wine);color:var(--wine);background:transparent}.button-outline:hover{background:#fff}.button-quiet{background:#eee6e8;color:var(--ink)}.button-large{min-height:50px}.contact-note{font-size:.78rem;color:var(--muted);line-height:1.45}
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:52px;padding-bottom:70px}.main-column{min-width:0}.content-section{padding:42px 0;border-top:1px solid var(--line)}.content-section:first-child{border-top:0;padding-top:10px}.eyebrow{margin:0 0 8px;color:var(--wine);font-weight:800;font-size:.71rem;text-transform:uppercase;letter-spacing:.16em}.content-section h2,.booking-card h2{font-size:clamp(1.9rem,3vw,2.65rem);margin:0 0 22px}.content-section>p:not(.eyebrow):not(.fine-print){font-family:Georgia,serif;font-size:1.07rem;color:#4f474b}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 45px;margin:0}.detail-grid div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0;font-weight:700;text-align:right}.tag-list{display:flex;flex-wrap:wrap;gap:9px}.tag-list span{padding:8px 13px;border-radius:99px;background:#eee5e7;color:#55474d;font-size:.83rem}.rate-list{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff}.rate-row{display:flex;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line)}.rate-row:last-child{border:0}.rate-row strong{color:var(--wine)}.fine-print{font-size:.78rem;color:var(--muted)}.schedule{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.schedule div{display:flex;justify-content:space-between;padding:13px 15px;background:#fff;border:1px solid var(--line);border-radius:9px;font-size:.86rem}.schedule strong{font-size:.79rem}.side-column{position:relative}.booking-card{position:sticky;top:105px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:29px;box-shadow:var(--shadow)}.booking-card p:not(.eyebrow){color:var(--muted)}.booking-card .button{width:100%;margin-top:9px}.booking-card ul{padding:18px 0 0;margin:18px 0 0;list-style:none;border-top:1px solid var(--line)}.booking-card li{font-size:.83rem;color:#5e5358;margin:7px 0}.booking-card li:before{content:"✓";color:var(--wine);font-weight:800;margin-right:9px}
footer{background:#171518;color:#cfc5c9;padding:52px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-grid a:not(.brand){font-size:.84rem;color:#a99da2}.footer-grid strong{color:#fff}.footer-brand{color:#fff}.footer-grid p{font-size:.82rem}.legal{margin-top:40px;padding-top:18px;border-top:1px solid #342f32;font-size:.73rem;color:#81777b}.mobile-contact{display:none}
.age-gate{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:20px;background:rgba(14,11,13,.94);backdrop-filter:blur(12px)}.age-gate.visible{display:grid}.age-card{width:min(460px,100%);text-align:center;padding:42px;background:#fff;border-radius:20px;box-shadow:var(--shadow)}.age-card .brand-mark{margin:0 auto 24px}.age-card h1{font-size:2.4rem;margin:4px 0 15px}.age-card>p:not(.eyebrow){font-size:.9rem;color:var(--muted)}.age-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}
.lightbox{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(10,8,9,.96);padding:40px}.lightbox.open{display:flex}.lightbox img{max-width:min(100%,920px);max-height:calc(100vh - 80px);width:auto;border-radius:5px}.lightbox-close,.lightbox-nav{position:absolute;border:0;color:#fff;background:rgba(255,255,255,.08);cursor:pointer}.lightbox-close{right:20px;top:18px;width:43px;height:43px;border-radius:50%;font-size:1.8rem}.lightbox-nav{top:50%;transform:translateY(-50%);width:48px;height:70px;font-size:2.4rem;border-radius:7px}.lightbox-nav.prev{left:20px}.lightbox-nav.next{right:20px}.lightbox-counter{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);color:#fff;font-size:.8rem}
@media(max-width:900px){.header-inner nav{display:none}.header-contact{margin-left:auto}.profile-hero{grid-template-columns:1fr;gap:22px}.profile-summary{padding:0}.content-layout{grid-template-columns:1fr}.side-column{display:none}.gallery{grid-template-rows:repeat(2,180px)}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:600px){.container{width:min(100% - 26px,1180px)}body{padding-bottom:66px}.site-header{height:62px}.brand{font-size:.66rem}.brand-mark{width:33px;height:33px}.header-contact{display:none}.profile-hero{padding-top:13px;padding-bottom:34px}.gallery{margin-inline:-13px;border-radius:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:4px}.photo{flex:0 0 86%;height:510px;scroll-snap-align:center}.photo-1{grid-area:auto}.photo img{height:100%}.profile-summary h1{font-size:2.55rem}.contact-stack{grid-template-columns:1fr}.content-section{padding:34px 0}.detail-grid,.schedule{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.mobile-contact{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;background:#171518;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));gap:8px}.mobile-contact a{display:grid;place-items:center;min-height:45px;border-radius:6px;background:var(--wine);color:#fff;font-weight:800;font-size:.85rem}.mobile-contact a:last-child{background:#fff;color:var(--wine)}.age-card{padding:31px 22px}.age-actions{grid-template-columns:1fr}.lightbox{padding:20px}.lightbox-nav{top:auto;bottom:12px;height:44px}.lightbox-nav.prev{left:14px}.lightbox-nav.next{right:14px}}
.directory-page{padding-bottom:0}.directory-main{padding-top:48px;padding-bottom:70px;min-height:65vh}.directory-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.directory-heading h1{font-size:clamp(2.2rem,4vw,3.8rem);margin:10px 0}.profile-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.profile-card{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:white}.card-photo{display:block;aspect-ratio:3/4;overflow:hidden}.card-photo img{height:100%;object-fit:cover;transition:transform .3s}.card-photo:hover img{transform:scale(1.025)}.card-body{padding:22px}.card-body h2{font-size:1.9rem;margin:10px 0}.card-body p{overflow-wrap:anywhere}.card-meta{display:flex;gap:12px;justify-content:space-between;margin:18px 0;font-size:.875rem;color:var(--muted)}.card-body .button{width:100%}.no-photo,.directory-empty{display:grid;place-content:center;background:#e9dfe3;padding:35px;height:100%;text-align:center}.gallery{grid-auto-rows:160px}.gallery .photo:nth-child(n+4){min-height:160px}.brand>span:last-child{white-space:normal;max-width:260px;line-height:1.3}@media(max-width:900px){.profile-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.profile-cards{grid-template-columns:1fr}.directory-heading{align-items:flex-start;flex-direction:column}.directory-main{padding-top:28px}.brand>span:last-child{max-width:190px}}
.footer-banner{text-align:center;padding-block:24px}.footer-banner a{display:inline-block}.footer-banner img{display:block;width:197px;height:197px;max-width:100%;object-fit:contain;margin-inline:auto}
