/*!
 * ==========================================================
 * Fullcast Child Theme
 * Global Design System
 * Version: 1.0
 * ==========================================================
 */

/* ==========================================================
   VARIABLES
========================================================== */

:root{
    --fc-primary:#FD4000;
    --fc-primary-hover:#E23800;
    --fc-focus:#1c94a4;

    --fc-text:#ffffff;
    --fc-placeholder:rgba(255,255,255,.55);

    --fc-input-bg:rgba(255,255,255,.06);
    --fc-input-bg-focus:rgba(255,255,255,.10);

    --fc-border:rgba(255,255,255,.10);

    --fc-error:#ff9c9c;

    --fc-radius:16px;
    --fc-transition:.25s ease;
}

/* ==========================================================
   HUBSPOT FORMS
   Wrap every HubSpot form with:

   <div class="fc-hubspot-form" id="fc-contact-form"></div>

   hbspt.forms.create({
       target:"#fc-contact-form",
       ...
   });

========================================================== */

.fc-hubspot-form{
    font-family:inherit;
}

.fc-hubspot-form .hs-form-field{
    margin-bottom:18px;
}

.fc-hubspot-form label{
    display:block;
    margin-bottom:8px;
    color:var(--fc-text);
    font-size:14px;
    font-weight:600;
    letter-spacing:.02em;
}

.fc-hubspot-form .hs-form-required{
    opacity:.5;
    margin-left:4px;
}

.fc-hubspot-form input,
.fc-hubspot-form textarea,
.fc-hubspot-form select{
    width:100%;
    box-sizing:border-box;
    padding:12px 18px;
    color:var(--fc-text);
    font-size:16px;
    line-height:1.5;
    background:var(--fc-input-bg);
    border:1px solid var(--fc-border);
    border-radius:var(--fc-radius);
    transition:var(--fc-transition);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.fc-hubspot-form input::placeholder,
.fc-hubspot-form textarea::placeholder{
    color:var(--fc-placeholder);
}

.fc-hubspot-form input:focus,
.fc-hubspot-form textarea:focus,
.fc-hubspot-form select:focus{
    outline:none;
    background:var(--fc-input-bg-focus);
    border-color:var(--fc-focus);
    box-shadow:0 0 0 4px rgba(28,148,164,.20);
}

.fc-hubspot-form textarea{
    min-height:150px;
    resize:vertical;
}

.fc-hubspot-form input[type="checkbox"]{
    width:auto;
    margin-top:5px;
    accent-color:var(--fc-primary);
}

.fc-hubspot-form .inputs-list{
    margin:12px 0 20px;
    padding:0;
    list-style:none;
}

.fc-hubspot-form .hs-form-booleancheckbox{
    list-style:none;
}

.fc-hubspot-form .hs-form-booleancheckbox label{
    display:flex;
    align-items:flex-start;
    gap:12px;
    font-weight:400;
    line-height:1.6;
}

.fc-hubspot-form .hs-richtext,
.fc-hubspot-form .hs-richtext p,
.fc-hubspot-form .hs-richtext span{
    color:var(--fc-text);
}

.fc-hubspot-form .hs-richtext a,
.fc-hubspot-form .hs-form-booleancheckbox a{
    color:var(--fc-primary)!important;
    font-weight:600;
    text-decoration:none;
}

.fc-hubspot-form .hs-richtext a:hover,
.fc-hubspot-form .hs-form-booleancheckbox a:hover{
    color:#ff6b33!important;
    text-decoration:underline;
}

.fc-hubspot-form .actions{
    text-align:center;
    margin-top:22px;
}

.fc-hubspot-form .hs-button{
    appearance:none;
    width:auto;
    min-width:320px;
    padding:16px 40px;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg,var(--fc-primary),var(--fc-primary-hover));
    color:#fff;
    font-size:16px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .25s ease;
}

.fc-hubspot-form .hs-button:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(253,64,0,.30);
}

.fc-hubspot-form .hs-error-msgs{
    margin-top:8px;
    padding:0;
}

.fc-hubspot-form .hs-error-msgs li{
    list-style:none;
    color:var(--fc-error);
    font-size:13px;
    font-style:italic;
}

@media (max-width:767px){
    .fc-hubspot-form .hs-button{
        width:100%;
        min-width:0;
    }
}

/* ==========================================================
   VERTICAL TABS CUSTOM STYLING (DIVI 5)
   ========================================================== */

@media (min-width: 768px) {
    /* Left Vertical Tabs */
    .et_pb_tabs.et_pb_tabs_vertical_left {
        display: flex !important;
        flex-direction: row !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_left .et_pb_tabs_controls {
        flex: 0 0 250px !important;
        max-width: 250px !important;
        display: flex !important;
        flex-direction: column !important;
        border-bottom: none !important;
        margin: 0 !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_left .et_pb_tabs_controls li {
        display: block !important;
        float: none !important;
        margin: 0 !important;
        width: 100% !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_left .et_pb_tabs_controls li a {
        display: block !important;
        text-align: left;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_left .et_pb_tabs_controls li.et_pb_tab_active a {
        position: relative !important;
        z-index: 2 !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_left .et_pb_all_tabs {
        flex: 1 !important;
        margin-top: 0 !important;
    }

    /* Right Vertical Tabs */
    .et_pb_tabs.et_pb_tabs_vertical_right {
        display: flex !important;
        flex-direction: row-reverse !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_right .et_pb_tabs_controls {
        flex: 0 0 250px !important;
        max-width: 250px !important;
        display: flex !important;
        flex-direction: column !important;
        border-bottom: none !important;
        margin: 0 !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_right .et_pb_tabs_controls li {
        display: block !important;
        float: none !important;
        margin: 0 !important;
        width: 100% !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_right .et_pb_tabs_controls li a {
        display: block !important;
        text-align: left;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_right .et_pb_tabs_controls li.et_pb_tab_active a {
        position: relative !important;
        z-index: 2 !important;
    }

    .et_pb_tabs.et_pb_tabs_vertical_right .et_pb_all_tabs {
        flex: 1 !important;
        margin-top: 0 !important;
    }
}