/* Bella Noir. Tokens and components from bella.bellarosestudio.ca (bella-site/index.html). */
:root{
  --bg:#0e0a08; --bg-alt:#15100d; --ink:#f3ece4; --muted:#b9aa9a;
  --bronze:#9a7d60; --bronze-dk:#7f664d; --bronze-lt:#c4a582; --line:rgba(196,165,130,.35);
  --rule:rgba(255,255,255,.12); --ok:#8fb08a; --warn:#d0a560; --bad:#c98282;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:300 15px/1.8 "Work Sans",system-ui,sans-serif;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:var(--bronze-lt)}
p+p{margin-top:1em}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.center{text-align:center}
.muted{color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.script{font-family:"Pinyon Script",cursive;font-weight:400;line-height:1.05}
.lead-in{font-family:"Cormorant Garamond",serif;font-size:26px;color:var(--bronze-lt)}
.btn{display:inline-block;background:var(--bronze);color:#fff;text-decoration:none;padding:11px 30px;font:400 13px/1.6 "Work Sans",sans-serif;letter-spacing:.06em;border:1px solid var(--bronze);cursor:pointer;transition:background .2s}
.btn:hover{background:var(--bronze-dk)}
.btn.line{background:transparent;border-color:var(--line);color:var(--ink)}
.btn.line:hover{border-color:var(--bronze-lt)}
.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* Nav */
.site-nav{position:sticky;top:0;z-index:20;background:rgba(14,10,8,.94);border-bottom:1px solid var(--rule)}
.site-nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px}
.mono{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.mono .bb{font-family:"Cormorant Garamond",serif;font-size:40px;color:var(--bronze);letter-spacing:-.04em;line-height:1}
.mono .nm{font-family:"Pinyon Script",cursive;font-size:24px;margin-left:-4px;white-space:nowrap}
.site-nav ul{display:flex;gap:26px;list-style:none}
.site-nav ul a{color:var(--ink);text-decoration:none;font-size:13px;letter-spacing:.04em}
.site-nav ul a:hover{color:var(--bronze-lt)}
.menu-toggle{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.menu-toggle span{display:block;width:24px;height:1px;background:var(--ink)}
@media(max-width:900px){
  .menu-toggle{display:flex}
  .site-nav ul{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--rule)}
  .site-nav ul.open{display:flex}
  .site-nav ul a{display:block;padding:14px 20px;font-size:15px;border-top:1px solid var(--rule)}
  .mono .nm{font-size:21px}
}

/* Bands, caps, intros */
.band{width:100%;height:min(62vw,560px);object-fit:cover}
.band.top{object-position:center 30%}
.band.dim{opacity:.32;height:min(40vw,360px)}
.caps{font-family:Montserrat,sans-serif;font-weight:600;color:var(--bronze);text-transform:uppercase;text-align:center;letter-spacing:.62em;font-size:clamp(13px,2.6vw,30px);padding:22px 0 22px .62em;white-space:nowrap;overflow:hidden}
.band-caps{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.intro{text-align:center;padding:64px 20px 80px}
.intro .script{font-size:clamp(60px,12vw,120px);margin:4px 0 22px}
.intro p{max-width:56ch;margin:0 auto 30px;color:var(--muted)}

section{padding:88px 0}
.title{text-align:center;margin-bottom:46px}
.title .script{font-size:clamp(56px,11vw,110px)}
.title .script b{font-weight:400;color:var(--bronze-lt)}
.page-head{text-align:center;padding:30px 20px 50px}
.page-head .title{margin-bottom:6px}

/* Home hero */
.hero{position:relative;min-height:min(92vh,860px);display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,10,8,.2),var(--bg) 96%)}
.hero-inner{position:relative;z-index:1;padding:60px 20px;max-width:900px}
.hero .script{font-size:clamp(52px,10vw,104px);margin:6px 0 18px}
.hero .lead{font-family:"Cormorant Garamond",serif;font-size:clamp(20px,2.6vw,26px);color:var(--bronze-lt);margin-bottom:22px}
.hero .statement{max-width:62ch;margin:0 auto 30px;color:var(--ink)}
.hero .policy{max-width:62ch;margin:30px auto 0;font-size:12px;color:var(--muted)}

/* Cards */
.card{display:grid;grid-template-columns:260px 1fr;gap:44px;align-items:center;border:1px solid rgba(255,255,255,.75);padding:36px 44px;margin-bottom:12px}
.card:not(:has(.oval)){grid-template-columns:1fr}
.oval{width:200px;height:250px;margin:0 auto;border-radius:50%;overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 58%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 58%,transparent 72%)}
.oval img{width:100%;height:100%;object-fit:cover;object-position:top}
.card h3{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:28px;letter-spacing:.02em;color:var(--bronze-lt);text-transform:uppercase;margin-bottom:12px}
.card p{font-size:14px}
.sig{font-family:"Pinyon Script",cursive;font-size:30px;color:var(--ink);margin-top:14px}
@media(max-width:760px){.card{grid-template-columns:1fr;padding:30px 22px;gap:22px;text-align:center}}

/* Ladies grid */
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:34px 20px}
.lady{text-align:center;text-decoration:none;color:var(--ink);padding:18px 10px 22px;border:1px solid transparent;transition:border-color .2s}
.lady:hover{border-color:var(--line)}
.lady .oval{width:190px;height:240px}
.lady .nm{font-family:"Pinyon Script",cursive;font-size:42px;line-height:1.1;margin-top:8px}
.lady .today{font-size:12px;color:var(--muted);letter-spacing:.03em}
@media(max-width:520px){.lgrid{grid-template-columns:1fr 1fr;gap:20px 8px}.lady .oval{width:140px;height:180px}.lady .nm{font-size:32px}}

/* Services */
.services{padding-top:40px}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.svc{position:relative;cursor:pointer;overflow:hidden}
.svc img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:brightness(.55) contrast(1.05);transition:transform .5s,filter .3s}
.svc:hover img{transform:scale(1.04);filter:brightness(.7)}
.svc span{position:absolute;inset:auto 0 28px;text-align:center;font-family:"Pinyon Script",cursive;font-size:clamp(36px,5vw,58px)}
@media(max-width:760px){.trio{grid-template-columns:1fr}.svc img{aspect-ratio:16/9}}
/* Service modal markup comes from the bella-service-lightboxes mu-plugin; restyle it dark. */
.bella-service-modal__dialog{background:var(--bg-alt)!important;color:var(--ink)!important;border:1px solid var(--line);border-radius:0!important}
.bella-service-modal__title{color:var(--bronze-lt)!important;font-family:"Pinyon Script",cursive!important;font-weight:400}
.bella-service-modal__body{color:var(--muted)!important;font-family:"Work Sans",sans-serif!important;font-weight:300}
.bella-service-modal__close{background:transparent!important;color:var(--ink)!important;border:1px solid var(--line)!important}

/* Schedule */
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.sday{border:1px solid var(--rule);padding:18px 20px}
.sday.is-today{border-color:var(--bronze)}
.sday h4{font-family:Montserrat,sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-lt);margin-bottom:6px}
.sday h4 span{color:var(--muted);font-weight:500}
.sday .none{font-size:13px;color:var(--muted)}
.sday.is-filtered-empty{display:none}
.days{list-style:none}
.days li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:14px}
.days li:last-child{border-bottom:0}
.days li a{color:var(--ink);text-decoration:none}
.days li a:hover{color:var(--bronze-lt)}
.days li span:last-child{color:var(--muted);text-align:right}
.days em{color:var(--bronze-lt);font-size:12px}
.schedule-home .center{margin-top:34px}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:28px}
.chip{background:transparent;color:var(--ink);border:1px solid var(--line);padding:6px 16px;font:400 13px "Work Sans",sans-serif;cursor:pointer}
.chip.is-on{background:var(--bronze);border-color:var(--bronze);color:#fff}

/* Profile */
.profile-hero .intro p.actions{margin-bottom:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.gal img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:brightness(.9);transition:filter .2s}
.gal:hover img{filter:brightness(1.05)}
@media(max-width:520px){.gallery{grid-template-columns:1fr 1fr}}
.book{border:1px solid var(--line)}
.book .head{background:var(--bronze);text-align:center;padding:26px 20px 18px}
.book .head .script{font-size:clamp(52px,9vw,84px)}
.book .body{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:40px}
@media(max-width:760px){.book .body{grid-template-columns:1fr;padding:28px 22px}}
.book h4{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:24px;color:var(--bronze-lt);text-transform:uppercase;margin-bottom:12px}
.book .contact{overflow-wrap:anywhere}
.book .contact small,.bella-deposit-note{display:block;font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}
.notice{border-left:2px solid var(--bronze);padding:6px 12px;margin-bottom:14px;color:var(--ink)}
.small{font-size:12px;color:var(--muted);margin-top:12px}

/* Gallery page + contact page */
.gal-group{margin-bottom:56px}
.gal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--rule);padding-bottom:10px;margin-bottom:14px}
.gal-head .script{font-size:clamp(40px,7vw,60px);font-weight:400}
.gal-head .btn{padding:7px 18px;font-size:12px}
.contact-card h3 a{color:inherit;text-decoration:none}
.contact-card p{overflow-wrap:anywhere}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}
.lb img{max-width:100%;max-height:100%;object-fit:contain}

/* Generic content pages */
.prose{max-width:760px}
.prose h2,.prose h3{font-family:"Cormorant Garamond",serif;font-weight:500;color:var(--bronze-lt);margin:1.4em 0 .5em}

/* Footer */
.site-footer{border-top:1px solid var(--rule);margin-top:20px;padding:56px 0 30px}
.site-footer .cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:center;text-align:center}
@media(max-width:760px){.site-footer .cols{grid-template-columns:1fr}}
.seal{width:150px;height:150px;border:1px solid var(--ink);border-radius:50%;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center}
.seal .bb{font-family:"Cormorant Garamond",serif;font-size:54px;color:var(--bronze);line-height:.9}
.seal small{font-family:Montserrat,sans-serif;font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.site-footer h5{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:28px;color:var(--bronze-lt);margin-bottom:8px}
.site-footer a{color:var(--ink);display:block;text-decoration:none;font-size:14px}
.site-footer .soc{font-size:13px;color:var(--muted);line-height:1.9;max-width:30ch;margin:0 auto}
.site-footer .copy{border-top:1px solid var(--rule);margin-top:44px;padding-top:18px;font-size:12px;color:var(--bronze-lt);text-align:center}

/* 18+ gate */
.gate{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;background:var(--bg)}
.gate[hidden]{display:none}
.gate .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.gate .box{position:relative;max-width:460px}
.gate .big{font-family:"Cormorant Garamond",serif;font-size:150px;line-height:.8;color:var(--bronze);opacity:.9}
.gate .nm{font-family:"Pinyon Script",cursive;font-size:56px;margin-top:-58px;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.gate .sub{font-family:Montserrat,sans-serif;font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--muted);margin:8px 0 26px}
.gate p{font-size:13px;margin-bottom:24px}

/* Forms (booking + availability) */
.form{max-width:720px;margin:0 auto}
.field{margin-bottom:20px}
.field>label,.field>.lbl{display:block;font-family:Montserrat,sans-serif;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze-lt);margin-bottom:8px}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=date],.form input[type=time],.form select,.form textarea{width:100%;background:var(--bg-alt);color:var(--ink);border:1px solid var(--line);padding:11px 12px;font:300 15px "Work Sans",sans-serif;border-radius:0;color-scheme:dark}
.form input:focus,.form select:focus,.form textarea:focus{outline:1px solid var(--bronze-lt);outline-offset:0}
.form textarea{min-height:96px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.row2{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin-bottom:10px}
.check input{margin-top:6px;accent-color:var(--bronze)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{border:1px solid var(--line);padding:16px 18px;margin-bottom:24px}
.msg.ok{border-color:var(--ok)}
.msg.err{border-color:var(--bad)}
.panel{border:1px solid var(--line);padding:26px 24px;margin-bottom:22px}
.panel h2{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:26px;color:var(--bronze-lt);text-transform:uppercase;margin-bottom:6px}
.panel>p.muted{font-size:13px;margin-bottom:16px}
@media(max-width:520px){.panel{padding:20px 16px}}
.ferr{color:var(--bad);font-size:13px;margin-top:6px}
.inline{display:flex;flex-wrap:wrap;gap:6px 22px}

/* Booking calendar (same look as the /my-schedule/ calendar) */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-h{font-family:Montserrat,sans-serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0}
.cal-m{grid-column:1/-1;font-family:"Cormorant Garamond",serif;font-size:20px;color:var(--bronze-lt);padding:10px 0 4px}
.cal-d{min-height:50px;border:1px solid var(--rule);background:var(--bg-alt);color:var(--ink);font:400 10px/1.2 "Work Sans",sans-serif;cursor:pointer;padding:4px 2px;display:flex;flex-direction:column;align-items:center;gap:3px}
.cal-d b{font-size:15px;font-weight:500}
.cal-d span{color:var(--ok)}
.cal-d.t-oncall span,.cal-d.t-request span{color:var(--warn)}
.cal-d.t-custom span{color:var(--bronze-lt)}
.cal-d:disabled{opacity:.3;cursor:not-allowed}
.cal-d.is-sel{background:var(--bronze);border-color:var(--bronze-lt)}
.cal-d.is-sel span{color:#fff}
.bk-picked{margin-top:10px;color:var(--bronze-lt);min-height:1.8em}
