:root{--bg:#0b0b0b;--bg2:#161616;--card:#1d1d1d;--pink:#e6488f;--pink-dk:#c43274;--white:#fff;--muted:#cfcfcf}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:'Montserrat',system-ui,sans-serif;color:var(--muted);background:var(--bg);line-height:1.7}
a{color:var(--pink)}
h1,h2,h3{font-weight:400}
.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:.4rem 1.5rem;background:rgba(0,0,0,.95);border-bottom:1px solid var(--pink)}
.brand img{display:block;height:56px;width:auto}
.nav ul{list-style:none;display:flex;gap:1.6rem;margin:0;padding:0}
.nav ul a{color:var(--white);text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:.78rem}
.nav ul a:hover{color:var(--pink)}
.menu-btn{display:none;background:none;border:0;color:var(--pink);font-size:1.7rem;cursor:pointer}
.hero{text-align:center;padding:3rem 1.5rem 4rem;background:#000}
.hero h1{margin:0}
.hero-logo{width:min(760px,100%);height:auto}
.tagline{display:inline-block;margin:1rem 0 .5rem;padding:.8rem 1.5rem;border-top:1px solid var(--pink);border-bottom:1px solid var(--pink);color:var(--white);text-transform:uppercase;letter-spacing:.3em;font-size:clamp(.72rem,2.4vw,1.05rem)}
.tagline span{color:var(--pink)}.tagline .cross{color:var(--white);font-family:Georgia,serif}
.loc{margin:.6rem 0;color:var(--muted);text-transform:uppercase;letter-spacing:.2em;font-size:.8rem}
.ph,.ph-note{color:#ffd1e6;background:rgba(230,72,143,.14);border:1px dashed var(--pink);border-radius:4px;padding:.1rem .4rem}
p.ph,h3.ph{display:inline-block}
.btn{display:inline-block;margin-top:1.2rem;padding:.85rem 1.8rem;background:var(--pink);color:#fff;border:0;border-radius:30px;text-decoration:none;font:600 .82rem 'Montserrat',sans-serif;letter-spacing:.15em;text-transform:uppercase;cursor:pointer}
.btn:hover{background:var(--pink-dk)}
.wrap{max-width:1050px;margin:0 auto;padding:4rem 1.5rem}
.alt{background:var(--bg2)}
h2{text-align:center;font-family:'Great Vibes',cursive;font-size:3.4rem;color:var(--pink);margin:0 0 1.5rem;line-height:1.2}
h2::after{content:"";display:block;width:90px;height:1px;background:var(--white);margin:.6rem auto 0;opacity:.6}
h3{font-family:'Great Vibes',cursive;color:var(--white);font-size:2.1rem;margin:.3rem 0;line-height:1.2}
.about{display:flex;gap:2rem;align-items:center}
.avatar{background:#000;border-radius:50%;width:150px;height:150px;flex:none;display:grid;place-items:center;border:2px solid var(--pink);overflow:hidden}
.avatar img{width:85%}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}
.card{background:var(--card);border-radius:10px;padding:1.6rem;text-align:center;border:1px solid #2c2c2c;border-top:3px solid var(--pink)}
.card .emoji{font-size:2.4rem}
.lbl{margin:.3rem 0 .4rem;text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;color:var(--white)}
.feathers{list-style:none;padding:0;margin:0 0 .9rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}
.feathers li{border:1px solid var(--pink);color:var(--white);border-radius:20px;padding:.1rem .75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
.amt a{display:inline-block;color:var(--white);text-decoration:none;border-bottom:1px solid var(--pink);font-weight:600;font-size:.85rem;letter-spacing:.06em}
.amt a:hover{color:var(--pink)}
.center{text-align:center}.small{font-size:.9rem}
details{background:var(--card);border-radius:8px;margin:.7rem 0;padding:1rem 1.3rem;border-left:3px solid var(--pink)}
summary{cursor:pointer;color:var(--white);font-weight:600;letter-spacing:.04em}
.contact{display:grid;grid-template-columns:1fr 1.6fr;gap:2.5rem}
.pref{margin:0 0 .3rem;color:var(--white)}
.btn.fb{background:#1877f2;margin-top:.5rem}.btn.fb:hover{background:#0f5ec7}
.info ul{list-style:none;padding:0}.info li{margin:.8rem 0}
form label{display:block;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;color:var(--white)}
input,select,textarea{display:block;width:100%;margin-top:.4rem;padding:.7rem;border:1px solid #3a3a3a;border-radius:6px;font:1rem 'Montserrat',sans-serif;background:#111;color:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pink)}
footer{text-align:center;padding:1.6rem;background:#000;color:var(--muted);border-top:1px solid var(--pink);text-transform:uppercase;letter-spacing:.15em;font-size:.72rem}
@media(max-width:760px){
 .menu-btn{display:block}
 .brand img{height:46px}
 .nav ul{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#000;padding:1rem 1.5rem;border-bottom:1px solid var(--pink)}
 .nav ul.open{display:flex}
 .about,.contact{display:block}.avatar{margin:0 auto 1rem}
 h2{font-size:2.8rem}.tagline{letter-spacing:.15em;padding:.7rem .5rem}
}
.find{background:#000;border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a}
.find-box{max-width:680px;margin:0 auto;text-align:center;border:1px solid var(--pink);border-radius:14px;padding:2.2rem 1.5rem;box-shadow:0 0 30px rgba(230,72,143,.18)}
.find-box p{margin:.3rem 0}
.find-lead{text-transform:uppercase;letter-spacing:.25em;font-size:.8rem;color:var(--white)}
.find-name{font-family:'Great Vibes',cursive;font-size:clamp(2rem,6vw,2.9rem);color:var(--pink);line-height:1.25}
.find-addr{color:var(--white)}
.find-time{text-transform:uppercase;letter-spacing:.15em;font-size:.8rem}
.about{align-items:flex-start}
.about-photo{flex:0 0 340px;margin:0}
.about-photo img{width:100%;height:auto;display:block;border-radius:10px;border:2px solid var(--pink);box-shadow:0 0 30px rgba(230,72,143,.18)}
.about-text p{margin:0 0 1rem}
.welcome{font-family:'Great Vibes',cursive;font-size:2.2rem;color:var(--white);line-height:1.3}
.values-wrap{text-align:center;margin:2rem 0 0}
.values{display:inline-block;padding:.8rem 1.5rem;border-top:1px solid var(--pink);border-bottom:1px solid var(--pink);color:var(--white);text-transform:uppercase;letter-spacing:.3em;font-size:clamp(.72rem,2.4vw,1rem)}
.values span{color:var(--pink)}
.values-emoji{display:block;margin-top:.4rem}
@media(max-width:760px){.about-photo{margin:0 auto 1.5rem;max-width:340px}.values{letter-spacing:.15em;padding:.7rem .5rem}.welcome{font-size:1.9rem;text-align:center}}
.colors{color:var(--pink);font-weight:600;font-size:.85rem;letter-spacing:.05em;margin-top:.4rem}
.note{color:var(--white);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;margin-top:.3rem}
/* Payments */
.payments{margin:2.2rem auto 0;max-width:760px;text-align:center;border-top:1px solid var(--pink);border-bottom:1px solid var(--pink);padding:1.2rem 1rem}
.pay-title{font-family:'Great Vibes',cursive;color:var(--pink);font-size:2.2rem;margin:0 0 .6rem;line-height:1.2}
.pay-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
.pay-list li{border:1px solid var(--pink);border-radius:30px;padding:.35rem 1rem;color:var(--white);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;background:rgba(230,72,143,.08)}
/* Calendar */
.calendar{margin-top:3rem;scroll-margin-top:80px}
.cal-heading{text-align:center;color:var(--pink);font-size:2.6rem}
.cal-intro{text-align:center;margin:0 0 1.5rem}
.cal-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:start}
.cal-box{background:var(--card);border:1px solid #2c2c2c;border-top:3px solid var(--pink);border-radius:10px;padding:1rem}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.cal-nav p{margin:0;color:var(--white);text-transform:uppercase;letter-spacing:.2em;font-weight:600;font-size:.9rem}
.cal-nav button{background:none;border:1px solid var(--pink);color:var(--pink);width:38px;height:38px;border-radius:50%;font-size:1.4rem;line-height:1;cursor:pointer}
.cal-nav button:hover{background:var(--pink);color:#fff}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{text-align:center;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:.3rem 0}
.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#141414;border:1px solid #262626;border-radius:6px;color:var(--muted);font:500 .9rem 'Montserrat',sans-serif;cursor:pointer;padding:0}
.cal-cell.empty{background:none;border:0;cursor:default}
.cal-cell.today{border-color:var(--white)}
.cal-cell.has-event{background:var(--pink);border-color:var(--pink);color:#fff;font-weight:700;box-shadow:0 0 12px rgba(230,72,143,.45)}
.cal-cell.has-event.past{opacity:.45;box-shadow:none}
.cal-cell.selected{outline:2px solid #fff;outline-offset:2px}
.cal-detail{background:#000;border:1px solid var(--pink);border-radius:10px;padding:1.2rem;min-height:120px}
.cal-detail p{margin:.2rem 0}
.cal-date{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;color:var(--pink)}
.cal-ev-title{font-family:'Great Vibes',cursive;font-size:1.9rem;color:var(--white);line-height:1.2}
.cal-none{color:var(--muted)}
.btn-sm{padding:.55rem 1.2rem;font-size:.72rem;margin-top:.8rem}
.up-title{margin:1.4rem 0 .4rem;text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:var(--white)}
.cal-upcoming{list-style:none;padding:0;margin:0}
.cal-upcoming li{display:flex;flex-wrap:wrap;gap:.2rem .8rem;align-items:baseline;padding:.55rem 0;border-bottom:1px solid #262626;font-size:.85rem}
.up-date{color:var(--pink);font-weight:600;min-width:9.5rem}
.up-info{flex:1}
.cal-upcoming a{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}
@media(max-width:760px){.cal-layout{grid-template-columns:1fr}.cal-heading{font-size:2.3rem}.nav ul{gap:.9rem}}
@media(max-width:760px){.up-date{min-width:100%}}
/* Gallery */
.gal-link{display:inline-block;margin-top:.6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.15em;text-decoration:none;border-bottom:1px solid var(--pink)}
.gal-cats,.gal-feathers{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:.9rem}
.pill{background:none;border:1px solid var(--pink);color:var(--white);border-radius:30px;padding:.45rem 1.1rem;font:600 .75rem 'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.gal-cats .pill{font-size:.82rem;padding:.6rem 1.4rem}
.gal-feathers .pill{border-color:#444;font-weight:500}
.pill:hover{border-color:var(--pink)}
.pill.active{background:var(--pink);border-color:var(--pink);color:#fff}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-top:1.4rem}
.gal-item{padding:0;border:1px solid #2c2c2c;border-radius:10px;overflow:hidden;background:#000;cursor:zoom-in;aspect-ratio:1}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gal-item:hover img{transform:scale(1.05)}
.gal-item:hover,.gal-item:focus-visible{border-color:var(--pink)}
.gal-empty{grid-column:1/-1;text-align:center;padding:2.5rem 1rem;border:1px dashed var(--pink);border-radius:10px;color:var(--white);margin:0}
.gal-empty span{color:var(--muted);font-size:.85rem}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:1rem}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;text-align:center;max-width:100%}
.lightbox img{max-width:min(92vw,1400px);max-height:84vh;border-radius:6px;display:block;margin:0 auto}
.lightbox figcaption{color:var(--muted);font-size:.85rem;margin-top:.6rem}
.lb-btn{position:absolute;background:rgba(0,0,0,.5);border:1px solid var(--pink);color:#fff;width:46px;height:46px;border-radius:50%;font-size:1.7rem;line-height:1;cursor:pointer}
.lb-btn:hover{background:var(--pink)}
.lb-close{top:1rem;right:1rem}.lb-prev{left:1rem;top:50%;transform:translateY(-50%)}.lb-next{right:1rem;top:50%;transform:translateY(-50%)}
@media(max-width:760px){.gal-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}.lb-prev{left:.4rem}.lb-next{right:.4rem}.pill{padding:.4rem .8rem}}
.gal-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}
.gal-tabs .pill{font-size:.82rem;padding:.6rem 1.4rem}
.gal-card{margin:0;text-align:center}
.gal-card .gal-item{width:100%}
.gal-card figcaption{margin-top:.45rem;color:var(--white);font-size:.8rem;letter-spacing:.06em}
.gal-empty a{color:var(--pink)}
.avail-gallery{margin-bottom:2.5rem}
.avail-title{text-align:center;text-transform:uppercase;letter-spacing:.25em;font-size:.8rem;color:var(--white);margin:0}
.avail-note{margin:.3rem 0 0;font-size:.82rem}
.avail-grid .btn-sm{margin-top:.5rem}
/* ---- Responsive QA fixes ---- */
html,body{overflow-x:hidden}
img{max-width:100%}
.menu-btn{min-width:44px;min-height:44px}
.pill,.gal-tabs .pill{min-height:44px}
.cal-nav button,.lb-btn{width:44px;height:44px}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.btn-sm{min-height:44px}
.gal-link{padding:.8rem .2rem;border-bottom:0;text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:4px}
.amt a{display:inline-flex;align-items:center;min-height:44px}
.cal-upcoming a{display:inline-flex;align-items:center;min-height:44px;padding:0 .4rem}
summary{padding:.6rem 0;min-height:44px}
details{padding:.3rem 1.3rem}
details[open] p{margin-top:0}
.info li a{display:inline-block;padding:.6rem 0}
.hero-logo{max-width:760px}
.about-photo img{max-width:340px;margin:0 auto}
.lightbox img{object-fit:contain}
/* collapse nav to the menu button up to 1024px (8 links don't fit below that) */
@media(max-width:1024px){
 .menu-btn{display:block}
 .nav ul{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#000;padding:.5rem 1.5rem;border-bottom:1px solid var(--pink)}
 .nav ul.open{display:flex}
 .nav ul a{display:block;padding:.8rem 0;min-height:44px}
}
@media(max-width:760px){
 .wrap{padding:3rem 1rem}
 .cal-box{padding:.6rem}
 .cal-grid{gap:3px}
 .cal-cell{min-height:44px;aspect-ratio:auto}
 .gal-tabs .pill{padding:.5rem .9rem;font-size:.75rem}
}
@media(min-width:1025px){.nav ul a{display:inline-block;padding:.9rem 0}}
input,select{min-height:46px}
