:root{
    --tp-navy:#0C1927;
    --tp-gold:#B78C50;
    --tp-gold-light:#CAAA7D;
    --tp-cream:#f9f7f2;
    --tp-text:#333;
    --tp-muted:#666;
    --tp-white:#ffffff;
    --tp-radius:12px;
    --tp-shadow:0 12px 40px rgba(12, 25, 39, 0.08);
    --font-body:'Inter',system-ui,sans-serif;
    --font-heading:'Playfair Display',Georgia,serif;
}
.padding-section{
    padding:90px 0;
}
.contact-eyebrow{
    font-family:var(--font-body);
    font-size:.85rem;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--tp-gold);
    margin-bottom:12px;
}
.contact-section-title{
    font-family:var(--font-heading);
    font-weight:700;
    font-size:clamp(1.75rem, 3.5vw, 2.4rem);
    color:var(--tp-navy);
    line-height:1.25;
    margin-bottom:14px;
}
.contact-lead{
    font-size:1.1rem;
    color:var(--tp-muted);
    max-width:580px;
    line-height:1.65;
}
.contact-hero{
    background-image: linear-gradient(rgba(12,25,39,.5),rgba(12,25,39,.5)),url(/images/contact-us-banner.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    padding:100px 0 90px;
    position:relative;
    overflow:hidden;
    text-align: center;
}
.contact-hero::before{
    content:'';
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse at 75% 30%,rgba(183,140,80,.18) 0,transparent 55%);
    pointer-events:none;
}
.contact-hero-content{
    position:relative;
}
.contact-hero .contact-eyebrow{
    color:var(--tp-gold-light);
}
.contact-hero-title{
    font-family:var(--font-heading);
    font-weight:700;
    font-size:clamp(2.4rem, 5vw, 3.5rem);
    color:var(--tp-white);
    line-height:1.1;
    margin-bottom:18px;
}
.contact-hero-sub{
    font-size:1.15rem;
    color:rgba(255,255,255,.85);
    line-height:1.7;
    margin:0;
}
.info-cards{
    display:flex;
    flex-direction:column;
    gap:16px;
    margin-bottom:24px;
}
.info-card{
    display:flex;
    align-items:flex-start;
    gap:16px;
    background:var(--tp-white);
    border:1px solid rgba(12,25,39,.08);
    border-radius:var(--tp-radius);
    padding:20px 22px;
    text-decoration:none;
    color:inherit;
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
a.info-card:hover{
    transform:translateY(-3px);
    box-shadow:var(--tp-shadow);
    border-color:rgba(183,140,80,.35);
    color:inherit;
    border: 1px solid #B78C50;
    transition: 0.3s ease-in-out all;
}
.info-icon{
    width:48px;
    height:48px;
    border-radius:12px;
    background:rgba(183,140,80,.14);
    color:var(--tp-gold);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.15rem;
    flex-shrink:0;
}
.info-card h3{
    font-family:var(--font-body);
    font-weight:600;
    font-size:1rem;
    color:var(--tp-navy);
    margin:0 0 4px;
}
.info-card p{
    font-size:1.05rem;
    font-weight:500;
    color:var(--tp-text);
    margin:0 0 2px;
}
.info-card span{
    font-size:.85rem;
    color:var(--tp-muted);
}
.map-card{
    border-radius:var(--tp-radius);
    overflow:hidden;
    box-shadow:var(--tp-shadow);
    border:1px solid rgba(12,25,39,.06);
    height:260px;
}
.map-card iframe{
    width:100%;
    height:100%;
    border:0;
    display:block;
}
.form-card{
    background:var(--tp-white);
    border-radius:16px;
    box-shadow:var(--tp-shadow);
    border:1px solid rgba(12,25,39,.06);
    padding:40px 36px;
}
.form-header{
    margin-bottom:28px;
}
.form-header h2{
    font-family:var(--font-heading);
    font-weight:700;
    font-size:clamp(1.5rem, 2.5vw, 1.9rem);
    color:var(--tp-navy);
    margin-bottom:10px;
}
.form-header p{
    color:var(--tp-muted);
    font-size:1rem;
    line-height:1.6;
    margin:0;
}
.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.form-group{
    margin-bottom:18px;
}
.form-group label{
    display:block;
    font-size:.88rem;
    font-weight:600;
    color:var(--tp-navy);
    margin-bottom:6px;
}
.form-group input,.form-group select,.form-group textarea{
    width:100%;
    padding:13px 16px;
    border:1px solid #dde1e6;
    border-radius:8px;
    font-family:var(--font-body);
    font-size:.98rem;
    color:var(--tp-text);
    background:#fafbfc;
    transition:border-color .2s ease,box-shadow .2s ease;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
    outline:0;
    border-color:var(--tp-gold);
    box-shadow:0 0 0 3px rgba(183,140,80,.18);
    background:var(--tp-white);
}
.form-group textarea{
    resize:vertical;
    min-height:120px;
}
.hp-field{
    position:absolute!important;
    left:-9999px!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
    pointer-events:none!important;
}
.form-checkbox{
    margin:8px 0 22px;
}
.checkbox-label{
    display:flex;
    align-items:flex-start;
    gap:12px;
    cursor:pointer;
    font-size:.88rem;
    color:var(--tp-muted);
    line-height:1.5;
}
.checkbox-label input[
    type=checkbox
    ]
    {
        width:18px;
        height:18px;
        margin-top:2px;
        accent-color:var(--tp-gold);
        flex-shrink:0;
    }
    .policy-link{
        color:var(--tp-gold);
        text-decoration:underline;
    }
    .submit-btn{
        display:block;
        width:100%;
        background:var(--tp-gold);
        color:var(--tp-white);
        font-family:var(--font-body);
        font-weight:600;
        font-size:1.05rem;
        padding:15px 24px;
        border:none;
        border-radius:8px;
        cursor:pointer;
        transition:background .25s ease,transform .2s ease,box-shadow .25s ease;
    }
    .submit-btn:hover{
        background:#a67a42;
        transform:translateY(-2px);
        box-shadow:0 8px 20px rgba(183,140,80,.35)
    }
    .submit-btn:disabled{
        opacity:.7;
        cursor:not-allowed;
        transform:none;
    }
    .form-note{
        text-align:center;
        font-size:.82rem;
        color:var(--tp-muted);
        margin:14px 0 0;
    }
    .contact-cta{
        background:linear-gradient(135deg,var(--tp-navy) 0,#1a2d42 100%);
        padding:70px 0;
    }
    .contact-cta-title{
        font-family:var(--font-heading);
        font-weight:700;
        font-size:clamp(1.6rem, 3.5vw, 2.2rem);
        color:var(--tp-white);
        margin-bottom:10px;
    }
    .contact-cta-sub{
        color:rgba(255,255,255,.8);
        font-size:1.1rem;
        margin-bottom:26px;
    }
    .contact-cta-actions{
        display:flex;
        flex-wrap:wrap;
        gap:14px;
        justify-content:center;
    }
    .btn-contact-primary{
        display:inline-flex;
        align-items:center;
        gap:10px;
        background:var(--tp-gold);
        color:var(--tp-white)!important;
        font-weight:600;
        padding:14px 28px;
        border-radius:8px;
        text-decoration:none;
        transition:background .25s ease,transform .2s ease;
    }
    .btn-contact-primary:hover{
        background:#a67a42;
        color:var(--tp-white)!important;
        transform:translateY(-2px);
    }
    .btn-contact-outline-light{
        display:inline-flex;
        align-items:center;
        gap:10px;
        background:0 0;
        color:var(--tp-white)!important;
        font-weight:600;
        padding:14px 28px;
        border-radius:8px;
        border:2px solid rgba(255,255,255,.7);
        text-decoration:none;
        transition:all .25s ease;
    }
    .btn-contact-outline-light:hover{
        background:var(--tp-white);
        color:var(--tp-navy)!important;
        border-color:var(--tp-white);
    }
    .contact-faq{
        background:var(--tp-cream);
    }
    .faq-list{
        max-width:800px;
        margin:0 auto;
    }
    .faq-item{
        background:var(--tp-white);
        border-radius:10px;
        margin-bottom:12px;
        border:1px solid rgba(12,25,39,.06);
        overflow:hidden;
    }
    .faq-q{
        width:100%;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:16px;
        padding:18px 22px;
        background:0 0;
        border:none;
        font-family:var(--font-body);
        font-weight:600;
        font-size:1.02rem;
        color:var(--tp-navy);
        text-align:left;
        cursor:pointer;
        transition:color .2s ease;
    }
    .faq-q i{
        color:var(--tp-gold);
        transition:transform .3s ease;
        flex-shrink:0;
    }
    .faq-item.is-open{
        border: 1px solid #B78C50;
    }
    .faq-item.is-open .faq-q i{
        transform:rotate(180deg);
    }
    .faq-a{
        max-height:0;
        overflow:hidden;
        transition:max-height .35s ease;
    }
    .faq-a-inner{
        padding:0 22px 20px;
        color:var(--tp-muted);
        font-size:.98rem;
        line-height:1.65;
    }
    @media (max-width:991.98px)
    {
        .padding-section
        {padding:70px 0;}
        .form-card
        {padding:32px 24px;}
        .map-card
        {height:220px;}
    }
    @media (max-width:575.98px)
    {
        .padding-section
        {padding:56px 0;}
        .form-row
        {grid-template-columns:1fr;
            gap:0;
        }
        .contact-hero
        {padding:80px 0 70px;}
        .contact-cta-actions
        {flex-direction:column;
            align-items:stretch;
        }
        .btn-contact-outline-light,.btn-contact-primary
        {justify-content:center;}
    }

    [type=button]:not(:disabled) {
    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 5px;
}