/*==================================================
    CONTACT PAGE
==================================================*/

/*==================================================
    INTRO
==================================================*/

#contact-intro{
    padding-top:55px;
}

.contact-intro{
    background:#FFFDF9;
}

.contact-intro-grid{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
    gap:70px;
    align-items:center;
}

.contact-intro-copy{
    max-width:720px;
}

.contact-intro-copy .section-title{
    margin:20px 0 25px;
}

.contact-intro-copy p{
    color:var(--text-secondary,#4A403A);
    font-size:17px;
    line-height:1.85;
}

.contact-quick-grid{
    display:grid;
    gap:14px;
}

.contact-quick-card{
    display:flex;
    align-items:center;
    gap:17px;
    padding:20px 22px;
    border:1px solid rgba(225,80,39,.10);
    border-radius:22px;
    background:#fff;
    color:var(--text,#37271D);
    box-shadow:0 12px 34px rgba(50,35,25,.045);
    transition:.3s ease;
}

a.contact-quick-card:hover{
    color:var(--text,#37271D);
    border-color:rgba(225,80,39,.26);
    transform:translateY(-3px);
    box-shadow:0 18px 42px rgba(225,80,39,.09);
}

.contact-quick-icon{
    flex:0 0 auto;
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:17px;
    background:#FFF0E9;
    color:#E15027;
    font-size:21px;
}

.contact-quick-card span,
.contact-quick-card strong{
    display:block;
}

.contact-quick-card span{
    margin-bottom:3px;
    color:#786A62;
    font-size:12px;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.contact-quick-card strong{
    overflow-wrap:anywhere;
    font-family:"Poppins",sans-serif;
    font-size:15px;
    line-height:1.45;
}


/*==================================================
    LOCATION ENHANCEMENTS
    Core location layout comes from style.css
==================================================*/

.contact-locations{
    padding-bottom:110px;
}

.contact-location-list{
    gap:14px;
}

.contact-locations .location-card{
    padding:12px;
}

.contact-location-thumb{
    position:relative;
    flex:0 0 82px;
    width:82px;
    height:72px;
    margin-right:15px;
    overflow:hidden;
    border-radius:16px;
    background:#FFF0E9;
}

.contact-location-thumb img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.contact-location-thumb-fallback{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#E15027;
    font-size:22px;
}

.contact-location-list .location-info{
    flex:1;
    min-width:0;
}

.contact-location-list .location-info h5{
    margin:0 0 5px;
    color:#2A201A;
    font-size:16px;
    font-weight:800;
}

.contact-location-list .location-info p{
    color:#5E514A;
}

.contact-map-frame{
    position:relative;
}

.contact-map-preview{
    position:absolute;
    left:22px;
    bottom:22px;
    z-index:5;
    width:min(390px,calc(100% - 44px));
    display:grid;
    grid-template-columns:122px 1fr;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.7);
    border-radius:22px;
    background:rgba(255,255,255,.94);
    box-shadow:0 16px 45px rgba(0,0,0,.18);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

.contact-map-preview-image{
    position:relative;
    min-height:120px;
    background:#FFF0E9;
}

.contact-map-preview-image img{
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    display:block;
    object-fit:cover;
}

.contact-map-preview-fallback{
    width:100%;
    height:100%;
    min-height:120px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    color:#E15027;
}

.contact-map-preview-fallback i{
    font-size:26px;
}

.contact-map-preview-fallback span{
    font-size:11px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.contact-map-preview-copy{
    padding:17px 18px;
}

.contact-map-preview-copy > span{
    display:block;
    margin-bottom:4px;
    color:#E15027;
    font-size:10px;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.contact-map-preview-copy strong{
    display:block;
    margin-bottom:5px;
    color:#2A201A;
    font-family:"Poppins",sans-serif;
    font-size:16px;
}

.contact-map-preview-copy p{
    margin:0;
    color:#625852;
    font-size:12px;
    line-height:1.5;
}


/*==================================================
    CONTACT FORM
==================================================*/

.contact-form-section{
    background:#FFF4E7;
}

.contact-form-layout{
    display:grid;
    grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);
    gap:70px;
    align-items:start;
}

.contact-form-intro{
    position:sticky;
    top:120px;
}

.contact-form-intro .section-title{
    margin:20px 0 24px;
}

.contact-form-intro > p{
    color:var(--text-secondary,#4A403A);
    font-size:16px;
    line-height:1.8;
}

.contact-form-note{
    display:grid;
    gap:13px;
    margin-top:30px;
}

.contact-form-note > div{
    display:flex;
    align-items:flex-start;
    gap:11px;
    color:#4A403A;
    font-size:14px;
    line-height:1.55;
}

.contact-form-note i{
    flex:0 0 auto;
    margin-top:4px;
    color:#E15027;
}

.contact-form-mascot{
    width:155px;
    display:block;
    margin:40px auto 0;
}

.contact-form-card{
    padding:42px;
    border:1px solid rgba(225,80,39,.09);
    border-radius:30px;
    background:#fff;
    box-shadow:0 22px 60px rgba(60,40,25,.07);
}

.contact-form-card .form-control,
.contact-form-card .form-select{
    min-height:58px;
    border:1px solid #E8DED7;
    border-radius:14px;
    color:#2A201A;
    background-color:#FFFDFB;
}

.contact-form-card textarea.form-control{
    min-height:150px;
}

.contact-form-card .form-control:focus,
.contact-form-card .form-select:focus{
    border-color:rgba(225,80,39,.65);
    box-shadow:0 0 0 .2rem rgba(225,80,39,.09);
    background:#fff;
}

.contact-form-card .form-floating > label{
    color:#6A5C54;
}

.contact-form-group-title{
    margin-bottom:16px;
    color:#2A201A;
    font-family:"Poppins",sans-serif;
    font-size:18px;
    font-weight:750;
}

.contact-form-divider{
    height:1px;
    margin:28px 0;
    background:#EFE4DC;
}

.contact-gender{
    margin-top:18px;
}

.contact-field-label{
    display:block;
    margin-bottom:9px;
    color:#4A403A;
    font-weight:700;
}

.contact-form-card .form-check-input:checked{
    border-color:#E15027;
    background-color:#E15027;
}

.contact-goals{
    height:150px !important;
}

.contact-terms{
    margin-top:22px;
    color:#544840;
    font-size:13px;
    line-height:1.55;
}

.contact-terms a{
    color:#E15027;
    font-weight:700;
}

.contact-submit-note{
    margin:20px 0 0;
    padding:16px 18px;
    border-radius:15px;
    background:#FFF7EF;
    color:#5B4E47;
    font-size:13px;
    line-height:1.55;
}

.contact-submit{
    width:100%;
    justify-content:center;
    margin-top:20px;
    border:0;
}


/*==================================================
    MODALS
==================================================*/

.contact-form-section + .modal,
.modal{
    color:#2A201A;
}

.modal-content{
    border:0;
    border-radius:22px;
}

.modal-body{
    color:#4A403A;
}

.modal-body h6{
    color:#2A201A;
    font-weight:800;
}


/*==================================================
    RESPONSIVE
==================================================*/

@media(max-width:991px){

    .contact-intro-grid,
    .contact-form-layout{
        grid-template-columns:1fr;
        gap:45px;
    }

    .contact-form-intro{
        position:static;
    }

    .contact-locations .locations-wrapper{
        grid-template-columns:1fr;
    }

    .contact-location-list{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .contact-locations .location-card{
        flex-direction:column;
        align-items:flex-start;
        min-height:220px;
    }

    .contact-location-thumb{
        width:100%;
        height:95px;
        margin:0 0 12px;
    }

    .contact-locations .location-arrow{
        position:absolute;
        right:18px;
        bottom:18px;
    }
}

@media(max-width:767px){

    #contact-intro{
        padding-top:30px;
    }

    .contact-location-list{
        grid-template-columns:1fr;
    }

    .contact-locations .location-card{
        min-height:0;
        flex-direction:row;
        align-items:center;
    }

    .contact-location-thumb{
        flex:0 0 74px;
        width:74px;
        height:66px;
        margin:0 13px 0 0;
    }

    .contact-locations .location-arrow{
        position:static;
    }

    .contact-map-preview{
        left:12px;
        bottom:12px;
        width:calc(100% - 24px);
        grid-template-columns:95px 1fr;
        border-radius:17px;
    }

    .contact-map-preview-image{
        min-height:102px;
    }

    .contact-map-preview-fallback{
        min-height:102px;
    }

    .contact-map-preview-copy{
        padding:13px 14px;
    }

    .contact-map-preview-copy strong{
        font-size:14px;
    }

    .contact-map-preview-copy p{
        font-size:11px;
    }

    .contact-form-card{
        padding:28px 20px;
        border-radius:24px;
    }

    .contact-form-mascot{
        display:none;
    }
}
