/****************************
 * Woo Forms
*****************************/
.clear {display:none;}

/* FORM > Fields wrapper */
.woocommerce-address-fields__field-wrapper,
.woocommerce-EditAccountForm.edit-account,
#customer_login .woocommerce-form,
.woocommerce-billing-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
form.checkout .woocommerce-account-fields {
    display:flex; flex-wrap:wrap; gap:var(--bb-spacing-30) calc(2 * var(--woo-gap-field));
}


/* FORM > Fields */
.woocommerce form .form-row {position:relative; width:100%; margin-bottom:0;}
.woocommerce form .form-row:last-child {margin-bottom:0;}
.woocommerce form .form-row.hidden {display:none;}
@media only screen and (min-width:768px) {
    .woocommerce form .form-row.form-row-first,
    .woocommerce form .form-row.form-row-last {width:calc(50% - var(--woo-gap-field)); padding:0;}
}


/* FORM > Labels */
.woocommerce form .form-row label {display:block; margin-bottom:.4em;}
.woocommerce form .form-row:not(.form-row-wide) label {font-size:16px;}
.woocommerce form .form-row label.checkbox {margin-bottom:0;}
.woocommerce form .form-row .required {text-decoration:none; border:none; color:var(--woo-color-error);}
.woocommerce form .form-row label a {text-decoration:underline;}
.woocommerce form .form-row label a:hover,
.woocommerce form .form-row label a:focus {color:var(--bb-color-primary);}
@media only screen and (max-width:480px) {
    .woocommerce form .form-row label {margin-bottom:var(--bb-spacing-5);}
}

/* FORM > Select 2 */
.woocommerce .select2-container .select2-selection--single {
    display:flex !important; align-items:center; position:relative;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height:1.2; padding:0; color:inherit;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {display:none;}
.woocommerce .select2-container--default .select2-selection--single:after {
    content:"\e931"; font-family:var(--bb-font-icomoon);
    position:absolute; top:50%; right:15px;
    transform:translateY(-50%); font-size:10px;
}

.select2-dropdown,
.select2-container--default .select2-search--dropdown .select2-search__field {border:var(--woo-border);}
.select2-container--default .select2-search--dropdown .select2-search__field {height:35px;}
.select2-container--default .select2-results > .select2-results__options {margin:0;}
.select2-container--default .select2-results > .select2-results__options li {padding:5px;}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
    background:var(--bb-color-primary); color:var(--bb-color-on-primary);
}


/* FORM > Input */
.woocommerce-input-wrapper {display:block;}
.woo-form-field,
.woocommerce .select2-container .select2-selection--single,
.woocommerce form .form-row input:not([type="checkbox"]):not([type="radio"]),
.woocommerce form .form-row textarea {
    border:1px solid rgba(0, 0, 0, 0); border-radius:var(--woo-radius);
    background:var(--woo-field-bg); color:var(--woo-field-color);
    font-size:var(--woo-field-size); font-family:var(--woo-field-font);
    width:100%; height:50px; padding:5px 15px; display:block;
    transition:all .3s ease;
}
.woocommerce form .form-row textarea {height:160px; padding:15px 20px;}


/* FORM > Input :hover, :focus */
.woocommerce .select2-container .select2-selection--single:hover,
.woocommerce form .form-row input:not([type="checkbox"]):not([type="radio"]):hover,
.woocommerce form .form-row textarea:hover,
.woocommerce form .form-row input:not([type="checkbox"]):not([type="radio"]):focus,
.woocommerce form .form-row textarea:focus,
.woo-form-field:hover,
.woo-form-field:focus {
    background:var(--woo-field-bg-hover);
    border-color:var(--bb-color-brown);
}


/* FORM > Input invalid, error */
.woocommerce form .form-row.woocommerce-invalid input:not([type="checkbox"]):not([type="radio"]),
.woocommerce form .form-row.woocommerce-invalid textarea {
    border-color:var(--woo-color-error);
}


/* FORM > Input description */
.woocommerce form .form-row input:not([type="checkbox"]):not([type="radio"]) + span {
    font-size:14px; color:var(--bb-color-gray); padding-top:5px; display:block;
}
.woocommerce form .form-row input:not([type="checkbox"]):not([type="radio"]) + span em {font-style:normal;}


/* FORM > Fieldset */
.woocommerce form fieldset {padding:0; margin:0; width:100%; border:none;}
.woocommerce form fieldset legend {position:relative; font-weight:500; margin-bottom:var(--bb-spacing-20);}
.woocommerce form fieldset legend:after {
    content:"\e92d"; font-family:var(--bb-font-icomoon); font-size:.8em;
    margin-left:10px;
}
.woocommerce form fieldset .form-row {padding:0;}
.woocommerce form fieldset .form-row:not(:last-child) {margin-bottom:var(--bb-spacing-30);}
.woocommerce form fieldset .show-password-input {display:none !important;}


/* FORM > Input password */
.password-input {display:block;}

/* FORM > Password strength */
.woocommerce-password-strength {font-weight:400; border:none; background:#f3f3f3 !important; position:relative; padding:5px 10px;}
.woocommerce-password-strength.bad {color:var(--woo-color-error);}
.woocommerce-password-strength.good {color:var(--woo-color-message);}
.woocommerce-password-strength.strong {color:var(--woo-color-info);}


/****************************
 * Misc
*****************************/
/* Mailchimp checkbox */
body.woocommerce-checkout .woocommerce form .form-row.mailchimp-newsletter {padding:0;}
.woocommerce form .form-row.mailchimp-newsletter label {display:inline-block;}


/****************************
 * Woo Forms Responsive
*****************************/
@media only screen and (max-width:767px) {
    /* FORM > Input */
    .woocommerce form .form-row input:not([type="checkbox"]):not([type="radio"]),
    .woocommerce form .form-row textarea {
        height:47px; padding:5px 15px;
    }
    .woocommerce form .form-row textarea {height:140px; padding:15px;}
}


/*********************
 * GF Fields (Woo: gf-woo-theme)
**********************/
/* todo: FE dev, add class "gf-woo-theme" to form for custom style */
.gform_wrapper.gf-woo-theme_wrapper {
    /* Layout */
    --gf-spacing-row:var(--bb-spacing-default, 45px);
    --gf-spacing-label:8px;
    --gf-gap-h:20px;
    --gf-gap-v:20px;
}

/* Fields */
form.gf-woo-theme .gfield .easy-select-current .easy-select-option,
form.gf-woo-theme .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
form.gf-woo-theme .gfield textarea,
form.gf-woo-theme .gfield select {
    border:var(--woo-border);
    background:var(--woo-field-bg); color:var(--woo-field-color);
    font-size:var(--woo-field-size); font-family:var(--woo-field-font);
    width:100%; height:50px; padding:5px 20px; display:block;
    transition:all .3s ease;

    -webkit-appearance:none !important; -webkit-border-radius:var(--woo-radius) !important; border-radius:var(--woo-radius) !important;
}
form.gf-woo-theme .gfield textarea {height:var(--gf-field-textarea-height); padding:15px var(--gf-field-padding-h); resize:vertical;}

/* Fields :hover, :focus */
form.gf-woo-theme .gfield .easy-select-current:hover .easy-select-option,
form.gf-woo-theme .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):hover,
form.gf-woo-theme .gfield textarea:hover,
form.gf-woo-theme .gfield select:hover,
form.gf-woo-theme .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
form.gf-woo-theme .gfield textarea:focus,
form.gf-woo-theme .gfield select:focus {
    background:var(--gf-bg-hover);
    border-color:var(--gf-border-color-hover);
    color:var(--gf-color-hover);
    --gf-placeholder-color:var(--bb-color-text);
}

/* Fields error */
form.gf-woo-theme .gfield_error .easy-select-current .easy-select-option,
form.gf-woo-theme .gfield_error input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
form.gf-woo-theme .gfield_error textarea,
form.gf-woo-theme .gfield_error select,
form.gf-woo-theme .gfield_error .easy-select-current {
    border-color:var(--gf-color-error);
    border-width:2px;
}
form.gf-woo-theme .gfield_error .ginput_container_consent {color:var(--gf-color-error);}