.gbp-booking{min-height:100vh;background:hsl(var(--muted))}.gbp-booking__container{display:grid;grid-template-areas:"primary" "form" "secondary";max-width:1000px;margin:0 auto;min-height:100vh}@media (min-width: 768px){.gbp-booking__container{grid-template-areas:"info form";grid-template-columns:40% 60%;min-height:auto;padding:2rem}}.gbp-booking__info--primary{grid-area:primary;background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:1.5rem}@media (min-width: 768px){.gbp-booking__info--primary{grid-area:info;border-radius:.75rem 0 0 .75rem;padding:2rem;display:flex;flex-direction:column;justify-content:center}}.gbp-booking__info--secondary{grid-area:secondary;background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:1.5rem;padding-top:0}@media (min-width: 768px){.gbp-booking__info--secondary{display:none}}.gbp-booking__secondary-desktop{display:none}@media (min-width: 768px){.gbp-booking__secondary-desktop{display:block}}.gbp-booking__title{font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.gbp-booking__subtitle{font-size:.875rem;opacity:.9;margin:0 0 1.25rem}.gbp-booking__detail{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;font-size:.875rem}.gbp-booking__icon{width:1rem;height:1rem;flex-shrink:0;margin-top:.125rem}.gbp-booking__link{color:inherit;text-decoration:none;opacity:.95}.gbp-booking__link:hover{text-decoration:underline;opacity:1}.gbp-booking__rating{display:flex;align-items:center;gap:.5rem;margin:1rem 0}.gbp-booking__stars{display:flex;gap:.125rem}.gbp-booking__star{width:1rem;height:1rem;color:#fbbf24}.gbp-booking__rating-text{font-size:.875rem;opacity:.9}.gbp-booking__services{margin:1.25rem 0;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}.gbp-booking__services-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8;margin:0 0 .5rem}.gbp-booking__services-text{font-size:.875rem;line-height:1.5;margin:0;opacity:.95}.gbp-booking__hours{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}.gbp-booking__hours-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;opacity:.8;margin:0 0 .25rem}.gbp-booking__hours-text{font-size:.875rem;margin:0;opacity:.95}.gbp-booking__form-panel{grid-area:form;background:#fff;padding:1.5rem;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}@media (min-width: 768px){.gbp-booking__form-panel{border-radius:0 .75rem .75rem 0;padding:2rem;box-shadow:0 4px 6px -1px #0000001a;border-top:none;border-bottom:none}}.gbp-booking__form-title{font-size:1.25rem;font-weight:600;margin:0 0 .25rem;color:hsl(var(--foreground))}.gbp-booking__form-subtitle{font-size:.875rem;color:hsl(var(--muted-foreground));margin:0 0 1.5rem}.gbp-booking__form{display:flex;flex-direction:column;gap:1.25rem}.gbp-booking__field{display:flex;flex-direction:column;gap:.5rem}.gbp-booking__label{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.gbp-booking__select,.gbp-booking__input{height:2.5rem;padding:0 .75rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;font-size:.875rem;color:#374151;transition:border-color .15s,box-shadow .15s}.gbp-booking__select:focus,.gbp-booking__input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33}.gbp-booking__field-hint{font-size:.75rem;color:hsl(var(--muted-foreground));margin:0}.gbp-booking__calendar{border:1px solid hsl(var(--border));border-radius:.5rem;overflow:hidden}.gbp-booking__calendar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border))}.gbp-booking__calendar-nav{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;color:hsl(var(--foreground));transition:background-color .15s}.gbp-booking__calendar-nav:hover:not(:disabled){background:hsl(var(--accent))}.gbp-booking__calendar-nav:disabled{opacity:.3;cursor:not-allowed}.gbp-booking__calendar-nav svg{width:1rem;height:1rem}.gbp-booking__calendar-title{font-size:.875rem;font-weight:500;color:hsl(var(--foreground))}.gbp-booking__calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;padding:.5rem 0;border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted) / .5)}.gbp-booking__calendar-weekdays span{font-size:.75rem;font-weight:500;color:hsl(var(--muted-foreground))}.gbp-booking__calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.375rem;padding:.625rem}.gbp-booking__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.875rem;border:none;background:#e5e7eb;border-radius:.5rem;cursor:pointer;color:#374151;transition:background-color .15s,color .15s,transform .1s;font-weight:500;min-height:2.75rem}.gbp-booking__day:hover:not(:disabled):not(.gbp-booking__day--selected){background:#d1d5db;transform:scale(1.02)}.gbp-booking__day:disabled{background:transparent;color:#9ca3af;opacity:.5;cursor:not-allowed}.gbp-booking__day--empty{visibility:hidden}.gbp-booking__day--selected{background:#2563eb!important;color:#fff!important;font-weight:600;transform:scale(1.05);box-shadow:0 2px 8px #2563eb66}.gbp-booking__day--today:not(.gbp-booking__day--selected){font-weight:700;box-shadow:inset 0 0 0 2px #2563eb}.gbp-booking__time-options{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.gbp-booking__time-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem 1rem;border:2px solid #d1d5db;border-radius:.75rem;background:#e5e7eb;cursor:pointer;font-size:1rem;font-weight:600;color:#374151;transition:border-color .15s,background-color .15s,transform .1s,box-shadow .15s}.gbp-booking__time-btn:hover:not(.gbp-booking__time-btn--selected){border-color:#9ca3af;background:#d1d5db;transform:scale(1.02)}.gbp-booking__time-btn--selected{border-color:#2563eb!important;background:#2563eb!important;color:#fff!important;transform:scale(1.02);box-shadow:0 2px 8px #2563eb66}.gbp-booking__time-range{font-size:.8125rem;font-weight:400;color:#6b7280;margin-top:.25rem}.gbp-booking__time-btn--selected .gbp-booking__time-range{color:#ffffffd9!important}.gbp-booking__error{color:#dc2626;font-size:.875rem;text-align:center;padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;margin-top:.5rem}.gbp-booking__submit{width:100%;height:3.25rem;border:none;border-radius:.75rem;background:#16a249;color:#fff;font-size:1.0625rem;font-weight:600;cursor:pointer;transition:background-color .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 8px #16a2494d}.gbp-booking__submit:hover{background:#149041;transform:translateY(-1px);box-shadow:0 4px 12px #16a24966}.gbp-booking__submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.gbp-booking__disclaimer{font-size:.75rem;color:hsl(var(--muted-foreground));text-align:center;margin:0}.gbp-booking__success{text-align:center;padding:2rem 1rem}.gbp-booking__success-icon{width:4rem;height:4rem;color:#16a249;margin:0 auto 1rem}.gbp-booking__success-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:hsl(var(--foreground))}.gbp-booking__success-text{font-size:.875rem;color:hsl(var(--muted-foreground));margin:0 0 1.5rem;line-height:1.5}.gbp-booking__success-link{display:inline-block;padding:.625rem 1.25rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:.5rem;text-decoration:none;font-size:.875rem;font-weight:500;transition:opacity .15s}.gbp-booking__success-link:hover{opacity:.9}.hidden{display:none!important}
