/* NOIR — charcoal, ivory and silver blue */
:root {
 --ink:#171c20;--ink-soft:#20272c;--paper:#f3f0e9;--paper-deep:#e8e4dc;--accent:#b2c2cc;--accent-dark:#627986;--text:#f3f0e9;--muted:#b5babd;--line:rgba(178,194,204,.22);--serif:'Cormorant Garamond',Georgia,serif;--font:Inter,system-ui,sans-serif;
 /* Shared controls retain their existing token names. */
 --gold:var(--accent);--gold-light:#d7e1e7;--gold-dark:var(--accent-dark);--black:var(--ink);--black-soft:var(--ink-soft);--black-card:#222a30;--black-card-2:#29333a;--white:var(--paper);--border:var(--line);--border-strong:rgba(178,194,204,.45);--radius:3px;--radius-lg:6px;--shadow:0 24px 70px rgba(0,0,0,.3);--gold-shadow:0 10px 40px rgba(178,194,204,.08);
 --noir-primary:var(--accent);--noir-primary-hover:#d2dce2;--noir-primary-soft:rgba(178,194,204,.1);--noir-text-dark:var(--text);--noir-text-muted:var(--muted);--noir-border:var(--line);--noir-shadow-hover:var(--shadow);
}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body.noir-body{background:var(--ink);color:var(--text);font-family:var(--font);line-height:1.7;-webkit-font-smoothing:antialiased}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}ul{list-style:none}[hidden]{display:none!important}h1,h2,h3,p,.av-payment-value{overflow-wrap:anywhere}h1,h2,h3{font-weight:400;line-height:1.08}h2{font-family:var(--serif);font-size:clamp(2.5rem,4.7vw,4.5rem)}:focus-visible{outline:2px solid var(--accent-dark);outline-offset:5px}::selection{background:var(--accent);color:var(--ink)}
.av-btn{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:50px;padding:14px 24px;background:var(--accent);color:var(--ink)!important;border:1px solid var(--accent);font-size:.72rem;font-weight:600;letter-spacing:.035em;transition:background .2s,border-color .2s}.av-btn:hover{background:#d7e1e7;border-color:#d7e1e7}.av-btn-outline{background:transparent;color:var(--text)!important}.noir-text-link{display:inline-flex;align-items:center;gap:28px;border-bottom:1px solid var(--accent-dark);padding:10px 0;font-size:.73rem}.noir-text-link:hover{color:var(--accent)}
.av-section{width:100%;padding:100px max(32px,calc((100% - 1240px)/2))}.av-heading{margin-bottom:46px;display:grid;grid-template-columns:1.5fr 1fr;gap:12px 80px;align-items:end}.av-heading-tag,.av-eyebrow{display:block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:16px}.av-heading-tag{grid-column:1/-1}.av-heading h2{max-width:700px}.av-heading p{max-width:420px;color:var(--muted);font-size:.9rem}.av-heading.center{text-align:left}.av-view-more-wrap{margin-top:36px;display:flex;justify-content:center}
/* Hero — visual and content share the frame. */
.av-hero{padding:64px max(32px,calc((100% - 1240px)/2)) 26px;background:radial-gradient(ellipse at 80% 40%,#2c363c 0%,var(--ink) 66%);border-bottom:1px solid var(--line)}.av-hero-inner{display:grid;grid-template-columns:1.15fr 1fr;gap:80px;align-items:center}.av-hero-content{padding:30px 0}.av-eyebrow{color:var(--accent);display:flex;align-items:center;gap:16px}.av-eyebrow::before{content:'';width:36px;height:1px;background:var(--accent-dark)}.av-hero-title{font-family:var(--serif);font-size:clamp(3.6rem,6.5vw,6.6rem);letter-spacing:-.045em;line-height:.98;max-width:680px}.av-hero-sub{color:var(--muted);max-width:440px;margin-top:30px;font-size:.94rem;line-height:1.85}.av-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:36px}.noir-hero-visual{position:relative;aspect-ratio:4/4.7;min-width:0;padding-bottom:38px}.noir-hero-visual::before{content:'';position:absolute;inset:16px -16px 54px 16px;border:1px solid var(--accent-dark);pointer-events:none}.noir-hero-visual>img,.noir-hero-visual>video{position:relative;width:100%;height:100%;object-fit:cover;filter:saturate(.7)}.noir-visual-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:16px;color:var(--accent);font-size:.58rem;text-transform:uppercase;letter-spacing:.15em}.noir-hero-foot{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:44px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted);font-size:.65rem;letter-spacing:.08em}
.noir-sculpture{position:relative;height:100%;overflow:hidden;background:radial-gradient(ellipse at 75% 15%,#728894 0%,#40515c 27%,#252f36 65%,#1b2227 100%);isolation:isolate}.noir-orbit{position:absolute;width:90%;aspect-ratio:1;top:8%;left:5%;border:1px solid rgba(236,240,243,.3);border-radius:50%}.noir-orbit::after{content:'';position:absolute;inset:25px;border:1px solid rgba(236,240,243,.12);border-radius:50%}.noir-pillar{position:absolute;bottom:-8%;width:25%;height:64%;background:linear-gradient(90deg,#465d6b,#aebfc9 48%,#697f8d);box-shadow:15px 10px 40px rgba(0,0,0,.3);transform:skewY(-10deg);z-index:2}.noir-pillar-one{left:11%;height:43%}.noir-pillar-two{left:37%;height:63%}.noir-pillar-three{left:63%;height:82%}.noir-sculpture-word{position:absolute;left:8%;top:11%;font-family:var(--serif);font-size:clamp(3rem,6vw,6rem);letter-spacing:.04em;color:rgba(243,240,233,.85);z-index:3}
/* A quiet announcement, rather than another card. */
.av-announcement{padding:24px max(32px,calc((100% - 1240px)/2));background:var(--ink-soft);border-bottom:1px solid var(--line)}.noir-announcement-inner{display:flex;align-items:center;gap:32px}.av-announcement strong{color:var(--accent);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;flex-shrink:0}.av-announcement p{font-size:.82rem;color:var(--muted)}
/* Services on ivory. */
.noir-services-section{background:var(--paper);color:var(--ink)}.noir-services-section .av-heading-tag{color:var(--accent-dark)}.noir-services-section .av-heading p{color:#62696c}.av-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 30px}.av-service{min-width:0;border-bottom:1px solid #c5cccf;padding:0 0 24px;cursor:pointer;transition:background .2s,box-shadow .2s}.av-service.selected{box-shadow:0 0 0 2px var(--accent-dark);background:#e5eaeb}.av-service.selected .av-service-body{padding:0 12px}.av-service-img{aspect-ratio:4/3.5;background:#e2e5e5;margin-bottom:24px;overflow:hidden}.av-service-img img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.av-service:hover .av-service-img img{transform:scale(1.025)}.av-service-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.av-service h3{font-family:var(--serif);font-size:1.85rem}.av-service-price{font-size:.85rem;white-space:nowrap;color:#4b626f;margin-top:6px;font-weight:500}.av-service-description{font-size:.82rem;color:#646b6e;margin-top:14px;line-height:1.75}.av-service-meta{display:flex;justify-content:space-between;gap:20px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(98,121,134,.16);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:#6b7376}.noir-services-section .av-btn{background:transparent;color:var(--ink)!important;border-color:#9eaeb7}
/* Story and portfolio have different compositions. */
.av-about{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}.av-about-content{max-width:490px}.av-about-content h2{margin-bottom:30px}.av-about-content p{color:var(--muted);line-height:1.95;font-size:.92rem}.av-about-image{aspect-ratio:4/4.5;position:relative}.av-about-image::after{content:'';position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--accent-dark);z-index:-1}.av-about-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}.noir-about-text-only{grid-template-columns:1fr}.noir-about-text-only .av-about-content{max-width:900px}.noir-about-section{border-bottom:1px solid var(--line)}
.av-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px}.av-gallery-item{aspect-ratio:4/3;background:var(--ink-soft);overflow:hidden}.av-gallery-item:nth-child(3n+1){grid-column:span 2;aspect-ratio:2.25}.av-gallery-item img,.av-gallery-item video{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}.noir-gallery-section{padding-top:80px;border-bottom:1px solid var(--line)}
/* Ivory booking surface; fixed dialogs stay attached to the viewport. */
.av-booking-section{background:var(--paper);color:var(--ink)}.av-booking-section .av-heading-tag{color:var(--accent-dark)}.av-booking-section .av-heading p{color:#62696c}.av-booking{background:#faf8f3;border:1px solid #d3d8da;padding:34px;max-width:1000px;margin:auto}.av-booking-section .av-heading{max-width:1000px;margin:0 auto 46px}#booking #calendar{--cal-accent-color:#536f80;--cal-accent-subtle:rgba(83,111,128,.12);color:var(--ink)}#booking #calendar .fc-center h2{color:var(--ink)!important;font-family:var(--serif)!important;font-size:1.8rem!important}#booking #calendar .fc-row{position:relative}#booking #calendar .fc-bg{position:absolute;inset:0}#booking #calendar .fc-bg table{height:100%}#booking #calendar .fc-content-skeleton{position:relative;z-index:4}#booking #calendar table{width:100%;table-layout:fixed;border-collapse:collapse}#booking #calendar .fc-day-number{color:#324047}#booking #calendar .fc-day-header{color:#697b84}#booking #calendar .fc-today .fc-day-number{background:#536f80;color:white}#booking #calendar .fc-day.day-closed{background:#e9edef!important}#booking #calendar .fc-icon{display:none}#booking #calendar .fc-prev-button,#booking #calendar .fc-next-button{min-height:42px;min-width:42px;border:1px solid #cad2d7!important;background:transparent!important;color:var(--ink)!important;cursor:pointer}#booking #calendar .fc-prev-button::before{content:'‹'}#booking #calendar .fc-next-button::before{content:'›'}#booking #calendar .fc-prev-button::before,#booking #calendar .fc-next-button::before{font-size:26px;line-height:1;color:#324047!important}#booking #calendar .fc-content-skeleton td.day-closed .fc-day-number{color:#87939b!important}
.av-split{display:grid;grid-template-columns:1fr 1fr;gap:72px}.av-card{padding:32px;border:1px solid var(--line);background:var(--ink-soft);min-width:0}.av-card h3{font-family:var(--serif);font-size:2rem;margin-bottom:26px}.av-hours-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.78rem}.av-hours-row:last-child{border-bottom:0}.av-hours-row span:last-child{color:var(--accent);text-align:right}.noir-policy-text{color:var(--muted);font-size:.86rem;line-height:1.95}
.av-team{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:32px;max-width:1000px}.av-team-card{min-width:0}.av-team-avatar{aspect-ratio:4/4.1;overflow:hidden;background:var(--ink-soft);display:flex;align-items:center;justify-content:center}.av-team-avatar img{width:100%;height:100%;object-fit:cover}.av-team-avatar-fallback{font-family:var(--serif);font-size:6rem;color:var(--accent);height:100%;width:100%;align-items:center;justify-content:center;display:flex}.av-team h3{font-family:var(--serif);font-size:2rem;margin-top:22px}.av-team-role{color:var(--accent);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-top:8px}
.noir-lookup-section{background:var(--ink-soft)}.noir-lookup-card{max-width:750px;margin:auto;background:var(--ink);padding:46px}.noir-lookup-card .av-heading{display:block;margin-bottom:30px}.noir-lookup-card h2{font-size:3rem}.av-input{width:100%;background:var(--ink-soft);color:var(--text);border:1px solid var(--line);padding:15px 18px;margin-bottom:14px;font-size:.84rem;border-radius:0}.av-input::placeholder{color:#a4afb6}.av-payment-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.av-payment-label{display:block;color:var(--accent);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}.av-payment-value{font-size:.9rem}.noir-payment-note{color:var(--muted);font-size:.82rem;margin-top:24px}.av-map-frame{border:1px solid var(--line)}.av-map-frame iframe{display:block;width:100%;height:400px}.av-map-section .av-container{width:100%}
.noir-footer-invite{background:var(--paper);color:var(--ink);padding:64px max(32px,calc((100% - 1240px)/2));display:flex;align-items:center;justify-content:space-between;gap:32px}.noir-footer-invite .av-heading-tag{color:var(--accent-dark)}.noir-footer-invite h2{font-size:clamp(2.8rem,5vw,4.5rem)}.noir-footer-invite .av-btn{flex-shrink:0}.av-footer{padding:70px max(32px,calc((100% - 1240px)/2)) 28px;background:var(--ink)}.av-footer-brand{font-family:var(--serif);font-size:2.5rem}.av-footer-copy{color:var(--muted);max-width:500px;font-size:.85rem;margin-top:16px}.av-footer-nav{display:flex;flex-wrap:wrap;gap:15px 26px;margin-top:36px;font-size:.7rem}.av-footer-socials,.av-footer-legal{display:flex;flex-wrap:wrap;gap:24px;font-size:.68rem;color:var(--accent);margin-top:25px}.av-footer a:hover{color:#e1ebef}.av-footer-divider{border-top:1px solid var(--line);margin-top:40px}.av-footer-bottom{display:flex;justify-content:space-between;gap:24px;padding-top:26px;font-size:.6rem;color:var(--muted)}.av-wa{display:flex;align-items:center;justify-content:center;position:fixed;bottom:20px;right:20px;width:50px;height:50px;border:1px solid #6d8694;background:var(--ink-soft);color:var(--accent);border-radius:50%;z-index:900;box-shadow:var(--shadow)}.av-wa svg{width:25px;height:25px;fill:currentColor}
@media(max-width:1100px){.av-hero-inner{gap:46px}.av-about{gap:60px}.av-services{gap:24px}.av-hero-title{font-size:5rem}}
@media(max-width:900px){.av-hero-inner{grid-template-columns:1fr 1fr;gap:32px}.av-hero-title{font-size:3.9rem}.av-hero{padding-top:46px}.av-heading{gap:12px 36px}.av-section{padding:70px 28px}.av-services{grid-template-columns:repeat(2,minmax(0,1fr))}.av-split{gap:28px}.av-about{gap:36px}.av-booking{padding:26px}.noir-hero-visual{aspect-ratio:4/5.5}.av-team{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.av-hero{padding:32px 22px 24px}.av-hero-inner{grid-template-columns:1fr;gap:30px}.av-hero-content{padding:12px 0}.av-hero-title{font-size:clamp(3.1rem,13vw,4.2rem)}.av-hero-sub{font-size:.85rem;margin-top:24px}.av-hero-actions{gap:18px;margin-top:26px}.noir-hero-visual{aspect-ratio:4/3.5;margin-right:12px}.noir-hero-visual::before{inset:12px -12px 50px 12px}.noir-sculpture-word{font-size:4rem;top:9%}.noir-hero-foot{margin-top:30px}.av-announcement{padding:20px 22px}.noir-announcement-inner{display:block}.av-announcement strong{display:block;margin-bottom:10px}.av-section{padding:58px 22px}.av-heading{display:block;margin-bottom:30px}.av-heading p{margin-top:18px}.av-heading-tag{font-size:.57rem;margin-bottom:14px}.av-services{grid-template-columns:1fr;gap:32px}.av-service-img{aspect-ratio:4/3;margin-bottom:20px}.av-service h3{font-size:1.85rem}.av-about{grid-template-columns:1fr;gap:36px}.av-about-image{margin-right:14px}.av-gallery{gap:14px}.av-gallery-item{aspect-ratio:3/4}.av-gallery-item:nth-child(3n+1){aspect-ratio:4/3}.av-booking{padding:20px 10px}#booking #calendar .fc-center h2{font-size:1.35rem!important}.av-split{grid-template-columns:1fr;gap:24px}.av-card{padding:26px}.av-hours-row{font-size:.75rem}.av-team{gap:20px}.av-team h3{font-size:1.65rem}.av-team-role{font-size:.52rem}.av-team-avatar{aspect-ratio:3/4}.av-team-avatar-fallback{font-size:4rem}.noir-lookup-card{padding:26px 18px}.noir-lookup-card h2{font-size:2.5rem}.av-payment-detail{grid-template-columns:1fr;gap:24px}.av-payment-item+.av-payment-item{padding-top:20px;border-top:1px solid var(--line)}.noir-footer-invite{padding:46px 22px;align-items:flex-start;flex-direction:column;gap:28px}.av-footer{padding:48px 22px 24px}.av-footer-bottom{flex-direction:column;gap:12px}.av-wa{right:14px;bottom:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.noir-body *,.noir-body *::before,.noir-body *::after{transition:none!important;animation:none!important}}

/* --- RESPONSIVE NAVIGATION --- */
.noir-body .noir-header.nav-mobile { position: sticky !important; top: 0 !important; height: auto; z-index: 1000; background: var(--ink); border-bottom: 1px solid var(--noir-border); }
.noir-nav { display: flex; flex-wrap: nowrap; align-items: center; gap: 24px; min-height: 76px; padding: 14px 20px; }
.noir-brand-link { display: flex; align-items: center; gap: 12px; min-width: 0; margin-right: auto; max-width: 36%; font-weight: 700; font-size: 1.1rem; line-height: 1.3; overflow-wrap: anywhere; }
.noir-brand-link img { width: 40px; height: 40px; flex-shrink: 0; object-fit: contain; }
.noir-desktop-nav { display: flex; align-items: center; gap: 24px; font-size: .9rem; font-weight: 500; }
.noir-desktop-nav a:hover { color: var(--noir-primary); }
.noir-mobile-toggle { display: flex; align-items: center; justify-content: center; gap: 12px; flex-shrink: 0; min-width: 44px; min-height: 44px; padding: 10px; border: 1px solid var(--noir-border); border-radius: 8px; background: var(--ink); color: var(--noir-text-dark); font: inherit; font-size: .85rem; cursor: pointer; }
.noir-hamburger-icon, .noir-hamburger-icon::before, .noir-hamburger-icon::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; transition: transform .2s; }
.noir-hamburger-icon::before, .noir-hamburger-icon::after { content: ''; position: absolute; left: 0; }
.noir-hamburger-icon::before { top: -6px; }.noir-hamburger-icon::after { top: 6px; }
.is-active .noir-hamburger-icon { background: transparent; }.is-active .noir-hamburger-icon::before { transform: translateY(6px) rotate(45deg); }.is-active .noir-hamburger-icon::after { transform: translateY(-6px) rotate(-45deg); }
.noir-nav-element { position: absolute; top: 100%; left: 0; right: 0; background: var(--ink); box-shadow: var(--noir-shadow-hover); border-bottom: 1px solid var(--noir-border); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility .2s; }
.noir-nav-element.is-open { opacity: 1; visibility: visible; transform: none; }
.noir-nav-menu { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px 20px; padding: 24px 20px; max-width: 1140px; margin: auto; max-height: calc(100dvh - 100px); overflow-y: auto; }
.noir-nav-link { display: block; padding: 10px 16px; border-radius: 8px; color: var(--noir-text-muted); font-size: .95rem; }
.noir-nav-link:hover { background: var(--noir-primary-soft); color: var(--noir-primary); }
.noir-drawer-overlay { display: none; position: fixed; inset: 0; z-index: 998; background: rgba(5,10,14,.55); }.noir-drawer-overlay.is-active { display: block; }
.noir-menu-open { overflow: hidden; }
.noir-body :focus-visible { outline: 3px solid var(--noir-primary); outline-offset: 4px; }
.noir-skip-link { position: fixed; top: -100px; left: 16px; z-index: 1002; padding: 12px 20px; background: var(--ink); border-radius: 8px; }.noir-skip-link:focus { top: 12px; }
.noir-body section[id], #noir-main { scroll-margin-top: 100px; }
@media (max-width: 900px) { .noir-desktop-nav { display: none; }.noir-brand-link { max-width: calc(100% - 68px); }.noir-menu-label { display: none; }.noir-nav-menu { grid-template-columns: 1fr; gap: 2px; padding: 16px; }.noir-nav { gap: 16px; min-height: 72px; } }


.noir-nav{max-width:1320px;margin:auto}.noir-brand-link{font-family:var(--serif);font-weight:500;font-size:1.4rem}.noir-desktop-nav{font-size:.73rem}.noir-nav-link{font-size:.8rem}.noir-nav-menu{padding:28px}.noir-mobile-toggle{border-radius:0}.noir-body .noir-header.nav-mobile{position:relative!important;top:auto!important}.noir-body .noir-header .av-btn:hover{color:var(--ink)}

/* =========================================================
   NOIR — MODALS, POPUPS & OVERLAYS
   ========================================================= */

#globalModalOverlay,
.sb-drawer-overlay,
.media-safety-layer {
    background: rgba(3, 3, 3, 0.8) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 998;
}

#globalModal,
.select-modal,
.modal-content {
    background-color: var(--black-card) !important;
    border: 1px solid var(--border-strong) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow) !important;
    padding: 35px;
    color: var(--text) !important;
    position: relative;
}

.popup-header {
    border-bottom: 1px solid var(--border);
    padding-bottom: 18px;
    margin-bottom: 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.popup-header span,
.popup-header h2,
.popup-header h3,
.popup-header h4,
.popup-header p,
.popup-date {
    font-family: var(--font) !important;
    color: var(--white) !important;
}

.popup-header .close-btn,
.popup-header .ws-popup-close,
.close-x {
    cursor: pointer;
    background: transparent;
    border: none;
    line-height: 1;
    color: var(--muted);
    font-size: 1.25rem;
    transition: color 0.25s ease;
}

.close-x:hover,
.popup-header .close-btn:hover {
    color: var(--gold);
}

.modal-option {
    background: var(--black-card-2);
    color: var(--text);
    border-radius: var(--radius);
    padding: 16px 20px;
    transition: all 0.25s ease;
    border: 1px solid rgba(255, 255, 255, 0.05);
    margin-bottom: 10px;
    cursor: pointer;
}

.modal-option:hover {
    background: var(--black-soft);
    border-color: var(--gold);
    color: var(--white);
}

.modal-option-disabled {
    color: #f87171 !important;
    background-color: rgba(239, 68, 68, 0.08) !important;
    border: 1px dashed rgba(239, 68, 68, 0.3) !important;
}



/* =========================================================
   NOIR — TIME SLOTS & CLOSED STATES
   ========================================================= */

.time-slots-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(105px, 1fr));
    gap: 12px;
}

.time-slot-item {
    background: var(--black-card-2);
    border: 1px solid var(--border);
    color: var(--text);
    padding: 12px 8px;
    border-radius: var(--radius);
    text-align: center;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 500;
    transition: all 0.25s ease;
}

.time-slot-item:hover {
    border-color: var(--gold);
    color: var(--white);
    background-color: var(--black-soft);
}

.no-slots-container {
    background-color: var(--black-card-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 30px 20px;
    margin: 16px 0;
    text-align: center;
}

.no-slots-title {
    color: var(--white);
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.no-slots-sub {
    color: var(--muted);
    font-size: 0.88rem;
}


/* =========================================================
   NOIR — FORMS, INPUTS & FILE UPLOADS
   ========================================================= */

.action-prompt-card {
    background: var(--black-card) !important;
    border: 1px solid var(--border-strong) !important;
    color: var(--text) !important;
    border-radius: var(--radius-lg);
    padding: 30px;
    box-shadow: var(--shadow);
}

.prompt-text {
    color: var(--text) !important;
    font-size: 0.95rem;
    line-height: 1.6;
}

.btn-dismiss {
    background: var(--black-card-2) !important;
    color: var(--text) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    padding: 10px 20px;
    cursor: pointer;
    transition: all 0.25s ease;
}

.btn-dismiss:hover {
    background: var(--black-soft) !important;
    color: var(--white);
}

.btn-execute {
    background: var(--gold) !important;
    color: var(--black) !important;
    border: none !important;
    border-radius: var(--radius) !important;
    padding: 10px 20px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.25s ease;
}

.btn-execute:hover {
    background: var(--gold-light) !important;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: var(--gold);
    margin-bottom: 8px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    background: var(--black-card-2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius);
    padding: 14px;
    outline: none;
    color: var(--white);
    font-family: var(--font);
    font-size: 0.95rem;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.form-group textarea {
    padding: 12px;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.1);
}

.custom-file-upload {
    background: var(--black-card-2);
    border: 2px dashed var(--border);
    border-radius: var(--radius-lg);
    padding: 28px;
    text-align: center;
    cursor: pointer;
    transition: all 0.25s ease;
}

.custom-file-upload:hover {
    border-color: var(--gold);
    background-color: var(--black-soft);
}

.upload-icon-wrapper {
    background: var(--black);
    box-shadow: var(--gold-shadow);
    display: inline-flex;
    padding: 12px;
    border-radius: 50%;
    margin-bottom: 10px;
}

.upload-icon-wrapper svg {
    color: var(--gold) !important;
}

.upload-text-main { 
    color: var(--white); 
    font-weight: 600; 
    font-size: 0.9rem;
}

.upload-text-sub { 
    color: var(--muted); 
    font-size: 0.8rem; 
}

.preview-img {
    border: 2px solid var(--gold) !important;
    border-radius: var(--radius);
}


/* =========================================================
   NOIR — LOOKUP RESULTS & APPOINTMENT CARDS
   ========================================================= */

.sb-lookup-results-container:empty,
.sb-lookup-results-container.is-hidden{
    display: none !important;
}

.sb-lookup-result,
.sb-lookup-results-container {
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px dashed var(--border);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.sb-result-card {
    background-color: var(--black-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.sb-result-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border);
    padding-bottom: 14px;
}

.sb-result-title {
    color: var(--white);
    font-size: 1.15rem;
    font-weight: 700;
}

.sb-result-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 18px;
}

.sb-detail-item,
.sb-detail-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sb-detail-label {
    color: var(--muted);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
}

.sb-detail-value,
.sienna-detail-value {
    color: var(--white);
    font-weight: 600;
    font-size: 0.95rem;
}

.status-accepted,
.sb-status-badge {
    background-color: rgba(34, 197, 94, 0.1);
    color: #4ade80;
    border: 1px solid rgba(34, 197, 94, 0.2);
    padding: 4px 14px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.status-pending {
    background-color: rgba(234, 179, 8, 0.1);
    color: #facc15;
    border: 1px solid rgba(234, 179, 8, 0.2);
    padding: 4px 14px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.status-canceled,
.status-rejected {
    background-color: rgba(239, 68, 68, 0.1);
    color: #f87171;
    border: 1px solid rgba(239, 68, 68, 0.2);
    padding: 4px 14px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sb-btn-cancel,
.sienna-btn-cancel {
    background-color: #7f1d1d;
    color: var(--white);
    border: none;
    padding: 12px 24px;
    border-radius: var(--radius);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    width: 100%;
    margin-top: 14px;
    transition: all 0.25s ease;
}

.sb-btn-cancel:hover,
.sienna-btn-cancel:hover {
    background-color: #991b1b;
}


/* =========================================================
   NOIR — AI ASSISTANT SHELL & CHAT
   ========================================================= */

.assistant-fab {
    background: var(--black-card);
    border: 1px solid var(--border-strong);
    box-shadow: var(--shadow);
    border-radius: 50%;
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.assistant-fab:hover {
    transform: scale(1.06);
    background: var(--black-soft);
    border-color: var(--gold);
}

.assistant-fab img {
    width: 26px;
    height: 26px;
    filter: brightness(0) invert(1);
}

aside.assistant {
    background-color: var(--black-card) !important;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    font-family: var(--font);
    display: flex;
    flex-direction: column;
    max-height: 85vh;
}

.ai-content-wrapper {
    background-color: var(--black-card) !important;
    border: none;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
}

.ai-header {
    background-color: var(--black-card-2);
    border-bottom: 1px solid var(--border);
    padding: 8px 14px;
    display: flex;
    height: 42px;
    align-items: center;
    justify-content: space-between;
}

.ai-header-content .role-title { 
    color: var(--white); 
    font-size: 0.85rem; 
    font-weight: 700; 
}

.ai-header-content .brand-tag, 
.ai-input-area-wrapper .hint { 
    color: var(--muted); 
    font-size: 0.68rem; 
}

.ai-header-content #appointly-ai-close {
    background-color: var(--black) !important;
    color: var(--text) !important;
    border: 1px solid var(--border) !important;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ai-header-content #appointly-ai-close:hover {
    background-color: var(--gold) !important;
    color: var(--black) !important;
}

.ai-public-chat-history {
    flex: 1;
    overflow-y: auto;
    padding: 14px;
}

.ai-public-chat-bubble {
    background-color: var(--black-soft);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: var(--radius);
    padding: 14px 18px;
    font-size: 0.9rem;
    line-height: 1.6;
}

.ai-name {
    color: var(--gold) !important;
    font-weight: 700;
}

.ai-public-chat-bubble.ai-msg {
    background-color: var(--black-card-2) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
}

.ai-public-chat-bubble strong { 
    color: var(--gold); 
}

.ai-input-area-wrapper {
    padding: 12px;
    background: var(--black-card-2);
    border-top: 1px solid var(--border);
}

.ai-input-area-wrapper textarea {
    width: 100%;
    background: var(--black);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 10px 12px;
    min-height: 44px;
    max-height: 90px;
    font-family: var(--font);
    font-size: 0.9rem;
    color: var(--white);
    outline: none;
    transition: border-color 0.25s ease;
}

.ai-input-area-wrapper textarea:focus {
    border-color: var(--gold);
}

/* Dialogs must fit narrow screens and remain above page navigation. */
.noir-body .modal{z-index:2000!important}.noir-body .modal-content{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto}.noir-body .popup-brand-header{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%}.noir-body .close-x{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.noir-body .popup-brand-header .brand-logo{max-width:48px;max-height:48px}.noir-body .form-group input,.noir-body .form-group select,.noir-body .form-group textarea{color:var(--text)}
@media(max-width:650px){.noir-body .modal-content{padding:24px 18px}.noir-body .popup-date-display{font-size:.8rem}.noir-body .av-heading h2{line-height:1.08}}
@media(max-width:650px){#booking #calendar .fc-center h2{font-family:var(--font)!important;font-size:1rem!important;font-weight:500;letter-spacing:.015em!important;white-space:nowrap}}
.noir-body .av-team-avatar .employee-profile-img{width:100%!important;height:100%!important;border-radius:0!important;border:none!important;box-shadow:none!important;object-fit:cover}
