:root{--cream:#fffaf7;--plum:#593642;--deep:#3a252d;--blush:#f5e7e6;--rose:#b96f80;--border:#f0e4e2;--muted:#8a7880;--mint:#e7f4e9;--green:#286942;--pale:#fff3f2;--shadow:0 16px 55px rgba(66,35,45,.07)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--deep);font-family:"Segoe UI",Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:3px solid var(--rose);outline-offset:4px}
.site-header{max-width:1140px;margin:auto;padding:25px 30px;display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;gap:12px;align-items:center}
.monogram{width:43px;height:43px;border:1px solid #d6b2b9;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:18px;letter-spacing:-2px;color:var(--plum)}
.brand-text{font-family:Georgia,serif;letter-spacing:.01em;font-size:20px;color:var(--plum);font-weight:600}
.brand-text small{display:block;font:500 10px "Segoe UI",Arial,sans-serif;letter-spacing:3px;text-transform:uppercase;margin:3px 0 0 1px}
.nav-link{font-size:13px;border-bottom:1px solid #b88b94;padding-bottom:4px;font-weight:600;color:var(--plum)}
main{max-width:1050px;margin:auto;padding:0 24px 56px}
.intro{position:relative;text-align:center;padding:62px 12px 57px}
.eyebrow,.overline{font-size:10px;font-weight:700;letter-spacing:2.6px;color:var(--rose);margin:0 0 17px}
.eyebrow-line{display:inline-block;vertical-align:middle;margin-right:10px;width:24px;height:1px;background:var(--rose)}
h1,h2,p{margin-top:0}
h1{font:400 clamp(42px,6.7vw,78px)/1.05 Georgia,"Times New Roman",serif;letter-spacing:-2.4px;color:var(--plum);margin:0 auto 18px}
h1 em{color:var(--rose);font-weight:400}
.intro-copy{max-width:510px;margin:0 auto;font-size:15px;line-height:1.8;color:#74636a}
.intro-spark{position:absolute;color:#cea6ad;font-family:Georgia,serif;pointer-events:none}
.spark-one{left:12%;top:34%;font-size:34px;transform:rotate(-20deg)}
.spark-two{right:14%;top:24%;font-size:23px}
.hero-notes{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:27px;font-size:11px;letter-spacing:.3px;color:#866c77}
.hero-notes i{font-size:10px;font-style:normal;color:var(--rose);padding-right:5px}
.calendar-wrap{background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:34px 40px 26px}
.calendar-top{display:flex;align-items:start;justify-content:space-between;gap:15px}
.calendar-top h2{font:400 34px/1.17 Georgia,serif;letter-spacing:-.8px;color:var(--plum);margin:0 0 10px}
.date-range{font-size:13px;color:var(--muted);margin:0}
.refresh{background:transparent;border:1px solid #e9d9da;border-radius:12px;padding:11px 15px;font-size:12px;color:var(--plum);font-weight:600;display:inline-flex;gap:8px;align-items:center}
.refresh span{font-size:21px;line-height:.65}
.refresh:hover,.refresh:focus-visible{background:#fdf5f5}
.refresh:disabled{opacity:.5;cursor:wait}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:15px;flex-wrap:wrap}
.tabs{display:inline-flex;background:#f8f2f0;border:1px solid #f2e7e5;border-radius:11px;padding:4px}
.tab{border:0;padding:9px 19px;border-radius:8px;background:transparent;color:#826f76;font-size:12px;font-weight:600;transition:background .15s}
.tab.selected{background:#fff;box-shadow:0 2px 8px rgba(56,32,43,.07);color:var(--plum)}
.updated{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}
.pulse-dot{background:#aa929d;border-radius:100%;width:7px;height:7px;display:inline-block}
.updated.fresh .pulse-dot{background:#58a56a}
.legend{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:29px 0 12px;font-size:11px;color:#766770}
.legend>span{display:inline-flex;align-items:center;gap:7px}
.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.legend-dot.available{background:#66ab7c}
.legend-dot.unavailable{background:#d6a3ab}
.legend-dot.past{background:#b4adb0}
.table-scroll{width:100%;overflow-x:auto}
.calendar-table{width:100%;border-collapse:collapse}
.calendar-table thead th{text-align:left;color:#9f9098;font-weight:700;font-size:10px;letter-spacing:1.4px;padding:14px 15px 14px}
.calendar-table thead th:not(:first-child){text-align:center}
.calendar-table tbody tr{border-top:1px solid #f2eaea}
.calendar-table tbody tr:last-child{border-bottom:1px solid #f2eaea}
.calendar-table tbody td{padding:12px 15px}
.calendar-table tbody td:not(:first-child){text-align:center}
.day-label{font-size:13px;font-weight:700;color:var(--deep)}
.day-label small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
.today-mark{font-size:9px;background:#f8eced;color:#a36a79;display:inline-block;padding:3px 6px;border-radius:5px;margin-left:7px;vertical-align:middle}
.slot{display:inline-flex;min-width:100px;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:10px 10px;font-size:11px;font-weight:700}
.slot .slot-icon{font-size:14px;line-height:1}
.slot.available{background:var(--mint);color:var(--green)}
.slot.unavailable{background:#fbeef0;color:#a86b77}
.slot.past{background:#f4f2f2;color:#979097}
.calendar-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding:23px 14px 7px}
.count-number{font:400 27px Georgia,serif;color:var(--plum);vertical-align:middle}
.count-caption{font-size:12px;color:var(--muted);padding-left:8px}
.calendar-reminder{font-size:11px;color:var(--muted)}
.calendar-disclaimer{font-size:11px;line-height:1.65;color:#95848b;border-top:1px solid #f3ebea;padding:19px 3px 0;margin:17px 0 0}
.loading-panel{display:flex;justify-content:center;align-items:center;gap:11px;color:var(--muted);font-size:13px;padding:55px 16px}
.loading-spinner{width:20px;height:20px;border-radius:50%;border:2px solid #eedee1;border-top-color:var(--rose);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.error-panel{border:1px solid #f1c8ce;background:#fff8f8;padding:23px;border-radius:13px;margin:18px 0;color:var(--plum)}
.error-panel strong{font-size:14px}
.error-panel p{font-size:12px;color:var(--muted);margin:8px 0}
.error-panel a{display:inline-block;font-weight:700;text-decoration:underline;margin-top:7px;font-size:12px}
.book-panel{background:linear-gradient(113deg,#613e4c,#8e6571);border-radius:22px;padding:47px 48px;margin-top:32px;color:#fff;display:flex;gap:28px;justify-content:space-between;align-items:center;position:relative;overflow:hidden}
.book-panel:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%;width:290px;height:290px;right:-140px;top:-170px;pointer-events:none}
.book-panel .overline{color:#f6d9df}
.book-panel h2{font:400 34px/1.12 Georgia,serif;letter-spacing:-.8px;margin:0 0 12px}
.book-panel p:not(.overline){color:#f8e8ec;font-size:13px;line-height:1.65;margin:0;max-width:390px}
.book-cta{white-space:nowrap;position:relative;background:#fff;color:var(--plum);border-radius:12px;padding:16px 20px;font-weight:700;font-size:12px}
.book-cta span{padding-left:13px}
.ornament{position:absolute;font-size:65px;color:rgba(255,255,255,.09);right:35%;top:-12px}
.booking-notes{display:grid;grid-template-columns:1fr 1fr;gap:36px;padding:43px 12px 12px}
.note{display:flex;gap:14px}
.note-icon{font-family:Georgia,serif;color:var(--rose);font-size:23px}
.note strong{font-size:13px;color:var(--plum)}
.note p{font-size:12px;line-height:1.75;color:var(--muted);margin:7px 0}
footer{border-top:1px solid var(--border);max-width:1050px;margin:auto;padding:24px 24px 35px;display:flex;justify-content:space-between;gap:10px;color:#8a7b81;font-size:11px}
footer a{color:var(--plum);font-weight:600}
[hidden]{display:none!important}
@media(max-width:700px){.site-header{padding:19px 20px}.monogram{width:39px;height:39px}.brand-text{font-size:18px}main{padding:0 16px 32px}.intro{padding:45px 8px 39px}.intro-spark.spark-one{left:0;top:25%}.intro-spark.spark-two{right:2%;top:15%}.intro-copy{font-size:13px}.hero-notes{gap:9px 17px;font-size:10px}.calendar-wrap{padding:25px 18px 22px;border-radius:18px}.calendar-top h2{font-size:27px}.calendar-top .overline{font-size:9px}.refresh{padding:10px;font-size:0}.refresh span{font-size:24px}.calendar-toolbar{margin-top:21px}.tab{padding:9px 13px}.calendar-table thead{display:none}.calendar-table,.calendar-table tbody{display:block}.calendar-table tbody tr{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:8px;border:1px solid #f0e8e6;border-radius:13px;padding:14px 12px;margin:11px 0}.calendar-table tbody tr:last-child{border-bottom:1px solid #f0e8e6}.calendar-table tbody td{padding:0}.calendar-table tbody td:first-child{grid-column:1/-1;padding-bottom:4px}.calendar-table tbody td:not(:first-child){text-align:center}.calendar-table tbody td:not(:first-child):before{content:attr(data-time);display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.slot{min-width:0;width:100%;font-size:10px;padding:10px 5px}.slot .slot-icon{font-size:12px}.day-label small{display:inline;margin-left:5px}.legend{gap:13px;margin-top:25px}.calendar-bottom{padding:15px 0 5px}.book-panel{flex-direction:column;align-items:start;padding:30px 25px;gap:25px}.book-panel h2{font-size:30px}.book-cta{text-align:center;width:100%}.booking-notes{grid-template-columns:1fr;gap:19px;padding:33px 9px 7px}footer{padding:20px 18px 30px;flex-direction:column;gap:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
