.reiki-native-booking{--rnb-brown:#5a3219;--rnb-line:#d9c8b5;color:#38281e;font-family:inherit;font-size:16px;line-height:1.6;min-width:0}
.reiki-native-booking [hidden]{display:none!important}
.reiki-native-booking .rnb-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0 0 30px;gap:8px;border-bottom:1px solid var(--rnb-line)}
.rnb-progress li{display:flex;align-items:center;gap:7px;padding:0 0 14px;font-size:13px;color:#685c52}
.rnb-progress li span{display:grid;place-items:center;border:1px solid var(--rnb-line);border-radius:50%;width:25px;height:25px;flex-shrink:0}
.rnb-progress li[aria-current]{color:var(--rnb-brown);font-weight:700;box-shadow:0 2px var(--rnb-brown)}
.rnb-progress li[aria-current] span{background:var(--rnb-brown);color:#fff;border-color:var(--rnb-brown)}
.reiki-booking-owner .reiki-native-booking h2{font-family:inherit;font-size:25px;line-height:1.25;margin:0 0 12px;color:#38281e}
.reiki-native-booking p{margin:0 0 18px}.reiki-native-booking label{display:block;font-weight:600;margin:17px 0 7px}
.reiki-native-booking label span{font-weight:400}
.reiki-native-booking select,.reiki-native-booking input:not([type=checkbox]):not([type=radio]),.reiki-native-booking textarea{width:100%;min-height:46px;border:1px solid #a99783;border-radius:5px;background:white;color:#38281e;font:inherit;padding:10px 12px;box-sizing:border-box}
.reiki-native-booking textarea{resize:vertical}.reiki-native-booking select{white-space:normal}
.reiki-native-booking :is(button,input,select,textarea,a):focus-visible{outline:3px solid #895e38;outline-offset:3px}
.reiki-native-booking .rnb-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:25px;flex-wrap:wrap}
.reiki-native-booking button{background:var(--rnb-brown);border:1px solid var(--rnb-brown);border-radius:5px;color:#fff;padding:12px 20px;font-family:inherit;font-weight:600;font-size:15px;line-height:1.4;min-height:46px;cursor:pointer;transition:background .15s}
.reiki-native-booking button:hover:not(:disabled){background:#3e2213}.reiki-native-booking button:disabled{opacity:.5;cursor:default}
.reiki-native-booking button.rnb-secondary{background:white;color:var(--rnb-brown)}
.reiki-native-booking .rnb-notice,.reiki-native-booking .rnb-state,.reiki-native-booking .rnb-empty{background:#f8f2e9;border-left:3px solid #8c633b;padding:12px 15px;margin-bottom:20px}
.reiki-native-booking .rnb-state:empty{display:none}.reiki-native-booking .rnb-alert{background:#fff0ec;border:1px solid #a73b24;padding:12px 15px;color:#822c1c}
.reiki-native-booking .rnb-hold{font-size:14px;color:#5a3219;border-bottom:1px solid var(--rnb-line);padding-bottom:12px}
.reiki-native-booking .rnb-times{border:0;padding:0;margin:22px 0}.rnb-times legend{font-weight:600;margin-bottom:10px}
.rnb-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:9px}
.rnb-time-grid label{position:relative;margin:0;text-align:center;cursor:pointer;font-weight:400}
.rnb-time-grid input{position:absolute;opacity:0;width:100%;height:100%;inset:0;cursor:pointer}
.rnb-time-grid span{display:block;border:1px solid #a99783;padding:10px 5px;border-radius:5px;pointer-events:none}
.rnb-time-grid input:checked+span{background:var(--rnb-brown);color:white;border-color:var(--rnb-brown)}
.rnb-time-grid input:focus-visible+span{outline:3px solid #895e38;outline-offset:3px}
.reiki-native-booking .rnb-consent{display:flex;gap:10px;align-items:flex-start;font-size:15px;font-weight:400}
.rnb-consent input{width:20px;height:20px;flex-shrink:0;margin-top:3px;accent-color:#5a3219}
.reiki-native-booking dl{display:grid;grid-template-columns:minmax(85px,1fr) minmax(0,2fr);gap:8px 15px;padding:18px;background:#faf6f0;border-radius:5px;margin:18px 0}
.reiki-native-booking dt{font-weight:600}.reiki-native-booking dd{margin:0;overflow-wrap:anywhere}.reiki-native-booking a{color:#5a3219;text-decoration:underline}
@media(max-width:767px){.rnb-progress li{flex-direction:column;font-size:12px;gap:5px}.reiki-native-booking .rnb-actions button{flex:1 1 120px;padding:12px}.reiki-booking-owner .reiki-native-booking h2{font-size:23px}.reiki-native-booking dl{grid-template-columns:1fr;padding:15px;gap:3px}.reiki-native-booking dd{margin-bottom:9px}}
@media(prefers-reduced-motion:reduce){.reiki-native-booking button{transition:none}}
/* PPT booking composition: sidebar progress/contact and separate form. */
.elementor .reiki-booking-owner.e-con { display:block; width:100%; max-width:1080px; margin-inline:auto; }
.reiki-booking-owner .reiki-booking-owner__form { width:100%; max-width:none; padding:0; border:0; border-radius:8px; overflow:hidden; }
.reiki-native-booking { display:grid; grid-template-columns:280px minmax(0,1fr); min-height:670px; background:#fffdfa; }
.rnb-sidebar { display:flex; flex-direction:column; background:linear-gradient(140deg,#67462f,#3c261c); color:#fff8f0; }
.reiki-native-booking .rnb-progress { display:flex; flex-direction:column; gap:0; border:0; margin:0; padding:0; }
.reiki-native-booking .rnb-progress li { display:flex; flex-direction:row; align-items:center; gap:12px; min-height:70px; padding:18px 24px; color:#dfd0c3; box-shadow:none; font-size:14px; }
.reiki-native-booking .rnb-progress li[aria-current] { background:#ffffff14; color:#fff; }
.reiki-native-booking .rnb-progress li[aria-current]::after { content:'›'; margin-left:auto; font-size:22px; }
.reiki-native-booking .rnb-progress li[aria-current] span { background:#fff7ee; color:#65412a; border-color:#fff7ee; }
.rnb-sidebar-contact { padding:28px 24px; margin-top:auto; font-size:13px; line-height:1.6; }
.reiki-native-booking .rnb-sidebar-contact h3 { font-family:Arial,sans-serif; color:#fff8ef; font-size:14px; margin:18px 0 8px; }
.reiki-native-booking .rnb-sidebar-contact p { margin:0 0 10px; color:#f0e1d5; }
.reiki-native-booking .rnb-sidebar-contact a { color:#f0e1d5; text-decoration:none; overflow-wrap:anywhere; }
.rnb-main { padding:30px 32px; min-width:0; display:flex; flex-direction:column; }
.rnb-main .rnb-form { order:0; }
.rnb-main .rnb-state { order:1; font-size:13px; margin-top:22px; }
.reiki-native-booking .rnb-main h2 { font-family:Georgia,serif; font-size:26px; font-weight:400; margin:0 0 28px; padding:0 0 18px; border-bottom:1px solid #eadfd5; }
.reiki-native-booking .rnb-durations { border:0; padding:0; margin:22px 0; min-width:0; }
.rnb-durations legend { font-size:14px; margin-bottom:10px; padding:0; font-weight:600; }
.rnb-duration-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(100px,1fr)); gap:8px; }
.reiki-native-booking .rnb-duration-options label { position:relative; margin:0; cursor:pointer; }
.reiki-native-booking .rnb-duration-options input { position:absolute; opacity:0; width:1px; height:1px; }
.rnb-duration-options span { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:60px; height:100%; padding:10px 8px; border:1px solid #e2d7ce; border-radius:4px; }
.rnb-duration-options strong { font-size:14px; font-weight:500; }
.rnb-duration-options small { font-size:12px; font-weight:400; }
.rnb-duration-options input:checked + span { border-color:#8b6346; box-shadow:inset 0 0 0 1px #8b6346; background:#f8f1e8; }
.rnb-duration-options input:focus-visible + span { outline:2px solid #8b6346; outline-offset:2px; }
.reiki-native-booking .rnb-actions { justify-content:flex-end; margin-top:30px; }
.reiki-native-booking .rnb-actions button { border-radius:24px; padding:12px 26px; }
@media(max-width:767px) {
 .reiki-native-booking { display:flex; flex-direction:column; min-height:0; }
 .rnb-sidebar { display:contents; }
 .rnb-sidebar .rnb-progress { background:#503523; order:0; }
 .reiki-native-booking .rnb-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
 .reiki-native-booking .rnb-progress li { flex-direction:column; text-align:center; padding:14px 5px; font-size:11px; gap:6px; min-height:90px; }
 .reiki-native-booking .rnb-progress li[aria-current]::after { display:none; }
 .rnb-sidebar-contact { display:block; order:2; background:#503523; margin:0; }
 .rnb-main { padding:24px 20px; order:1; }
 .rnb-duration-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Optional add-ons: reference checkbox rows above special requests. */
.reiki-native-booking .rnb-addons{border:0;padding:0;margin:24px 0 18px;min-width:0}
.reiki-native-booking .rnb-addons legend{font-weight:600;margin-bottom:14px;padding:0}
.reiki-native-booking .rnb-addon-options label{display:flex;align-items:center;gap:12px;margin:0 0 12px;cursor:pointer;font-weight:400}
.reiki-native-booking .rnb-addon-options input{appearance:auto;width:23px;height:23px;min-width:23px;margin:0;accent-color:#684027}
.reiki-native-booking .rnb-addon-price{margin-left:auto;white-space:nowrap}
.reiki-native-booking .rnb-total{font-weight:600;margin:14px 0 22px}

/* Expanded date picker, matching the supplied calendar structure. */
.reiki-native-booking .rnb-calendar{margin:26px 0 30px}
.reiki-native-booking .rnb-calendar-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:22px;align-items:center}
.reiki-native-booking .rnb-calendar-controls select{height:54px;font-size:20px;border-color:#d2d3d4;box-shadow:0 2px 3px #00000008;border-radius:8px}
.reiki-native-booking .rnb-calendar-nav{display:flex;border:1px solid #d7c7d3;border-radius:30px;overflow:hidden}
.reiki-native-booking .rnb-calendar-nav button{background:white;color:#8c5d81;border:0;border-radius:0;font-size:30px;line-height:1;padding:5px 16px;min-height:50px;font-weight:400}
.reiki-native-booking .rnb-calendar-nav button+button{border-left:1px solid #d7c7d3}
.reiki-native-booking .rnb-calendar-nav button:hover:not(:disabled){background:#f2edf1}
.reiki-native-booking .rnb-timezone{display:table;margin:18px auto 24px;padding:2px 12px;background:#f2edf1;border-radius:11px;color:#8c5d81;font-size:18px;line-height:1.5}
.reiki-native-booking .rnb-calendar-weekdays,.reiki-native-booking .rnb-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px 14px;text-align:center}
.reiki-native-booking .rnb-calendar-weekdays{margin-bottom:18px;font-size:18px;color:#363636}
.reiki-native-booking .rnb-calendar-days button{background:#f3eff2;color:#8c5d81;border:1px solid #b993ac;font-size:20px;font-weight:400;min-height:50px;padding:7px 0;border-radius:5px;position:relative}
.reiki-native-booking .rnb-calendar-days button:hover:not(:disabled){background:#e5d8e1}
.reiki-native-booking .rnb-calendar-days button:disabled{background:#eeedf2;border-color:#eeedf2;color:#91969d;opacity:1}
.reiki-native-booking .rnb-calendar-days button.rnb-calendar-outside{color:#cbb7c6}
.reiki-native-booking .rnb-calendar-days button[aria-pressed=true]{background:#d6c4d1;border:2px solid #8c5d81;color:#744267}
.reiki-native-booking .rnb-calendar-days button[aria-current=date]:after{content:'';position:absolute;right:6px;top:6px;width:5px;height:5px;border-radius:50%;background:#8c5d81}
@media(max-width:767px){
.reiki-native-booking .rnb-calendar-controls{grid-template-columns:1fr 1fr;gap:10px}
.reiki-native-booking .rnb-calendar-controls select{font-size:16px;padding:8px;min-height:44px;height:44px}
.reiki-native-booking .rnb-calendar-nav{grid-column:1/-1;justify-self:end}
.reiki-native-booking .rnb-calendar-nav button{min-height:40px;padding:4px 17px;font-size:25px}
.reiki-native-booking .rnb-calendar-weekdays,.reiki-native-booking .rnb-calendar-days{gap:7px 5px}
.reiki-native-booking .rnb-calendar-weekdays{font-size:13px;margin-bottom:12px}
.reiki-native-booking .rnb-calendar-days button{font-size:16px;min-height:40px;padding:4px 0}
.reiki-native-booking .rnb-timezone{font-size:15px;margin:14px auto 20px}
}

/* Date selection expands the reference-style time range panel. */
.reiki-native-booking .rnb-times{margin:28px 0 0;padding:22px 0 8px;scroll-margin:24px;min-width:0}
.reiki-native-booking .rnb-times-heading{font-size:20px;font-weight:400;margin-bottom:18px;line-height:1.4}
.reiki-native-booking .rnb-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.reiki-native-booking .rnb-time-grid label{margin:0;font-size:18px}
.reiki-native-booking .rnb-time-grid span{padding:14px 8px;background:#f3eff2;color:#8c5d81;border:1px solid #b993ac;border-radius:5px}
.reiki-native-booking .rnb-time-grid input:checked+span{background:#8c5d81;color:white;border-color:#8c5d81}
@media(max-width:767px){.reiki-native-booking .rnb-time-grid{gap:9px}.reiki-native-booking .rnb-time-grid label{font-size:13px}.reiki-native-booking .rnb-time-grid span{padding:13px 4px}.reiki-native-booking .rnb-times-heading{font-size:17px}}

.reiki-native-booking .rnb-payment-methods{border:0;padding:0;margin:24px 0;min-width:0}
.reiki-native-booking .rnb-payment-methods legend{font-size:20px;font-weight:600;margin-bottom:12px}
.reiki-native-booking .rnb-payment-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reiki-native-booking .rnb-payment-options label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border:1px solid #d7c7b7;padding:16px;margin:0;border-radius:7px;cursor:pointer}
.reiki-native-booking .rnb-payment-options label:has(input:checked){border-color:#76503a;background:#f5eee6}
.reiki-native-booking .rnb-payment-options input{accent-color:#76503a;margin:0}
.reiki-native-booking .rnb-payment-options small{width:100%;font-size:12px;color:#75675d;padding-left:23px}
.reiki-native-booking .rnb-payment-options small:empty{display:none}
.reiki-native-booking .rnb-payment-details{font-size:14px;margin-bottom:20px}
@media(max-width:767px){.reiki-native-booking .rnb-payment-options{grid-template-columns:1fr}}
.rnb-progress li.rnb-complete span{background:#148b32!important;border-color:#148b32!important;color:#fff!important}
