/**
 * Google Calendar Bookings CSS
 */

/* Hide empty paragraphs around forms */
.gcb-container + p:empty,
p:empty + .gcb-container,
.mce-content-body p:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hide h1 overline title on confirmation screens (non-admin only) */
.gcb-form-container:has(#gcbStep3.active) .gcb-overline-title,
.gcb-container:has(#wsEnquiryStep5.active) .gcb-overline-title,
.gcb-container:has(#wsQuoteStep7.active) .gcb-overline-title {
    display: none !important;
}

/* Centered field label variation for enquiry forms */
.gcb-field-label.centered {
    display: block;
    text-align: center;
    margin-bottom: 0.6rem;
}

/* Center input text and placeholder for enquiry forms */
.gcb-field-label.centered ~ .gcb-input-wrapper input,
.gcb-field-label.centered ~ .gcb-input-wrapper textarea {
    text-align: center;
}

.gcb-field-label.centered ~ .gcb-input-wrapper input::placeholder,
.gcb-field-label.centered ~ .gcb-input-wrapper textarea::placeholder {
    text-align: center;
}

/* Specific rules for request quote form textarea center alignment */
#wsQuoteStep4 .gcb-input-wrapper textarea,
#wsQuoteDescription {
    text-align: center;
}

#wsQuoteStep4 .gcb-input-wrapper textarea::placeholder,
#wsQuoteDescription::placeholder {
    text-align: center;
}

/* CSS Custom Properties for consistent theming */
:root {
    --gcb-primary-text: #2c3e50;
    --gcb-secondary-text: #788288;
    --gcb-accent-purple: #7365B3;
    --gcb-accent-light-purple: #9482E6;
    --gcb-border-color: #e0e0e0;
    --gcb-disabled-text: #999;
    --gcb-success-color: #28a745;
    --gcb-error-color: #dc3545;
    --gcb-background-white: #ffffff;
    --gcb-background-light: #f8f9fa;
    --gcb-shadow-light: rgba(0, 0, 0, 0.1);
    --gcb-font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--gcb-font-family);
}

.gcb-container {
    color: #333;
    line-height: 1.6;
    max-width: 80rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

body.gcb-admin-reschedule-page > .gcb-container.gcb-initialized{
    max-width: 68rem;
}

.gcb-form-container {
    margin: 0 auto;
    max-width: 80rem;
    width: 100%;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0rem 5rem;
}

.gcb-header {
    text-align: center;
}

.gcb-form-label {
    font-size: 0.875rem;
    color: var(--gcb-secondary-text);
    text-transform: uppercase;
    letter-spacing: 0.0625rem;
    margin-bottom: 0.625rem;
}

h1.gcb-overline-title{
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 500 !important;
    font-size: 1rem !important;
    letter-spacing: -0.01rem !important;
    line-height: 140% !important;
    text-transform: uppercase;
    text-align: center;
}

.gcb-form-title {
    font-size: 2rem;
    font-weight: 500;
    color: var(--gcb-primary-text);
    margin-bottom: 1rem;
    line-height: 1.2;
}

/* Ensure h1 headers in our form use the same size as h2 previously */
.gcb-container h2.gcb-form-title {
    font-size: 2.5rem;
    font-weight: 500;
    color: var(--gcb-primary-text);
    margin-bottom: 2rem;
    padding-bottom: 0;
    letter-spacing: -0.02rem;
    line-height: 110%;
}


.gcb-header-paragraph{
    font-size: 1rem;
    line-height: 1.6;
    color: #454D51;
    letter-spacing: 0rem;
    margin-bottom:3rem;
}

.gcb-step {
    display: none;
    opacity: 0;
}

.gcb-step.active {
    display: block;
    opacity: 1;
    animation: fadeIn 0.3s ease-in;
}

/* Prevent flash of content on page load */
.gcb-container:not(.gcb-initialized) .gcb-step {
    display: none !important;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(1.25rem); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeOut {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-1.25rem); }
}

.gcb-booking-grid,
.gcb-booking-form,
.gcb-booking-success,
.gcb-timeslots-container,
#gcbTimeSlotsContainer,
#gcbLoadingSlots {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.gcb-booking-grid.fade-out,
.gcb-booking-form.fade-out,
.gcb-booking-success.fade-out,
.gcb-timeslots-container.fade-out,
.gcb-no-date-selected.fade-out,
.gcb-loading-slots.fade-out,
#gcbTimeSlotsContainer.fade-out,
#gcbLoadingSlots.fade-out,
#gcbNoDateSelected.fade-out {
    animation: fadeOut 0.3s ease forwards;
}

.gcb-booking-grid.fade-in,
.gcb-booking-form.fade-in,
.gcb-booking-success.fade-in,
.gcb-timeslots-container.fade-in,
.gcb-no-date-selected.fade-in,
.gcb-loading-slots.fade-in,
#gcbTimeSlotsContainer.fade-in,
#gcbLoadingSlots.fade-in,
#gcbNoDateSelected.fade-in {
    animation: fadeIn 0.3s ease forwards;
}

.gcb-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    justify-content: center;
    margin-top: 3.5rem;
    align-items: center;
    justify-items: start;
}

.gcb-btn {
    border-radius: 0.5rem;
    font-size: 0.8rem;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    padding: 0.75rem 1.5rem 0.75rem 1.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.625rem;
    text-decoration: none;
    justify-content: center;
    white-space: nowrap !important;
    border: none;
    background: none;
    min-height: 2.75rem;
}

/* Ensure anchor tags styled as buttons have same appearance as button elements - Override Divi */
.gcb-container .gcb-form-container a.gcb-btn,
.gcb-container a.gcb-btn.gcb-btn-secondary,
.gcb-container a.gcb-btn.gcb-btn-primary,
.gcb-form-container a.gcb-btn.gcb-btn-secondary,
.gcb-form-container a.gcb-btn.gcb-btn-primary,
div.gcb-container a.gcb-btn,
div.gcb-form-container a.gcb-btn {
    display: inline-flex !important;
    text-decoration: none !important;
    color: inherit !important;
    background: inherit !important;
    border: inherit !important;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    font-size: 0.8rem !important;
    line-height: 1.7em !important;
    letter-spacing: normal !important;
    padding: 0.75rem 1.5rem !important;
    border-radius: 0.5rem !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    align-items: center !important;
    gap: 0.625rem !important;
    justify-content: center !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    outline: none !important;
    margin: 0 !important;
}

.gcb-container .gcb-form-container a.gcb-btn:visited,
.gcb-container a.gcb-btn.gcb-btn-secondary:visited,
.gcb-container a.gcb-btn.gcb-btn-primary:visited,
.gcb-form-container a.gcb-btn.gcb-btn-secondary:visited,
.gcb-form-container a.gcb-btn.gcb-btn-primary:visited,
div.gcb-container a.gcb-btn:visited,
div.gcb-form-container a.gcb-btn:visited,
.gcb-container .gcb-form-container a.gcb-btn:hover,
.gcb-container a.gcb-btn.gcb-btn-secondary:hover,
.gcb-container a.gcb-btn.gcb-btn-primary:hover,
.gcb-form-container a.gcb-btn.gcb-btn-secondary:hover,
.gcb-form-container a.gcb-btn.gcb-btn-primary:hover,
div.gcb-container a.gcb-btn:hover,
div.gcb-form-container a.gcb-btn:hover,
.gcb-container .gcb-form-container a.gcb-btn:focus,
.gcb-container a.gcb-btn.gcb-btn-secondary:focus,
.gcb-container a.gcb-btn.gcb-btn-primary:focus,
div.gcb-container a.gcb-btn:focus,
div.gcb-form-container a.gcb-btn:focus,
.gcb-container .gcb-form-container a.gcb-btn:active,
.gcb-container a.gcb-btn.gcb-btn-secondary:active,
div.gcb-container a.gcb-btn:active,
div.gcb-form-container a.gcb-btn:active {
    color: inherit !important;
    text-decoration: none !important;
    font-size: 0.8rem !important;
    line-height: 1.7em !important;
    letter-spacing: normal !important;
}

/* Center single back button on booking form step 1 */
.gcb-buttons.centered {
    justify-content: center !important;
    display: flex !important;
}

/* Override Divi's secondary button styles specifically */
.gcb-container .gcb-form-container a.gcb-btn-secondary,
.gcb-container a.gcb-btn.gcb-btn-secondary,
.gcb-form-container a.gcb-btn.gcb-btn-secondary,
div.gcb-container a.gcb-btn-secondary,
div.gcb-form-container a.gcb-btn-secondary {
    background-color: RGBA(30, 47, 56, 0) !important;
    color: #1e2f38 !important;
    border: 0.13rem solid #1e2f38 !important;
    font-size: 0.8rem !important;
    line-height: 1.7em !important;
    letter-spacing: normal !important;
}

.gcb-container .gcb-form-container a.gcb-btn-secondary:hover,
.gcb-container a.gcb-btn.gcb-btn-secondary:hover,
.gcb-form-container a.gcb-btn.gcb-btn-secondary:hover,
div.gcb-container a.gcb-btn-secondary:hover,
div.gcb-form-container a.gcb-btn-secondary:hover {
    color: #fff !important;
    background-color: RGBA(30, 47, 56, 1) !important;
    border: 0.13rem solid #1e2f38 !important;
    font-size: 0.8rem !important;
    line-height: 1.7em !important;
    letter-spacing: normal !important;
}

.gcb-btn > span.gcb-button-icon{
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
}

.gcb-btn > span.gcb-button-icon svg,
.gcb-btn > span.gcb-button-icon svg path {
    transition: all 0.3s ease;
}

.gcb-btn > span.gcb-button-icon.back{
    margin-top: -0.18rem;
    display: flex;
    align-items: center;
}

.gcb-btn > span.gcb-button-icon.submit{
    margin-top: -0.1rem;
    display: flex;
    align-items: center;
}

.gcb-btn-primary {
    border: 0.13rem solid var(--gcb-accent-purple);
    background: var(--gcb-accent-purple);
    color: white;
    width: 100%;
    text-align: center;
}

.gcb-btn-primary:hover {
    border: 0.13rem solid #423A66;
    background: #423A66;
}

.gcb-btn-primary:hover > span.gcb-button-icon,
.gcb-btn-primary:hover > span.gcb-button-icon svg,
.gcb-btn-primary:hover > span.gcb-button-icon svg path {
    color: #423A66 !important;
    fill: #423A66 !important;
}

.gcb-btn-secondary {
    background-color: RGBA(30, 47, 56, 0);
    color: #1e2f38;
    border: 0.13rem solid #1e2f38 !important;
}

.gcb-btn-secondary:hover {
    color: #fff;
    background-color: RGBA(30, 47, 56, 1) !important;
    border: 0.13rem solid #1e2f38 !important;
}

.gcb-btn-tertiary {
    background-color: transparent;
    color: #1e2f38;
    border: none !important;
}

.gcb-btn-tertiary:hover {
    color: #1E2F38 !important;
    background-color: #E9EAEB !important;
    border: none !important;
}

/* Cancelled booking styles */
.gcb-cancelled-booking {
    background-color: #f7f7f7 !important;
    border: none !important;
    margin: 0 !important;
    min-width: 32rem;
    box-shadow: none !important;
}

.gcb-cancelled-booking .gcb-booking-summary-content {
    position: relative;
    width: 100%;
    padding: 1.5rem;
}

.gcb-booking-summary.gcb-cancelled-booking > .gcb-booking-summary-purple{
    background: #BCC1C3;
}

.gcb-cancelled-badge {
    display: inline-flex;
    gap: 0.25rem;
    align-items: center;
    background: #F25656;
    color: #FFF;
    padding: 0.25rem 0.65rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: -1%;
    width: fit-content;
    margin-bottom: 1rem;
}

.gcb-cancelled-booking h3 {
    color: #999 !important;
}

.gcb-cancelled-booking .gcb-booking-summary-text {
    color: #788288 !important;
}

.gcb-cancelled-booking .gcb-booking-summary-icon {
    color: #788288 !important;
    fill: #788288 !important;
}

.gcb-cancelled-badge-icon {
    width: 0.5rem;
    height: 0.5rem;
    display: inline-flex;
    align-items: center;
}

.gcb-cancelled-content {
    text-align: center;
    margin: 0 auto;
    width: 100%;
    max-width: 32rem;
}

.gcb-cancelled-buttons,
.gcb-confirmation-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    margin-top: 3rem;
}

.gcb-summary-btn-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 1rem;
    margin-top: 2rem;
    width: 100%;
}

.gcb-summary-btn-container .gcb-btn {
    flex: 1;
    width: 100%;
}

.gcb-cancelled-buttons .gcb-btn,
.gcb-confirmation-buttons .gcb-btn {
    width: 100%;
    max-width: 20rem;
    padding: 1rem 2rem;
}

.gcb-btn-secondary:hover > span.gcb-button-icon,
.gcb-btn-secondary:hover > span.gcb-button-icon svg,
.gcb-btn-secondary:hover > span.gcb-button-icon svg path {
    color: white !important;
    fill: white !important;
}

.gcb-btn-danger {
    background: #e74c3c;
    color: white;
    border: 0.13rem solid #e74c3c;
    white-space: nowrap;
}

.gcb-btn-danger:hover {
    background: #c0392b;
    border: 0.13rem solid #c0392b;
    transform: none;
}

.gcb-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed !important;
    transform: none !important;
    background: #ccc !important;
    color: #747373 !important;
    border: 0.13rem solid #ccc;
}

.gcb-btn:disabled:hover {
    cursor: not-allowed !important;
    transform: none !important;
    background: #ccc !important;
}

.gcb-btn:focus {
    outline: 0.125rem solid #007cba;
    outline-offset: 0.125rem;
}

.gcb-btn:focus:not(:focus-visible) {
    outline: none;
}

.gcb-btn:focus-visible {
    outline: 0.125rem solid #007cba;
    outline-offset: 0.125rem;
}


.gcb-booking-input:focus,
.gcb-form-input:focus,
.gcb-booking-textarea:focus,
.gcb-form-textarea:focus {
    outline: 0.125rem solid #007cba;
    outline-offset: 0.125rem;
}

.gcb-booking-input:focus:not(:focus-visible),
.gcb-form-input:focus:not(:focus-visible),
.gcb-booking-textarea:focus:not(:focus-visible),
.gcb-form-textarea:focus:not(:focus-visible) {
    outline: none;
}

.gcb-booking-input:focus-visible,
.gcb-form-input:focus-visible,
.gcb-booking-textarea:focus-visible,
.gcb-form-textarea:focus-visible {
    outline: 0.125rem solid #007cba;
    outline-offset: 0.125rem;
}

.gcb-form-field {
    text-align: center;
    max-width: 28rem;
    margin:0 auto;
}

#wsQuoteStep2 .gcb-form-field:has(.ws-solutions-grid),
#wsQuoteStep2 .gcb-form-field:has(.ws-budget-grid) {
    max-width: 38rem;
}

.ws-solutions-grid,
.ws-budget-grid {
    display: inline-flex;
    gap: 1.25rem;
    align-items: center;
    margin: 2rem auto 1rem auto;
    flex-wrap: wrap;
    justify-content: center;
}

.ws-solution-option {
    padding: 1rem 2rem;
    border-radius: 0.75rem;
    border: 0.09375rem solid #E9EAEB;
    transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border 0.3s ease-in-out;
    white-space: nowrap;
    background: white;
    color: #1E2F38 !important;
    cursor: pointer;
    width: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
    min-height: 60px;
}

.ws-solution-option:hover {
    background-color: #E9EAEB;
}

.ws-solution-option.selected {
    background-color: #1E2F38 !important;
    color: #FFFFFF !important;
    border: 0.09375rem solid #1E2F38;
}

.ws-budget-option {
    padding: 1rem 2rem;
    border-radius: 0.75rem;
    border: 0.09375rem solid #E9EAEB;
    transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out, border 0.3s ease-in-out;
    white-space: nowrap;
    background: white;
    color: #1E2F38 !important;
    cursor: pointer;
    width: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
    min-height: 60px;
}

.ws-budget-option:hover {
    background-color: #E9EAEB;
}

.ws-budget-option.selected {
    background-color: #1E2F38 !important;
    color: #FFFFFF !important;
    border: 0.09375rem solid #1E2F38;
}


/* Enquiry and Request Quote form button containers */
#wsEnquiryStep1 .gcb-buttons,
#wsEnquiryStep2 .gcb-buttons,
#wsEnquiryStep3 .gcb-buttons,
#wsEnquiryStep4 .gcb-buttons,
#wsRequestStep1 .gcb-buttons,
#wsRequestStep2 .gcb-buttons,
#wsRequestStep3 .gcb-buttons,
#wsRequestStep4 .gcb-buttons,
#wsQuoteStep1 .gcb-buttons,
#wsQuoteStep2 .gcb-buttons,
#wsQuoteStep3 .gcb-buttons,
#wsQuoteStep4 .gcb-buttons,
#wsQuoteStep5 .gcb-buttons,
#wsQuoteStep6 .gcb-buttons{
    max-width: 28rem;
    margin: 2.5rem auto 0 auto !important;
    display: flex !important;
    justify-content: center;
    flex-direction: row;
    gap: 2rem;
    grid-template-columns: none;
}

/* Equal width buttons for enquiry and request quote forms */
#wsEnquiryStep1 .gcb-buttons .gcb-btn,
#wsEnquiryStep2 .gcb-buttons .gcb-btn,
#wsEnquiryStep3 .gcb-buttons .gcb-btn,
#wsEnquiryStep4 .gcb-buttons .gcb-btn,
#wsRequestStep1 .gcb-buttons .gcb-btn,
#wsRequestStep2 .gcb-buttons .gcb-btn,
#wsRequestStep3 .gcb-buttons .gcb-btn,
#wsRequestStep4 .gcb-buttons .gcb-btn,
#wsQuoteStep1 .gcb-buttons .gcb-btn,
#wsQuoteStep2 .gcb-buttons .gcb-btn,
#wsQuoteStep3 .gcb-buttons .gcb-btn,
#wsQuoteStep4 .gcb-buttons .gcb-btn,
#wsQuoteStep5 .gcb-buttons .gcb-btn,
#wsQuoteStep6 .gcb-buttons .gcb-btn {
    flex: 1;
    width: auto;
    min-width: fit-content;
}

/* ===================================================================
   SCHEDULE A CONSULTATION FORM SPECIFIC OVERRIDES
   =================================================================== */

/* Remove max-width from consultation form fields */
#gcbStep2 .gcb-form-field {
    max-width: none !important;
}

/* Form-specific error message alignment */

/* Booking Form - Left aligned */
.gcb-booking-form .gcb-error-message {
    justify-content: flex-start;
}

/* Consultation Form - Left aligned */
#gcbStep2 .gcb-error-message {
    justify-content: flex-start;
}

/* Enquiry Forms - Centered (default behavior) */
#wsEnquiryStep1 .gcb-error-message,
#wsEnquiryStep2 .gcb-error-message,
#wsEnquiryStep3 .gcb-error-message,
#wsEnquiryStep4 .gcb-error-message,
#wsQuoteStep1 .gcb-error-message,
#wsQuoteStep2 .gcb-error-message,
#wsQuoteStep3 .gcb-error-message,
#wsQuoteStep4 .gcb-error-message,
#wsQuoteStep5 .gcb-error-message,
#wsQuoteStep6 .gcb-error-message {
    justify-content: center;
}

/* Quote Request Forms - Centered (default behavior) */
#wsRequestStep1 .gcb-error-message,
#wsRequestStep2 .gcb-error-message,
#wsRequestStep3 .gcb-error-message,
#wsRequestStep4 .gcb-error-message {
    justify-content: center;
}

/* Specific button grid for consultation form */
#gcbStep2 .gcb-buttons {
    grid-template-columns: 1fr 1.25fr;
}

/* Reduce gaps in consultation form */
#gcbStep2 .gcb-form-fields {
    gap: 1.5rem !important;
}

/* Reduce margin-top for buttons in consultation form */
#gcbStep2 .gcb-buttons {
    margin-top: 2rem !important;
}


.gcb-field-label {
    font-size: 1rem;
    color: var(--gcb-primary-text);
    margin-bottom: .5rem;
    display: block;
    font-weight: 400;
}

.gcb-field-label .required,
.gcb-field-label .gcb-required {
    color: #e74c3c;
    vertical-align: super;
    font-size: 0.75em;
    line-height: 1;
    white-space: nowrap;
}

.gcb-form-input {
    width: 100%;
    max-width: 25rem;
    padding: 0.9375rem 0;
    border: none;
    border-bottom: 0.125rem solid #e9ecef;
    background: transparent;
    font-size: 1.25rem;
    text-align: center;
    color: var(--gcb-primary-text);
    transition: border-color 0.3s ease;
    outline: none;
}

.gcb-form-input:focus {
    border-bottom-color: #000;
}

.gcb-form-input.error {
    border-bottom-color: #e74c3c;
}


.gcb-form-select {
    width: 100%;
    max-width: 25rem;
    padding: 0.9375rem 0;
    border: none;
    border-bottom: 0.125rem solid #e9ecef;
    background: transparent;
    font-size: 1.25rem;
    text-align: center;
    color: var(--gcb-primary-text);
    transition: border-color 0.3s ease;
    outline: none;
    appearance: none;
    cursor: pointer;
}

.gcb-form-select:focus {
    border-bottom-color: #a490ff;
}

.gcb-form-select.error {
    border-bottom-color: #e74c3c;
}

/* Error message container - hidden by default, no layout space */
.gcb-error-message {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.625rem;
    color: #B01717;
    font-size: 0.85rem;
    height: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(1.25rem);
    transition: height 0.3s ease, opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
    pointer-events: none;
    overflow: hidden;
}

.gcb-error-message.visible {
    height: 1.5rem;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.gcb-error-message.hiding {
    height: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.625rem);
    pointer-events: none;
}

.gcb-success-icon {
    width: 4.5rem;
    height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
}

.gcb-success-title {
    font-size: 1.75rem;
    color: var(--gcb-primary-text);
    margin-bottom: 0.9375rem;
    text-align: center;
}

#wsEnquiryStep5 .gcb-success-title,
#wsQuoteStep5 .gcb-success-title{
    padding:0;
}

.gcb-success-message {
    font-size: 1rem;
    color: var(--gcb-secondary-text);
    text-align: center;
    margin-bottom: 3.5rem;
}

#wsEnquiryStep5 .gcb-success-message,
#wsQuoteStep5 .gcb-success-message{
    margin-bottom: 1.5rem;
}

/* Custom Booking Interface Styles - EXACT MULTI-STEP-FORM LAYOUT */
.gcb-custom-booking-container {
    max-width: 62.5rem;
    margin: 0 auto;
    background: white;
    border-radius: 0.75rem;
}

.gcb-booking-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 3.75rem;
}

.gcb-booking-grid.reschedule{
    margin-top: 1.5rem;
}

.gcb-section-title {
    font-size: 1.25rem !important;
    font-weight: 500;
    color: var(--gcb-primary-text);
    margin-bottom: 0.6rem;
    border-bottom: 0.0625rem solid #EEE;
    padding-bottom: 1rem;
}

/* Calendar Section Styles */

.gcb-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    border-bottom: 0.0625rem solid #EEE;
    padding-bottom: 0.65rem;
}

.gcb-calendar-nav {
    background: none;
    border: none;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-size: 1.25rem;
    line-height: auto;
    color: var(--gcb-secondary-text);
}

.gcb-calendar-nav span {
    align-self: center;
}

.gcb-calendar-nav:hover {
    background-color: #f8f9fa;
}

.gcb-calendar-month {
    font-size: 1.125rem;
    font-family: 'Saira',Helvetica,Arial,Lucida,sans-serif;
    font-weight: 500;
    color: var(--gcb-primary-text);
}

.gcb-calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.9375rem;
}

.gcb-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.75rem;
}

.gcb-calendar-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--gcb-primary-text);
    position: relative;
}

.gcb-calendar-day:hover {
    background-color: #f8f9fa;
}

.gcb-calendar-day.available {
    background-color: white;
    border: 0.125rem solid #e9ecef;
    opacity: 1;
    transition: all 0.3s ease, opacity 0.3s ease;
}

.gcb-calendar-day.available:hover {
    border-color: #E9EAEB;
    background-color: #E9EAEB;
    color: #1E2F38;
}

.gcb-calendar-day.selected,
.gcb-calendar-day.selected:hover{
    background-color: #35444C;
    color: white;
    border-color: #35444C;
}

.gcb-calendar-day.disabled,
.gcb-calendar-day.other-month {
    color: #ccc !important;
    background-color: transparent !important;
    cursor: not-allowed !important;
    opacity: 0.6;
    pointer-events: none;
    border: 0.0625rem solid transparent !important;
    transition: all 0.3s ease, opacity 0.5s ease;
}

.gcb-calendar-day.disabled:hover,
.gcb-calendar-day.other-month:hover {
    background-color: transparent !important;
    cursor: not-allowed !important;
    transform: none !important;
    opacity: 0.6;
}

/* Today indicator - adds a dot under today's date */
.gcb-calendar-day.today::after {
    content: '';
    position: absolute;
    bottom: 14%;
    left: 50%;
    transform: translateX(-50%);
    width: 0.30rem;
    height: 0.30rem;
    border-radius: 50%;
    background-color: #dcdcdc;
}

.gcb-calendar-day.today.selected::after {
    background-color: white;
    opacity: 0.4;
}

.gcb-calendar-day.today.disabled::after {
    background-color: #ccc;
    opacity: 0.6;
}

/* Time Slots Section Styles */
.gcb-timeslots-section {
    min-height: 25rem;
}

.gcb-timezone-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    color: #35444C;
}

.gcb-timezone-icon {
    font-size: 1rem;
}

.gcb-timeslots-container {
    min-height: 12.5rem;
    position: relative;
}

.gcb-no-date-selected {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1rem;
    height: 12.5rem;
    color: var(--gcb-secondary-text);
    font-style: italic;
    transition: opacity 0.3s ease;
}

.gcb-timeslots-wrapper {
    font-size: 1rem;
    min-height: 18.75rem;
    position: relative;
}

.gcb-no-date-selected {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 12.5rem;
    color: var(--gcb-secondary-text);
    font-style: italic;
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
    font-size: 0.9rem;
}

.gcb-loading-slots {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    height: 12.5rem;
    color: var(--gcb-secondary-text);
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
    gap:0.75rem;
    font-size: 0.9rem;
}

.loader-spinner {
    width: 1.25rem;
    height: 1.25rem;
    border: 0.15rem solid #A490FF;
    border-bottom-color: transparent;
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s ease-in-out infinite;
    }

    @keyframes rotation {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
    } 

.loader-spinner.info {
    border: 0.15rem solid #35444C;
    border-bottom-color: transparent;
}

.loader-spinner.error {
    border: 0.15rem solid #721c24;
    border-bottom-color: transparent;
}

.gcb-timeslots-container {
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.gcb-no-date-selected.visible,
.gcb-loading-slots.visible,
.gcb-timeslots-container.visible {
    opacity: 1;
    transform: translateY(0);
}

.gcb-time-slot:hover {
    border-color: #a490ff;
    background-color: #f0f8ff;
    transform: translateY(-0.125rem);
}

.gcb-time-slot.selected {
    background-color: #a490ff;
    border-color: #a490ff;
    color: white;
}

.gcb-time-slot.disabled {
    background-color: #f8f9fa;
    color: #ccc;
    cursor: not-allowed;
    border-color: #e9ecef;
}

/* Calendar Styles */
.gcb-calendar-section {
    min-height: 25rem;
}

.gcb-calendar-widget {
    background: white;
    border-radius: 0.5rem;
    padding: 1.25rem;
    border: 0.0625rem solid #e9ecef;
}

.gcb-calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}

.gcb-nav-btn {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: #a490ff;
    cursor: pointer;
    padding: 0.75rem;
    border-radius: 50%;
    transition: background-color 0.3s ease;
}

.gcb-nav-btn:hover {
    background-color: #f8f9fa;
}

.gcb-month-year {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gcb-primary-text);
}

.gcb-calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.gcb-weekday {
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gcb-secondary-text);
    padding: 0.5rem 0;
}

.gcb-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.5rem;
}

/* Duplicate calendar day definitions removed - styles are handled above */

/* Time Slots Styles */
.gcb-slots-section {
    position: relative;
}

.gcb-timezone-info {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    padding: 0.75em 0;
    border-radius: 0.5rem;
    font-size: 0.85rem;
    color: #35444C;
}

.gcb-timezone-icon {
    display: flex;
    align-items: center;
}

.gcb-slots-container {
    min-height: 12.5rem;
    position: relative;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.gcb-slots-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 12.5rem;
    color: var(--gcb-secondary-text);
    font-style: italic;
    transition: opacity 0.3s ease, transform 0.3s ease;
}


.gcb-time-slot {
    display: block;
    width: 100%;
    padding: 0.75rem 1.25rem;
    margin-bottom: 0.625rem;
    border: 0.125rem solid #e9ecef;
    border-radius: 0.5rem;
    background: white;
    color: var(--gcb-primary-text);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease-out;
    text-align: center;
}

.gcb-time-slot:hover {
    border-color: #E9EAEB;
    background-color: #E9EAEB;
    transform: scale(1.08);
}

.gcb-time-slot.selected {
    border-color: #2c3e50;
    background-color: #2c3e50;
    color: white;
}

/* Booking Form Styles */
.gcb-booking-form {
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 3.5rem;
    align-items: start;
    max-width: 75rem;
}

.gcb-booking-form h3 {
    color: var(--gcb-primary-text);
    margin-bottom: 1.25rem;
    font-size: 1.25rem;
}

.gcb-booking-summary {
    /* Main container */
    display: inline-flex;
    border: 0.0625rem solid #ededed;
    border-radius: 0.5rem;
    box-shadow: 0rem 0.75rem 1.5rem rgba(0, 0, 0, 0.04);
    background: white;
    overflow: hidden;
}

.gcb-booking-summary-purple {
    /* Purple line container */
    width: 0.25rem;
    background: #A490FF;
    flex-shrink: 0;
}

.gcb-booking-summary-content {
    /* Content container with padding and column layout */
    width:100%;
    display: flex;
    flex-direction: column;
    padding: 2rem;
    text-align: left;
}

#gcbBookingDetails.gcb-booking-summary{
    min-width: 32rem;
}

.gcb-booking-summary h3 {
    font-size: 1.25rem !important;
    font-weight: 500;
    color: var(--gcb-primary-text);
    margin-bottom: 1rem;
    padding-bottom:0;
    text-align: left;
    letter-spacing: -1%;
}

.gcb-booking-summary.gcb-cancelled-booking h3{
    margin-bottom: 1rem;
    color:#788288 !important;
}

.gcb-booking-summary-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    color: var(--gcb-primary-text);
}

.gcb-booking-summary-item:last-of-type {
    margin-bottom: 1rem;
}

.gcb-cancelled-booking.gcb-booking-summary .gcb-booking-summary-content > .gcb-booking-summary-item:last-of-type {
    margin-bottom: 0;
}

.gcb-booking-summary-icon {
    display: flex;
    align-items: center;
    width: 1rem;
    height: 1rem;
    color: #35444C;
}

.gcb-booking-summary-text {
    font-size: 1rem;
    line-height: 150%;
}

/* Previous Booking Summary - minimal style for reschedule screen */
.gcb-prev-booking-summary {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
    width: 100%;
}

/* Grid positioning for booking details - Admin reschedule only */
body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-date {
    grid-column: 1;
    grid-row: 1;
}

body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-time {
    grid-column: 1;
    grid-row: 2;
}

body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-name {
    grid-column: 2;
    grid-row: 1;
}

body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-email {
    grid-column: 2;
    grid-row: 2;
}

/* Current booking info container for reschedule screen */
.gcb-current-booking-info {
    /* display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem !important; */
    display: inline-flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin: 1rem 0 1.5rem !important;
    border: 0.0625rem solid #ededed;
    border-radius: 0.75rem;
    box-shadow: 0rem 0.75rem 1.5rem rgba(0, 0, 0, 0.04);
    background: white;
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
}

#gcbCurrentBookingDetails{
    display: flex;
    flex-direction: column;
    gap:0.5rem;
    align-items: flex-start;
}

#gcbCurrentBookingDetails > div{
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
}

#gcbCurrentBookingDetails > div >span{
    display: flex;
    align-self: center;
}

/* Admin reschedule specific grid layout */
body.gcb-admin-reschedule-page #gcbCurrentBookingDetails {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    grid-template-rows: 1fr 1fr;
}

/* Ensure child divs remain flex for icon + text layout in admin reschedule */
body.gcb-admin-reschedule-page #gcbCurrentBookingDetails > div {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
    align-items: center;
}


.gcb-prev-booking-summary .gcb-meeting-duration,
.gcb-prev-booking-summary .gcb-date-and-time{
    font-size: 1rem;
    line-height: 1.5;
    color: #35444C;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

/* Cancel booking button in reschedule screen */
.gcb-current-booking-info #gcbCancelBookingBtn {
    height: fit-content;
}

#gcbChangeDateTime.gcb-change-link {
    color: #625699 !important;
    text-decoration: underline !important;
    font-weight: 500 !important;
    cursor: pointer;
    font-size: 0.85rem;
    display: inline-flex;
    transition: all 0.3s ease;
}

#gcbChangeDateTime.gcb-change-link:hover {
    text-decoration: none;
    color: #9482E6 !important;
}

.gcb-form-fields {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.gcb-form-field {
    width: 100%;
    position: relative;
    z-index: 1;
}

.gcb-input-wrapper {
    position: relative;
    display: block;
    height: 100%;
}

.gcb-input-wrapper::before {
    content: '';
    position: absolute;
    bottom: -0.04rem;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #35444C;
    pointer-events: none;
    z-index: 999;
}


.gcb-input-wrapper::after {
    content: '';
    position: absolute;
    bottom: -0.04rem;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #A490FF;
    transition: width 0.4s ease-in-out;
    z-index: 1000;
    pointer-events: none;
}

/* Dedicated error line element - same specs as ::after but for errors */
.gcb-error-line {
    position: absolute;
    bottom: -0.04rem;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #e74c3c;
    transition: width 0.4s ease-in-out;
    z-index: 1001; /* Above focus line */
    pointer-events: none;
    display: block;
}

/* Error state - animate the dedicated error line */
.gcb-input-wrapper.error .gcb-error-line {
    animation: showErrorLine 0.4s ease-in-out forwards;
}

/* Error clearing - animate the error line out */
.gcb-input-wrapper.error-clearing .gcb-error-line {
    animation: clearErrorLine 0.4s ease-in-out forwards;
}


.gcb-input-wrapper:focus-within::after {
    width: 100%;
}


@keyframes showErrorLine {
    0% {
        width: 0;
    }
    100% {
        width: 100%;
    }
}

@keyframes clearErrorLine {
    0% {
        width: 100%;
    }
    100% {
        width: 0;
    }
}

@keyframes errorToFocus {
    0% {
        width: 100%;
        background-color: #e74c3c;
    }
    50% {
        width: 0;
        background-color: #e74c3c;
    }
    51% {
        width: 0;
        background-color: #A490FF;
    }
    100% {
        width: 100%;
        background-color: #A490FF;
    }
}

@keyframes clearErrorAndReset {
    0% {
        width: 100%;
        background-color: #e74c3c;
    }
    50% {
        width: 0;
        background-color: #e74c3c;
    }
    100% {
        width: 0;
        background-color: #A490FF;
    }
}

.gcb-form-field label {
    display: block;
    font-size: 1rem;
    font-weight: 400;
    color: #35444C;
    text-align: left;
}

.gcb-form-field label .required,
.gcb-form-field label .gcb-required {
    color: #35444C;
    vertical-align: super;
    font-size: 0.75em;
    line-height: 1;
}

.gcb-form-field:has(.gcb-booking-textarea) label,
.gcb-form-field:has(.gcb-form-textarea) label {
    margin-bottom: 0.6rem;
}

.gcb-booking-input,
.gcb-form-input {
    width: 100%;
    height: 2.75rem;
    padding: 0 0 0.5rem 0 !important;
    border: none !important;
    background: transparent !important;
    font-size: 1.25rem;
    color: #2c3e50 !important;
    outline: none !important;
    transition: border-bottom-color 0.3s ease-in-out;
    text-align: left;
    border: 0;
    box-shadow: none !important;
}

.gcb-booking-input::placeholder,
.gcb-form-input::placeholder {
    color: #999;
    font-size: 1.1rem;
}

.gcb-booking-input:focus,
.gcb-form-input:focus {
    border-bottom-color: #000;
}

.gcb-booking-input.error,
.gcb-form-input.error {
    border-bottom-color: #e74c3c;
}


/* Old wrapper-based animation rules removed - now handled directly on .gcb-error-message */

@keyframes slideUpError {
    0% {
        opacity: 0;
        transform: translateY(1.25rem);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideDownError {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(1.25rem);
    }
}

.gcb-error-icon {
    width: 0.75rem;
    height: 0.75rem;
    flex-shrink: 0;
}

.gcb-booking-textarea,
.gcb-form-textarea {
    width: 100%;
    height: 2.65rem;
    min-height: 2.65rem;
    padding: 0.4rem 0 0.5rem 0;
    border: none !important;
    /* border-bottom: 0.0625rem solid #000 !important; */
    background: transparent !important;
    font-size: 1.25rem;
    font-family: inherit;
    resize: none;
    outline: none !important;
    transition: border-bottom-color 0.3s ease-in-out;
    transform-origin: top left;
    line-height: 1.25;
    vertical-align: top;
    color: #2c3e50 !important;
    text-align: left;
    border: 0;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: hidden;
}

.gcb-booking-textarea::placeholder,
.gcb-form-textarea::placeholder {
    color: #999;
    font-size: 1.1rem;
}

.gcb-booking-textarea:focus,
.gcb-form-textarea:focus {
    border-bottom-color: #000;
}

.gcb-booking-textarea.error,
.gcb-form-textarea.error {
    border-bottom-color: #e74c3c;
}

.gcb-booking-actions {
    display: flex;
    gap: 1.5rem;
    justify-content: flex-start;
    margin-top: 3rem;
}

.gcb-booking-actions .gcb-btn {
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 0.5rem;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    min-width: auto;
}

.gcb-booking-actions .gcb-btn-secondary {
    background: transparent;
    color: var(--gcb-primary-text);
    border: 0.0625rem solid #e9ecef;
}

.gcb-booking-actions .gcb-btn-secondary:hover {
    background: #f8f9fa;
    border-color: #dee2e6;
    transform: none;
}

.gcb-booking-actions .gcb-btn-primary {
    background: #2c3e50;
    color: white;
    width: 100%;
    text-align: center;
}

.gcb-booking-actions .gcb-btn-primary:hover {
    background: #34495e;
    transform: none;
}

/* Confirmation Screen Styles */
.gcb-confirmation-content {
    text-align: center;
    max-width: 60rem;
    margin: 0 auto;
}

.gcb-booking-details {
    display: inline-flex;
    border: 0.0625rem solid #ededed;
    border-radius: 0.5rem;
    box-shadow: 0rem 0.75rem 1.5rem rgba(0, 0, 0, 0.04);
    background: white;
    overflow: hidden;
}

.gcb-booking-detail {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.5rem;
    font-size: 1rem;
    color: var(--gcb-primary-text);
}

.gcb-booking-detail:last-child {
    margin-bottom: 0;
}

.gcb-booking-detail-label {
    font-weight: 600;
}

.gcb-booking-detail-value {
    font-weight: 500;
}

.gcb-current-booking-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.gcb-current-booking-details {
    font-size: 1rem;
    color:#1E2F38;
    font-weight: 400;
}

.current-booking-icon {
    display: inline-flex;
    align-items: center;
    color: #1E2F38;
    flex-shrink: 0;
}

.current-booking-icon svg {
    width: 1rem;
    height: 1rem;
}

/* Admin Interface Settings */
.gcb-question-row {
    max-width: 48rem;
}

.gcb-questions-list {
    max-width: 48rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Admin Interface Settings - Form Fields */
#gcb-tab-interface .form-table input[type="text"],
#gcb-tab-interface .form-table textarea {
    max-width: 48rem;
    width: 100%;
    box-sizing: border-box;
}

/* Specific textarea IDs - Override WordPress defaults */
#gcb_step1_subtitle,
#gcb_step2_subtitle,
#gcb_step3_subtitle,
#gcb_step4_subtitle {
    max-width: 768px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Reschedule Container */
.gcb-reschedule-container {
    max-width: 62.5rem;
    margin: 0 auto;
}

/* Notification System Styles */
.gcb-notification {
    padding: 1rem 1.25rem;
    border-radius: 0.5rem;
    margin: 1.25rem 0;
    display: none;
    animation: slideIn 0.3s ease-out;
    font-size: 1rem;
}

.gcb-notification.show {
    display: inline-flex;
    gap: .75rem;
    align-items: center;
}

.gcb-notification.error {
    display: inline-flex;
    gap: .75rem;
    align-items: center;
    background-color: #f8d7da;
    color: #721c24;
    border: 0.0625rem solid #f5c6cb;
}

.gcb-notification.loading {
    background-color: #f5fbff;
    color: #35444C;
    border: 0.0625rem solid #E9F0F4;
    display: inline-flex;
    gap: .75rem;
    align-items: center;
}

.gcb-notification-icon {
    font-weight: bold;
}

@keyframes slideIn {
    from { opacity: 0; transform: translateY(-0.5rem); }
    to { opacity: 1; transform: translateY(0); }
}

/* Modal Styles */
.gcb-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.gcb-modal-overlay.show {
    display: flex;
}

.gcb-modal {
    background: white;
    border-radius: 1.25rem;
    padding: 2rem;
    max-width: 31.25rem;
    width: 90%;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.3);
    animation: modalSlideIn 0.3s ease-out;
}

@keyframes modalSlideIn {
    from { 
        opacity: 0; 
        transform: translateY(-3rem) scale(0.9); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0) scale(1); 
    }
}

.gcb-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 0.0625rem solid #e9ecef;
}

.gcb-modal-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gcb-primary-text);
    margin: 0;
}

.gcb-modal-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--gcb-secondary-text);
    cursor: pointer;
    padding: 0;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background-color 0.3s ease;
}

.gcb-modal-close:hover {
    background-color: #f8f9fa;
}

.gcb-modal-body {
    margin-bottom: 1.5rem;
    color: var(--gcb-secondary-text);
    line-height: 1.6;
}

.gcb-modal-actions {
    display: flex;
    gap: 1.5rem;
    justify-content: flex-end;
}

.gcb-modal-btn {
    padding: 0.75rem 1.25rem;
    border: 0.125rem solid #e9ecef;
    border-radius: 0.5rem;
    background: white;
    color: var(--gcb-primary-text);
    text-decoration: none;
    text-align: center;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
}

.gcb-modal-btn:hover {
    transform: translateY(-0.0625rem);
}

.gcb-modal-btn.primary {
    background-color: #a490ff;
    color: white;
    border-color: #a490ff;
}

.gcb-modal-btn.primary:hover {
    background-color: #2980b9;
    border-color: #2980b9;
}

.gcb-modal-btn.danger {
    color: #e74c3c;
    border-color: #e74c3c;
}

.gcb-modal-btn.danger:hover {
    background-color: #e74c3c;
    color: white;
}

.gcb-modal-btn.secondary {
    background-color: #6c757d;
    color: white;
    border-color: #6c757d;
}

.gcb-modal-btn.secondary:hover {
    background-color: #5a6268;
    border-color: #5a6268;
}

.gcb-footer {
    background: white;
    padding: 1.25rem;
    margin-top: 2.5rem;
    text-align: center;
    border-top: 0.0625rem solid #e9ecef;
}

.gcb-footer-text {
    color: var(--gcb-secondary-text);
    font-size: 0.875rem;
}

/* Mobile Responsiveness */
@media (max-width: 64rem) {
    .gcb-booking-summary{
        min-width: unset !important;
    }

    #gcbBookingDetails .gcb-booking-summary-content{
        width: 100%;
    }

    .gcb-form-container {
        padding: 0rem 2.5rem;
    }
}

/* Mobile/Tablet Responsiveness for booking form */
@media (max-width: 61.25rem) {
    .gcb-booking-form {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: none !important;
        gap: 2rem;
    }
    
    .gcb-booking-summary,
    .gcb-form-fields {
        width: 100%;
    }
    
    .gcb-buttons {
        grid-template-columns: 1fr 5fr;
        align-items: center;
    }
    
    .gcb-btn {
        width: 100%;
        justify-content: center;
    }
    
    .gcb-btn-danger{
        width: auto !important;
    }

    #gcbStep2 .gcb-buttons {
        grid-template-columns: 1fr 3fr;
    }
}

@media (max-width: 57rem) {
    .gcb-calendar-days{
        gap: 0.5rem;
    }
}

/* Mobile Responsiveness */
@media (max-width: 48rem) {
    .gcb-booking-grid {
        grid-template-columns: 1fr;
        gap: 1.875rem;
    }
    
    .gcb-calendar-day {
        font-size: 0.8rem;
    }
    
    .gcb-form-container {
        padding: 0rem 2rem;
        margin: auto;
    }

    #gcbStep5 > .gcb-form-container{
        padding: 0rem;
    }

    .gcb-form-title {
        font-size: 2rem;
    }

    #gcbChangeDateTime.gcb-change-link {
        font-size: 1rem;
    }

    .gcb-btn {
        width: 100%;
        /* max-width: 20rem; */
        justify-content: center;
    }

    .gcb-btn-danger{
        width: auto !important;
    }

    .gcb-current-booking-info{
        display: flex;
        flex-direction: column;
        gap:1.5rem;
        padding: 2rem !important;
        align-items: flex-start;
    }

    .gcb-form-input {
        font-size: 1.25rem;
    }

    .gcb-booking-interface {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .gcb-btn {
        padding: 1rem 1.25rem;
        /* Removed font-size override - use base size consistently */
    }

    .gcb-buttons{
        gap: 2rem;
    }

    /* Admin reschedule specific mobile styles */
    /* Convert grid to vertical list on mobile */
    body.gcb-admin-reschedule-page #gcbCurrentBookingDetails {
        display: flex !important;
        flex-direction: column !important;
        gap: .5rem !important;
        grid-template-columns: none !important;
        grid-template-rows: none !important;
    }
    
    /* Reset grid positioning on mobile */
    body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-date,
    body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-time,
    body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-name,
    body.gcb-admin-reschedule-page #gcbCurrentBookingDetails .gcb-meeting-email {
        grid-column: unset !important;
        grid-row: unset !important;
    }
    
    /* Increase gap in booking info container */
    body.gcb-admin-reschedule-page .gcb-current-booking-info {
        gap: 1.5rem !important;
    }
    
    /* Align cancel button to the left */
    body.gcb-admin-reschedule-page .gcb-current-booking-info #gcbCancelBookingBtn {
        align-self: flex-start !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 32.5rem) {
    .gcb-btn {
        max-width: 100%;
    }

    .gcb-buttons {
        display: flex;
        flex-direction: column-reverse;
        gap: 1.5rem;
        justify-content: center;
        margin-top: 3.5rem;
        align-items: center;
        justify-items: start;
    }

    .gcb-form-container {
        padding: 0rem 1.5rem;
        margin: auto;
    }
    
    /* Stack buttons vertically on mobile */
    .gcb-summary-btn-container {
        flex-direction: column !important;
        gap: 0.75rem !important;
    }
    
    .gcb-summary-btn-container .gcb-btn {
        width: 100% !important;
        max-width: 100% !important;
    }

    .gcb-calendar-days{
        gap: 0.5rem;
    }

    #wsEnquiryStep4 .gcb-buttons{
        margin: 2.5rem auto 0 auto !important;
        display: flex !important;
        justify-content: center;
        flex-direction: column-reverse;
        gap: 1.5rem;
        grid-template-columns: none;
    }

    #wsEnquiryStep4 .gcb-buttons .gcb-btn{
        width: 100%;
    }

    .ws-solutions-grid,
    .ws-budget-grid {
        gap: 1rem;
        margin-bottom: 0;
    }
    
    .ws-solution-option,
    .ws-budget-option {
        padding: 1rem 1.5rem;
        min-height: 50px;
    }
}

@media (max-width: 30rem) {
    .gcb-form-title {
        font-size: 1.5rem;
    }

    .gcb-field-label {
        font-size: 1rem;
    }

    
    .gcb-section-title {
        font-size: 1rem;
    }

    .gcb-month-year {
        font-size: 1rem;
    }

    .gcb-weekday {
        font-size: 0.75rem;
        padding: 0.375rem 0;
    }

    .gcb-calendar-day.today::after{
        bottom: 0.35rem;
    }
}

@media (max-width: 26.25rem) {
    .gcb-calendar-day.today::after{
        width: 0.25rem;
        height: 0.25rem;
    }

    .gcb-calendar-days {
        gap: 0.25rem;
    }
    
    .ws-solution-option,
    .ws-budget-option{
        width: 100%;
    }
}

/* ===================================================================
   BUTTON ANIMATION SYSTEM
   =================================================================== */

/* Button animation states */
.gcb-btn-animated {
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}

.gcb-btn-animated .gcb-btn-text {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    transition: opacity 0.3s ease, transform 0.3s ease;
    opacity: 1;
    transform: translateY(0);
    font-weight: 500;
}

/* Default state - hide all animation texts */
.gcb-btn-animated .gcb-btn-loading-text,
.gcb-btn-animated .gcb-btn-success-text,
.gcb-btn-animated .gcb-btn-error-text {
    opacity: 0;
    transform: translateY(0.625rem);
}

.gcb-btn-animated .gcb-btn-loading-bar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, rgba(255,255,255,0.2), rgba(255,255,255,0.4));
    transition: width 0.3s ease;
    z-index: 1;
}

/* Loading state */
.gcb-btn-animated.gcb-btn-loading {
    border-color: #dadada !important;
    background-color: #ccc !important;
}

.gcb-btn-animated.gcb-btn-loading .gcb-btn-text {
    opacity: 0 !important;
    transform: translateY(-0.625rem) !important;
}

.gcb-btn-animated.gcb-btn-loading .gcb-btn-loading-text {
    opacity: 1 !important;
    transform: translateY(0) !important;
    color: #4B5960 !important;
    font-weight: 500;
}

.gcb-btn-animated.gcb-btn-loading .gcb-btn-loading-bar {
    animation: loadingProgress 2s ease-in-out forwards;
}

.gcb-btn-animated .gcb-btn-loading-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(0.625rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
    white-space: nowrap;
    z-index: 2;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

/* Success state */
.gcb-btn-animated.gcb-btn-success {
    border-color: #74d59d !important;
}

.gcb-btn-animated.gcb-btn-success .gcb-btn-loading-bar {
    background: #74d59d;
    width: 100%;
}

.gcb-btn-animated.gcb-btn-success .gcb-btn-text {
    opacity: 0 !important;
    transform: translateY(-0.625rem) !important;
}

.gcb-btn-animated.gcb-btn-success .gcb-btn-loading-text {
    opacity: 0 !important;
    transform: translateY(-0.625rem) !important;
}

.gcb-btn-animated.gcb-btn-success .gcb-btn-success-text {
    opacity: 1 !important;
    transform: translateY(0) !important;
    color: #0e550e !important;
    font-weight: 500;
}

.gcb-btn-animated .gcb-btn-success-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(0.625rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
    white-space: nowrap;
    z-index: 2;
    color: white;
    font-weight: 600;
    font-size: inherit;
}

/* Error state */
.gcb-btn-animated.gcb-btn-error {
    border-color: #e74c3c !important;
}

.gcb-btn-animated.gcb-btn-error .gcb-btn-loading-bar {
    background: #e74c3c;
    width: 100%;
}

.gcb-btn-animated.gcb-btn-error .gcb-btn-text {
    opacity: 0 !important;
    transform: translateY(-0.625rem) !important;
}

.gcb-btn-animated.gcb-btn-error .gcb-btn-loading-text {
    opacity: 0 !important;
    transform: translateY(-0.625rem) !important;
}

.gcb-btn-animated.gcb-btn-error .gcb-btn-success-text {
    opacity: 0 !important;
    transform: translateY(-0.625rem) !important;
}

.gcb-btn-animated.gcb-btn-error .gcb-btn-error-text {
    opacity: 1 !important;
    transform: translateY(0) !important;
    animation: shake 0.5s ease-in-out;
    font-weight: 500;
}

.gcb-btn-animated .gcb-btn-error-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(0.625rem);
    transition: opacity 0.3s ease, transform 0.3s ease;
    white-space: nowrap;
    z-index: 2;
    color: white;
    font-weight: 600;
    font-size: inherit;
}

.gcb-btn-animated.gcb-btn-loading:disabled,
.gcb-btn-animated.gcb-btn-success:disabled,
.gcb-btn-animated.gcb-btn-error:disabled{
    opacity: 1 !important;
}

/* Keyframe animations */
@keyframes loadingProgress {
    0% { width: 0%; }
    70% { width: 85%; }
    100% { width: 100%; }
}

@keyframes shake {
    0%, 100% { transform: translateY(0) translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateY(0) translateX(-0.1875rem); }
    20%, 40%, 60%, 80% { transform: translateY(0) translateX(0.1875rem); }
}

/* Enhanced button styles for animations */
#gcbBookBtn.gcb-btn-animated {
    min-height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Make sure icons and text are properly positioned */
.gcb-btn-animated .gcb-button-icon {
    display: flex;
    align-items: center;
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 2;
    position: relative;
}

.gcb-btn-animated.gcb-btn-loading .gcb-button-icon,
.gcb-btn-animated.gcb-btn-success .gcb-button-icon,
.gcb-btn-animated.gcb-btn-error .gcb-button-icon {
    opacity: 0;
    transform: translateY(-10px);
}

/* ===================================================================
 * ADMIN RESCHEDULE PAGE OVERRIDES
 * Fix WordPress admin conflicts and ensure proper display
 * =================================================================== */

/* Reset admin page body styles */
body.admin-reschedule-page {
    margin: 0 !important;
    padding: 0 !important;
    background: #f8f9fa !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}



.gcb-booking-form .gcb-step.active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Override WordPress admin bar conflicts */
.gcb-booking-form * {
    box-sizing: border-box !important;
}

/* Admin reschedule header */
.gcb-booking-form .gcb-header {
    text-align: center !important;
    margin-bottom: 2rem !important;
}

.gcb-booking-form .gcb-form-title {
    font-size: 2rem !important;
    font-weight: 500 !important;
    color: #2c3e50 !important;
    margin: 0 0 1rem 0 !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}

/* Admin reschedule current booking info */
.gcb-booking-form .gcb-current-booking-info {
    background: white !important;
    border-radius: 0.75rem !important;
    padding: 1.5rem !important;
    margin-bottom: 2rem !important;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* Admin reschedule booking grid */
.gcb-booking-form .gcb-booking-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
    margin-bottom: 2rem !important;
}

/* Admin reschedule calendar section */
.gcb-booking-form .gcb-calendar-section {
    background: white !important;
    border-radius: 0.75rem !important;
    padding: 1.5rem !important;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1) !important;
}

/* Admin reschedule timeslots section */
.gcb-booking-form .gcb-timeslots-section {
    background: white !important;
    border-radius: 0.75rem !important;
    padding: 1.5rem !important;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1) !important;
}

/* Admin reschedule section titles */
.gcb-booking-form .gcb-section-title {
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    color: #2c3e50 !important;
    margin-bottom: 1rem !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}

/* Admin reschedule buttons */
.gcb-booking-form .gcb-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0.75rem 1.5rem !important;
    border: none !important;
    border-radius: 0.5rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}

.gcb-booking-form .gcb-btn-danger {
    background: #e74c3c !important;
    color: white !important;
}

.gcb-booking-form .gcb-btn-secondary {
    background: #6c757d !important;
    color: white !important;
}

/* Admin reschedule calendar styles */
.gcb-booking-form .gcb-calendar-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 1rem !important;
}

.gcb-booking-form .gcb-calendar-month {
    font-size: 1.125rem !important;
    font-weight: 600 !important;
    color: #2c3e50 !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}

.gcb-booking-form .gcb-calendar-weekdays {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 0.5rem !important;
    margin-bottom: 0.5rem !important;
}

.gcb-booking-form .gcb-weekday {
    text-align: center !important;
    font-weight: 600 !important;
    color: #788288 !important;
    padding: 0.5rem !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}

.gcb-booking-form .gcb-calendar-days {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    gap: 0.5rem !important;
}

/* Admin reschedule timezone info */
.gcb-booking-form .gcb-timezone-info {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 1rem !important;
    padding: 0.75rem !important;
    background: #f8f9fa !important;
    border-radius: 0.5rem !important;
}

.gcb-booking-form .gcb-timezone-text {
    margin-left: 0.5rem !important;
    color: #788288 !important;
    font-family: 'Saira', Helvetica, Arial, sans-serif !important;
}

/* ADMIN RESCHEDULE SPECIFIC - Hide WordPress admin bar ONLY on admin reschedule pages */
body.gcb-admin-reschedule-page #wpadminbar {
    display: none !important;
}

body.gcb-admin-reschedule-page html {
    margin-top: 0 !important;
}

body.gcb-admin-reschedule-page .gcb-container {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
}
/* Next button icon styling */
.gcb-btn > span.gcb-button-icon.next{
    margin-top: -0.18rem;
    display: flex;
    align-items: center;
}

/* Apply same styling as portfolio pagination */
#wsEnquiryStep1 .gcb-btn-secondary,
#wsEnquiryStep2 .gcb-btn-secondary,
#wsEnquiryStep3 .gcb-btn-secondary,
#wsEnquiryStep4 .gcb-btn-secondary,
#wsRequestStep1 .gcb-btn-secondary,
#wsRequestStep2 .gcb-btn-secondary,
#wsRequestStep3 .gcb-btn-secondary,
#wsRequestStep4 .gcb-btn-secondary,
#wsQuoteStep1 .gcb-btn-secondary,
#wsQuoteStep2 .gcb-btn-secondary,
#wsQuoteStep3 .gcb-btn-secondary,
#wsQuoteStep4 .gcb-btn-secondary,
#wsQuoteStep5 .gcb-btn-secondary,
#wsQuoteStep6 .gcb-btn-secondary {
    border: solid 0.13rem #1e2f38 !important;
    border-radius: 0.5rem;
    background-color: RGBA(255, 255, 255, 0);
    padding: 0.75rem 1.5rem 0.75rem 1.5rem !important;
    color: #1e2f38 !important;
    text-decoration: none !important;
    transition: color 300ms ease 0ms,background-color 300ms ease 0ms,border 300ms ease 0ms;
    font-size: 0.8rem;
    line-height: 1.7rem !important;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
}

/* Remove the manual icons and use pseudo-elements instead */
#wsEnquiryStep1 .gcb-btn-secondary .gcb-button-icon,
#wsEnquiryStep2 .gcb-btn-secondary .gcb-button-icon,
#wsEnquiryStep3 .gcb-btn-secondary .gcb-button-icon,
#wsEnquiryStep4 .gcb-btn-secondary .gcb-button-icon,
#wsRequestStep1 .gcb-btn-secondary .gcb-button-icon,
#wsRequestStep2 .gcb-btn-secondary .gcb-button-icon,
#wsRequestStep3 .gcb-btn-secondary .gcb-button-icon,
#wsRequestStep4 .gcb-btn-secondary .gcb-button-icon {
    display: none;
}

/* Back button pseudo-element */
#wsEnquiryStep1 .gcb-btn-secondary:first-child::before,
#wsEnquiryStep2 .gcb-btn-secondary:first-child::before,
#wsEnquiryStep3 .gcb-btn-secondary:first-child::before,
#wsEnquiryStep4 .gcb-btn-secondary:first-child::before,
#wsRequestStep1 .gcb-btn-secondary:first-child::before,
#wsRequestStep2 .gcb-btn-secondary:first-child::before,
#wsRequestStep3 .gcb-btn-secondary:first-child::before,
#wsRequestStep4 .gcb-btn-secondary:first-child::before {
    content: "\23";
    margin-right: .7em;
    right: auto;
    color: #1e2f38;
    line-height: inherit;
    font-size: inherit !important;
    opacity: 1;
    font-family: ETmodules !important;
    font-weight: 400 !important;
}

/* Next button pseudo-element */
#wsEnquiryStep1 .gcb-btn-secondary:last-child::after,
#wsEnquiryStep2 .gcb-btn-secondary:last-child::after,
#wsEnquiryStep3 .gcb-btn-secondary:last-child::after,
#wsRequestStep1 .gcb-btn-secondary:last-child::after,
#wsRequestStep2 .gcb-btn-secondary:last-child::after,
#wsRequestStep3 .gcb-btn-secondary:last-child::after {
    content: "\24";
    margin-left: .7em;
    left: auto;
    color: #1e2f38;
    line-height: inherit;
    font-size: inherit !important;
    opacity: 1;
    font-family: ETmodules !important;
    font-weight: 400 !important;
}

/* Hover states for enquiry and request quote buttons */
#wsEnquiryStep1 .gcb-btn-secondary:hover,
#wsEnquiryStep2 .gcb-btn-secondary:hover,
#wsEnquiryStep3 .gcb-btn-secondary:hover,
#wsEnquiryStep4 .gcb-btn-secondary:hover,
#wsRequestStep1 .gcb-btn-secondary:hover,
#wsRequestStep2 .gcb-btn-secondary:hover,
#wsRequestStep3 .gcb-btn-secondary:hover,
#wsRequestStep4 .gcb-btn-secondary:hover,
#wsQuoteStep1 .gcb-btn-secondary:hover,
#wsQuoteStep2 .gcb-btn-secondary:hover,
#wsQuoteStep3 .gcb-btn-secondary:hover,
#wsQuoteStep4 .gcb-btn-secondary:hover,
#wsQuoteStep5 .gcb-btn-secondary:hover,
#wsQuoteStep6 .gcb-btn-secondary:hover {
    color: #fff !important;
    background-color: RGBA(30, 47, 56, 1) !important;
    border: 0.13rem solid #1e2f38 !important;
}

/* Hover states for pseudo-element icons */
#wsEnquiryStep1 .gcb-btn-secondary:hover::before,
#wsEnquiryStep2 .gcb-btn-secondary:hover::before,
#wsEnquiryStep3 .gcb-btn-secondary:hover::before,
#wsEnquiryStep4 .gcb-btn-secondary:hover::before,
#wsRequestStep1 .gcb-btn-secondary:hover::before,
#wsRequestStep2 .gcb-btn-secondary:hover::before,
#wsRequestStep3 .gcb-btn-secondary:hover::before,
#wsRequestStep4 .gcb-btn-secondary:hover::before,
#wsQuoteStep1 .gcb-btn-secondary:hover::before,
#wsQuoteStep2 .gcb-btn-secondary:hover::before,
#wsQuoteStep3 .gcb-btn-secondary:hover::before,
#wsQuoteStep4 .gcb-btn-secondary:hover::before,
#wsQuoteStep5 .gcb-btn-secondary:hover::before,
#wsQuoteStep6 .gcb-btn-secondary:hover::before,
#wsEnquiryStep1 .gcb-btn-secondary:hover::after,
#wsEnquiryStep2 .gcb-btn-secondary:hover::after,
#wsEnquiryStep3 .gcb-btn-secondary:hover::after,
#wsRequestStep1 .gcb-btn-secondary:hover::after,
#wsRequestStep2 .gcb-btn-secondary:hover::after,
#wsRequestStep3 .gcb-btn-secondary:hover::after,
#wsQuoteStep1 .gcb-btn-secondary:hover::after,
#wsQuoteStep2 .gcb-btn-secondary:hover::after,
#wsQuoteStep3 .gcb-btn-secondary:hover::after,
#wsQuoteStep4 .gcb-btn-secondary:hover::after,
#wsQuoteStep5 .gcb-btn-secondary:hover::after,
#wsQuoteStep6 .gcb-btn-secondary:hover::after {
    color: #fff !important;
}


/* Ensure Submit button matches Back/Next button dimensions */
#wsEnquiryStep4 .gcb-btn-primary,
#wsRequestStep4 .gcb-btn-primary {
    padding: 0.75rem 1.5rem 0.75rem 1.5rem !important;
    font-size: 0.8rem !important;
    line-height: 1.7rem !important;
    font-family: 'Saira', Helvetica, Arial, Lucida, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    border-radius: 0.5rem !important;
    flex: 1 0 100% !important;
}

#wsEnquiryStep4 .gcb-btn-secondary{
    flex: 0 0 auto !important;
    min-width: fit-content !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

/* Make submit button grow to take remaining space */
#wsEnquiryStep4 .gcb-buttons .gcb-btn:not(.gcb-btn-secondary) {
    flex: 1 !important;
}

/* Make Request Quote submit button grow to take remaining space on last step */
#wsQuoteStep6 .gcb-buttons .gcb-btn:not(.gcb-btn-secondary) {
    flex: 1 !important;
}

/* Make Back button fixed size on quote form last step */
#wsQuoteStep6 .gcb-btn-secondary {
    flex: 0 0 auto !important;
}

/* Fix animated button text line height */
.gcb-btn-animated .gcb-btn-text {
    line-height: 1.7rem;
}

/* Honeypot field — hidden from humans, visible to bots */
.gcb-hp-field {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
