/* Reference-led visual coordination: quiet mist, generous rhythm, readable tools. */
:root{--surface-shadow:0 16px 45px -32px #4e365c55;--soft-edge:#ddd8e1}
body{background:radial-gradient(ellipse at 91% 1%,#eee4edaa,transparent 36%),radial-gradient(ellipse at 4% 23%,#e8f1f5b3,transparent 42%),linear-gradient(180deg,#fbfaf8 0%,#faf7fa 38%,#f1f5f8 74%,#faf9f7 100%);background-attachment:fixed}
.header-inner{height:94px;padding-top:0}
.brand-header{background:transparent;border:0}
.intro-panel{min-height:166px;padding:25px 4px 32px;overflow:hidden}
.intro-copy h1{font-size:46px;line-height:1.3}
.intro-copy p{margin-top:14px;letter-spacing:.08em;color:#69727e}
.intro-copy,.intro-actions{position:relative;z-index:1}
.particle-network{opacity:.62}
.page-motion-toggle{bottom:12px;background:#ffffffa6;border-color:#e2dce5;color:#67727e}
.location-section{margin:25px 0 32px}
.section-title{margin-bottom:20px;gap:18px}
.section-title h2{letter-spacing:.025em}
.section-title>span{color:#7c818c}
.location-tabs{gap:18px}
.location-tab{min-height:106px;padding:19px 20px;border:1px solid #e2dce5;border-radius:18px;background:linear-gradient(135deg,#ffffffed,#faf8fbd9 64%,#f0edf4e6);box-shadow:inset 0 1px 0 #fff,0 3px 0 #dddce4,0 15px 30px -27px #4f3c6070}
.location-tab:hover{transform:translateY(-3px);border-color:#b99bb0;box-shadow:inset 0 1px 0 #fff,0 5px 0 #d9d5df,0 18px 34px -25px #69547470}
.location-tab.is-active{background:linear-gradient(140deg,#b64c7c,#963261 55%,#71274f);border-color:#914169;box-shadow:inset 0 1px 0 #e7abc4,0 3px 0 #632346,0 16px 30px -23px #79274f90}
.location-tab>svg{color:#946580}
.location-caption{color:#79828e}
.button,.icon-button{border-radius:14px;border-color:#d9d9e1;background:linear-gradient(145deg,#fffffff2,#f4f5f8 65%,#e9edf3);box-shadow:inset 0 1px 0 #fff,0 3px 0 #d5d9e1,0 10px 22px -19px #4d3e6266}
.button:hover,.icon-button:hover{border-color:#b8a4b6;box-shadow:inset 0 1px 0 #fff,0 5px 0 #d5d4de,0 14px 25px -20px #5a426b77}
.intro-actions .button{background:linear-gradient(145deg,#fffcfe,#f5eef5 70%,#eadeeb);border-color:#d7c8d5;box-shadow:inset 0 1px 0 #fff,0 3px 0 #d4c6d2,0 12px 25px -20px #76526c77}
.button-primary{background:linear-gradient(145deg,#c25a85,#9b3163 58%,#70254c);border-color:#8d315d;color:#fff;box-shadow:inset 0 1px 0 #eaa2bf,0 4px 0 #652144,0 15px 28px -20px #83205088}
.button-primary:hover{background:linear-gradient(145deg,#c96790,#a73a6d 58%,#7b2b55)}
.schedule-panel{border-color:#e1dfe7;border-radius:23px;background:#ffffffec;box-shadow:var(--surface-shadow);padding-inline:26px}
.schedule-panel::before{inset-inline:27px;height:2px;opacity:.65}
.calendar-toolbar{padding-top:28px;padding-bottom:25px}
.calendar-heading h2{letter-spacing:.015em}
.view-switch{background:#efedf3;border-color:#e3dfe8;border-radius:15px}
.view-switch button{border-radius:11px}
.calendar-meta{padding-top:22px}
.calendar-legend{margin-top:15px;margin-bottom:16px}
.month-head{border-radius:14px 14px 0 0;overflow:hidden}
.month-head>div{background:#263e50;border-color:#ffffff0c}
.month-day{border-color:#e5e7eb;background:#fff}
.month-day.is-weekend,.month-day.is-holiday{background:#fcf3f7}
.month-event{border-radius:9px;box-shadow:none}
.month-grid{border-radius:0 0 14px 14px;overflow:hidden}
.calendar-footer,.page-footer{color:#7b818d}
.booking-dialog,.info-dialog{background:linear-gradient(155deg,#fff 35%,#f8f4f9 75%,#f1f5f8);border:1px solid #e1dbe5;border-radius:24px;box-shadow:0 28px 90px -32px #30293b66}
.booking-dialog::backdrop,.info-dialog::backdrop{background:#26334466;backdrop-filter:blur(5px)}
.day-overview,.review-summary,.form-context{border-color:#e0d9e5;background:linear-gradient(140deg,#fff,#f4f0f7)}
input,select,textarea{border-color:#d5d6df!important;border-radius:11px}
.occupied-group{border-color:#ccd6e1;border-radius:12px}
.occupied-details{background:#f6f8fb}
@media(max-width:1200px){.location-tab{padding-inline:15px;gap:10px}.location-tabs{gap:14px}.intro-copy h1{font-size:43px}}
@media(max-width:960px){.header-inner{height:86px}.intro-panel{min-height:152px}.location-tab{min-height:96px}.schedule-panel{padding-inline:20px}}
@media(max-width:680px){
 .header-inner{height:78px}.intro-panel{min-height:0;padding:21px 1px 23px}.intro-copy h1{font-size:clamp(27px,8.8vw,35px)!important;line-height:1.3}.intro-copy p{letter-spacing:.025em;margin-top:13px}
 .location-section{margin:25px 0 28px}.section-title{margin-bottom:18px;gap:12px}.section-title h2{font-size:23px;letter-spacing:0}.location-tabs{gap:14px}.location-tab{min-height:96px;padding:15px 11px;border-radius:15px;gap:9px}.location-name{font-size:18px}.location-caption{font-size:10px}.particle-network{opacity:.5}
 .schedule-panel{padding-inline:14px;border-radius:18px}.schedule-panel::before{inset-inline:18px}.calendar-toolbar{padding-top:24px;padding-bottom:22px}.calendar-meta{padding-top:18px}.calendar-legend{margin-top:12px;margin-bottom:13px}.month-head{border-radius:10px 10px 0 0}
 .booking-dialog,.info-dialog,.booking-dialog[data-step=day]{border-radius:23px 23px 0 0}.page-motion-toggle{bottom:22px!important}
}
@media(max-width:370px){.location-tab{padding-inline:9px;gap:7px}.location-name{font-size:17px}.header-inner{padding-inline:12px}.calendar-heading h2{font-size:25px}}
/* At 320px the month label needs its own row instead of wrapping its last glyph. */
@media(max-width:370px){.calendar-toolbar{grid-template-columns:1fr;gap:15px}.calendar-heading{grid-column:1;grid-row:1}.calendar-heading h2{white-space:nowrap}.view-switch{grid-column:1;grid-row:2;justify-self:end}.period-navigation{grid-column:1;grid-row:3}.calendar-heading p{font-size:11px}}
@media(max-width:440px){.demo-summary dl>div:has(.content-value){grid-template-columns:minmax(0,1fr);gap:6px}.demo-summary .content-value{font-size:16px;font-weight:500;line-height:1.8;overflow-wrap:anywhere}}
.header-butterfly{position:absolute;right:27%;top:20px;width:47px;height:40px;color:var(--wine-deep);opacity:.52;pointer-events:none;z-index:0;transform:rotate(-18deg)}
.header-butterfly svg{display:block;width:100%;height:100%;overflow:visible}
.butterfly-wings{transform-origin:40px 35px;animation:butterfly-breathe 4.8s ease-in-out infinite;animation-play-state:paused}
.decor-running .butterfly-wings{animation-play-state:running}
@keyframes butterfly-breathe{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.82)}}
@media(max-width:960px){.header-butterfly{right:25%;width:39px;top:14px}}
@media(max-width:680px){.header-butterfly{right:4px;top:4px;width:29px;height:25px;opacity:.44}}
@media(prefers-reduced-motion:reduce){.butterfly-wings{animation:none!important;transform:none}}
/* Original generated illustration: keep its alpha, proportions and painted detail. */
.header-butterfly{width:110px;height:auto;top:16px;right:27%;opacity:.9;transform:none}
.header-butterfly .butterfly-art{display:block;width:100%;height:auto;max-width:none;animation:butterfly-illustration 7s ease-in-out infinite;animation-play-state:paused;transform-origin:50% 60%}
.decor-running .butterfly-art{animation-play-state:running}
@keyframes butterfly-illustration{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(0deg)}}
@media(max-width:960px){.header-butterfly{width:88px;right:27%;top:10px}}
@media(max-width:680px){.header-butterfly{width:58px;right:0;top:3px;opacity:.85}}
@media(max-width:370px){.header-butterfly{width:52px;top:4px}}
@media(prefers-reduced-motion:reduce){.header-butterfly .butterfly-art{animation:none!important;transform:none}}
/* Anchor the illustration to the final heading glyph, outside its reveal mask. */
.title-composition{position:relative;width:max-content;max-width:100%;isolation:isolate}
.title-composition .header-butterfly{left:calc(100% - 12px);right:auto;top:-23px;width:94px;height:auto;z-index:2;opacity:.95}
.title-composition .butterfly-art{animation:butterfly-illustration 4s ease-in-out infinite;animation-play-state:paused;transform-origin:48% 62%}
.decor-running .title-composition .butterfly-art{animation-play-state:running}
@keyframes butterfly-illustration{0%,100%{transform:perspective(650px) translateY(0) rotate(-4deg) rotateY(-5deg)}50%{transform:perspective(650px) translateY(-2px) rotate(-1deg) rotateY(5deg)}}
@media(max-width:960px){.title-composition .header-butterfly{width:86px;top:-20px}}
@media(max-width:680px){.title-composition .header-butterfly{width:64px;left:calc(100% - 9px);top:-17px}}
@media(max-width:370px){.title-composition .header-butterfly{width:60px;top:-16px}}
