@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

/* Beaut 3.0 — blush, burgundy and quiet gold. Shared booking selectors stay intact. */
:root {
    --pink-bg:#f7e2e5; --pink-surface:#f2d4d9; --pink-card:#fffaf7;
    --gold-main:#cda052; --gold-light:#dfb76c; --gold-dark:#886325; --gold-glow:rgba(205,160,82,.16);
    --plum-accent:#5c1d32; --plum-light:#7d324c; --pure-white:#fff; --cream:#fffaf7;
    --text-dark:#3a1c24; --text-muted:#76535d; --text-light:#fffaf7;
    --border-grid:rgba(92,29,50,.14); --border-strong:#cda052;
    --radius-card:20px; --radius-btn:999px;
    --font-editorial:'Playfair Display',Georgia,serif; --font-sans:'Plus Jakarta Sans',sans-serif;
    --cal-text-primary:#5c1d32; --cal-text-muted:#76535d; --cal-accent-color:#5c1d32;
    --cal-accent-text:#fffaf7; --cal-accent-shadow:rgba(92,29,50,.15); --cal-accent-subtle:#f2d4d9;
}
*,*::before,*::after {box-sizing:border-box;}
html {scroll-behavior:smooth;scroll-padding-top:120px;}
body {margin:0;min-width:0;background:var(--pink-bg);color:var(--text-dark);font-family:var(--font-sans);line-height:1.7;-webkit-font-smoothing:antialiased;}
body.av-menu-open {overflow:hidden;}
h1,h2,h3,p,ul {margin:0;}
a {color:inherit;text-decoration:none;}
button,input,select,textarea {font:inherit;}
button,a,input,select,textarea,[tabindex] {-webkit-tap-highlight-color:transparent;}
img,video {display:block;max-width:100%;}
[hidden] {display:none!important;}
:focus-visible {outline:3px solid var(--gold-dark)!important;outline-offset:5px;}
::selection {background:var(--plum-accent);color:var(--cream);}
.av-section,#hero,#updates,#hours,#policies,#lookup,#calendar {scroll-margin-top:120px;}
.beaut-skip {position:fixed;top:8px;left:20px;z-index:1100;padding:12px 20px;background:var(--plum-accent);color:white;transform:translateY(-160%);}
.beaut-skip:focus {transform:none;}
/* A floating navigation bar, with a separate accessible mobile drawer. */
.av-header {position:fixed;top:20px;left:0;width:100%;z-index:1001;background:transparent;border:0;padding:0 28px;transition:top .25s;}
.av-header-inner {max-width:1360px;min-height:82px;margin:auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(255,250,247,.98);border:1px solid rgba(205,160,82,.4);border-radius:18px;box-shadow:0 8px 35px rgba(58,28,36,.06);}
.av-header.is-scrolled {top:10px;}
.av-brand {display:flex;align-items:center;gap:13px;min-width:0;max-width:43%;}
.av-brand img {height:42px;width:auto;max-width:60px;object-fit:contain;flex-shrink:0;}
.brand-name {font-family:var(--font-editorial);font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:500;line-height:1.25;color:var(--plum-accent);overflow-wrap:anywhere;}
.av-nav {list-style:none;padding:0;display:flex;align-items:center;gap:26px;}
.t1-nav-link {position:relative;display:flex;align-items:center;min-height:44px;color:var(--text-muted);font-size:.76rem;font-weight:600;}
.t1-nav-link::after {content:'';height:1px;position:absolute;bottom:5px;left:0;right:0;background:var(--plum-accent);transform:scaleX(0);transition:transform .2s;}
.t1-nav-link:hover,.t1-nav-link[aria-current] {color:var(--plum-accent);}
.t1-nav-link:hover::after,.t1-nav-link[aria-current]::after {transform:scaleX(1);}
.av-nav-booking .t1-nav-link {gap:20px;padding:0 23px;min-height:48px;border-radius:999px;background:var(--plum-accent);color:var(--cream);font-size:.72rem;}
.av-nav-booking .t1-nav-link::after {display:none;}
.av-nav-booking .t1-nav-link:hover {background:var(--plum-light);}
.av-mobile-toggle,.beaut-drawer-heading {display:none;}
.av-nav-overlay {position:fixed;inset:0;z-index:1000;background:rgba(58,28,36,.4);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;}
.av-nav-overlay.is-active {opacity:1;visibility:visible;}
/* Editorial hero: graceful with photography, intentional without it. */
.av-hero {position:relative;padding:165px 48px 76px;background:radial-gradient(ellipse at 20% 15%,#fffaf7 0,transparent 65%),var(--pink-bg);overflow:hidden;border-bottom:1px solid var(--border-grid);}
.av-hero::before {content:'';position:absolute;width:650px;height:650px;right:-230px;top:130px;border:1px solid rgba(205,160,82,.4);border-radius:50%;pointer-events:none;}
.av-hero-inner {position:relative;max-width:1240px;margin:auto;display:grid;grid-template-columns:1.15fr 1fr;gap:76px;align-items:center;}
.av-hero-content {padding:25px 0;min-width:0;}
.av-eyebrow,.av-heading-tag {display:block;color:var(--gold-dark);font-size:.65rem;letter-spacing:.2em;line-height:1.6;font-weight:700;text-transform:uppercase;margin-bottom:20px;}
.av-eyebrow {display:flex;align-items:center;gap:16px;}
.av-eyebrow::before {content:'';width:35px;height:1px;background:var(--gold-main);flex-shrink:0;}
.av-hero-title {font-family:var(--font-editorial);font-size:clamp(3.2rem,5.7vw,5.5rem);font-weight:400;line-height:1.08;letter-spacing:-.045em;color:var(--plum-accent);overflow-wrap:anywhere;text-wrap:balance;}
.beaut-flourish {display:flex;align-items:center;gap:13px;color:var(--gold-dark);margin:28px 0;}
.beaut-flourish span {width:45px;height:1px;background:var(--gold-main);}
.av-hero-sub {max-width:440px;font-size:.98rem;line-height:1.9;color:var(--text-muted);}
.av-hero-actions {display:flex;align-items:center;flex-wrap:wrap;gap:25px;margin-top:35px;}
.av-btn {display:inline-flex;align-items:center;justify-content:center;gap:25px;min-height:54px;padding:14px 26px;border:1px solid var(--plum-accent);border-radius:var(--radius-btn);color:var(--cream);background:var(--plum-accent);font-size:.75rem;font-weight:600;line-height:1.5;cursor:pointer;transition:background .2s,box-shadow .2s,transform .2s;text-align:center;}
.av-btn:hover {background:var(--plum-light);color:white;transform:translateY(-2px);box-shadow:0 8px 20px rgba(92,29,50,.12);}
.av-btn-outline {color:var(--plum-accent);background:transparent;}
.av-btn-outline:hover {background:var(--plum-accent);}
.beaut-text-link {display:inline-flex;align-items:center;gap:20px;padding:10px 0;font-size:.76rem;border-bottom:1px solid var(--gold-main);color:var(--plum-accent);}
.beaut-hero-portrait {position:relative;min-width:0;padding:16px 16px 52px;}
.beaut-portrait-frame {position:absolute;inset:0 0 32px;border:1px solid var(--gold-main);border-radius:210px 210px 18px 18px;pointer-events:none;}
.av-hero-media {position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:195px 195px 12px 12px;background:var(--plum-accent);}
.av-hero-media img,.av-hero-media video {width:100%;height:100%;object-fit:cover;}
.beaut-portrait-caption {position:absolute;bottom:0;left:28px;right:28px;display:flex;justify-content:space-between;gap:20px;color:var(--plum-accent);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;}
.beaut-portrait-art {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 20% 15%,#a96678,transparent 65%),linear-gradient(150deg,#7d324c,#3a1020);}
.beaut-portrait-art::before,.beaut-portrait-art::after,.beaut-portrait-art i {content:'';position:absolute;width:62%;height:85%;border:1px solid rgba(223,183,108,.5);border-radius:50%;transform:rotate(-28deg);}
.beaut-portrait-art::after {transform:rotate(28deg);}
.beaut-portrait-art i {height:65%;width:85%;transform:rotate(90deg);}
.beaut-portrait-art span {font-family:var(--font-editorial);font-size:6rem;color:var(--gold-light);z-index:1;}
/* The announcement reads as a note, not a utility banner. */
.beaut-updates {padding:38px 48px 0;}
.beaut-update-card {max-width:1240px;margin:auto;display:grid;grid-template-columns:52px 240px 1fr;gap:30px;align-items:center;padding:32px 38px;background:var(--cream);border:1px solid var(--border-grid);border-radius:16px;position:relative;}
.beaut-update-card::after {content:'';position:absolute;left:0;top:28px;bottom:28px;width:3px;background:var(--gold-main);}
.beaut-update-symbol {display:grid;place-items:center;width:50px;height:50px;border-radius:50%;border:1px solid var(--gold-main);color:var(--gold-dark);font-size:1.5rem;}
.beaut-update-heading .av-heading-tag {margin-bottom:5px;}
.beaut-update-heading h2 {font-family:var(--font-editorial);font-size:1.55rem;font-weight:400;line-height:1.3;color:var(--plum-accent);}
.beaut-update-message {border-left:1px solid var(--border-grid);padding-left:30px;font-size:.85rem;color:var(--text-muted);overflow-wrap:anywhere;}
/* Page rhythm. All public sections continue following their existing feature flags. */
.av-container {position:relative;width:min(1240px,calc(100% - 96px));margin:auto;padding:0;}
.av-section {padding:100px 0;border-bottom:1px solid var(--border-grid);}
.av-section:last-child {border-bottom:0;}
.av-section-grid {display:grid;grid-template-columns:minmax(0, .75fr) minmax(0, 1.7fr);align-items:start;gap:70px;}
.av-sticky-header {position:sticky;top:140px;min-width:0;}
.av-heading-title {font-family:var(--font-editorial);font-size:clamp(2.3rem,3.6vw,3.6rem);font-weight:400;line-height:1.16;letter-spacing:-.035em;color:var(--plum-accent);margin-bottom:24px;overflow-wrap:anywhere;text-wrap:balance;}
.av-heading-desc {font-size:.87rem;line-height:1.95;color:var(--text-muted);}
.site-expandable-content {min-width:0;}
.site-view-more-wrap {margin-top:28px;text-align:center;}
.site-view-more-button {background:transparent;color:var(--plum-accent);border-color:var(--border-grid);min-height:48px;}
.site-view-more-button:hover {color:var(--cream);}
/* Services retain the shared multiselect hooks and selected state. */
.av-services-list {display:flex;flex-direction:column;gap:14px;}
.av-service-item {position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:22px;align-items:center;background:var(--cream);border:1px solid transparent;border-radius:16px;padding:26px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;}
.av-service-item:hover {border-color:var(--gold-main);box-shadow:0 8px 24px rgba(92,29,50,.04);transform:translateY(-2px);}
.av-service-num {align-self:start;color:var(--gold-dark);font-family:var(--font-editorial);font-size:.95rem;padding-top:6px;}
.av-service-details {display:flex;gap:20px;align-items:center;min-width:0;}
.av-service-img {flex:0 0 96px;height:112px;overflow:hidden;border-radius:50px 50px 9px 9px;background:var(--pink-surface);}
.av-service-img img {width:100%;height:100%;object-fit:cover;}
.av-service-content {min-width:0;}
.av-service-content h3 {color:var(--plum-accent);font-family:var(--font-editorial);font-size:1.3rem;line-height:1.35;font-weight:500;overflow-wrap:anywhere;}
.av-service-content p {margin-top:8px;font-size:.75rem;line-height:1.8;color:var(--text-muted);overflow-wrap:anywhere;}
.av-service-meta {text-align:right;}
.av-service-price {display:block;color:var(--plum-accent);font-family:var(--font-editorial);font-size:1.45rem;white-space:nowrap;}
.av-service-duration {display:block;margin-top:5px;color:var(--text-muted);font-size:.61rem;letter-spacing:.06em;}
.av-selectable-service.selected {background:#f6dce3;border-color:var(--plum-accent);box-shadow:inset 3px 0 var(--plum-accent);}
.av-selectable-service.selected::after {content:'✓';position:absolute;top:8px;right:10px;color:var(--plum-accent);font-size:.7rem;}
.av-summary-bar {position:fixed;bottom:24px;left:50%;z-index:990;width:calc(100% - 40px);max-width:650px;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;transform:translateX(-50%);color:var(--cream);background:var(--plum-accent);border:1px solid var(--gold-main);border-radius:18px;box-shadow:0 12px 35px rgba(58,28,36,.22);}
.av-summary-info {display:flex;flex-direction:column;gap:2px;}
.av-summary-count {font-size:.7rem;color:var(--gold-light);}
.av-summary-meta {font-size:.85rem;}
.av-summary-meta strong {color:var(--gold-light);}
#av-proceed-booking-btn {border:0;padding:12px 20px;border-radius:999px;color:var(--plum-accent);background:var(--cream);font-size:.76rem;cursor:pointer;}
/* One calendar ID, inside the existing shared Customer-Booking component. */
.av-booking-section {border:0;padding:25px 0 80px;}
.av-booking-section > .av-section-grid {gap:0;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);background:var(--plum-accent);border:1px solid rgba(205,160,82,.5);border-radius:24px;}
.av-booking-section .av-sticky-header {position:static;padding:54px 40px;align-self:center;}
.av-booking-section .av-heading-tag {color:var(--gold-light);}
.av-booking-section .av-heading-title {color:var(--cream);font-size:clamp(2.2rem,3.3vw,3.1rem);}
.av-booking-section .av-heading-desc {color:#ead2d8;}
.av-booking-section .av-sticky-header::after {content:'✦';display:block;color:var(--gold-light);font-size:2rem;margin-top:35px;}
.av-booking-frame {min-width:0;padding:35px 40px;background:var(--cream);border-radius:0 23px 23px 0;}
.beaut-calendar-heading {display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.72rem;font-weight:600;letter-spacing:.03em;color:var(--text-muted);padding-bottom:24px;border-bottom:1px solid var(--border-grid);margin-bottom:18px;}
#bookingApp,.calendar-container,#calendar {width:100%;min-width:0;}
#booking .calendar-container {padding:0;margin:0;background:transparent;border:0;box-shadow:none;}
#booking #calendar {background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;}
#booking #calendar .fc-toolbar {padding:0 0 18px!important;margin-bottom:8px!important;}
#booking #calendar .fc-toolbar .fc-center {display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;width:100%!important;float:none!important;}
#booking #calendar .fc-toolbar .fc-center h2 {font-family:var(--font-editorial)!important;font-size:1.6rem!important;font-weight:500!important;color:var(--plum-accent)!important;letter-spacing:0!important;text-transform:none!important;white-space:nowrap;line-height:1.4;}
#booking #calendar .fc-prev-button,#booking #calendar .fc-next-button {display:grid!important;place-items:center!important;width:42px!important;height:42px!important;min-width:42px!important;padding:0!important;border:1px solid var(--border-grid)!important;border-radius:50%!important;color:var(--plum-accent)!important;background:transparent!important;font-size:1.1rem!important;flex-shrink:0;}
#booking #calendar .fc-prev-button:hover,#booking #calendar .fc-next-button:hover {background:var(--pink-bg)!important;}
#booking #calendar .fc-day-header {color:var(--text-muted)!important;font-weight:500!important;font-size:.61rem!important;letter-spacing:.06em!important;padding:12px 0!important;}
#booking #calendar .fc-row.fc-week,#booking #calendar .fc-basic-view .fc-body .fc-row {min-height:58px!important;}
#booking #calendar .fc-day-number {color:var(--plum-accent);font-size:.82rem;width:40px!important;height:40px!important;cursor:pointer;}
#booking #calendar .fc-day-number:hover {background:var(--pink-bg);}
#booking #calendar .fc-today .fc-day-number {background:var(--plum-accent)!important;color:var(--cream)!important;box-shadow:none;}
#booking #calendar .fc-past .fc-day-number,#booking #calendar .fc-other-month .fc-day-number {color:#927e83;opacity:.6;}
#booking #calendar .day-closed,#booking #calendar .fc-disabled-day {background:rgba(118,83,93,.06)!important;cursor:not-allowed;}
#booking #calendar .selected-day-highlight {background:var(--pink-surface)!important;outline:1px solid var(--plum-accent);}
/* Practical details, framed photographs and specialists. */
.beaut-practical {padding-top:0;}
.av-split-grid {display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.av-block-card {min-width:0;padding:40px;background:var(--cream);border:1px solid var(--border-grid);border-radius:20px;}
.av-block-card h3 {font-family:var(--font-editorial);font-size:1.9rem;font-weight:400;line-height:1.3;color:var(--plum-accent);border:0;margin-bottom:24px;}
.av-hours-row {display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--border-grid);font-size:.76rem;}
.av-hours-row:last-child {border-bottom:0;}
.av-hours-row span:last-child {text-align:right;color:var(--plum-accent);}
.dark-theme {background:var(--pink-surface);border-color:transparent;}
.dark-theme p {color:var(--text-muted);}
.av-gallery-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.av-gallery-box {position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:120px 120px 14px 14px;background:var(--pink-surface);}
.av-gallery-box:nth-child(2n) {margin-top:45px;border-radius:14px 14px 120px 120px;}
.av-gallery-box img,.av-gallery-box video {width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.av-gallery-box:hover img,.av-gallery-box:hover video {transform:scale(1.035);}
.beaut-gallery-index {position:absolute;bottom:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;padding:8px 13px;font-size:.7rem;color:var(--cream);background:rgba(58,28,36,.7);border-radius:8px;pointer-events:none;}
.av-about-layout {display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;}
.av-about-layout > div:first-child {padding:25px 0;}
.av-about-image-wrapper {position:relative;padding:12px;border:1px solid var(--gold-main);border-radius:180px 180px 20px 20px;}
.av-about-image-wrapper img {width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:170px 170px 12px 12px;}
.av-team-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.av-team-member {padding:14px 14px 26px;border-radius:18px;background:var(--cream);text-align:center;}
.av-team-avatar-box {height:auto;aspect-ratio:4/4.5;display:flex;align-items:center;justify-content:center;background:var(--pink-surface);border-radius:100px 100px 12px 12px;overflow:hidden;color:var(--plum-accent);font:4rem var(--font-editorial);}
.av-team-avatar-box img {width:100%;height:100%;object-fit:cover;}
.av-team-avatar-fallback {align-items:center;justify-content:center;width:100%;height:100%;}
.av-team-member h3 {font-family:var(--font-editorial);font-size:1.5rem;font-weight:400;color:var(--plum-accent);margin:22px 0 5px;overflow-wrap:anywhere;}
.av-team-role {font-size:.61rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);}
/* Appointment management and transfer details. */
.beaut-lookup-layout {display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center;}
.beaut-lookup-mark {font-size:2rem;color:var(--gold-dark);display:block;margin-top:25px;}
.beaut-field-label {display:block;font-size:.7rem;color:var(--text-muted);margin:15px 0 8px;}
.av-input,.form-group input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),.form-group select,.form-group textarea {width:100%;min-width:0;padding:13px 16px;background:#fff;color:var(--text-dark);border:1px solid var(--border-grid);border-radius:10px;font-size:.9rem;line-height:1.6;}
.av-input:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus {border-color:var(--plum-accent);}
.form-group {margin-bottom:20px;}
.form-group label {display:block;margin-bottom:8px;color:var(--text-muted);font-size:.74rem;}
.av-payment-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.av-payment-box {padding:24px;background:var(--pink-bg);border-radius:12px;}
.av-payment-label {display:block;margin-bottom:12px;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);}
.av-payment-val {color:var(--plum-accent);font-family:var(--font-editorial);font-size:1.2rem;overflow-wrap:anywhere;}
.av-map-frame {padding:12px;border:1px solid var(--gold-main);background:var(--cream);border-radius:20px;overflow:hidden;}
.av-map-frame iframe {display:block;width:100%;height:420px;border:0;border-radius:12px;}
/* Footer: one confident closing invitation, then useful navigation. */
.av-footer {padding:65px 48px 25px;background:var(--plum-accent);color:var(--cream);}
.av-footer-inner {max-width:1240px;margin:auto;}
.beaut-footer-invite {display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:50px;margin-bottom:50px;border-bottom:1px solid rgba(255,250,247,.18);}
.beaut-footer-invite h2 {font-family:var(--font-editorial);font-size:clamp(2rem,3.5vw,3.3rem);font-weight:400;line-height:1.2;letter-spacing:-.03em;}
.beaut-footer-invite .av-btn {background:var(--cream);color:var(--plum-accent);border-color:var(--cream);flex-shrink:0;}
.beaut-footer-invite .av-btn:hover {background:var(--pink-bg);}
.beaut-footer-top {display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.av-footer-brand {font-family:var(--font-editorial);font-size:2rem;line-height:1.3;margin-bottom:18px;overflow-wrap:anywhere;}
.av-footer-subtext {max-width:380px;font-size:.82rem;color:#e5c8d1;}
.av-footer-nav {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;align-content:start;font-size:.74rem;}
.av-footer-nav a:hover,.av-footer-socials a:hover {color:var(--gold-light);}
.av-footer-socials {display:flex;gap:25px;flex-wrap:wrap;margin-top:35px;font-size:.72rem;}
.av-footer-divider {height:1px;background:rgba(255,250,247,.18);margin:35px 0 22px;}
.av-footer-bottom {display:flex;justify-content:space-between;gap:20px;font-size:.64rem;line-height:1.8;color:#e5c8d1;}
.av-brand-link {color:var(--gold-light);}
.av-wa {position:fixed;right:24px;bottom:24px;z-index:980;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--cream);color:var(--plum-accent);border:1px solid var(--gold-main);box-shadow:0 5px 20px rgba(58,28,36,.16);}
.av-wa svg {width:25px;height:25px;fill:currentColor;}
.av-wa:hover {background:var(--pink-surface);}
/* Integration styles for the existing booking dialogs, uploads and AI widget. */
.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;
    display: flex;
    flex-direction: column;
    gap: 18px;
    border-top: 1.5px dashed var(--gold-main);
}

.sb-result-card {
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: var(--pure-white);
    border: 1.5px solid var(--border-grid);
    border-radius: var(--radius-card);
}

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

.sb-result-title {
    color: var(--plum-accent);
    font-family: var(--font-editorial);
    font-size: 1.25rem;
}

.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(--gold-dark);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

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

.status-accepted,
.sb-status-badge,
.status-pending,
.status-canceled,
.status-rejected {
    padding: 4px 14px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.status-accepted,
.sb-status-badge {
    color: #15803d;
    background: rgba(34, 197, 94, 0.12);
    border: 1px solid rgba(34, 197, 94, 0.3);
}

.status-pending {
    color: #a16207;
    background: rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
}

.status-canceled,
.status-rejected {
    color: #b91c1c;
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.sb-btn-cancel,
.sienna-btn-cancel {
    width: 100%;
    margin-top: 14px;
    padding: 12px 24px;
    color: var(--pure-white);
    background: #991b1b;
    border: 0;
    border-radius: var(--radius-btn);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    cursor: pointer;
}

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

#globalModal,
.select-modal,
.modal-content,
.action-prompt-card {
    position: relative;
    padding: 35px;
    background: var(--pure-white) !important;
    color: var(--text-dark) !important;
    border: 1.5px solid var(--gold-main) !important;
    border-radius: var(--radius-card) !important;
    box-shadow: 0 10px 30px rgba(92, 29, 50, 0.1) !important;
}

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

.popup-header h2,
.popup-header h3,
.popup-header h4,
.popup-date {
    color: var(--plum-accent) !important;
    font-family: var(--font-editorial) !important;
}

.popup-header .close-btn,
.popup-header .ws-popup-close,
.close-x {
    color: var(--text-muted);
    background: transparent;
    border: 0;
    font-size: 1.25rem;
    cursor: pointer;
}

.modal-option {
    margin-bottom: 10px;
    padding: 16px 20px;
    background: var(--pure-white);
    color: var(--text-dark);
    border: 1.5px solid var(--border-grid);
    border-radius: var(--radius-card);
    cursor: pointer;
}

.modal-option:hover {
    color: var(--plum-accent);
    background: #fff8f9;
    border-color: var(--gold-main);
}

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

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

.time-slot-item {
    padding: 12px 8px;
    text-align: center;
    background: var(--pure-white);
    color: var(--text-dark);
    border: 1.5px solid var(--border-grid);
    border-radius: var(--radius-card);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.time-slot-item:hover {
    color: var(--plum-accent);
    background: #fff8f9;
    border-color: var(--gold-main);
}

.no-slots-container {
    margin: 16px 0;
    padding: 30px 20px;
    text-align: center;
    background: var(--pure-white);
    border: 1.5px solid var(--border-grid);
    border-radius: var(--radius-card);
}

.no-slots-title {
    margin-bottom: 6px;
    color: var(--plum-accent);
    font-family: var(--font-editorial);
    font-size: 1.25rem;
    font-weight: 600;
}

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

.custom-file-upload {
    padding: 28px;
    text-align: center;
    background: var(--pure-white);
    border: 2px dashed var(--gold-main);
    border-radius: var(--radius-card);
    cursor: pointer;
}

.custom-file-upload:hover {
    background: #fff8f9;
}

.upload-icon-wrapper {
    margin-bottom: 10px;
    padding: 12px;
    display: inline-flex;
    background: var(--pink-bg);
    border: 1px solid var(--gold-main);
    border-radius: 50%;
}

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

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

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

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

.btn-dismiss,
.btn-execute {
    padding: 10px 20px;
    border-radius: var(--radius-btn) !important;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
}

.btn-dismiss {
    background: var(--pure-white) !important;
    color: var(--plum-accent) !important;
    border: 1.5px solid var(--border-grid) !important;
}

.btn-execute {
    background: var(--plum-accent) !important;
    color: var(--pure-white) !important;
    border: 1.5px solid var(--gold-main) !important;
}

/* =========================================================
   AI ASSISTANT
========================================================= */

.assistant-fab {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--pure-white);
    border: 1.5px solid var(--gold-main);
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(92, 29, 50, 0.15);
    cursor: pointer;
}

.assistant-fab img {
    width: 26px;
    height: 26px;
}

aside.assistant {
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    background: var(--pure-white) !important;
    border: 1.5px solid var(--gold-main);
    border-radius: var(--radius-card);
    box-shadow: 0 12px 36px rgba(92, 29, 50, 0.15);
    font-family: var(--font-sans);
}

.ai-content-wrapper {
    overflow: hidden;
    display: flex;
    flex: 1;
    flex-direction: column;
    background: var(--pure-white) !important;
}

.ai-header {
    height: 42px;
    padding: 8px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fff8f9;
    border-bottom: 1.5px solid var(--border-grid);
}

.ai-header-content .role-title,
.ai-name {
    color: var(--plum-accent) !important;
    font-weight: 700;
}

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

.ai-header-content #appointly-ai-close {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--pure-white) !important;
    color: var(--plum-accent) !important;
    border: 1px solid var(--gold-main) !important;
    border-radius: 50%;
    cursor: pointer;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.ai-header-content #appointly-ai-close:hover {
    background: var(--plum-accent) !important;
    color: var(--pure-white) !important;
}

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

.ai-public-chat-bubble {
    padding: 14px 18px;
    background: #fff8f9;
    color: var(--text-dark);
    border: 1.5px solid var(--border-grid);
    border-radius: var(--radius-card);
    font-size: 0.9rem;
    line-height: 1.6;
}

.ai-public-chat-bubble.ai-msg {
    background: var(--pure-white) !important;
    border-color: var(--gold-main) !important;
}

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

.ai-input-area-wrapper {
    padding: 12px;
    background: #fff8f9;
    border-top: 1.5px solid var(--border-grid);
}

.ai-input-area-wrapper textarea {
    width: 100%;
    min-height: 44px;
    max-height: 90px;
    padding: 10px 12px;
    background: var(--pure-white);
    color: var(--text-dark);
    border: 1.5px solid var(--border-grid);
    border-radius: var(--radius-card);
    outline: none;
    font-family: var(--font-sans);
}

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

/* Keep overlays above the floating navigation and improve keyboard focus. */
.modal,#globalModalOverlay,.sb-drawer-overlay,.media-safety-layer {z-index:1200;}
#globalModal {z-index:1201;}
#bookingOptionsModal .modal-content,#popupContainer .modal-content,#bookingModal .modal-content {max-height:calc(100dvh - 48px);overflow-y:auto;}
#modalServiceSummaryBox {background:var(--pink-bg)!important;border-color:var(--border-grid)!important;color:var(--text-dark)!important;}
#modalSummaryDuration,#modalSummaryPrice {color:var(--plum-accent)!important;}
.time-slot-item {border-radius:10px;}
.time-slot-item.selected,.time-slot-item.active {background:var(--plum-accent);color:var(--cream);}
.time-slot-item:disabled,.time-slot-item.disabled {opacity:.55;cursor:not-allowed;}
#bookingApp .table-blue-button {background:var(--plum-accent)!important;color:var(--cream)!important;border:1px solid var(--plum-accent)!important;border-radius:999px!important;padding:13px 20px;}
#bookingApp .table-blue-button:disabled {opacity:.5;cursor:not-allowed;}
@media (max-width:1100px) {
    .av-header-inner {padding:12px 20px;gap:18px;}
    .av-nav {gap:18px;}
    .av-hero-inner {gap:40px;}
    .av-section-grid {gap:40px;}
    .av-service-item {grid-template-columns:20px minmax(0,1fr) auto;gap:14px;padding:22px 18px;}
    .av-service-details {gap:14px;}
    .av-service-img {flex-basis:84px;height:100px;}
}
@media (max-width:991px) {
    .av-header {top:12px;padding:0 18px;}
    .av-header.is-scrolled {top:8px;}
    .av-header-inner {min-height:70px;padding:12px 18px;border-radius:14px;}
    .av-brand {max-width:calc(100% - 60px);}
    .av-brand img {height:34px;max-width:45px;}
    .brand-name {font-size:1.2rem;}
    .av-mobile-toggle {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;border:1px solid var(--border-grid);border-radius:50%;background:transparent;cursor:pointer;flex-shrink:0;}
    .av-mobile-toggle span {width:18px;height:1px;background:var(--plum-accent);transition:transform .25s;}
    .av-mobile-toggle.is-active span:first-child {transform:translateY(3.5px) rotate(45deg);}
    .av-mobile-toggle.is-active span:last-child {transform:translateY(-3.5px) rotate(-45deg);}
    .av-header-inner .av-navigation {position:fixed;top:100px;right:18px;width:min(380px,calc(100vw - 36px));max-height:calc(100dvh - 122px);overflow:auto;overscroll-behavior:contain;padding:28px;background:var(--cream);border:1px solid var(--gold-main);border-radius:18px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .25s,visibility .25s,transform .25s;box-shadow:0 20px 50px rgba(58,28,36,.18);}
    .av-header-inner .av-navigation.is-open {opacity:1;visibility:visible;transform:none;}
    .beaut-drawer-heading {display:flex;flex-direction:column;gap:8px;padding-bottom:20px;border-bottom:1px solid var(--border-grid);margin-bottom:10px;}
    .beaut-drawer-heading span {font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;color:var(--gold-dark);}
    .beaut-drawer-heading strong {font:1.6rem var(--font-editorial);color:var(--plum-accent);overflow-wrap:anywhere;}
    .av-navigation .av-nav {display:flex;flex-direction:column;align-items:stretch;gap:0;}
    .av-navigation .t1-nav-link {min-height:55px;font-family:var(--font-editorial);font-size:1.3rem;font-weight:400;border-bottom:1px solid var(--border-grid);color:var(--plum-accent);}
    .av-navigation .t1-nav-link::after {display:none;}
    .av-navigation .av-nav-booking {margin-top:22px;}
    .av-navigation .av-nav-booking .t1-nav-link {font-family:var(--font-sans);font-size:.75rem;font-weight:600;justify-content:space-between;color:var(--cream);}
    .av-hero {padding:125px 30px 55px;}
    .av-hero-inner {gap:30px;}
    .av-hero-title {font-size:clamp(2.8rem,6vw,4.3rem);}
    .beaut-updates {padding:28px 30px 0;}
    .beaut-update-card {grid-template-columns:42px 1fr;padding:26px;gap:18px;}
    .beaut-update-symbol {width:42px;height:42px;}
    .beaut-update-message {grid-column:2;padding:0;border:0;}
    .av-container {width:calc(100% - 60px);}
    .av-section {padding:70px 0;}
    .av-section-grid {grid-template-columns:1fr;gap:32px;}
    .av-sticky-header {position:static;max-width:600px;}
    .av-heading-title {font-size:2.8rem;}
    .av-booking-section {padding:15px 0 60px;}
    .av-booking-section > .av-section-grid {grid-template-columns:.8fr 1.25fr;}
    .av-booking-section .av-sticky-header {padding:35px 25px;}
    .av-booking-section .av-heading-title {font-size:2.4rem;}
    .av-booking-frame {padding:28px 22px;}
    #booking #calendar .fc-toolbar .fc-center h2 {font-size:1.25rem!important;}
    .beaut-practical {padding-top:0;}
    .av-block-card {padding:30px;}
    .av-about-layout {gap:40px;}
    .beaut-lookup-layout {gap:35px;}
    .beaut-footer-top {gap:35px;}
    .av-footer {padding:50px 30px 25px;}
}
@media (max-width:650px) {
    html {scroll-padding-top:105px;}
    .av-header {padding:0 12px;}
    .av-header-inner {padding:10px 14px;min-height:66px;}
    .av-brand {gap:10px;}
    .brand-name {font-size:1.05rem;}
    .av-header-inner .av-navigation {top:92px;right:12px;width:calc(100vw - 24px);max-height:calc(100dvh - 110px);}
    .av-hero {padding:120px 24px 45px;}
    .av-hero-inner {grid-template-columns:1fr;gap:30px;}
    .av-hero-content {padding:0;}
    .av-eyebrow {margin-bottom:24px;font-size:.6rem;}
    .av-hero-title {font-size:clamp(2.75rem,11vw,4rem);}
    .av-hero-sub {font-size:.87rem;}
    .av-hero-actions {gap:22px;margin-top:28px;}
    .av-btn {padding:13px 22px;min-height:50px;gap:20px;}
    .beaut-text-link {font-size:.72rem;}
    .beaut-hero-portrait {width:100%;max-width:370px;margin:10px auto 0;padding-bottom:48px;}
    .av-hero-media {aspect-ratio:5/5.5;}
    .beaut-updates {padding:24px 20px 0;}
    .beaut-update-card {gap:14px;padding:24px 20px;}
    .beaut-update-heading h2 {font-size:1.4rem;}
    .beaut-update-message {grid-column:1/-1;font-size:.8rem;}
    .av-container {width:calc(100% - 40px);}
    .av-section {padding:58px 0;}
    .av-heading-title {font-size:2.45rem;margin-bottom:18px;}
    .av-heading-tag {margin-bottom:14px;}
    .av-service-item {grid-template-columns:18px minmax(0,1fr);gap:14px;padding:22px 18px;}
    .av-service-details {gap:14px;}
    .av-service-img {flex-basis:76px;height:92px;}
    .av-service-content h3 {font-size:1.15rem;}
    .av-service-meta {grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding-top:12px;border-top:1px solid var(--border-grid);}
    .av-service-price {font-size:1.25rem;}
    .av-service-duration {margin:0;font-size:.62rem;}
    .av-booking-section {padding:0 0 55px;}
    .av-booking-section > .av-section-grid {grid-template-columns:1fr;}
    .av-booking-section .av-sticky-header {padding:30px 26px;}
    .av-booking-section .av-sticky-header::after {display:none;}
    .av-booking-section .av-heading-title {font-size:2.4rem;}
    .av-booking-frame {padding:26px 16px;border-radius:0 0 23px 23px;}
    .beaut-calendar-heading {padding-bottom:16px;font-size:.68rem;}
    #booking #calendar .fc-toolbar .fc-center h2 {font-size:1.18rem!important;}
    #booking #calendar .fc-prev-button,#booking #calendar .fc-next-button {width:36px!important;height:36px!important;min-width:36px!important;}
    #booking #calendar .fc-day-number {width:34px!important;height:34px!important;margin:5px auto!important;font-size:.76rem;}
    #booking #calendar .fc-row.fc-week,#booking #calendar .fc-basic-view .fc-body .fc-row {min-height:48px!important;}
    #booking #calendar .fc-day-header {font-size:.57rem!important;letter-spacing:0!important;}
    .beaut-practical {padding-top:0;}
    .av-split-grid,.av-about-layout,.beaut-lookup-layout {grid-template-columns:1fr;gap:24px;}
    .av-block-card {padding:28px 24px;}
    .av-block-card h3 {font-size:1.65rem;}
    .av-hours-row {font-size:.7rem;gap:12px;}
    .av-gallery-grid {gap:14px;}
    .av-gallery-box {border-radius:70px 70px 10px 10px;}
    .av-gallery-box:nth-child(2n) {margin-top:28px;border-radius:10px 10px 70px 70px;}
    .beaut-gallery-index {bottom:10px;left:10px;right:10px;font-size:.6rem;padding:6px 9px;}
    .av-about-layout > div:first-child {padding:0;}
    .av-about-image-wrapper {max-width:420px;width:100%;margin:auto;}
    .av-team-grid {gap:14px;}
    .av-team-member {padding:10px 10px 22px;}
    .av-team-member h3 {font-size:1.2rem;margin-top:18px;}
    .av-team-role {font-size:.55rem;letter-spacing:.06em;}
    .beaut-lookup-mark {display:none;}
    .av-payment-grid {grid-template-columns:1fr;gap:12px;}
    .av-payment-box {padding:20px;}
    .av-map-frame iframe {height:300px;}
    .av-footer {padding:42px 24px 25px;}
    .beaut-footer-invite {flex-direction:column;align-items:flex-start;padding-bottom:32px;margin-bottom:32px;gap:24px;}
    .beaut-footer-invite h2 {font-size:2.4rem;}
    .beaut-footer-top {grid-template-columns:1fr;gap:30px;}
    .av-footer-nav {gap:14px 15px;font-size:.72rem;}
    .av-footer-brand {font-size:1.8rem;}
    .av-footer-bottom {flex-direction:column;gap:8px;}
    .av-summary-bar {bottom:12px;padding:12px 15px;gap:12px;}
    .av-summary-meta {font-size:.75rem;}
    #av-proceed-booking-btn {padding:10px 14px;font-size:.7rem;}
    .av-wa {right:15px;bottom:100px;width:46px;height:46px;}
    #globalModal,.select-modal,.modal-content {padding:24px!important;}
    .time-slots-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
}
@media (prefers-reduced-motion:reduce) {
    html {scroll-behavior:auto;}
    *,*::before,*::after {animation:none!important;transition:none!important;}
}

/* Global-Core draws arrows with ::before; hide the duplicate FullCalendar icon. */
#booking #calendar .fc-prev-button .fc-icon,#booking #calendar .fc-next-button .fc-icon {display:none!important;}
#bookingModal .switch small {color:var(--text-dark)!important;}

/* Override Global-Core's legacy mobile header flow for Beaut only. */
.beaut-premium .av-header.nav-mobile {position:fixed!important;top:20px!important;left:0!important;right:auto!important;height:auto!important;padding-top:0!important;}
.beaut-premium .av-header.nav-mobile.is-scrolled {top:10px!important;}
@media(max-width:991px){
    .beaut-premium .av-header.nav-mobile {top:12px!important;}
    .beaut-premium .av-header.nav-mobile.is-scrolled {top:8px!important;}
}
/* Scoped FullCalendar 3 month-grid structure. Beaut does not rely on another theme's layout CSS. */
#booking #calendar {direction:ltr;text-align:left;}
#booking #calendar .fc-view,#booking #calendar .fc-row {position:relative;}
#booking #calendar table {border-spacing:0;font-size:1em;}
#booking #calendar td,#booking #calendar th {padding:0;vertical-align:top;}
#booking #calendar th {text-align:center;}
#booking #calendar .fc-bg {position:absolute;inset:0;z-index:1;}
#booking #calendar .fc-bg table {height:100%;}
#booking #calendar .fc-content-skeleton {position:relative;z-index:4;padding-bottom:2px;}
#booking #calendar .fc-content-skeleton td {background:transparent;border-color:transparent;}
#booking #calendar .fc-scroller > .fc-day-grid {position:relative;width:100%;}
#booking #calendar .fc-clear {clear:both;}
#booking #calendar button {box-sizing:border-box;margin:0;white-space:nowrap;cursor:pointer;}

/* Keep the first visible content clear of the header when the hero is disabled. */
.beaut-main-offset {padding-top:100px;}
.beaut-updates-offset {padding-top:135px;}

/* Mobile navigation stays in the page flow and scrolls away. */
@media (max-width: 991px) {
    .beaut-premium .av-header.nav-mobile,
    .beaut-premium .av-header.nav-mobile.is-scrolled { position: relative !important; top: auto !important; left: auto !important; right: auto !important; padding: 12px 18px !important; }
    .av-header-inner .av-navigation { position: absolute; top: calc(100% + 4px); }
    .av-hero { padding-top: 60px; }
    .beaut-main-offset { padding-top: 0; }
    .beaut-updates-offset { padding-top: 24px; }
    html { scroll-padding-top: 20px; }
    .av-section, #hero, #updates, #hours, #policies, #lookup, #booking, #calendar { scroll-margin-top: 20px; }
}
@media (max-width: 650px) { .beaut-premium .av-header.nav-mobile, .beaut-premium .av-header.nav-mobile.is-scrolled { padding: 12px !important; } }
