#rtn-consultation-calendar{position:relative;max-width:800px;margin:0 auto;font-family:fieldwork,sans-serif;padding:12px}.calendar-loading{position:absolute;top:0;left:0;right:0;bottom:0;background:rgb(255 255 255 / .9);display:flex;align-items:center;justify-content:center;z-index:100;border-radius:20px}.payment-method-btn.selected{border-color:#3b6b52!important;background-color:#f0f7f3!important}.calendar-loading.hidden{display:none}.loading-spinner{width:40px;height:40px;border:4px solid var(--_brand-colours---grey,#f4f4f4);border-top-color:var(--_brand-colours---brand-green,#3b6b52);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.calendar-error{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:12px 16px;border-radius:12px;margin-bottom:20px;text-align:center}.calendar-error.hidden{display:none}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:0 10px}.calendar-month-display{font-size:24px;font-weight:700;color:var(--_brand-colours---text,#071b19)}.calendar-nav-btn{background-color:var(--_brand-colours---grey,#f4f4f4);border:1px solid var(--_brand-colours---brand-green,#3b6b52);color:var(--_brand-colours---brand-green,#3b6b52);width:44px;height:44px;border-radius:50%;cursor:pointer;font-size:18px;font-weight:700;transition:all 0.3s ease;display:flex;align-items:center;justify-content:center}.calendar-nav-btn:hover:not(:disabled){background-color:var(--_brand-colours---light-green,#c5e0b3)}.calendar-nav-btn:disabled{opacity:.4;cursor:not-allowed}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:30px}.calendar-day-header{text-align:center;font-weight:700;font-size:14px;color:var(--_brand-colours---brand-green,#3b6b52);padding:10px 0;text-transform:uppercase;letter-spacing:1px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px solid #fff0;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all 0.3s ease;background:var(--_brand-colours---white,white)}.calendar-day.empty{background:#fff0;cursor:default}.calendar-day.unavailable{color:#ccc;cursor:not-allowed;background:var(--_brand-colours---grey,#f4f4f4)}.calendar-day.available{background-color:var(--_brand-colours---light-green,#c5e0b3);color:var(--_brand-colours---dark-green,#1d3428);border-color:var(--_brand-colours---brand-green,#3b6b52)}.calendar-day.available:hover{background-color:var(--_brand-colours---brand-green,#3b6b52);color:#fff;transform:scale(1.05)}.calendar-day.selected{background-color:var(--_brand-colours---brand-green,#3b6b52);color:#fff;border-color:var(--_brand-colours---dark-green,#1d3428)}.time-slots-container{background-color:var(--_brand-colours---grey,#f4f4f4);border:1px solid var(--_brand-colours---brand-green,#3b6b52);border-radius:20px;padding:24px;margin-bottom:0;margin-top:20px}.time-slots-container.hidden{display:none}.time-slots-header{font-size:18px;font-weight:700;color:var(--_brand-colours---text,#071b19);margin-bottom:20px;text-align:center}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.time-slot-btn{background-color:var(--_brand-colours---white,white);border:2px solid var(--_brand-colours---brand-green,#3b6b52);color:var(--_brand-colours---brand-green,#3b6b52);padding:12px 16px;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.3s ease;text-transform:lowercase}.time-slot-btn:hover{background-color:var(--_brand-colours---light-green,#c5e0b3)}.time-slot-btn.selected{background-color:var(--_brand-colours---brand-green,#3b6b52);color:#fff}.booking-form{background-color:var(--_brand-colours---grey,#f4f4f4);border:1px solid var(--_brand-colours---brand-green,#3b6b52);border-radius:20px;padding:30px}.booking-form.hidden{display:none}.booking-form-header{text-align:center;margin-bottom:24px}.booking-form-title{font-size:24px;font-weight:700;color:var(--_brand-colours---text,#071b19);margin:0 0 8px 0}.selected-slot-display{font-size:16px;color:var(--_brand-colours---brand-green,#3b6b52);font-weight:600}.reservation-countdown{background-color:var(--_brand-colours---light-green,#c5e0b3);border-radius:12px;padding:12px 20px;margin-bottom:24px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}.reservation-countdown.hidden{display:none}.reservation-countdown.warning{background-color:#fef3c7;border:1px solid #f59e0b}.countdown-label{font-size:14px;color:var(--_brand-colours---text,#071b19)}.countdown-time{font-size:18px;font-weight:700;color:var(--_brand-colours---dark-green,#1d3428)}.reservation-countdown.warning .countdown-time{color:#b45309}.form-group{margin-bottom:20px;color:var(--_brand-colours---text,#071b19)}.form-label{display:block;font-size:14px;font-weight:600;color:var(--_brand-colours---text,#071b19);margin-bottom:8px;text-align:left}.form-label .required{color:var(--_brand-colours---hover,#df867f)}.form-input,.form-textarea{width:100%;padding:14px 18px;border:1px solid #ddd;border-radius:12px;font-size:16px;font-family:inherit;transition:border-color 0.3s ease,box-shadow 0.3s ease;box-sizing:border-box}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--_brand-colours---brand-green,#3b6b52);box-shadow:0 0 0 3px rgb(59 107 82 / .1)}.form-textarea{min-height:100px;resize:vertical}.form-hint{font-size:13px;color:#666;margin-top:6px;text-align:left}.payment-methods-section{margin-top:30px;margin-bottom:24px}.payment-methods-label{font-size:16px;font-weight:700;color:var(--_brand-colours---text,#071b19);margin-bottom:16px;text-align:center}.payment-methods-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.payment-method-btn{background-color:var(--_brand-colours---white,white);border:2px solid #ddd;border-radius:12px;padding:20px;cursor:pointer;transition:all 0.3s ease;text-align:center}.payment-method-btn:hover{border-color:var(--_brand-colours---brand-green,#3b6b52)}.payment-method-btn.selected{border-color:var(--_brand-colours---brand-green,#3b6b52);background-color:var(--_brand-colours---light-green,#c5e0b3)}.payment-method-name{display:block;font-size:16px;font-weight:700;color:var(--_brand-colours---text,#071b19);margin-bottom:4px}.payment-method-desc{font-size:13px;color:#666}.price-display{text-align:center;margin-bottom:24px;padding:16px;background-color:var(--_brand-colours---white,white);border-radius:12px}.price-amount{font-size:32px;font-weight:700;color:var(--_brand-colours---brand-green,#3b6b52)}.price-label{font-size:14px;color:#666}.submit-btn{width:100%;background-color:var(--_brand-colours---brand-green,#3b6b52);color:#fff;border:1px solid #fff;border-radius:50px;padding:18px 30px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:2px;cursor:pointer;transition:all 0.3s ease}.submit-btn:hover{background-color:var(--_brand-colours---light-green,#c5e0b3);color:var(--_brand-colours---brand-green,#3b6b52);border-color:var(--_brand-colours---dark-green,#1d3428)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}@media screen and (max-width:767px){.calendar-grid{gap:4px}.calendar-day{font-size:14px;border-radius:8px}.calendar-day-header{font-size:11px;padding:8px 0}.calendar-month-display{font-size:20px}.time-slots-container,.booking-form{padding:20px 16px;border-radius:16px;margin-top:20px}.time-slots-grid{grid-template-columns:repeat(3,1fr);gap:8px}.time-slot-btn{padding:10px 12px;font-size:13px}.payment-methods-grid{grid-template-columns:1fr}.booking-form-title{font-size:20px}.price-amount{font-size:28px}}@media screen and (max-width:480px){.time-slots-grid{grid-template-columns:repeat(2,1fr)}.calendar-nav-btn{width:38px;height:38px;font-size:16px}}