/* Scoped VRE consultation booking UI. Inherits the approved VRE color and font tokens. */
.vre-booking-page{background:var(--paper);color:var(--ink)}
.booking-header{position:relative;z-index:4}
.booking-header-links{display:flex;align-items:center;gap:35px;font-size:12px;font-weight:600}
.booking-header-links a:hover{color:var(--gold)}
.booking-header-links .booking-return{border-bottom:1px solid var(--line);padding-bottom:8px}
.booking-intro{background:var(--ink);color:var(--cream);padding:85px 0 76px}
.booking-intro-inner{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.7fr);gap:70px;align-items:end}
.booking-intro h1{font-size:clamp(48px,5.7vw,84px);line-height:1.09;margin-bottom:28px}
.booking-intro h1 em{color:var(--gold-light)}
.booking-intro-copy{color:#c9cec5;max-width:530px;font-size:16px;line-height:1.75;margin:0}
.booking-intro-meta{border-left:1px solid #526057;padding:12px 0 8px 33px}
.booking-meta-item{display:flex;gap:17px;align-items:center;margin:0 0 23px}
.booking-meta-icon{border:1px solid #6c796d;width:41px;height:41px;display:grid;place-items:center;border-radius:50%;font-size:19px;color:var(--gold-light);flex:none}
.booking-meta-item strong,.booking-meta-item span:not(.booking-meta-icon){display:block}
.booking-meta-item strong{font-family:var(--serif);font-size:17px;font-weight:400;color:#fff}
.booking-meta-item div span{font-size:12px;color:#b9beb7}
.booking-intro-caption{font-size:11px;color:#b5bdaf;letter-spacing:.02em}
.booking-calendar-section{padding:90px 0 110px}
.booking-calendar-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:38px}
.booking-calendar-heading .eyebrow{margin-bottom:12px}
.booking-calendar-heading h2{margin:0;font-size:clamp(40px,4.5vw,58px)}
.booking-calendar-heading p:last-child{max-width:350px;color:var(--muted);font-size:13px;line-height:1.8;margin:0}
.booking-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.9fr);align-items:start;gap:26px}
.booking-schedule{border:1px solid var(--line);background:white;padding:37px 36px 29px;min-height:565px}
.booking-selection{background:#f6f3ed;border:1px solid #e4e1d9;padding:38px 36px;min-height:565px}
.booking-calendar-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.booking-calendar-top h3,.booking-selection h3{font-size:30px;margin:0}
.booking-week-controls{display:flex;gap:7px}
.booking-week-controls button{border:1px solid var(--line);background:var(--paper);width:40px;height:40px;font-size:18px;line-height:1;color:var(--ink)}
.booking-week-controls button:hover:not(:disabled){background:var(--ink);color:#fff}
.booking-week-controls button:disabled{opacity:.32;cursor:not-allowed}
.booking-tz{font-size:11px;letter-spacing:.05em;color:var(--muted);padding-bottom:21px;border-bottom:1px solid var(--line);margin:10px 0 22px}
.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-height:86px}
.booking-loading{grid-column:1/-1;font-size:14px;color:var(--muted);text-align:center;align-self:center}
.booking-day{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px solid #dedfd7;background:#fff;color:var(--ink);min-height:90px;padding:10px 3px;transition:background .15s,border-color .15s}
.booking-day .weekday{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.booking-day .daynumber{font-size:26px;font-family:var(--serif);line-height:1.15}
.booking-day .daycount{font-size:10px;color:var(--gold)}
.booking-day:not([disabled]):hover{border-color:var(--gold);background:#fdf9f1}
.booking-day.active{background:var(--ink);border-color:var(--ink);color:white}
.booking-day.active .weekday,.booking-day.active .daycount{color:var(--gold-light)}
.booking-day:disabled{opacity:.38;cursor:default}
.booking-times-block{padding-top:31px;margin-top:27px;border-top:1px solid var(--line)}
.booking-times-block h4{font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 18px}
.booking-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;min-height:58px}
.booking-time{background:#fff;border:1px solid #cdd2ca;color:var(--ink);padding:11px 6px;min-height:49px;font-size:12px;letter-spacing:.04em;text-align:center;transition:background .15s,border-color .15s}
.booking-time:hover{border-color:var(--gold);background:#fdf9f1}
.booking-time.active{background:var(--ink);border-color:var(--ink);color:white}
.booking-hint{grid-column:1/-1;color:var(--muted);font-size:13px;line-height:1.6;align-self:center}
.booking-calendar-fine{font-size:11px;color:#7b817b;margin:28px 0 0;line-height:1.75}
.booking-error{margin:14px 0 0;padding:12px 14px;color:#9d392d;background:#fff1e9;border:1px solid #e7c5b9;font-size:13px}
.booking-text-button{background:none;border:0;color:var(--gold);font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:7px 0}
.booking-selection .eyebrow{margin:0 0 12px}
.booking-selection-content{margin-top:34px;color:#6b726a;font-size:14px;line-height:1.8}
.booking-selection-marker{border:1px solid var(--sand);border-radius:50%;width:80px;height:80px;display:grid;place-items:center;font-size:31px;color:var(--gold);margin-bottom:25px}
.booking-selection-content p{max-width:300px}
.booking-rule{height:1px;background:#dfddd2;margin:28px 0}
.booking-selection-foot{font-size:12px;color:#8b8c81}
.booking-selected-summary{border:1px solid #ded9ca;background:#fffefa;padding:15px 18px;margin:23px 0 22px}
.booking-selected-summary span{font-size:10px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;display:block}
.booking-selected-summary strong{display:block;font:400 21px var(--serif);margin:7px 0 2px}
.booking-request-form{display:flex;flex-direction:column;gap:13px}
.booking-request-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:11px;letter-spacing:.025em;color:#444c44}
.booking-request-form label span[aria-hidden]{color:#a16c4f}
.booking-request-form input,.booking-request-form select,.booking-request-form textarea{border:1px solid #d8d8cd;border-radius:0;background:white;color:#19201d;padding:12px 12px;font-size:13px;line-height:1.4;min-height:45px;width:100%;outline-offset:2px;letter-spacing:normal;font-weight:400}
.booking-request-form textarea{min-height:77px;resize:vertical}
.booking-request-form input:focus,.booking-request-form select:focus,.booking-request-form textarea:focus{border-color:#9a7846}
.booking-fields-pair{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.booking-form-divider{font-size:10px;letter-spacing:.17em;color:var(--gold);margin:10px 0 0;font-weight:700}
.booking-optional{font-weight:400;color:#94988e;letter-spacing:normal}
.booking-submit{width:100%;margin-top:10px;text-align:center;justify-content:space-between;padding:16px 18px}
.booking-submit-status{font-size:12px;color:#a33e32;line-height:1.5;margin:0;min-height:0}
.booking-form-foot{font-size:11px;color:#898b82;line-height:1.65;margin:4px 0 0}
.booking-success{text-align:center;padding:22px 0 7px}
.booking-success-mark{width:67px;height:67px;display:grid;place-items:center;border:1px solid #abb9ad;border-radius:50%;font-size:28px;margin:0 auto 24px}
.booking-success h4{font-family:var(--serif);font-size:34px;margin:0 0 16px;font-weight:400}
.booking-success p{font-size:14px;line-height:1.7;color:#646c63}
.booking-success .button{margin-top:15px}
.booking-footer-cta{background:var(--ink);color:#fff;padding:33px 0}
.booking-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.booking-footer-cta p{font-size:13px;margin:0;color:#d1d6cb}
.booking-footer-cta a{color:#e9cda7;text-decoration:underline;text-underline-offset:4px}
.booking-footer-inner>a{text-decoration:none;font-size:12px;color:white;white-space:nowrap}
@media(max-width:1050px){.booking-intro-inner{gap:36px;grid-template-columns:minmax(0,1.1fr) minmax(260px,.8fr)}.booking-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.85fr)}.booking-schedule,.booking-selection{padding:27px 22px}.booking-days{gap:5px}.booking-time{font-size:11px}}
@media(max-width:820px){.booking-intro-inner{grid-template-columns:1fr;gap:32px}.booking-intro-meta{border-left:0;border-top:1px solid #526057;padding:26px 0 0;display:flex;gap:20px;flex-wrap:wrap}.booking-meta-item{margin:0;min-width:160px;flex:1}.booking-intro-caption{width:100%}.booking-calendar-heading{align-items:start;flex-direction:column;gap:12px}.booking-layout{grid-template-columns:1fr}.booking-selection,.booking-schedule{min-height:0}.booking-intro{padding:58px 0}.booking-calendar-section{padding:65px 0 80px}}
@media(max-width:600px){.booking-header{height:76px;padding:0 23px}.booking-header .brand-mark{font-size:32px}.booking-header .brand-sub{font-size:6px}.booking-header-links a:first-child{display:none}.booking-header-links{gap:0}.booking-header-links .booking-return{font-size:11px}.booking-intro{padding:54px 0 50px}.booking-intro h1{font-size:clamp(46px,11vw,62px)}.booking-intro-copy{font-size:14px}.booking-intro-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px 10px}.booking-meta-item{min-width:0;margin:0;gap:10px}.booking-meta-icon{width:33px;height:33px;font-size:16px}.booking-meta-item strong{font-size:14px}.booking-meta-item div span{font-size:10px}.booking-calendar-section{padding:49px 0 65px}.booking-calendar-heading h2{font-size:42px}.booking-calendar-heading p:last-child{font-size:12px}.booking-schedule{padding:26px 16px}.booking-selection{padding:31px 23px}.booking-calendar-top h3{font-size:25px}.booking-days{gap:4px}.booking-day{min-height:70px;padding:6px 2px}.booking-day .weekday{font-size:8px}.booking-day .daynumber{font-size:22px}.booking-day .daycount{font-size:8px}.booking-times{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.booking-time{min-height:48px}.booking-times-block{padding-top:24px;margin-top:20px}.booking-fields-pair{grid-template-columns:1fr}.booking-footer-inner{align-items:start;flex-direction:column;gap:14px}.booking-footer-cta p{font-size:12px}.booking-intro-inner,.booking-calendar-section>.container{max-width:none}}
@media(max-width:420px){.booking-day .weekday{font-size:8px;letter-spacing:0}.booking-day .daynumber{font-size:20px}.booking-day .daycount{font-size:0}.booking-day .daycount::after{content:'•';font-size:12px}.booking-day:disabled .daycount::after{content:'–'} }
